* [PATCH 0/5 V2] install into /usr/local and docs/configure
@ 2013-01-21 9:32 Ian Campbell
2013-01-21 9:33 ` [PATCH V2 1/5] tools+stubdom: install under /usr/local by default Ian Campbell
` (4 more replies)
0 siblings, 5 replies; 14+ messages in thread
From: Ian Campbell @ 2013-01-21 9:32 UTC (permalink / raw)
To: xen-devel@lists.xen.org
This is the defacto (or FHS mandated?) standard location for software
built from source, in order to avoid clashing with packaged software
which is installed under /usr/bin etc.
Compared with the RFC this series now also covers stubdoms (which gained
a configure script in the meantime) and docs (which gains a configure
script as part of this series, this part of the series was previously
posted separately in "docs: check for documentation generation tools in
docs/configure.").
Changed to add a bit more distclean thoroughness and update .*ignore.
Ian.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH V2 1/5] tools+stubdom: install under /usr/local by default.
2013-01-21 9:32 [PATCH 0/5 V2] install into /usr/local and docs/configure Ian Campbell
@ 2013-01-21 9:33 ` Ian Campbell
2013-01-24 13:03 ` Ian Campbell
2013-01-21 9:33 ` [PATCH V2 2/5] docs: Remove xen-api docs Ian Campbell
` (3 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Ian Campbell @ 2013-01-21 9:33 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Campbell
This is the defacto (or FHS mandated?) standard location for software
built from source, in order to avoid clashing with packaged software
which is installed under /usr/bin etc.
I think there is benefit in having Xen's install behave more like the
majority of other OSS software out there.
The major downside here is in the transition from 4.2 to 4.3 where
people who have built from source will innevitably discover breakage
because 4.3 no longer overwrites stuff in /usr like it used to so they
pickup old stale bits from /usr instead of new stuff from /usr/local.
Packages will use ./configure --prefix=/usr or whatever helper macro
their package manager gives them. I have confirmed that doing this
results in the same list of installed files as before this patch was
applied.
The hypervisor remains in /boot/ and there is no intention to move it.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Matt Wilson <msw@amazon.com>
---
configure | 2 --
configure.ac | 1 -
stubdom/configure | 2 --
stubdom/configure.ac | 1 -
tools/configure | 2 --
tools/configure.ac | 1 -
6 files changed, 0 insertions(+), 9 deletions(-)
diff --git a/configure b/configure
index 2c1f5bc..cbc38ba 100755
--- a/configure
+++ b/configure
@@ -557,7 +557,6 @@ PACKAGE_BUGREPORT='xen-devel@lists.xen.org'
PACKAGE_URL='http://www.xen.org/'
ac_unique_file="./xen/common/kernel.c"
-ac_default_prefix=/usr
enable_option_checking=no
ac_subst_vars='LTLIBOBJS
LIBOBJS
@@ -1669,7 +1668,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
ac_config_files="$ac_config_files ./config/Toplevel.mk"
diff --git a/configure.ac b/configure.ac
index fcbc4ae..b17e671 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,6 @@ AC_PREREQ([2.67])
AC_INIT([Xen Hypervisor], m4_esyscmd([./version.sh ./xen/Makefile]),
[xen-devel@lists.xen.org], [xen], [http://www.xen.org/])
AC_CONFIG_SRCDIR([./xen/common/kernel.c])
-AC_PREFIX_DEFAULT([/usr])
AC_CONFIG_FILES([./config/Toplevel.mk])
m4_include([m4/features.m4])
diff --git a/stubdom/configure b/stubdom/configure
index ab9219a..51ca676 100755
--- a/stubdom/configure
+++ b/stubdom/configure
@@ -557,7 +557,6 @@ PACKAGE_BUGREPORT='xen-devel@lists.xen.org'
PACKAGE_URL='http://www.xen.org/'
ac_unique_file="../extras/mini-os/kernel.c"
-ac_default_prefix=/usr
ac_subst_vars='LTLIBOBJS
LIBOBJS
STUBDOM_INSTALL
@@ -1792,7 +1791,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_config_files="$ac_config_files ../config/Stubdom.mk"
-
ac_aux_dir=
for ac_dir in ../ "$srcdir"/../; do
if test -f "$ac_dir/install-sh"; then
diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index 2b7b275..de29fb5 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -6,7 +6,6 @@ AC_INIT([Xen Hypervisor Stub Domains], m4_esyscmd([../version.sh ../xen/Makefile
[xen-devel@lists.xen.org], [xen], [http://www.xen.org/])
AC_CONFIG_SRCDIR([../extras/mini-os/kernel.c])
AC_CONFIG_FILES([../config/Stubdom.mk])
-AC_PREFIX_DEFAULT([/usr])
AC_CONFIG_AUX_DIR([../])
# M4 Macro includes
diff --git a/tools/configure b/tools/configure
index 898dd17..1f33858 100755
--- a/tools/configure
+++ b/tools/configure
@@ -558,7 +558,6 @@ PACKAGE_BUGREPORT='xen-devel@lists.xen.org'
PACKAGE_URL='http://www.xen.org/'
ac_unique_file="libxl/libxl.c"
-ac_default_prefix=/usr
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -2145,7 +2144,6 @@ ac_config_files="$ac_config_files ../config/Tools.mk"
ac_config_headers="$ac_config_headers config.h"
-
ac_aux_dir=
for ac_dir in ../ "$srcdir"/../; do
if test -f "$ac_dir/install-sh"; then
diff --git a/tools/configure.ac b/tools/configure.ac
index 2bd71b6..4411f63 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -7,7 +7,6 @@ AC_INIT([Xen Hypervisor Tools], m4_esyscmd([../version.sh ../xen/Makefile]),
AC_CONFIG_SRCDIR([libxl/libxl.c])
AC_CONFIG_FILES([../config/Tools.mk])
AC_CONFIG_HEADERS([config.h])
-AC_PREFIX_DEFAULT([/usr])
AC_CONFIG_AUX_DIR([../])
# Check if CFLAGS, LDFLAGS, LIBS, CPPFLAGS or CPP is set and print a warning
--
1.7.2.5
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH V2 2/5] docs: Remove xen-api docs
2013-01-21 9:32 [PATCH 0/5 V2] install into /usr/local and docs/configure Ian Campbell
2013-01-21 9:33 ` [PATCH V2 1/5] tools+stubdom: install under /usr/local by default Ian Campbell
@ 2013-01-21 9:33 ` Ian Campbell
2013-01-24 13:23 ` Roger Pau Monné
2013-01-21 9:33 ` [PATCH V2 3/5] docs: drop doxygen stuff Ian Campbell
` (2 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Ian Campbell @ 2013-01-21 9:33 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Campbell
This document is about an old unmaintained version of the XenAPI,
which bears little to no relation to what is implemented in xapi and
which is only partially implemented in xend (which is deprecated). The
doc hasn't seen much in the way of updates since 2009.
Anyone who is actually interested can continue to use the version
which was in 4.2.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
docs/Docs.mk | 5 -
docs/Makefile | 7 -
docs/xen-api/Makefile | 44 -
docs/xen-api/bibliography.tex | 5 -
docs/xen-api/coversheet.tex | 65 -
docs/xen-api/fdl.tex | 488 -
docs/xen-api/presentation.tex | 146 -
docs/xen-api/revision-history.tex | 61 -
docs/xen-api/todo.tex | 135 -
docs/xen-api/vm-lifecycle.tex | 43 -
docs/xen-api/vm_lifecycle.dot | 17 -
docs/xen-api/wire-protocol.tex | 383 -
docs/xen-api/xen.eps | 44 -
docs/xen-api/xenapi-coversheet.tex | 38 -
docs/xen-api/xenapi-datamodel-graph.dot | 57 -
docs/xen-api/xenapi-datamodel.tex |20245 -------------------------------
docs/xen-api/xenapi.tex | 60 -
17 files changed, 0 insertions(+), 21843 deletions(-)
delete mode 100644 docs/xen-api/Makefile
delete mode 100644 docs/xen-api/bibliography.tex
delete mode 100644 docs/xen-api/coversheet.tex
delete mode 100644 docs/xen-api/fdl.tex
delete mode 100644 docs/xen-api/presentation.tex
delete mode 100644 docs/xen-api/revision-history.tex
delete mode 100644 docs/xen-api/todo.tex
delete mode 100644 docs/xen-api/vm-lifecycle.tex
delete mode 100644 docs/xen-api/vm_lifecycle.dot
delete mode 100644 docs/xen-api/wire-protocol.tex
delete mode 100644 docs/xen-api/xen.eps
delete mode 100644 docs/xen-api/xenapi-coversheet.tex
delete mode 100644 docs/xen-api/xenapi-datamodel-graph.dot
delete mode 100644 docs/xen-api/xenapi-datamodel.tex
delete mode 100644 docs/xen-api/xenapi.tex
diff --git a/docs/Docs.mk b/docs/Docs.mk
index aa653d3..dcc8a21 100644
--- a/docs/Docs.mk
+++ b/docs/Docs.mk
@@ -1,12 +1,7 @@
-PS2PDF := ps2pdf
-DVIPS := dvips
-LATEX := latex
FIG2DEV := fig2dev
LATEX2HTML := latex2html
DOXYGEN := doxygen
POD2MAN := pod2man
POD2HTML := pod2html
POD2TEXT := pod2text
-DOT := dot
-NEATO := neato
MARKDOWN := markdown
diff --git a/docs/Makefile b/docs/Makefile
index 03f141a..620a296 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -26,10 +26,6 @@ all: build
.PHONY: build
build: html txt man-pages figs
- @if which $(DOT) 1>/dev/null 2>/dev/null ; then \
- $(MAKE) -C xen-api build ; else \
- echo "Graphviz (dot) not installed; skipping xen-api." ; fi
- rm -f *.aux *.dvi *.bbl *.blg *.glo *.idx *.ilg *.log *.ind *.toc
.PHONY: dev-docs
dev-docs: python-dev-docs
@@ -76,7 +72,6 @@ man5/%.5: man/%.pod.5 Makefile
.PHONY: clean
clean:
- $(MAKE) -C xen-api clean
$(MAKE) -C figs clean
rm -rf .word_count *.aux *.dvi *.bbl *.blg *.glo *.idx *~
rm -rf *.ilg *.log *.ind *.toc *.bak core
@@ -93,8 +88,6 @@ install: all
rm -rf $(DESTDIR)$(DOCDIR)
$(INSTALL_DIR) $(DESTDIR)$(DOCDIR)
- $(MAKE) -C xen-api install
-
$(INSTALL_DIR) $(DESTDIR)$(MANDIR)
cp -dR man1 $(DESTDIR)$(MANDIR)
cp -dR man5 $(DESTDIR)$(MANDIR)
diff --git a/docs/xen-api/Makefile b/docs/xen-api/Makefile
deleted file mode 100644
index 77a0117..0000000
--- a/docs/xen-api/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/make -f
-
-XEN_ROOT=$(CURDIR)/../..
-include $(XEN_ROOT)/Config.mk
-include $(XEN_ROOT)/docs/Docs.mk
-
-
-TEX := $(wildcard *.tex)
-EPS := $(wildcard *.eps)
-EPSDOT := $(patsubst %.dot,%.eps,$(wildcard *.dot))
-
-.PHONY: all
-all: build
-
-.PHONY: build
-build: xenapi.pdf xenapi.ps
-
-install:
- $(INSTALL_DIR) $(DESTDIR)$(DOCDIR)/ps
- $(INSTALL_DIR) $(DESTDIR)$(DOCDIR)/pdf
-
- [ -e xenapi.ps ] && cp xenapi.ps $(DESTDIR)$(DOCDIR)/ps || true
- [ -e xenapi.pdf ] && cp xenapi.pdf $(DESTDIR)$(DOCDIR)/pdf || true
-
-xenapi.dvi: $(TEX) $(EPS) $(EPSDOT)
- $(LATEX) xenapi.tex
- $(LATEX) xenapi.tex
- rm -f *.aux *.log
-
-%.pdf: %.ps
- $(PS2PDF) $< $@
-
-%.ps: %.dvi
- $(DVIPS) $< -o $@
-
-%.eps: %.dot
- $(DOT) -Tps $< >$@
-
-xenapi-datamodel-graph.eps: xenapi-datamodel-graph.dot
- $(NEATO) -Goverlap=false -Tps $< >$@
-
-.PHONY: clean
-clean:
- rm -f *.pdf *.ps *.dvi *.aux *.log *.out $(EPSDOT)
diff --git a/docs/xen-api/bibliography.tex b/docs/xen-api/bibliography.tex
deleted file mode 100644
index 30df387..0000000
--- a/docs/xen-api/bibliography.tex
+++ /dev/null
@@ -1,5 +0,0 @@
-\begin{thebibliography}{9}
-\bibitem[RFC2397]{RFC2397}
-Masinter L., \textbf{The "data" URL scheme}, RFC 2397, August 1998,
-Network Working Group, http://www.ietf.org/rfc/rfc2397.txt
-\end{thebibliography}
diff --git a/docs/xen-api/coversheet.tex b/docs/xen-api/coversheet.tex
deleted file mode 100644
index 2d568c5..0000000
--- a/docs/xen-api/coversheet.tex
+++ /dev/null
@@ -1,65 +0,0 @@
-%
-% Copyright (c) 2006-2007 XenSource, Inc.
-%
-% Permission is granted to copy, distribute and/or modify this document under
-% the terms of the GNU Free Documentation License, Version 1.2 or any later
-% version published by the Free Software Foundation; with no Invariant
-% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
-% license is included in the section entitled
-% "GNU Free Documentation License" or the file fdl.tex.
-%
-% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
-%
-
-\pagestyle{empty}
-
-\doctitle{} \hfill \revstring{}
-
-\vspace{1cm}
-
-\begin{center}
-\resizebox{8cm}{!}{\includegraphics{\coversheetlogo}}
-
-\vspace{2cm}
-
-\begin{Huge}
- \doctitle{}
-\end{Huge}
-
-\vspace{1cm}
-\begin{Large}
-Version: \revstring{}\\
-Date: \datestring{}
-\\
-\releasestatement{}
-
-\vspace{1cm}
-\begin{tabular}{rl}
-\docauthors{}
-\end{tabular}
-\end{Large}
-\end{center}
-\vspace{.5cm}
-\begin{large}
-\textbf{Contributors:} \\
-\\
-\begin{tabular}{p{0.5\textwidth}l}
-Stefan Berger, IBM & Vincent Hanquez, XenSource \\
-Daniel Berrang\'e, Red Hat & John Levon, Sun Microsystems \\
-Gareth Bestor, IBM & Jon Ludlam, XenSource \\
-Hollis Blanchard, IBM & Alastair Tse, XenSource \\
-Mike Day, IBM & Daniel Veillard, Red Hat \\
-Jim Fehlig, Novell & Tom Wilkie, University of Cambridge \\
-Jon Harrop, XenSource & Yosuke Iwamatsu, NEC \\
-Masaki Kanno, FUJITSU \\
-Lutz Dube, FUJITSU TECHNOLOGY SOLUTIONS \\
-\end{tabular}
-\end{large}
-
-\vfill
-
-\noindent
-\legalnotice{}
-
-\newpage
-\pagestyle{fancy}
diff --git a/docs/xen-api/fdl.tex b/docs/xen-api/fdl.tex
deleted file mode 100644
index d821457..0000000
--- a/docs/xen-api/fdl.tex
+++ /dev/null
@@ -1,488 +0,0 @@
-\chapter{GNU Free Documentation License}
-%\label{label_fdl}
-
- \begin{center}
-
- Version 1.2, November 2002
-
-
- Copyright \copyright 2000,2001,2002 Free Software Foundation, Inc.
-
- \bigskip
-
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- \bigskip
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-\end{center}
-
-
-\begin{center}
-{\bf\large Preamble}
-\end{center}
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document "free" in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-\begin{center}
-{\Large\bf 1. APPLICABILITY AND DEFINITIONS}
-\addcontentsline{toc}{section}{1. APPLICABILITY AND DEFINITIONS}
-\end{center}
-
-This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License. Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein. The \textbf{"Document"}, below,
-refers to any such manual or work. Any member of the public is a
-licensee, and is addressed as \textbf{"you"}. You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-
-A \textbf{"Modified Version"} of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A \textbf{"Secondary Section"} is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (Thus, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The \textbf{"Invariant Sections"} are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License. If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant. The Document may contain zero
-Invariant Sections. If the Document does not identify any Invariant
-Sections then there are none.
-
-The \textbf{"Cover Texts"} are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License. A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-
-A \textbf{"Transparent"} copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text. A copy that is not "Transparent" is called \textbf{"Opaque"}.
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML, PostScript or PDF designed for human modification. Examples of
-transparent image formats include PNG, XCF and JPG. Opaque formats
-include proprietary formats that can be read and edited only by
-proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML, PostScript or PDF produced by some word
-processors for output purposes only.
-
-The \textbf{"Title Page"} means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-A section \textbf{"Entitled XYZ"} means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language. (Here XYZ stands for a
-specific section name mentioned below, such as \textbf{"Acknowledgements"},
-\textbf{"Dedications"}, \textbf{"Endorsements"}, or \textbf{"History"}.)
-To \textbf{"Preserve the Title"}
-of such a section when you modify the Document means that it remains a
-section "Entitled XYZ" according to this definition.
-
-The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document. These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-
-
-\begin{center}
-{\Large\bf 2. VERBATIM COPYING}
-\addcontentsline{toc}{section}{2. VERBATIM COPYING}
-\end{center}
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-\begin{center}
-{\Large\bf 3. COPYING IN QUANTITY}
-\addcontentsline{toc}{section}{3. COPYING IN QUANTITY}
-\end{center}
-
-
-If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-\begin{center}
-{\Large\bf 4. MODIFICATIONS}
-\addcontentsline{toc}{section}{4. MODIFICATIONS}
-\end{center}
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-\begin{itemize}
-\item[A.]
- Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.
-
-\item[B.]
- List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has fewer than five),
- unless they release you from this requirement.
-
-\item[C.]
- State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-
-\item[D.]
- Preserve all the copyright notices of the Document.
-
-\item[E.]
- Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-
-\item[F.]
- Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.
-
-\item[G.]
- Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.
-
-\item[H.]
- Include an unaltered copy of this License.
-
-\item[I.]
- Preserve the section Entitled "History", Preserve its Title, and add
- to it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section Entitled "History" in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.
-
-\item[J.]
- Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the "History" section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.
-
-\item[K.]
- For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the section all
- the substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
-
-\item[L.]
- Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
-
-\item[M.]
- Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-
-\item[N.]
- Do not retitle any existing section to be Entitled "Endorsements"
- or to conflict in title with any Invariant Section.
-
-\item[O.]
- Preserve any Warranty Disclaimers.
-\end{itemize}
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section Entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-\begin{center}
-{\Large\bf 5. COMBINING DOCUMENTS}
-\addcontentsline{toc}{section}{5. COMBINING DOCUMENTS}
-\end{center}
-
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections Entitled "History"
-in the various original documents, forming one section Entitled
-"History"; likewise combine any sections Entitled "Acknowledgements",
-and any sections Entitled "Dedications". You must delete all sections
-Entitled "Endorsements".
-
-\begin{center}
-{\Large\bf 6. COLLECTIONS OF DOCUMENTS}
-\addcontentsline{toc}{section}{6. COLLECTIONS OF DOCUMENTS}
-\end{center}
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-\begin{center}
-{\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS}
-\addcontentsline{toc}{section}{7. AGGREGATION WITH INDEPENDENT WORKS}
-\end{center}
-
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an "aggregate" if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-
-
-\begin{center}
-{\Large\bf 8. TRANSLATION}
-\addcontentsline{toc}{section}{8. TRANSLATION}
-\end{center}
-
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers. In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-
-If a section in the Document is Entitled "Acknowledgements",
-"Dedications", or "History", the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.
-
-
-\begin{center}
-{\Large\bf 9. TERMINATION}
-\addcontentsline{toc}{section}{9. TERMINATION}
-\end{center}
-
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-\begin{center}
-{\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE}
-\addcontentsline{toc}{section}{10. FUTURE REVISIONS OF THIS LICENSE}
-\end{center}
-
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns. See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-\begin{center}
-{\Large\bf ADDENDUM: How to use this License for your documents}
-\addcontentsline{toc}{section}{ADDENDUM: How to use this License for your documents}
-\end{center}
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-\bigskip
-\begin{quote}
- Copyright \copyright YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.2
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-\end{quote}
-\bigskip
-
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the "with...Texts." line with this:
-
-\bigskip
-\begin{quote}
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-\end{quote}
-\bigskip
-
-If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
diff --git a/docs/xen-api/presentation.tex b/docs/xen-api/presentation.tex
deleted file mode 100644
index 17fe3c5..0000000
--- a/docs/xen-api/presentation.tex
+++ /dev/null
@@ -1,146 +0,0 @@
-%
-% Copyright (c) 2006-2007 XenSource, Inc.
-%
-% Permission is granted to copy, distribute and/or modify this document under
-% the terms of the GNU Free Documentation License, Version 1.2 or any later
-% version published by the Free Software Foundation; with no Invariant
-% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
-% license is included in the section entitled
-% "GNU Free Documentation License" or the file fdl.tex.
-%
-% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
-%
-
-The API is presented here as a set of Remote Procedure Calls, with a wire
-format based upon XML-RPC. No specific language bindings are prescribed,
-although examples will be given in the python programming language.
-
-Although we adopt some terminology from object-oriented programming,
-future client language bindings may or may not be object oriented.
-The API reference uses the terminology {\em classes\/} and {\em objects\/}.
-For our purposes a {\em class\/} is simply a hierarchical namespace;
-an {\em object\/} is an instance of a class with its fields set to
-specific values. Objects are persistent and exist on the server-side.
-Clients may obtain opaque references to these server-side objects and then
-access their fields via get/set RPCs.
-
-%In each class there is a $\mathit{uid}$ field that assigns an indentifier
-%to each object. This $\mathit{uid}$ serves as an object reference
-%on both client- and server-side, and is often included as an argument in
-%RPC messages.
-
-For each class we specify a list of
-fields along with their {\em types\/} and {\em qualifiers\/}. A
-qualifier is one of:
-\begin{itemize}
- \item $\mathit{RO}_\mathit{run}$: the field is Read
-Only. Furthermore, its value is automatically computed at runtime.
-For example: current CPU load and disk IO throughput.
- \item $\mathit{RO}_\mathit{ins}$: the field must be manually set
-when a new object is created, but is then Read Only for
-the duration of the object's life.
-For example, the maximum memory addressable by a guest is set
-before the guest boots.
- \item $\mathit{RW}$: the field is Read/Write. For example, the name
-of a VM.
-\end{itemize}
-
-A full list of types is given in Chapter~\ref{api-reference}. However,
-there are three types that require explicit mention:
-\begin{itemize}
- \item $t~\mathit{Ref}$: signifies a reference to an object
-of type $t$.
- \item $t~\mathit{Set}$: signifies a set containing
-values of type $t$.
- \item $(t_1, t_2)~\mathit{Map}$: signifies a mapping from values of
-type $t_1$ to values of type $t_2$.
-\end{itemize}
-
-Note that there are a number of cases where {\em Ref}s are {\em doubly
-linked\/}---e.g.\ a VM has a field called {\tt VIFs} of type
-$(\mathit{VIF}~\mathit{Ref})~\mathit{Set}$; this field lists
-the network interfaces attached to a particular VM. Similarly, the VIF
-class has a field called {\tt VM} of type $(\mathit{VM}~{\mathit
-Ref})$ which references the VM to which the interface is connected.
-These two fields are {\em bound together\/}, in the sense that
-creating a new VIF causes the {\tt VIFs} field of the corresponding
-VM object to be updated automatically.
-
-The API reference explicitly lists the fields that are
-bound together in this way. It also contains a diagram that shows
-relationships between classes. In this diagram an edge signifies the
-existence of a pair of fields that are bound together, using standard
-crows-foot notation to signify the type of relationship (e.g.\
-one-many, many-many).
-
-\section{RPCs associated with fields}
-
-Each field, {\tt f}, has an RPC accessor associated with it
-that returns {\tt f}'s value:
-\begin{itemize}
-\item ``{\tt get\_f(Ref x)}'': takes a
-{\tt Ref} that refers to an object and returns the value of {\tt f}.
-\end{itemize}
-
-Each field, {\tt f}, with attribute
-{\em RW} and whose outermost type is {\em Set\/} has the following
-additional RPCs associated with it:
-\begin{itemize}
-\item an ``{\tt add\_to\_f(Ref x, v)}'' RPC adds a new element v to the set\footnote{
-%
-Since sets cannot contain duplicate values this operation has no action in the case
-that {\tt v} was already in the set.
-%
-};
-\item a ``{\tt remove\_from\_f(Ref x, v)}'' RPC removes element {\tt v} from the set;
-\end{itemize}
-
-Each field, {\tt f}, with attribute
-{\em RW} and whose outermost type is {\em Map\/} has the following
-additional RPCs associated with it:
-\begin{itemize}
-\item an ``{\tt add\_to\_f(Ref x, k, v)}'' RPC adds new pair {\tt (k, v)}
-to the mapping stored in {\tt f} in object {\tt x}. Adding a new pair for duplicate
-key, {\tt k}, overwrites any previous mapping for {\tt k}.
-\item a ``{\tt remove\_from\_f(Ref x, k)}'' RPC removes the pair with key {\tt k}
-from the mapping stored in {\tt f} in object {\tt x}.
-\end{itemize}
-
-Each field whose outermost type is neither {\em Set\/} nor {\em Map\/},
-but whose attribute is {\em RW} has an RPC acessor associated with it
-that sets its value:
-\begin{itemize}
-\item For {\em RW\/} ({\em R\/}ead/{\em
-W\/}rite), a ``{\tt set\_f(Ref x, v)}'' RPC function is also provided.
-This sets field {\tt f} on object {\tt x} to value {\tt v}.
-\end{itemize}
-
-\section{RPCs associated with classes}
-
-\begin{itemize}
-\item Each class has a {\em constructor\/} RPC named ``{\tt create}'' that
-takes as parameters all fields marked {\em RW\/} and
-$\mathit{RO}_\mathit{ins}$. The result of this RPC is that a new {\em
-persistent\/} object is created on the server-side with the specified field
-values.
-
-\item Each class has a {\tt get\_by\_uuid(uuid)} RPC that returns the object
-of that class that has the specified {\tt uuid}.
-
-\item Each class that has a {\tt name\_label} field has a
-``{\tt get\_by\_name\_label(name)}'' RPC that returns a set of objects of that
-class that have the specified {\tt label}.
-
-\item Each class has a ``{\tt destroy(Ref x)}'' RPC that explicitly deletes
-the persistent object specified by {\tt x} from the system. This is a
-non-cascading delete -- if the object being removed is referenced by another
-object then the {\tt destroy} call will fail.
-
-\end{itemize}
-
-\subsection{Additional RPCs}
-
-As well as the RPCs enumerated above, some classes have additional RPCs
-associated with them. For example, the {\tt VM} class has RPCs for cloning,
-suspending, starting etc. Such additional RPCs are described explicitly
-in the API reference.
diff --git a/docs/xen-api/revision-history.tex b/docs/xen-api/revision-history.tex
deleted file mode 100644
index 3fa8329..0000000
--- a/docs/xen-api/revision-history.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-{ \bf Revision History}
-
-% Please do not use minipages in a tabular environment; this results
-% in bad vertical alignment.
-
-\begin{flushleft}
-\begin{center}
- \begin{tabular}{|l|l|l|>{\raggedright}p{7cm}|}
- \hline
- 1.0.0 & 27th April 07 & Xensource et al. &
- Initial Revision\tabularnewline
- \hline
- 1.0.1 & 10th Dec. 07 & S. Berger &
- Added XSPolicy.reset\_xspolicy, VTPM.get\_other\_config,
- VTPM.set\_otherconfig. ACMPolicy.get\_enforced\_binary methods.\tabularnewline
- \hline
- 1.0.2 & 25th Jan. 08 & J. Fehlig &
- Added Crashed VM power state.\tabularnewline
- \hline
- 1.0.3 & 11th Feb. 08 & S. Berger &
- Added table of contents and hyperlink cross reference.\tabularnewline
- \hline
- 1.0.4 & 23rd March 08 & S. Berger &
- Added XSPolicy.can\_run\tabularnewline
- \hline
- 1.0.5 & 17th Apr. 08 & S. Berger &
- Added undocumented fields and methods for default\_netmask and
- default\_gateway to the Network class. Removed an unimplemented
- method from the XSPolicy class and removed the 'optional' from
- 'oldlabel' parameters.\tabularnewline
- \hline
- 1.0.6 & 24th Jul. 08 & Y. Iwamatsu &
- Added definitions of new classes DPCI and PPCI. Updated the table
- and the diagram representing relationships between classes.
- Added host.PPCIs and VM.DPCIs fields.\tabularnewline
- \hline
- 1.0.7 & 20th Oct. 08 & M. Kanno &
- Added definitions of new classes DSCSI and PSCSI. Updated the table
- and the diagram representing relationships between classes.
- Added host.PSCSIs and VM.DSCSIs fields.\tabularnewline
- \hline
- 1.0.8 & 17th Jun. 09 & A. Florath &
- Updated interactive session example.
- Added description for \texttt{PV/kernel} and \texttt{PV/ramdisk}
- parameters using URIs.\tabularnewline
- \hline
- 1.0.9 & 20th Nov. 09 & M. Kanno &
- Added definitions of new classes DSCSI\_HBA and PSCSI\_HBA.
- Updated the table and the diagram representing relationships
- between classes. Added host.PSCSI\_HBAs and VM.DSCSI\_HBAs
- fields.\tabularnewline
- \hline
- 1.0.10 & 10th Jan. 10 & L. Dube &
- Added definitions of new classes cpu\_pool. Updated the table
- and the diagram representing relationships between classes.
- Added fields host.resident\_cpu\_pools, VM.cpu\_pool and
- host\_cpu.cpu\_pool.\tabularnewline
- \hline
- \end{tabular}
-\end{center}
-\end{flushleft}
diff --git a/docs/xen-api/todo.tex b/docs/xen-api/todo.tex
deleted file mode 100644
index 615a5e5..0000000
--- a/docs/xen-api/todo.tex
+++ /dev/null
@@ -1,135 +0,0 @@
-%
-% Copyright (c) 2006 XenSource, Inc.
-%
-% Permission is granted to copy, distribute and/or modify this document under
-% the terms of the GNU Free Documentation License, Version 1.2 or any later
-% version published by the Free Software Foundation; with no Invariant
-% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
-% license is included in the section entitled
-% "GNU Free Documentation License" or the file fdl.tex.
-%
-% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
-%
-
-\section{To-Do}
-
-Lots and lots! Including:
-
-\subsection{Clarity}
-
-\begin{itemize}
-
-\item Roll constructors and get\_by\_uuid etc (section 1.2) into section 2 so
-that it is clearer that each class has these.
-
-\item Emphasise that enums are strings on the wire, and so are not restricted
-to a certain number of bits.
-
-\item Clarify return values, in particular that void means return a status
-code, potential error description, but otherwise no value.
-
-\item Talk about UUID generation.
-
-\item Clarify session behaviour wrt timeouts and disconnects.
-
-\item Clarify behaviour of progress field on asynchronous request polling when
-that request fails.
-
-\item Clarify which calls have asynchronous counterparts by marking them as such in the reference. (Individual getters and setters are too small and quick to justify having async versions)
-
-\end{itemize}
-
-\subsection{Content}
-
-\subsubsection{Model}
-
-\begin{itemize}
-
-\item Improve the set of available power\_states and corresponding lifecycle
-semantics. Rename power\_state, maybe.
-
-\item Specify the CPU scheduler configuration properly, inc CPU affinity,
-weights, etc.
-
-\item Add Vm.architecture and Host.compatible\_architecture fields.
-
-\item Add migration calls, including the ability to test whether a migration
-will succeed, and authentication token exchange.
-
-\item Improve asynchronous task handling, with a registration call, a
-``blocking poll'' call, and an explicit notification destination. Registration
-for ``power\_state'' is useful.
-
-\item Specify that session keys outlive the HTTP session, and add a timeout
-for them (configurable in the tools).
-
-\item Add places for people to store extra data (``otherConfig'' perhaps)
-
-\item Specify how hardware UUIDs are used / accessed.
-
-\item Marking VDIs as exclusive / shareable (locking?)
-
-\item Consider how to represent CDROMs (as VDIs?)
-
-\item Define lists of exceptions which may be thrown by each RPC, including
-error codes and parameters.
-
-\item Host characteristics: minimum amount of memory, TPM, network bandwidth,
-amount of host memory, amount consumed by VMs, max amount available for new
-VMs?
-
-\item Cooked resource monitoring interface.
-
-\item Network needs additional attributes that provide media characteristics
-of the NIC:
-
-\begin{itemize}
-
-\item RO bandwidth integer Bandwidth in mbps
-\item RO latency integer time in ms for an icmp roundtrip to a host on the
-same subnet.
-
-\end{itemize}
-
-\item ACM
-\begin{itemize}
-
-\item A Xen system can be running an access control policy where each
-VM's run-time access to resources is restricted by the label it has been given
-compared to those of the resources. Currently a VM's configuration file may
-contain a line like access\_control[policy='$<$name of the system's
-policy$>$',label='$<$label given to VM$>$']. I think the identifiers 'policy'
-and 'label' should also be part of the VM class either directly in the form
-'access\_control/policy' or indirectly in an access\_control class.
-
-\end{itemize}
-
-\item Mike Day's Vm.profile field?
-
-\item Clone customisation?
-
-\item NIC teaming? The NIC field of the Network class should be a list (Set)
-so that we can signify NIC teaming. (Combining physical NICs in a single host
-interface to achieve greater bandwidth).
-
-\end{itemize}
-
-\subsubsection{Transport}
-
-\begin{itemize}
-
-\item Allow non-HTTP transports. Explicitly allow stdio transport, for SSH.
-
-\end{itemize}
-
-\subsubsection{Authentication}
-
-\begin{itemize}
-
-\item Delegation to the transport layer.
-
-\item Extend PAM exchange across the wire.
-
-\item Fine-grained access control.
-
-\end{itemize}
diff --git a/docs/xen-api/vm-lifecycle.tex b/docs/xen-api/vm-lifecycle.tex
deleted file mode 100644
index c584b67..0000000
--- a/docs/xen-api/vm-lifecycle.tex
+++ /dev/null
@@ -1,43 +0,0 @@
-%
-% Copyright (c) 2006-2007 XenSource, Inc.
-%
-% Permission is granted to copy, distribute and/or modify this document under
-% the terms of the GNU Free Documentation License, Version 1.2 or any later
-% version published by the Free Software Foundation; with no Invariant
-% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
-% license is included in the section entitled
-% "GNU Free Documentation License" or the file fdl.tex.
-%
-% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
-%
-
-\section{VM Lifecycle}
-
-\begin{figure}
-\centering
-\resizebox{0.9\textwidth}{!}{\includegraphics{vm_lifecycle}}
-\caption{VM Lifecycle}
-\label{fig-vm-lifecycle}
-\end{figure}
-
-Figure~\ref{fig-vm-lifecycle} shows the states that a VM can be in
-and the API calls that can be used to move the VM between these states. The crashed
-state indicates that the guest OS running within the VM has crashed. There is no
-API to explicitly move to the crashed state, however a hardShutdown will move the
-VM to the powered down state.
-
-\section{VM boot parameters}
-
-The VM class contains a number of fields that control the way in which the VM is booted.
-With reference to the fields defined in the VM class (see later in this document),
-this section outlines the boot options available and the mechanisms provided for controlling them.
-
-VM booting is controlled by setting one of the two mutually exclusive groups: ``PV'', and ``HVM''. If HVM.boot\_policy is the empty string, then paravirtual domain building and booting will be used; otherwise the VM will be loaded as an HVM domain, and booted using an emulated BIOS.
-
-When paravirtual booting is in use, the PV/bootloader field indicates the bootloader to use. It may be ``pygrub'', in which case the platform's default installation of pygrub will be used, or a full path within the control domain to some other bootloader. The other fields, PV/kernel, PV/ramdisk, PV/args and PV/bootloader\_args will be passed to the bootloader unmodified, and interpretation of those fields is then specific to the bootloader itself, including the possibility that the bootloader will ignore some or all of those given values. Finally the paths of all bootable disks are added to the bootloader commandline (a disk is bootable if its VBD has the bootable flag set). There may be zero, one or many bootable disks; the bootloader decides which disk (if any) to boot from.
-
-If the bootloader is pygrub, then the menu.lst is parsed if present in the guest's filesystem, otherwise the specified kernel and ramdisk are used, or an autodetected kernel is used if nothing is specified and autodetection is possible. PV/args is appended to the kernel command line, no matter which mechanism is used for finding the kernel.
-
-If PV/bootloader is empty but PV/kernel is specified, then the kernel and ramdisk values will be treated as paths within the control domain. If both PV/bootloader and PV/kernel are empty, then the behaviour is as if PV/bootloader was specified as ``pygrub''.
-
-When using HVM booting, HVM/boot\_policy and HVM/boot\_params specify the boot handling. Only one policy is currently defined: ``BIOS order''. In this case, HVM/boot\_params should contain one key-value pair ``order'' = ``N'' where N is the string that will be passed to QEMU.
\ No newline at end of file
diff --git a/docs/xen-api/vm_lifecycle.dot b/docs/xen-api/vm_lifecycle.dot
deleted file mode 100644
index 2c062f9..0000000
--- a/docs/xen-api/vm_lifecycle.dot
+++ /dev/null
@@ -1,17 +0,0 @@
-digraph g{
-
-node [shape=box]; "powered down" paused running suspended crashed;
-
-"powered down" -> paused [label="start(paused=true)"];
-"powered down" -> running [label="start(paused=false)"];
-running -> suspended [label="suspend"];
-suspended -> running [label="resume(paused=false)"];
-suspended -> paused [label="resume(paused=true)"];
-paused -> suspended [label="suspend"];
-paused -> running [label="resume"];
-running -> "powered down" [label="cleanShutdown /\nhardShutdown"];
-running -> paused [label="pause"];
-running -> crashed [label="guest OS crash"]
-crashed -> "powered down" [label="hardShutdown"]
-
-}
\ No newline at end of file
diff --git a/docs/xen-api/wire-protocol.tex b/docs/xen-api/wire-protocol.tex
deleted file mode 100644
index dcb1a1c..0000000
--- a/docs/xen-api/wire-protocol.tex
+++ /dev/null
@@ -1,383 +0,0 @@
-%
-% Copyright (c) 2006-2007 XenSource, Inc.
-% Copyright (c) 2009 flonatel GmbH & Co. KG
-%
-% Permission is granted to copy, distribute and/or modify this document under
-% the terms of the GNU Free Documentation License, Version 1.2 or any later
-% version published by the Free Software Foundation; with no Invariant
-% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
-% license is included in the section entitled
-% "GNU Free Documentation License" or the file fdl.tex.
-%
-% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
-% Contributor: Andreas Florath
-%
-
-\section{Wire Protocol for Remote API Calls}
-
-API calls are sent over a network to a Xen-enabled host using
-the XML-RPC protocol. In this Section we describe how the
-higher-level types used in our API Reference are mapped to
-primitive XML-RPC types.
-
-In our API Reference we specify the signatures of API functions in the following
-style:
-\begin{verbatim}
- (ref_vm Set) VM.get_all()
-\end{verbatim}
-This specifies that the function with name {\tt VM.get\_all} takes
-no parameters and returns a Set of {\tt ref\_vm}s.
-These types are mapped onto XML-RPC types in a straight-forward manner:
-\begin{itemize}
- \item Floats, Bools, DateTimes and Strings map directly to the XML-RPC {\tt
- double}, {\tt boolean}, {\tt dateTime.iso8601}, and {\tt string} elements.
-
- \item all ``{\tt ref\_}'' types are opaque references, encoded as the
- XML-RPC's {\tt String} type. Users of the API should not make assumptions
- about the concrete form of these strings and should not expect them to
- remain valid after the client's session with the server has terminated.
-
- \item fields named ``{\tt uuid}'' of type ``{\tt String}'' are mapped to
- the XML-RPC {\tt String} type. The string itself is the OSF
- DCE UUID presentation format (as output by {\tt uuidgen}, etc).
-
- \item ints are all assumed to be 64-bit in our API and are encoded as a
- string of decimal digits (rather than using XML-RPC's built-in 32-bit {\tt
- i4} type).
-
- \item values of enum types are encoded as strings. For example, a value of
- {\tt destroy} of type {\tt on\_normal\_exit}, would be conveyed as:
- \begin{verbatim}
- <value><string>destroy</string></value>
- \end{verbatim}
-
- \item for all our types, {\tt t}, our type {\tt t Set} simply maps to
- XML-RPC's {\tt Array} type, so for example a value of type {\tt cpu\_feature
- Set} would be transmitted like this:
-
- \begin{verbatim}
-<array>
- <data>
- <value><string>CX8</string></value>
- <value><string>PSE36</string></value>
- <value><string>FPU</string></value>
- </data>
-</array>
- \end{verbatim}
-
- \item for types {\tt k} and {\tt v}, our type {\tt (k, v) Map} maps onto an
- XML-RPC struct, with the key as the name of the struct. Note that the {\tt
- (k, v) Map} type is only valid when {\tt k} is a {\tt String}, {\tt Ref}, or
- {\tt Int}, and in each case the keys of the maps are stringified as
- above. For example, the {\tt (String, double) Map} containing a the mappings
- Mike $\rightarrow$ 2.3 and John $\rightarrow$ 1.2 would be represented as:
-
- \begin{verbatim}
-<value>
- <struct>
- <member>
- <name>Mike</name>
- <value><double>2.3</double></value>
- </member>
- <member>
- <name>John</name>
- <value><double>1.2</double></value>
- </member>
- </struct>
-</value>
- \end{verbatim}
-
- \item our {\tt Void} type is transmitted as an empty string.
-
-\end{itemize}
-
-\subsection{Note on References vs UUIDs}
-
-References are opaque types --- encoded as XML-RPC strings on the wire --- understood
-only by the particular server which generated them. Servers are free to choose
-any concrete representation they find convenient; clients should not make any
-assumptions or attempt to parse the string contents. References are not guaranteed
-to be permanent identifiers for objects; clients should not assume that references
-generated during one session are valid for any future session. References do not
-allow objects to be compared for equality. Two references to the same object are
-not guaranteed to be textually identical.
-
-UUIDs are intended to be permanent names for objects. They are
-guaranteed to be in the OSF DCE UUID presentation format (as output by {\tt uuidgen}.
-Clients may store UUIDs on disk and use them to lookup objects in subsequent sessions
-with the server. Clients may also test equality on objects by comparing UUID strings.
-
-The API provides mechanisms
-for translating between UUIDs and opaque references. Each class that contains a UUID
-field provides:
-\begin{itemize}
-\item A ``{\tt get\_by\_uuid}'' method that takes a UUID, $u$, and returns an opaque reference
-to the server-side object that has UUID=$u$;
-\item A {\tt get\_uuid} function (a regular ``field getter'' RPC) that takes an opaque reference,
-$r$, and returns the UUID of the server-side object that is referenced by $r$.
-\end{itemize}
-
-\subsection{Return Values/Status Codes}
-\label{synchronous-result}
-
-The return value of an RPC call is an XML-RPC {\tt Struct}.
-
-\begin{itemize}
-\item The first element of the struct is named {\tt Status}; it
-contains a string value indicating whether the result of the call was
-a ``{\tt Success}'' or a ``{\tt Failure}''.
-\end{itemize}
-
-If {\tt Status} was set to {\tt Success} then the Struct contains a second
-element named {\tt Value}:
-\begin{itemize}
-\item The element of the struct named {\tt Value} contains the function's return value.
-\end{itemize}
-
-In the case where {\tt Status} is set to {\tt Failure} then
-the struct contains a second element named {\tt ErrorDescription}:
-\begin{itemize}
-\item The element of the struct named {\tt ErrorDescription} contains
-an array of string values. The first element of the array is an error code;
-the remainder of the array are strings representing error parameters relating
-to that code.
-\end{itemize}
-
-For example, an XML-RPC return value from the {\tt host.get\_resident\_VMs}
-function above
-may look like this:
-\begin{verbatim}
- <struct>
- <member>
- <name>Status</name>
- <value>Success</value>
- </member>
- <member>
- <name>Value</name>
- <value>
- <array>
- <data>
- <value>81547a35-205c-a551-c577-00b982c5fe00</value>
- <value>61c85a22-05da-b8a2-2e55-06b0847da503</value>
- <value>1d401ec4-3c17-35a6-fc79-cee6bd9811fe</value>
- </data>
- </array>
- </value>
- </member>
- </struct>
-\end{verbatim}
-
-\section{Making XML-RPC Calls}
-
-\subsection{Transport Layer}
-
-The following transport layers are currently supported:
-\begin{itemize}
-\item HTTP/S for remote administration
-\item HTTP over Unix domain sockets for local administration
-\end{itemize}
-
-\subsection{Session Layer}
-
-The XML-RPC interface is session-based; before you can make arbitrary RPC calls
-you must login and initiate a session. For example:
-\begin{verbatim}
- session_id session.login_with_password(string uname, string pwd)
-\end{verbatim}
-Where {\tt uname} and {\tt password} refer to your username and password
-respectively, as defined by the Xen administrator.
-The {\tt session\_id} returned by {\tt session.login\_with\_password} is passed
-to subsequent RPC calls as an authentication token.
-
-A session can be terminated with the {\tt session.logout} function:
-\begin{verbatim}
- void session.logout(session_id session)
-\end{verbatim}
-
-\subsection{Synchronous and Asynchronous invocation}
-
-Each method call (apart from methods on ``Session'' and ``Task'' objects
-and ``getters'' and ``setters'' derived from fields)
-can be made either synchronously or asynchronously.
-A synchronous RPC call blocks until the
-return value is received; the return value of a synchronous RPC call is
-exactly as specified in Section~\ref{synchronous-result}.
-
-Only synchronous API calls are listed explicitly in this document.
-All asynchronous versions are in the special {\tt Async} namespace.
-For example, synchronous call {\tt VM.clone(...)}
-(described in Chapter~\ref{api-reference})
-has an asynchronous counterpart, {\tt
-Async.VM.clone(...)}, that is non-blocking.
-
-Instead of returning its result directly, an asynchronous RPC call
-returns a {\tt task-id}; this identifier is subsequently used
-to track the status of a running asynchronous RPC. Note that an asynchronous
-call may fail immediately, before a {\tt task-id} has even been created---to
-represent this eventuality, the returned {\tt task-id}
-is wrapped in an XML-RPC struct with a {\tt Status}, {\tt ErrorDescription} and
-{\tt Value} fields, exactly as specified in Section~\ref{synchronous-result}.
-
-The {\tt task-id} is provided in the {\tt Value} field if {\tt Status} is set to
-{\tt Success}.
-
-The RPC call
-\begin{verbatim}
- (ref_task Set) Task.get_all(session_id s)
-\end{verbatim}
-returns a set of all task IDs known to the system. The status (including any
-returned result and error codes) of these tasks
-can then be queried by accessing the fields of the Task object in the usual way.
-Note that, in order to get a consistent snapshot of a task's state, it is advisable to call the ``get\_record'' function.
-
-\section{Example interactive session}
-This section describes how an interactive session might look, using
-the python API. All python versions starting from 2.4 should work.
-
-The examples in this section use a remote Xen host with the ip address
-of \texttt{192.168.7.20} and the xmlrpc port \texttt{9363}. No
-authentication is used.
-
-Note that the remote server must be configured in the way, that it
-accepts remote connections. Some lines must be added to the
-xend-config.sxp configuration file:
-\begin{verbatim}
-(xen-api-server ((9363 none)
- (unix none)))
-(xend-tcp-xmlrpc-server yes)
-\end{verbatim}
-The xend must be restarted after changing the configuration.
-
-Before starting python, the \texttt{PYTHONPATH} must be set that the
-\texttt{XenAPI.py} can be found. Typically the \texttt{XenAPI.py} is
-installed with one of the Xen helper packages which the last part of
-the path is \texttt{xen/xm/XenAPI.py}.
-
-Example: Under Debian 5.0 the package which contains the
-\texttt{XenAPI.py} is \texttt{xen-utils-3.2-1}. \texttt{XenAPI.py} is
-located in \texttt{/usr/lib/xen-3.2-1/lib/python/xen/xm}. The
-following command will set the \texttt{PYTHONPATH} environment
-variable in a bash:
-
-\begin{verbatim}
-$ export PYTHONPATH=/usr/lib/xen-3.2-1/lib/python
-\end{verbatim}
-
-Then python can be started and the XenAPI must be imported:
-
-\begin{verbatim}
-$ python
-...
->>> import xen.xm.XenAPI
-\end{verbatim}
-
-To create a session to the remote server, the
-\texttt{xen.xm.XenAPI.Session} constructor is used:
-\begin{verbatim}
->>> session = xen.xm.XenAPI.Session("http://192.168.7.20:9363")
-\end{verbatim}
-
-For authentication with a username and password the
-\texttt{login\_with\_password} is used:
-\begin{verbatim}
->>> session.login_with_password("", "")
-\end{verbatim}
-
-When serialised, this call looks like:
-\begin{verbatim}
-POST /RPC2 HTTP/1.0
-Host: 192.168.7.20:9363
-User-Agent: xmlrpclib.py/1.0.1 (by www.pythonware.com)
-Content-Type: text/xml
-Content-Length: 221
-
-<?xml version='1.0'?>
-<methodCall>
-<methodName>session.login_with_password</methodName>
-<params>
-<param>
-<value><string></string></value>
-</param>
-<param>
-<value><string></string></value>
-</param>
-</params>
-</methodCall>
-\end{verbatim}
-
-And the response:
-\begin{verbatim}
-HTTP/1.1 200 OK
-Server: BaseHTTP/0.3 Python/2.5.2
-Date: Fri, 10 Jul 2009 09:01:27 GMT
-Content-Type: text/xml
-Content-Length: 313
-
-<?xml version='1.0'?>
-<methodResponse>
-<params>
-<param>
-<value><struct>
-<member>
-<name>Status</name>
-<value><string>Success</string></value>
-</member>
-<member>
-<name>Value</name>
-<value><string>68e3a009-0249-725b-246b-7fc43cf4f154</string></value>
-</member>
-</struct></value>
-</param>
-</params>
-</methodResponse>
-\end{verbatim}
-
-Next, the user may acquire a list of all the VMs known to the host:
-
-\begin{verbatim}
->>> vms = session.xenapi.VM.get_all()
->>> vms
-['00000000-0000-0000-0000-000000000000', 'b28e4ee3-216f-fa85-9cae-615e954dbbe7']
-\end{verbatim}
-
-The VM references here have the form of an uuid, though they may
-change in the future, and they should be treated as opaque strings.
-
-Some examples of using accessors for object fields:
-\begin{verbatim}
->>> session.xenapi.VM.get_name_label(vms[1])
-'guest002'
->>> session.xenapi.VM.get_actions_after_reboot(vms[1])
-'restart'
-\end{verbatim}
-
-Grab the actual memory and cpu utilisation of one vm:
-\begin{verbatim}
->>> m = session.xenapi.VM.get_metrics(vms[1])
->>> session.xenapi.VM_metrics.get_memory_actual(m)
-'268435456'
->>> session.xenapi.VM_metrics.get_VCPUs_utilisation(m)
-{'0': 0.00041759955632935362}
-\end{verbatim}
-(The virtual machine has about 256 MByte RAM and is idle.)
-
-Pausing and unpausing a vm:
-\begin{verbatim}
->>> session.xenapi.VM.pause(vms[1])
-''
->>> session.xenapi.VM.unpause(vms[1])
-''
-\end{verbatim}
-
-Trying to start an vm:
-\begin{verbatim}
->>> session.xenapi.VM.start(vms[1], False)
-...
-: Xen-API failure: ['VM_BAD_POWER_STATE', \
- 'b28e4ee3-216f-fa85-9cae-615e954dbbe7', 'Halted', 'Running']
-\end{verbatim}
-
-In this case the {\tt start} message has been rejected, because the VM is
-already running, and so an error response has been returned. These high-level
-errors are returned as structured data (rather than as XML-RPC faults),
-allowing them to be internationalised.
diff --git a/docs/xen-api/xen.eps b/docs/xen-api/xen.eps
deleted file mode 100644
index da14fe9..0000000
--- a/docs/xen-api/xen.eps
+++ /dev/null
@@ -1,44 +0,0 @@
-%!PS-Adobe-3.1 EPSF-3.0
%%Title: xen3-1.0.eps
%%Creator: Adobe Illustrator(R) 11
%%AI8_CreatorVersion: 11.0.0
%AI9_PrintingDataBegin
%%For: Rich Quarles
%%CreationDate: 6/26/06
%%BoundingBox: 0 0 215 94
%%HiResBoundingBox: 0 0 214.1646 93.5196
%%CropBox: 0 0 214.1646 93.5196
%%LanguageLevel: 2
%%DocumentData: Clean7Bit
%%Pages: 1
%%DocumentNeededResources:
%%DocumentSuppliedResources: procset Adobe_AGM_Image (1.0 0)
%%+ procset Adobe_CoolType_Utility_T42 (1.0 0)
%%+ procset Adobe_CoolType_Utility_MAKEOCF (1.19 0)
%%+ procset Adobe_CoolType_Core (2.23 0)
%%+ procset Adobe_AGM_Core (2.0 0)
%%+ procset Adobe_AGM_Utils (1.0 0)
%%DocumentFonts:
%%DocumentNeededFonts:
%%DocumentNeededFeatures:
%%DocumentSuppliedFeatures:
%%DocumentProcessColors: Black
%%DocumentCustomColors:
%%CMYKCustomColor:
%%RGBCustomColor:
%ADO_ContainsXMP: MainFirst
%AI7_Thumbnail: 128 56 8
%%BeginData: 6266 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD19FFA8A87DA8FD077DA8A8FD70FF7D7D527D527D527D7D7D527D
%527D52FD047DFD6AFFA87D527D7D7D52FD0B7D52FD047DA8A8FD65FFA87D
%7D527D52FD047DFD09A87D7D527D527D527D7DFD63FFA8FD057DA8A8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8FD057DA8FD5FFFA87D527D527D7DA8
%A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A87D7D527D527DA8FD5CFF
%A87D527D7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8A87D7D527DA8FD5AFF7D7D527D7DFD04A8FFA8A8A8FFA8A8A8FFA8A8A8
%FFA8A8A8FFA8A8A8FFFD04A8527D527DA8FD58FFFD057DFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8FD047DA8FD56
%FF7D7D527D7DA8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8
%A8A8FFA8A8A8FFA8A8FD047DA8FD54FFA8FD047DFFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD047DA8FD
%52FFA87D527D7DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FFA8A8A8FF
%A8A8A8FFFD05A8FFA8FFA8FFFD047DA8FD51FF7D7D7D27FD0E527DA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFFFA827FD0552272727FD09527DFD47FFA8
%527D7D52FD0FF852A8A8A8FFA8A8A8FFA8A8A8FFA8FFA87DFD12F852FD48
%FF7D7D7DA8A827FD0FF87DFFFFA8FFA8FFA8FFA8FFA8FFFF7DFD11F8277D
%FD48FF7D7D527DA8FFA827FD0FF8FD04A8FFA8A8A8FFA8FFA852FD11F827
%A8FD49FF7D7D7DA8FFA8FF7DFD0FF827FFA8FFA8FFA8FFA8FFA827FD11F8
%52FD4AFFA8527D7DFFA8A8A8FF52FD0FF852FFA8FFA8A8A8FF7DFD12F87D
%FD4BFF7D7D7DA8A8FFA8FFA8FF52FD0FF87DFFA8FFA8FF7DFD12F852A8FD
%4AFFA87D527DA8A8A8FFA8A8A8FF27FD0EF827A8FFA8FF52FD11F8277D7D
%7DA8FD07FFA8FFA8FFA8FD23FFA8FFA8FD17FFA8527D7DFFA8FFA8FFA8FF
%FFFFFD0FF852FFFF27FD11F852FF7D7D7DFFA87D52522727F827F827F827
%27527DFD0BFFFD04A87DA8A8A87DFD04A8FFFFFFA87D5227F827F8272752
%7DFD14FF7D7D52FD04A8FFA8A8A8FFA8A8FD0FF85227FD10F8277DFFA8A8
%5227FD11F82752FD07FFA8FD0CF8FFFFA827FD0CF87DFFFFFFA8F8F8F87D
%27F8527DF8F8FD04FF7D7D7DA8FFA8FFA8FFA8FFA8FFFF7DFD1FF827A8FF
%FF7D27FD16F8A8FD05FFA8FD0BF827FF7DFD0FF87DFFFFFFA8F87DFF27F8
%2727F8F8FFFFFFA8527D7DA8A8FFA8A8A8FFA8A8A8FFA852FD1DF852A8FF
%A852FD19F87DFD04FF52FD0BF82727FD11F8A8FFFFA8F852FFF827F8F852
%F8FFFFFFA87D7DA8A8FFA8FFA8FFA8FFA8FFA8FFA852FD1BF8A8FFFFA827
%FD0BF87DA8FF7D52FD0BF8FD04FF52FD1EF852FFFFFF52A8FFFD047DA852
%FFFFFFA8527D7DFFA8FFA8A8A8FFA8A8A8FFA8FFA827FD18F827A8A8FFA8
%27FD0AF827FD06FF27FD0AF827FFFFFFFD0FF82727FD0EF852FD0FFFA87D
%52A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA827FD16F852FFFFFFA852FD0BF8
%FD07FF52FD0AF827FFFFA8FD0DF827A8FFFFFF52FD0CF852FD0FFFA8527D
%7DFFA8A8A8FFA8A8A8FFA8A8A8FFA8FF7DFD15F852FFA8A8A87DFD0BF852
%FD04FFA8FFFF52FD0BF8A8FF7DFD0CF827FD05FFA8FD0CF852FD0FFFA87D
%7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF52FD12F827A8FFA8FFA8FF27
%FD0CF8FD0727FD0CF8A8FF52FD0CF8FD07FFFD0CF87DFD0FFFA8527D7DFF
%A8A8A8FFA8A8A8FFA8A8A8FFA8FF52FD12F852A8FFA8A8A8FF7DFD20F8FF
%FF27FD0BF852FD06FF7DFD0CF8A8FD0FFFA87D7DA8A8FFA8FFA8FFA8FFA8
%FFA8FFFFA827FD12F827A8FFA8FFA8FFA87DFD1FF827FFFFFD0CF87DFD06
%FF7DFD0BF827FD10FFA8527D7DA8A8FFA8A8A8FFA8A8A8FFA87DFD15F852
%A8A8A8FFA8FF52FD0CF827F827F827F827F827F827F827F827F827F82752
%FF7DFD0CF8A8FD06FF27FD0BF827FD10FFA87D7D7DA8FFA8FFA8FFA8FFA8
%FFFF7DFD17F87DFFFFA8FFA852FD0BF8A8FD15FF7DFD0BF827FD07FF27FD
%0BF87DFD11FF7D7D7DA8A8FFA8A8A8FFA8FFA852FD19F87DA8FFA8FF52FD
%0BF87DFD15FF27FD0BF827FD06FFA8FD0CF8A8FD11FFA8527DA8FFA8FFA8
%FFA8FFA827FD1BF8A8A8FFFF7DFD0BF87DFD06FF7D272752275227522752
%27277DFFFF27FD0BF87DFD06FF7DFD0CF8FD12FF7D7D52FD06A8FF52FD1D
%F827FFA8FFA8FD0CF8A8FD04FF52FD0CF8A8FFA8FD0CF87DFD06FF52FD0B
%F852FD13FF7D7D7DFFA8FFFFFF52FD1FF852FFA8FF7DFD0CF8525252FD0D
%F8A8FFFF7DFD0CF8FD07FF27FD0BF852FD13FF7D527DA8FFA8A827FD11F8
%2727FD0EF852FFA8FF52FD19F827A8FFFFFF52FD0BF852FD06FFA8FD0CF8
%A8FD13FFA87D52A8FF7DFD12F852FF52FD0FF87DFFA8FF7D27FD15F8277D
%FD05FFFD0CF852FD06FF7DFD0CF8FD15FF527D7D52FD12F87DFFA8FF27FD
%0EF827A8FFA8FFA87D2727FD0FF85252A8FD06FFA8522727275227272752
%272727A8FD06FF52FD04275227272752272752FD15FFA85227FD11F827A8
%FFA8FFA8A8FD0FF852FFFFA8FF7D7D7DA8A8A87D7D527D52FD047DA8A8FD
%40FF7DFD12F852A8FFA8FFA8A8A87DFD0FF87DFFFF7D7D527DFD4DFF7DFD
%12F87DA8FFA8FFA8FFA8FFA852FD0FF8A8A87D7D7DA8FD4CFF52FD12F8FD
%04A8FFA8A8A8FFA8FF7DFD10F8FD047DFD4CFF27FD11F827FFFFFFA8FFA8
%FFA8FFA8FFA8FF7DFD0FF8277D7DFD4BFFA8FD12F852FFA8FFA8A8A8FFA8
%A8A8FFA8A8A8FF27FD0FF827FD4BFF7DFD0FF827F8277DFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8A8FD10F87DFD4AFF7DFD0AA87D5252527D7DA8A8FF
%A8FFA8A8A8FFA8A8A8FFA8A8A8FFFD04A87DA87DA87DA87DA87DFD0452A8
%A8A8FD56FFA87D7D7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD05FFA8FD047DFD5BFFA8527D527D7DA8A8FFA8A8A8FFA8A8A8FF
%A8A8A8FFA8A8A8FFA8A8A8FFA8A8FD047D52FD5EFFFD057DA8A8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8FD057DFD60FF7D7D527D527D7D
%FD04A8FFA8A8A8FFA8A8A8FFFD04A87D7D527D527D7DFD62FFA8A8FD077D
%FD04A8FFFD06A8FD077DA8FD67FF7D7D527D527D527D527D527D7D7D527D
%527D527D527D7DFD6BFFA8FD047D527D7D7D527D7D7D52FD047DFD70FFFD
%04A8FD077DA8A8FFA8FD58FFFF
%%EndData
%%EndComments
%%BeginDefaults
%%ViewingOrientation: 1 0 0 1
%%EndDefaults
%%BeginProlog
%%BeginResource: procset Adobe_AGM_Utils 1.0 0
%%Version: 1.0 0
%%Copyright: Copyright (C) 2000-2003 Adobe Systems, Inc. All Rights Reserved.
systemdict /setpacking known
{
currentpacking
true setpacking
} if
userdict /Adobe_AGM_Utils 68 dict dup begin put
/bdf
{
bind def
} bind def
/nd{
null def
}bdf
/xdf
{
exch def
}bdf
/ldf
{
load def
}bdf
/ddf
{
put
}bdf
/xddf
{
3 -1 roll put
}bdf
/xpt
{
exch put
}bdf
/ndf
{
exch dup where{
pop pop pop
}{
xdf
}ifelse
}def
/cdndf
{
exch dup currentdict exch known{
pop pop
}{
exch def
}ifelse
}def
/bdict
{
mark
}bdf
/edict
{
counttomark 2 idiv dup dict begin {def} repeat pop currentdict end
}def
/ps_level
/languagelevel where{
pop systemdict /languagelevel get exec
}{
1
}ifelse
def
/level2
ps_level 2 ge
def
/level3
ps_level 3 ge
def
/ps_version
{version cvr} stopped {
-1
}if
def
/makereadonlyarray
{
/packedarray where{
pop packedarray
}{
array astore readonly
}ifelse
}bdf
/map_reserved_ink_name
{
dup type /stringtype eq{
dup /Red eq{
pop (_Red_)
}{
dup /Green eq{
pop (_Green_)
}{
dup /Blue eq{
pop (_Blue_)
}{
dup () cvn eq{
pop (Process)
}if
}ifelse
}ifelse
}ifelse
}if
}bdf
/AGMUTIL_GSTATE 22 dict def
/get_gstate
{
AGMUTIL_GSTATE begin
/AGMUTIL_GSTATE_clr_spc currentcolorspace def
/AGMUTIL_GSTATE_clr_indx 0 def
/AGMUTIL_GSTATE_clr_comps 12 array def
mark currentcolor counttomark
{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put
/AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def} repeat pop
/AGMUTIL_GSTATE_fnt rootfont def
/AGMUTIL_GSTATE_lw currentlinewidth def
/AGMUTIL_GSTATE_lc currentlinecap def
/AGMUTIL_GSTATE_lj currentlinejoin def
/AGMUTIL_GSTATE_ml currentmiterlimit def
currentdash /AGMUTIL_GSTATE_do xdf /AGMUTIL_GSTATE_da xdf
/AGMUTIL_GSTATE_sa currentstrokeadjust def
/AGMUTIL_GSTATE_clr_rnd currentcolorrendering def
/AGMUTIL_GSTATE_op currentoverprint def
/AGMUTIL_GSTATE_bg currentblackgeneration cvlit def
/AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def
currentcolortransfer cvlit /AGMUTIL_GSTATE_gy_xfer xdf cvlit /AGMUTIL_GSTATE_b_xfer xdf
cvlit /AGMUTIL_GSTATE_g_xfer xdf cvlit /AGMUTIL_GSTATE_r_xfer xdf
/AGMUTIL_GSTATE_ht currenthalftone def
/AGMUTIL_GSTATE_flt currentflat def
end
}def
/set_gstate
{
AGMUTIL_GSTATE begin
AGMUTIL_GSTATE_clr_spc setcolorspace
AGMUTIL_GSTATE_clr_indx {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get
/AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def} repeat setcolor
AGMUTIL_GSTATE_fnt setfont
AGMUTIL_GSTATE_lw setlinewidth
AGMUTIL_GSTATE_lc setlinecap
AGMUTIL_GSTATE_lj setlinejoin
AGMUTIL_GSTATE_ml setmiterlimit
AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash
AGMUTIL_GSTATE_sa setstrokeadjust
AGMUTIL_GSTATE_clr_rnd setcolorrendering
AGMUTIL_GSTATE_op setoverprint
AGMUTIL_GSTATE_bg cvx setblackgeneration
AGMUTIL_GSTATE_ucr cvx setundercolorremoval
AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx
AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer
AGMUTIL_GSTATE_ht /HalftoneType get dup 9 eq exch 100 eq or
{
currenthalftone /HalftoneType get AGMUTIL_GSTATE_ht /HalftoneType get ne
{
mark AGMUTIL_GSTATE_ht {sethalftone} stopped cleartomark
} if
}{
AGMUTIL_GSTATE_ht sethalftone
} ifelse
AGMUTIL_GSTATE_flt setflat
end
}def
/get_gstate_and_matrix
{
AGMUTIL_GSTATE begin
/AGMUTIL_GSTATE_ctm matrix currentmatrix def
end
get_gstate
}def
/set_gstate_and_matrix
{
set_gstate
AGMUTIL_GSTATE begin
AGMUTIL_GSTATE_ctm setmatrix
end
}def
/AGMUTIL_str256 256 string def
/AGMUTIL_src256 256 string def
/AGMUTIL_dst64 64 string def
/AGMUTIL_srcLen nd
/AGMUTIL_ndx nd
/agm_sethalftone
{
dup
begin
/_Data load
/Thresholds xdf
end
level3
{ sethalftone }{
dup /HalftoneType get 3 eq {
sethalftone
} {pop} ifelse
}ifelse
} def
/rdcmntline
{
currentfile AGMUTIL_str256 readline pop
(%) anchorsearch {pop} if
} bdf
/filter_cmyk
{
dup type /filetype ne{
exch () /SubFileDecode filter
}
{
exch pop
}
ifelse
[
exch
{
AGMUTIL_src256 readstring pop
dup length /AGMUTIL_srcLen exch def
/AGMUTIL_ndx 0 def
AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{
1 index exch get
AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put
/AGMUTIL_ndx AGMUTIL_ndx 1 add def
}for
pop
AGMUTIL_dst64 0 AGMUTIL_ndx getinterval
}
bind
/exec cvx
] cvx
} bdf
/filter_indexed_devn
{
cvi Names length mul names_index add Lookup exch get
} bdf
/filter_devn
{
4 dict begin
/srcStr xdf
/dstStr xdf
dup type /filetype ne{
0 () /SubFileDecode filter
}if
[
exch
[
/devicen_colorspace_dict /AGMCORE_gget cvx /begin cvx
currentdict /srcStr get /readstring cvx /pop cvx
/dup cvx /length cvx 0 /gt cvx [
Adobe_AGM_Utils /AGMUTIL_ndx 0 /ddf cvx
names_index Names length currentdict /srcStr get length 1 sub {
1 /index cvx /exch cvx /get cvx
currentdict /dstStr get /AGMUTIL_ndx /load cvx 3 -1 /roll cvx /put cvx
Adobe_AGM_Utils /AGMUTIL_ndx /AGMUTIL_ndx /load cvx 1 /add cvx /ddf cvx
} for
currentdict /dstStr get 0 /AGMUTIL_ndx /load cvx /getinterval cvx
] cvx /if cvx
/end cvx
] cvx
bind
/exec cvx
] cvx
end
} bdf
/AGMUTIL_imagefile nd
/read_image_file
{
AGMUTIL_imagefile 0 setfileposition
10 dict begin
/imageDict xdf
/imbufLen Width BitsPerComponent mul 7 add 8 idiv def
/imbufIdx 0 def
/origDataSource imageDict /DataSource get def
/origMultipleDataSources imageDict /MultipleDataSources get def
/origDecode imageDict /Decode get def
/dstDataStr imageDict /Width get colorSpaceElemCnt mul string def
/srcDataStrs [ imageDict begin
currentdict /MultipleDataSources known {MultipleDataSources {DataSource length}{1}ifelse}{1} ifelse
{
Width Decode length 2 div mul cvi string
} repeat
end ] def
imageDict /MultipleDataSources known {MultipleDataSources}{false} ifelse
{
/imbufCnt imageDict /DataSource get length def
/imbufs imbufCnt array def
0 1 imbufCnt 1 sub {
/imbufIdx xdf
imbufs imbufIdx imbufLen string put
imageDict /DataSource get imbufIdx [ AGMUTIL_imagefile imbufs imbufIdx get /readstring cvx /pop cvx ] cvx put
} for
DeviceN_PS2 {
imageDict begin
/DataSource [ DataSource /devn_sep_datasource cvx ] cvx def
/MultipleDataSources false def
/Decode [0 1] def
end
} if
}{
/imbuf imbufLen string def
Indexed_DeviceN level3 not and DeviceN_NoneName or {
imageDict begin
/DataSource [AGMUTIL_imagefile Decode BitsPerComponent false 1 /filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource /exec cvx] cvx def
/Decode [0 1] def
end
}{
imageDict /DataSource {AGMUTIL_imagefile imbuf readstring pop} put
} ifelse
} ifelse
imageDict exch
load exec
imageDict /DataSource origDataSource put
imageDict /MultipleDataSources origMultipleDataSources put
imageDict /Decode origDecode put
end
} bdf
/write_image_file
{
begin
{ (AGMUTIL_imagefile) (w+) file } stopped{
false
}{
Adobe_AGM_Utils/AGMUTIL_imagefile xddf
2 dict begin
/imbufLen Width BitsPerComponent mul 7 add 8 idiv def
MultipleDataSources {DataSource 0 get}{DataSource}ifelse type /filetype eq {
/imbuf imbufLen string def
}if
1 1 Height {
pop
MultipleDataSources {
0 1 DataSource length 1 sub {
DataSource type dup
/arraytype eq {
pop DataSource exch get exec
}{
/filetype eq {
DataSource exch get imbuf readstring pop
}{
DataSource exch get
} ifelse
} ifelse
AGMUTIL_imagefile exch writestring
} for
}{
DataSource type dup
/arraytype eq {
pop DataSource exec
}{
/filetype eq {
DataSource imbuf readstring pop
}{
DataSource
} ifelse
} ifelse
AGMUTIL_imagefile exch writestring
} ifelse
}for
end
true
}ifelse
end
} bdf
/close_image_file
{
AGMUTIL_imagefile closefile (AGMUTIL_imagefile) deletefile
}def
statusdict /product known userdict /AGMP_current_show known not and{
/pstr statusdict /product get def
pstr (HP LaserJet 2200) eq
pstr (HP LaserJet 4000 Series) eq or
pstr (HP LaserJet 4050 Series ) eq or
pstr (HP LaserJet 8000 Series) eq or
pstr (HP LaserJet 8100 Series) eq or
pstr (HP LaserJet 8150 Series) eq or
pstr (HP LaserJet 5000 Series) eq or
pstr (HP LaserJet 5100 Series) eq or
pstr (HP Color LaserJet 4500) eq or
pstr (HP Color LaserJet 4600) eq or
pstr (HP LaserJet 5Si) eq or
pstr (HP LaserJet 1200 Series) eq or
pstr (HP LaserJet 1300 Series) eq or
pstr (HP LaserJet 4100 Series) eq or
{
userdict /AGMP_current_show /show load put
userdict /show {
currentcolorspace 0 get
/Pattern eq
{false charpath f}
{AGMP_current_show} ifelse
} put
}if
currentdict /pstr undef
} if
/consumeimagedata
{
begin
currentdict /MultipleDataSources known not
{/MultipleDataSources false def} if
MultipleDataSources
{
1 dict begin
/flushbuffer Width cvi string def
1 1 Height cvi
{
pop
0 1 DataSource length 1 sub
{
DataSource exch get
dup type dup
/filetype eq
{
exch flushbuffer readstring pop pop
}if
/arraytype eq
{
exec pop
}if
}for
}for
end
}
{
/DataSource load type dup
/filetype eq
{
1 dict begin
/flushbuffer Width Decode length 2 div mul cvi string def
1 1 Height { pop DataSource flushbuffer readstring pop pop} for
end
}if
/arraytype eq
{
1 1 Height { pop DataSource pop } for
}if
}ifelse
end
}bdf
/addprocs
{
2{/exec load}repeat
3 1 roll
[ 5 1 roll ] bind cvx
}def
/modify_halftone_xfer
{
currenthalftone dup length dict copy begin
currentdict 2 index known{
1 index load dup length dict copy begin
currentdict/TransferFunction known{
/TransferFunction load
}{
currenttransfer
}ifelse
addprocs /TransferFunction xdf
currentdict end def
currentdict end sethalftone
}{
currentdict/TransferFunction known{
/TransferFunction load
}{
currenttransfer
}ifelse
addprocs /TransferFunction xdf
currentdict end sethalftone
pop
}ifelse
}def
/clonearray
{
dup xcheck exch
dup length array exch
Adobe_AGM_Core/AGMCORE_tmp -1 ddf
{
Adobe_AGM_Core/AGMCORE_tmp AGMCORE_tmp 1 add ddf
dup type /dicttype eq
{
AGMCORE_tmp
exch
clonedict
Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
} if
dup type /arraytype eq
{
AGMCORE_tmp exch
clonearray
Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
} if
exch dup
AGMCORE_tmp 4 -1 roll put
}forall
exch {cvx} if
}bdf
/clonedict
{
dup length dict
begin
{
dup type /dicttype eq
{
clonedict
} if
dup type /arraytype eq
{
clonearray
} if
def
}forall
currentdict
end
}bdf
/DeviceN_PS2
{
/currentcolorspace AGMCORE_gget 0 get /DeviceN eq level3 not and
} bdf
/Indexed_DeviceN
{
/indexed_colorspace_dict AGMCORE_gget dup null ne {
/CSD known
}{
pop false
} ifelse
} bdf
/DeviceN_NoneName
{
/Names where {
pop
false Names
{
(None) eq or
} forall
}{
false
}ifelse
} bdf
/DeviceN_PS2_inRip_seps
{
/AGMCORE_in_rip_sep where
{
pop dup type dup /arraytype eq exch /packedarraytype eq or
{
dup 0 get /DeviceN eq level3 not and AGMCORE_in_rip_sep and
{
/currentcolorspace exch AGMCORE_gput
false
}
{
true
}ifelse
}
{
true
} ifelse
}
{
true
} ifelse
} bdf
/base_colorspace_type
{
dup type /arraytype eq {0 get} if
} bdf
/doc_setup{
Adobe_AGM_Utils begin
}bdf
/doc_trailer{
currentdict Adobe_AGM_Utils eq{
end
}if
}bdf
systemdict /setpacking known
{
setpacking
} if
%%EndResource
%%BeginResource: procset Adobe_AGM_Core 2.0 0
%%Version: 2.0 0
%%Copyright: Copyright (C) 1997-2003 Adobe Systems, Inc. All Rights Reserved.
systemdict /setpacking known
{
currentpacking
true setpacking
} if
userdict /Adobe_AGM_Core 216 dict dup begin put
/nd{
null def
}bind def
/Adobe_AGM_Core_Id /Adobe_AGM_Core_2.0_0 def
/AGMCORE_str256 256 string def
/AGMCORE_save nd
/AGMCORE_graphicsave nd
/AGMCORE_c 0 def
/AGMCORE_m 0 def
/AGMCORE_y 0 def
/AGMCORE_k 0 def
/AGMCORE_cmykbuf 4 array def
/AGMCORE_screen [currentscreen] cvx def
/AGMCORE_tmp 0 def
/AGMCORE_&setgray nd
/AGMCORE_&setcolor nd
/AGMCORE_&setcolorspace nd
/AGMCORE_&setcmykcolor nd
/AGMCORE_cyan_plate nd
/AGMCORE_magenta_plate nd
/AGMCORE_yellow_plate nd
/AGMCORE_black_plate nd
/AGMCORE_plate_ndx nd
/AGMCORE_get_ink_data nd
/AGMCORE_is_cmyk_sep nd
/AGMCORE_host_sep nd
/AGMCORE_avoid_L2_sep_space nd
/AGMCORE_distilling nd
/AGMCORE_composite_job nd
/AGMCORE_producing_seps nd
/AGMCORE_ps_level -1 def
/AGMCORE_ps_version -1 def
/AGMCORE_environ_ok nd
/AGMCORE_CSA_cache 0 dict def
/AGMCORE_CSD_cache 0 dict def
/AGMCORE_pattern_cache 0 dict def
/AGMCORE_currentoverprint false def
/AGMCORE_deltaX nd
/AGMCORE_deltaY nd
/AGMCORE_name nd
/AGMCORE_sep_special nd
/AGMCORE_err_strings 4 dict def
/AGMCORE_cur_err nd
/AGMCORE_ovp nd
/AGMCORE_current_spot_alias false def
/AGMCORE_inverting false def
/AGMCORE_feature_dictCount nd
/AGMCORE_feature_opCount nd
/AGMCORE_feature_ctm nd
/AGMCORE_ConvertToProcess false def
/AGMCORE_Default_CTM matrix def
/AGMCORE_Default_PageSize nd
/AGMCORE_currentbg nd
/AGMCORE_currentucr nd
/AGMCORE_gradientcache 32 dict def
/AGMCORE_in_pattern false def
/knockout_unitsq nd
/AGMCORE_CRD_cache where{
pop
}{
/AGMCORE_CRD_cache 0 dict def
}ifelse
/AGMCORE_key_known
{
where{
/Adobe_AGM_Core_Id known
}{
false
}ifelse
}ndf
/flushinput
{
save
2 dict begin
/CompareBuffer 3 -1 roll def
/readbuffer 256 string def
mark
{
currentfile readbuffer {readline} stopped
{cleartomark mark}
{
not
{pop exit}
if
CompareBuffer eq
{exit}
if
}ifelse
}loop
cleartomark
end
restore
}bdf
/getspotfunction
{
AGMCORE_screen exch pop exch pop
dup type /dicttype eq{
dup /HalftoneType get 1 eq{
/SpotFunction get
}{
dup /HalftoneType get 2 eq{
/GraySpotFunction get
}{
pop
{
abs exch abs 2 copy add 1 gt{
1 sub dup mul exch 1 sub dup mul add 1 sub
}{
dup mul exch dup mul add 1 exch sub
}ifelse
}bind
}ifelse
}ifelse
}if
} def
/clp_npth
{
clip newpath
} def
/eoclp_npth
{
eoclip newpath
} def
/npth_clp
{
newpath clip
} def
/add_grad
{
AGMCORE_gradientcache 3 1 roll put
}bdf
/exec_grad
{
AGMCORE_gradientcache exch get exec
}bdf
/graphic_setup
{
/AGMCORE_graphicsave save def
concat
0 setgray
0 setlinecap
0 setlinejoin
1 setlinewidth
[] 0 setdash
10 setmiterlimit
newpath
false setoverprint
false setstrokeadjust
Adobe_AGM_Core/spot_alias get exec
/Adobe_AGM_Image where {
pop
Adobe_AGM_Image/spot_alias 2 copy known{
get exec
}{
pop pop
}ifelse
} if
100 dict begin
/dictstackcount countdictstack def
/showpage {} def
mark
} def
/graphic_cleanup
{
cleartomark
dictstackcount 1 countdictstack 1 sub {end}for
end
AGMCORE_graphicsave restore
} def
/compose_error_msg
{
grestoreall initgraphics
/Helvetica findfont 10 scalefont setfont
/AGMCORE_deltaY 100 def
/AGMCORE_deltaX 310 def
clippath pathbbox newpath pop pop 36 add exch 36 add exch moveto
0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto
0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath
0 AGMCORE_&setgray
gsave 1 AGMCORE_&setgray fill grestore
1 setlinewidth gsave stroke grestore
currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto
/AGMCORE_deltaY 12 def
/AGMCORE_tmp 0 def
AGMCORE_err_strings exch get
{
dup 32 eq
{
pop
AGMCORE_str256 0 AGMCORE_tmp getinterval
stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt
{
currentpoint AGMCORE_deltaY sub exch pop
clippath pathbbox pop pop pop 44 add exch moveto
} if
AGMCORE_str256 0 AGMCORE_tmp getinterval show ( ) show
0 1 AGMCORE_str256 length 1 sub
{
AGMCORE_str256 exch 0 put
}for
/AGMCORE_tmp 0 def
}
{
AGMCORE_str256 exch AGMCORE_tmp xpt
/AGMCORE_tmp AGMCORE_tmp 1 add def
} ifelse
} forall
} bdf
/doc_setup{
Adobe_AGM_Core begin
/AGMCORE_ps_version xdf
/AGMCORE_ps_level xdf
errordict /AGM_handleerror known not{
errordict /AGM_handleerror errordict /handleerror get put
errordict /handleerror {
Adobe_AGM_Core begin
$error /newerror get AGMCORE_cur_err null ne and{
$error /newerror false put
AGMCORE_cur_err compose_error_msg
}if
$error /newerror true put
end
errordict /AGM_handleerror get exec
} bind put
}if
/AGMCORE_environ_ok
ps_level AGMCORE_ps_level ge
ps_version AGMCORE_ps_version ge and
AGMCORE_ps_level -1 eq or
def
AGMCORE_environ_ok not
{/AGMCORE_cur_err /AGMCORE_bad_environ def} if
/AGMCORE_&setgray systemdict/setgray get def
level2{
/AGMCORE_&setcolor systemdict/setcolor get def
/AGMCORE_&setcolorspace systemdict/setcolorspace get def
}if
/AGMCORE_currentbg currentblackgeneration def
/AGMCORE_currentucr currentundercolorremoval def
/AGMCORE_distilling
/product where{
pop systemdict/setdistillerparams known product (Adobe PostScript Parser) ne and
}{
false
}ifelse
def
level2 not{
/xput{
dup load dup length exch maxlength eq{
dup dup load dup
length dup 0 eq {pop 1} if 2 mul dict copy def
}if
load begin
def
end
}def
}{
/xput{
load 3 1 roll put
}def
}ifelse
/AGMCORE_GSTATE AGMCORE_key_known not{
/AGMCORE_GSTATE 21 dict def
/AGMCORE_tmpmatrix matrix def
/AGMCORE_gstack 32 array def
/AGMCORE_gstackptr 0 def
/AGMCORE_gstacksaveptr 0 def
/AGMCORE_gstackframekeys 10 def
/AGMCORE_&gsave /gsave ldf
/AGMCORE_&grestore /grestore ldf
/AGMCORE_&grestoreall /grestoreall ldf
/AGMCORE_&save /save ldf
/AGMCORE_gdictcopy {
begin
{ def } forall
end
}def
/AGMCORE_gput {
AGMCORE_gstack AGMCORE_gstackptr get
3 1 roll
put
}def
/AGMCORE_gget {
AGMCORE_gstack AGMCORE_gstackptr get
exch
get
}def
/gsave {
AGMCORE_&gsave
AGMCORE_gstack AGMCORE_gstackptr get
AGMCORE_gstackptr 1 add
dup 32 ge {limitcheck} if
Adobe_AGM_Core exch
/AGMCORE_gstackptr xpt
AGMCORE_gstack AGMCORE_gstackptr get
AGMCORE_gdictcopy
}def
/grestore {
AGMCORE_&grestore
AGMCORE_gstackptr 1 sub
dup AGMCORE_gstacksaveptr lt {1 add} if
Adobe_AGM_Core exch
/AGMCORE_gstackptr xpt
}def
/grestoreall {
AGMCORE_&grestoreall
Adobe_AGM_Core
/AGMCORE_gstackptr AGMCORE_gstacksaveptr put
}def
/save {
AGMCORE_&save
AGMCORE_gstack AGMCORE_gstackptr get
AGMCORE_gstackptr 1 add
dup 32 ge {limitcheck} if
Adobe_AGM_Core begin
/AGMCORE_gstackptr exch def
/AGMCORE_gstacksaveptr AGMCORE_gstackptr def
end
AGMCORE_gstack AGMCORE_gstackptr get
AGMCORE_gdictcopy
}def
0 1 AGMCORE_gstack length 1 sub {
AGMCORE_gstack exch AGMCORE_gstackframekeys dict put
} for
}if
level3 /AGMCORE_&sysshfill AGMCORE_key_known not and
{
/AGMCORE_&sysshfill systemdict/shfill get def
/AGMCORE_&usrshfill /shfill load def
/AGMCORE_&sysmakepattern systemdict/makepattern get def
/AGMCORE_&usrmakepattern /makepattern load def
}if
/currentcmykcolor [0 0 0 0] AGMCORE_gput
/currentstrokeadjust false AGMCORE_gput
/currentcolorspace [/DeviceGray] AGMCORE_gput
/sep_tint 0 AGMCORE_gput
/devicen_tints [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] AGMCORE_gput
/sep_colorspace_dict null AGMCORE_gput
/devicen_colorspace_dict null AGMCORE_gput
/indexed_colorspace_dict null AGMCORE_gput
/currentcolor_intent () AGMCORE_gput
/customcolor_tint 1 AGMCORE_gput
<<
/MaxPatternItem currentsystemparams /MaxPatternCache get
>>
setuserparams
end
}def
/page_setup
{
/setcmykcolor where{
pop
Adobe_AGM_Core/AGMCORE_&setcmykcolor /setcmykcolor load put
}if
Adobe_AGM_Core begin
/setcmykcolor
{
4 copy AGMCORE_cmykbuf astore /currentcmykcolor exch AGMCORE_gput
1 sub 4 1 roll
3 {
3 index add neg dup 0 lt {
pop 0
} if
3 1 roll
} repeat
setrgbcolor pop
}ndf
/currentcmykcolor
{
/currentcmykcolor AGMCORE_gget aload pop
}ndf
/setoverprint
{
pop
}ndf
/currentoverprint
{
false
}ndf
/AGMCORE_deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt def
/AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def
/AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def
/AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def
/AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def
/AGMCORE_plate_ndx
AGMCORE_cyan_plate{
0
}{
AGMCORE_magenta_plate{
1
}{
AGMCORE_yellow_plate{
2
}{
AGMCORE_black_plate{
3
}{
4
}ifelse
}ifelse
}ifelse
}ifelse
def
/AGMCORE_have_reported_unsupported_color_space false def
/AGMCORE_report_unsupported_color_space
{
AGMCORE_have_reported_unsupported_color_space false eq
{
(Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.) ==
Adobe_AGM_Core /AGMCORE_have_reported_unsupported_color_space true ddf
} if
}def
/AGMCORE_composite_job
AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def
/AGMCORE_in_rip_sep
/AGMCORE_in_rip_sep where{
pop AGMCORE_in_rip_sep
}{
AGMCORE_distilling
{
false
}{
userdict/Adobe_AGM_OnHost_Seps known{
false
}{
level2{
currentpagedevice/Separations 2 copy known{
get
}{
pop pop false
}ifelse
}{
false
}ifelse
}ifelse
}ifelse
}ifelse
def
/AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def
/AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def
/AGM_preserve_spots
/AGM_preserve_spots where{
pop AGM_preserve_spots
}{
AGMCORE_distilling AGMCORE_producing_seps or
}ifelse
def
/AGM_is_distiller_preserving_spotimages
{
currentdistillerparams/PreserveOverprintSettings known
{
currentdistillerparams/PreserveOverprintSettings get
{
currentdistillerparams/ColorConversionStrategy known
{
currentdistillerparams/ColorConversionStrategy get
/LeaveColorUnchanged eq
}{
true
}ifelse
}{
false
}ifelse
}{
false
}ifelse
}def
/convert_spot_to_process where {pop}{
/convert_spot_to_process
{
dup map_alias {
/Name get exch pop
} if
dup dup (None) eq exch (All) eq or
{
pop false
}{
AGMCORE_host_sep
{
gsave
1 0 0 0 setcmykcolor currentgray 1 exch sub
0 1 0 0 setcmykcolor currentgray 1 exch sub
0 0 1 0 setcmykcolor currentgray 1 exch sub
0 0 0 1 setcmykcolor currentgray 1 exch sub
add add add 0 eq
{
pop false
}{
false setoverprint
1 1 1 1 5 -1 roll findcmykcustomcolor 1 setcustomcolor
currentgray 0 eq
}ifelse
grestore
}{
AGMCORE_distilling
{
pop AGM_is_distiller_preserving_spotimages not
}{
Adobe_AGM_Core/AGMCORE_name xddf
false
Adobe_AGM_Core/AGMCORE_in_pattern known {Adobe_AGM_Core/AGMCORE_in_pattern get}{false} ifelse
not currentpagedevice/OverrideSeparations known and
{
currentpagedevice/OverrideSeparations get
{
/HqnSpots /ProcSet resourcestatus
{
pop pop pop true
}if
}if
}if
{
AGMCORE_name /HqnSpots /ProcSet findresource /TestSpot get exec not
}{
gsave
[/Separation AGMCORE_name /DeviceGray {}]setcolorspace
false
currentpagedevice/SeparationColorNames 2 copy known
{
get
{ AGMCORE_name eq or}forall
not
}{
pop pop pop true
}ifelse
grestore
}ifelse
}ifelse
}ifelse
}ifelse
}def
}ifelse
/convert_to_process where {pop}{
/convert_to_process
{
dup length 0 eq
{
pop false
}{
AGMCORE_host_sep
{
dup true exch
{
dup (Cyan) eq exch
dup (Magenta) eq 3 -1 roll or exch
dup (Yellow) eq 3 -1 roll or exch
dup (Black) eq 3 -1 roll or
{pop}
{convert_spot_to_process and}ifelse
}
forall
{
true exch
{
dup (Cyan) eq exch
dup (Magenta) eq 3 -1 roll or exch
dup (Yellow) eq 3 -1 roll or exch
(Black) eq or and
}forall
not
}{pop false}ifelse
}{
false exch
{
dup (Cyan) eq exch
dup (Magenta) eq 3 -1 roll or exch
dup (Yellow) eq 3 -1 roll or exch
dup (Black) eq 3 -1 roll or
{pop}
{convert_spot_to_process or}ifelse
}
forall
}ifelse
}ifelse
}def
}ifelse
/AGMCORE_avoid_L2_sep_space
version cvr 2012 lt
level2 and
AGMCORE_producing_seps not and
def
/AGMCORE_is_cmyk_sep
AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or
def
/AGM_avoid_0_cmyk where{
pop AGM_avoid_0_cmyk
}{
AGM_preserve_spots
userdict/Adobe_AGM_OnHost_Seps known
userdict/Adobe_AGM_InRip_Seps known or
not and
}ifelse
{
/setcmykcolor[
{
4 copy add add add 0 eq currentoverprint and{
pop 0.0005
}if
}/exec cvx
/AGMCORE_&setcmykcolor load dup type/operatortype ne{
/exec cvx
}if
]cvx def
}if
AGMCORE_host_sep{
/setcolortransfer
{
AGMCORE_cyan_plate{
pop pop pop
}{
AGMCORE_magenta_plate{
4 3 roll pop pop pop
}{
AGMCORE_yellow_plate{
4 2 roll pop pop pop
}{
4 1 roll pop pop pop
}ifelse
}ifelse
}ifelse
settransfer
}
def
/AGMCORE_get_ink_data
AGMCORE_cyan_plate{
{pop pop pop}
}{
AGMCORE_magenta_plate{
{4 3 roll pop pop pop}
}{
AGMCORE_yellow_plate{
{4 2 roll pop pop pop}
}{
{4 1 roll pop pop pop}
}ifelse
}ifelse
}ifelse
def
/AGMCORE_RemoveProcessColorNames
{
1 dict begin
/filtername
{
dup /Cyan eq 1 index (Cyan) eq or
{pop (_cyan_)}if
dup /Magenta eq 1 index (Magenta) eq or
{pop (_magenta_)}if
dup /Yellow eq 1 index (Yellow) eq or
{pop (_yellow_)}if
dup /Black eq 1 index (Black) eq or
{pop (_black_)}if
}def
dup type /arraytype eq
{[exch {filtername}forall]}
{filtername}ifelse
end
}def
/AGMCORE_IsSeparationAProcessColor
{
dup (Cyan) eq exch dup (Magenta) eq exch dup (Yellow) eq exch (Black) eq or or or
}def
level3 {
/AGMCORE_IsCurrentColor
{
gsave
false setoverprint
1 1 1 1 5 -1 roll findcmykcustomcolor 1 setcustomcolor
currentgray 0 eq
grestore
}def
/AGMCORE_filter_functiondatasource
{
5 dict begin
/data_in xdf
data_in type /stringtype eq
{
/ncomp xdf
/comp xdf
/string_out data_in length ncomp idiv string def
0 ncomp data_in length 1 sub
{
string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put
}for
string_out
}{
string /string_in xdf
/string_out 1 string def
/component xdf
[
data_in string_in /readstring cvx
[component /get cvx 255 /exch cvx /sub cvx string_out /exch cvx 0 /exch cvx /put cvx string_out]cvx
[/pop cvx ()]cvx /ifelse cvx
]cvx /ReusableStreamDecode filter
}ifelse
end
}def
/AGMCORE_separateShadingFunction
{
2 dict begin
/paint? xdf
/channel xdf
begin
FunctionType 0 eq
{
/DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def
currentdict /Decode known
{/Decode Decode channel 2 mul 2 getinterval def}if
paint? not
{/Decode [1 1]def}if
}if
FunctionType 2 eq
{
paint?
{
/C0 [C0 channel get 1 exch sub] def
/C1 [C1 channel get 1 exch sub] def
}{
/C0 [1] def
/C1 [1] def
}ifelse
}if
FunctionType 3 eq
{
/Functions [Functions {channel paint? AGMCORE_separateShadingFunction} forall] def
}if
currentdict /Range known
{/Range [0 1] def}if
currentdict
end
end
}def
/AGMCORE_separateShading
{
3 -1 roll begin
currentdict /Function known
{
currentdict /Background known
{[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if
Function 3 1 roll AGMCORE_separateShadingFunction /Function xdf
/ColorSpace [/DeviceGray] def
}{
ColorSpace dup type /arraytype eq {0 get}if /DeviceCMYK eq
{
/ColorSpace [/DeviceN [/_cyan_ /_magenta_ /_yellow_ /_black_] /DeviceCMYK {}] def
}{
ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put
}ifelse
ColorSpace 0 get /Separation eq
{
{
[1 /exch cvx /sub cvx]cvx
}{
[/pop cvx 1]cvx
}ifelse
ColorSpace 3 3 -1 roll put
pop
}{
{
[exch ColorSpace 1 get length 1 sub exch sub /index cvx 1 /exch cvx /sub cvx ColorSpace 1 get length 1 add 1 /roll cvx ColorSpace 1 get length{/pop cvx} repeat]cvx
}{
pop [ColorSpace 1 get length {/pop cvx} repeat cvx 1]cvx
}ifelse
ColorSpace 3 3 -1 roll bind put
}ifelse
ColorSpace 2 /DeviceGray put
}ifelse
end
}def
/AGMCORE_separateShadingDict
{
dup /ColorSpace get
dup type /arraytype ne
{[exch]}if
dup 0 get /DeviceCMYK eq
{
exch begin
currentdict
AGMCORE_cyan_plate
{0 true}if
AGMCORE_magenta_plate
{1 true}if
AGMCORE_yellow_plate
{2 true}if
AGMCORE_black_plate
{3 true}if
AGMCORE_plate_ndx 4 eq
{0 false}if
dup not currentoverprint and
{/AGMCORE_ignoreshade true def}if
AGMCORE_separateShading
currentdict
end exch
}if
dup 0 get /Separation eq
{
exch begin
ColorSpace 1 get dup /None ne exch /All ne and
{
ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and
{
ColorSpace 2 get dup type /arraytype eq {0 get}if /DeviceCMYK eq
{
/ColorSpace
[
/Separation
ColorSpace 1 get
/DeviceGray
[
ColorSpace 3 get /exec cvx
4 AGMCORE_plate_ndx sub -1 /roll cvx
4 1 /roll cvx
3 [/pop cvx]cvx /repeat cvx
1 /exch cvx /sub cvx
]cvx
]def
}{
AGMCORE_report_unsupported_color_space
AGMCORE_black_plate not
{
currentdict 0 false AGMCORE_separateShading
}if
}ifelse
}{
currentdict ColorSpace 1 get AGMCORE_IsCurrentColor
0 exch
dup not currentoverprint and
{/AGMCORE_ignoreshade true def}if
AGMCORE_separateShading
}ifelse
}if
currentdict
end exch
}if
dup 0 get /DeviceN eq
{
exch begin
ColorSpace 1 get convert_to_process
{
ColorSpace 2 get dup type /arraytype eq {0 get}if /DeviceCMYK eq
{
/ColorSpace
[
/DeviceN
ColorSpace 1 get
/DeviceGray
[
ColorSpace 3 get /exec cvx
4 AGMCORE_plate_ndx sub -1 /roll cvx
4 1 /roll cvx
3 [/pop cvx]cvx /repeat cvx
1 /exch cvx /sub cvx
]cvx
]def
}{
AGMCORE_report_unsupported_color_space
AGMCORE_black_plate not
{
currentdict 0 false AGMCORE_separateShading
/ColorSpace [/DeviceGray] def
}if
}ifelse
}{
currentdict
false -1 ColorSpace 1 get
{
AGMCORE_IsCurrentColor
{
1 add
exch pop true exch exit
}if
1 add
}forall
exch
dup not currentoverprint and
{/AGMCORE_ignoreshade true def}if
AGMCORE_separateShading
}ifelse
currentdict
end exch
}if
dup 0 get dup /DeviceCMYK eq exch dup /Separation eq exch /DeviceN eq or or not
{
exch begin
ColorSpace dup type /arraytype eq
{0 get}if
/DeviceGray ne
{
AGMCORE_report_unsupported_color_space
AGMCORE_black_plate not
{
ColorSpace 0 get /CIEBasedA eq
{
/ColorSpace [/Separation /_ciebaseda_ /DeviceGray {}] def
}if
ColorSpace 0 get dup /CIEBasedABC eq exch dup /CIEBasedDEF eq exch /DeviceRGB eq or or
{
/ColorSpace [/DeviceN [/_red_ /_green_ /_blue_] /DeviceRGB {}] def
}if
ColorSpace 0 get /CIEBasedDEFG eq
{
/ColorSpace [/DeviceN [/_cyan_ /_magenta_ /_yellow_ /_black_] /DeviceCMYK {}]
}if
currentdict 0 false AGMCORE_separateShading
}if
}if
currentdict
end exch
}if
pop
dup /AGMCORE_ignoreshade known
{
begin
/ColorSpace [/Separation (None) /DeviceGray {}] def
currentdict end
}if
}def
/shfill
{
clonedict
AGMCORE_separateShadingDict
dup /AGMCORE_ignoreshade known
{pop}
{AGMCORE_&sysshfill}ifelse
}def
/makepattern
{
exch
dup /PatternType get 2 eq
{
clonedict
begin
/Shading Shading AGMCORE_separateShadingDict def
currentdict end
exch AGMCORE_&sysmakepattern
}{
exch AGMCORE_&usrmakepattern
}ifelse
}def
}if
}if
AGMCORE_in_rip_sep{
/setcustomcolor
{
exch aload pop
dup 7 1 roll inRip_spot_has_ink not {
4 {4 index mul 4 1 roll}
repeat
/DeviceCMYK setcolorspace
6 -2 roll pop pop
}{
Adobe_AGM_Core begin
/AGMCORE_k xdf /AGMCORE_y xdf /AGMCORE_m xdf /AGMCORE_c xdf
end
[/Separation 4 -1 roll /DeviceCMYK
{dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul}
]
setcolorspace
}ifelse
setcolor
}ndf
/setseparationgray
{
[/Separation (All) /DeviceGray {}] setcolorspace_opt
1 exch sub setcolor
}ndf
}{
/setseparationgray
{
AGMCORE_&setgray
}ndf
}ifelse
/findcmykcustomcolor
{
5 makereadonlyarray
}ndf
/setcustomcolor
{
exch aload pop pop
4 {4 index mul 4 1 roll} repeat
setcmykcolor pop
}ndf
/has_color
/colorimage where{
AGMCORE_producing_seps{
pop true
}{
systemdict eq
}ifelse
}{
false
}ifelse
def
/map_index
{
1 index mul exch getinterval {255 div} forall
} bdf
/map_indexed_devn
{
Lookup Names length 3 -1 roll cvi map_index
} bdf
/n_color_components
{
base_colorspace_type
dup /DeviceGray eq{
pop 1
}{
/DeviceCMYK eq{
4
}{
3
}ifelse
}ifelse
}bdf
level2{
/mo /moveto ldf
/li /lineto ldf
/cv /curveto ldf
/knockout_unitsq
{
1 setgray
0 0 1 1 rectfill
}def
/level2ScreenFreq{
begin
60
HalftoneType 1 eq{
pop Frequency
}if
HalftoneType 2 eq{
pop GrayFrequency
}if
HalftoneType 5 eq{
pop Default level2ScreenFreq
}if
end
}def
/currentScreenFreq{
currenthalftone level2ScreenFreq
}def
level2 /setcolorspace AGMCORE_key_known not and{
/AGMCORE_&&&setcolorspace /setcolorspace ldf
/AGMCORE_ReplaceMappedColor
{
dup type dup /arraytype eq exch /packedarraytype eq or
{
dup 0 get dup /Separation eq
{
pop
dup length array copy
dup dup 1 get
current_spot_alias
{
dup map_alias
{
begin
/sep_colorspace_dict currentdict AGMCORE_gput
pop pop pop
[
/Separation Name
CSA map_csa
dup /MappedCSA xdf
/sep_colorspace_proc load
]
dup Name
end
}if
}if
map_reserved_ink_name 1 xpt
}{
/DeviceN eq
{
dup length array copy
dup dup 1 get [
exch {
current_spot_alias{
dup map_alias{
/Name get exch pop
}if
}if
map_reserved_ink_name
} forall
] 1 xpt
}if
}ifelse
}if
}def
/setcolorspace
{
dup type dup /arraytype eq exch /packedarraytype eq or
{
dup 0 get /Indexed eq
{
AGMCORE_distilling
{
/PhotoshopDuotoneList where
{
pop false
}{
true
}ifelse
}{
true
}ifelse
{
aload pop 3 -1 roll
AGMCORE_ReplaceMappedColor
3 1 roll 4 array astore
}if
}{
AGMCORE_ReplaceMappedColor
}ifelse
}if
DeviceN_PS2_inRip_seps {AGMCORE_&&&setcolorspace} if
}def
}if
}{
/adj
{
currentstrokeadjust{
transform
0.25 sub round 0.25 add exch
0.25 sub round 0.25 add exch
itransform
}if
}def
/mo{
adj moveto
}def
/li{
adj lineto
}def
/cv{
6 2 roll adj
6 2 roll adj
6 2 roll adj curveto
}def
/knockout_unitsq
{
1 setgray
8 8 1 [8 0 0 8 0 0] {<ffffffffffffffff>} image
}def
/currentstrokeadjust{
/currentstrokeadjust AGMCORE_gget
}def
/setstrokeadjust{
/currentstrokeadjust exch AGMCORE_gput
}def
/currentScreenFreq{
currentscreen pop pop
}def
/setcolorspace
{
/currentcolorspace exch AGMCORE_gput
} def
/currentcolorspace
{
/currentcolorspace AGMCORE_gget
} def
/setcolor_devicecolor
{
base_colorspace_type
dup /DeviceGray eq{
pop setgray
}{
/DeviceCMYK eq{
setcmykcolor
}{
setrgbcolor
}ifelse
}ifelse
}def
/setcolor
{
currentcolorspace 0 get
dup /DeviceGray ne{
dup /DeviceCMYK ne{
dup /DeviceRGB ne{
dup /Separation eq{
pop
currentcolorspace 3 get exec
currentcolorspace 2 get
}{
dup /Indexed eq{
pop
currentcolorspace 3 get dup type /stringtype eq{
currentcolorspace 1 get n_color_components
3 -1 roll map_index
}{
exec
}ifelse
currentcolorspace 1 get
}{
/AGMCORE_cur_err /AGMCORE_invalid_color_space def
AGMCORE_invalid_color_space
}ifelse
}ifelse
}if
}if
}if
setcolor_devicecolor
} def
}ifelse
/sop /setoverprint ldf
/lw /setlinewidth ldf
/lc /setlinecap ldf
/lj /setlinejoin ldf
/ml /setmiterlimit ldf
/dsh /setdash ldf
/sadj /setstrokeadjust ldf
/gry /setgray ldf
/rgb /setrgbcolor ldf
/cmyk /setcmykcolor ldf
/sep /setsepcolor ldf
/devn /setdevicencolor ldf
/idx /setindexedcolor ldf
/colr /setcolor ldf
/csacrd /set_csa_crd ldf
/sepcs /setsepcolorspace ldf
/devncs /setdevicencolorspace ldf
/idxcs /setindexedcolorspace ldf
/cp /closepath ldf
/clp /clp_npth ldf
/eclp /eoclp_npth ldf
/f /fill ldf
/ef /eofill ldf
/@ /stroke ldf
/nclp /npth_clp ldf
/gset /graphic_setup ldf
/gcln /graphic_cleanup ldf
currentdict{
dup xcheck 1 index type dup /arraytype eq exch /packedarraytype eq or and {
bind
}if
def
}forall
/currentpagedevice currentpagedevice def
/getrampcolor {
/indx exch def
0 1 NumComp 1 sub {
dup
Samples exch get
dup type /stringtype eq { indx get } if
exch
Scaling exch get aload pop
3 1 roll
mul add
} for
ColorSpaceFamily /Separation eq
{
sep
}
{
ColorSpaceFamily /DeviceN eq
{
devn
}
{
setcolor
}ifelse
}ifelse
} bind def
/sssetbackground { aload pop setcolor } bind def
/RadialShade {
40 dict begin
/ColorSpaceFamily exch def
/background exch def
/ext1 exch def
/ext0 exch def
/BBox exch def
/r2 exch def
/c2y exch def
/c2x exch def
/r1 exch def
/c1y exch def
/c1x exch def
/rampdict exch def
/setinkoverprint where {pop /setinkoverprint{pop}def}if
gsave
BBox length 0 gt {
newpath
BBox 0 get BBox 1 get moveto
BBox 2 get BBox 0 get sub 0 rlineto
0 BBox 3 get BBox 1 get sub rlineto
BBox 2 get BBox 0 get sub neg 0 rlineto
closepath
clip
newpath
} if
c1x c2x eq
{
c1y c2y lt {/theta 90 def}{/theta 270 def} ifelse
}
{
/slope c2y c1y sub c2x c1x sub div def
/theta slope 1 atan def
c2x c1x lt c2y c1y ge and { /theta theta 180 sub def} if
c2x c1x lt c2y c1y lt and { /theta theta 180 add def} if
}
ifelse
gsave
clippath
c1x c1y translate
theta rotate
-90 rotate
{ pathbbox } stopped
{ 0 0 0 0 } if
/yMax exch def
/xMax exch def
/yMin exch def
/xMin exch def
grestore
xMax xMin eq yMax yMin eq or
{
grestore
end
}
{
/max { 2 copy gt { pop } {exch pop} ifelse } bind def
/min { 2 copy lt { pop } {exch pop} ifelse } bind def
rampdict begin
40 dict begin
background length 0 gt { background sssetbackground gsave clippath fill grestore } if
gsave
c1x c1y translate
theta rotate
-90 rotate
/c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def
/c1y 0 def
/c1x 0 def
/c2x 0 def
ext0 {
0 getrampcolor
c2y r2 add r1 sub 0.0001 lt
{
c1x c1y r1 360 0 arcn
pathbbox
/aymax exch def
/axmax exch def
/aymin exch def
/axmin exch def
/bxMin xMin axmin min def
/byMin yMin aymin min def
/bxMax xMax axmax max def
/byMax yMax aymax max def
bxMin byMin moveto
bxMax byMin lineto
bxMax byMax lineto
bxMin byMax lineto
bxMin byMin lineto
eofill
}
{
c2y r1 add r2 le
{
c1x c1y r1 0 360 arc
fill
}
{
c2x c2y r2 0 360 arc fill
r1 r2 eq
{
/p1x r1 neg def
/p1y c1y def
/p2x r1 def
/p2y c1y def
p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto
fill
}
{
/AA r2 r1 sub c2y div def
/theta AA 1 AA dup mul sub sqrt div 1 atan def
/SS1 90 theta add dup sin exch cos div def
/p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
/p1y p1x SS1 div neg def
/SS2 90 theta sub dup sin exch cos div def
/p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
/p2y p2x SS2 div neg def
r1 r2 gt
{
/L1maxX p1x yMin p1y sub SS1 div add def
/L2maxX p2x yMin p2y sub SS2 div add def
}
{
/L1maxX 0 def
/L2maxX 0 def
}ifelse
p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
L1maxX L1maxX p1x sub SS1 mul p1y add lineto
fill
}
ifelse
}
ifelse
} ifelse
} if
c1x c2x sub dup mul
c1y c2y sub dup mul
add 0.5 exp
0 dtransform
dup mul exch dup mul add 0.5 exp 72 div
0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
1 index 1 index lt { exch } if pop
/hires exch def
hires mul
/numpix exch def
/numsteps NumSamples def
/rampIndxInc 1 def
/subsampling false def
numpix 0 ne
{
NumSamples numpix div 0.5 gt
{
/numsteps numpix 2 div round cvi dup 1 le { pop 2 } if def
/rampIndxInc NumSamples 1 sub numsteps div def
/subsampling true def
} if
} if
/xInc c2x c1x sub numsteps div def
/yInc c2y c1y sub numsteps div def
/rInc r2 r1 sub numsteps div def
/cx c1x def
/cy c1y def
/radius r1 def
newpath
xInc 0 eq yInc 0 eq rInc 0 eq and and
{
0 getrampcolor
cx cy radius 0 360 arc
stroke
NumSamples 1 sub getrampcolor
cx cy radius 72 hires div add 0 360 arc
0 setlinewidth
stroke
}
{
0
numsteps
{
dup
subsampling { round cvi } if
getrampcolor
cx cy radius 0 360 arc
/cx cx xInc add def
/cy cy yInc add def
/radius radius rInc add def
cx cy radius 360 0 arcn
eofill
rampIndxInc add
}
repeat
pop
} ifelse
ext1 {
c2y r2 add r1 lt
{
c2x c2y r2 0 360 arc
fill
}
{
c2y r1 add r2 sub 0.0001 le
{
c2x c2y r2 360 0 arcn
pathbbox
/aymax exch def
/axmax exch def
/aymin exch def
/axmin exch def
/bxMin xMin axmin min def
/byMin yMin aymin min def
/bxMax xMax axmax max def
/byMax yMax aymax max def
bxMin byMin moveto
bxMax byMin lineto
bxMax byMax lineto
bxMin byMax lineto
bxMin byMin lineto
eofill
}
{
c2x c2y r2 0 360 arc fill
r1 r2 eq
{
/p1x r2 neg def
/p1y c2y def
/p2x r2 def
/p2y c2y def
p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto
fill
}
{
/AA r2 r1 sub c2y div def
/theta AA 1 AA dup mul sub sqrt div 1 atan def
/SS1 90 theta add dup sin exch cos div def
/p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
/p1y c2y p1x SS1 div sub def
/SS2 90 theta sub dup sin exch cos div def
/p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
/p2y c2y p2x SS2 div sub def
r1 r2 lt
{
/L1maxX p1x yMax p1y sub SS1 div add def
/L2maxX p2x yMax p2y sub SS2 div add def
}
{
/L1maxX 0 def
/L2maxX 0 def
}ifelse
p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
L1maxX L1maxX p1x sub SS1 mul p1y add lineto
fill
}
ifelse
}
ifelse
} ifelse
} if
grestore
grestore
end
end
end
} ifelse
} bind def
/GenStrips {
40 dict begin
/ColorSpaceFamily exch def
/background exch def
/ext1 exch def
/ext0 exch def
/BBox exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
/rampdict exch def
/setinkoverprint where {pop /setinkoverprint{pop}def}if
gsave
BBox length 0 gt {
newpath
BBox 0 get BBox 1 get moveto
BBox 2 get BBox 0 get sub 0 rlineto
0 BBox 3 get BBox 1 get sub rlineto
BBox 2 get BBox 0 get sub neg 0 rlineto
closepath
clip
newpath
} if
x1 x2 eq
{
y1 y2 lt {/theta 90 def}{/theta 270 def} ifelse
}
{
/slope y2 y1 sub x2 x1 sub div def
/theta slope 1 atan def
x2 x1 lt y2 y1 ge and { /theta theta 180 sub def} if
x2 x1 lt y2 y1 lt and { /theta theta 180 add def} if
}
ifelse
gsave
clippath
x1 y1 translate
theta rotate
{ pathbbox } stopped
{ 0 0 0 0 } if
/yMax exch def
/xMax exch def
/yMin exch def
/xMin exch def
grestore
xMax xMin eq yMax yMin eq or
{
grestore
end
}
{
rampdict begin
20 dict begin
background length 0 gt { background sssetbackground gsave clippath fill grestore } if
gsave
x1 y1 translate
theta rotate
/xStart 0 def
/xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def
/ySpan yMax yMin sub def
/numsteps NumSamples def
/rampIndxInc 1 def
/subsampling false def
xStart 0 transform
xEnd 0 transform
3 -1 roll
sub dup mul
3 1 roll
sub dup mul
add 0.5 exp 72 div
0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
1 index 1 index lt { exch } if pop
mul
/numpix exch def
numpix 0 ne
{
NumSamples numpix div 0.5 gt
{
/numsteps numpix 2 div round cvi dup 1 le { pop 2 } if def
/rampIndxInc NumSamples 1 sub numsteps div def
/subsampling true def
} if
} if
ext0 {
0 getrampcolor
xMin xStart lt
{ xMin yMin xMin neg ySpan rectfill } if
} if
/xInc xEnd xStart sub numsteps div def
/x xStart def
0
numsteps
{
dup
subsampling { round cvi } if
getrampcolor
x yMin xInc ySpan rectfill
/x x xInc add def
rampIndxInc add
}
repeat
pop
ext1 {
xMax xEnd gt
{ xEnd yMin xMax xEnd sub ySpan rectfill } if
} if
grestore
grestore
end
end
end
} ifelse
} bind def
}def
/page_trailer
{
end
}def
/doc_trailer{
}def
systemdict /findcolorrendering known{
/findcolorrendering systemdict /findcolorrendering get def
}if
systemdict /setcolorrendering known{
/setcolorrendering systemdict /setcolorrendering get def
}if
/test_cmyk_color_plate
{
gsave
setcmykcolor currentgray 1 ne
grestore
}def
/inRip_spot_has_ink
{
dup Adobe_AGM_Core/AGMCORE_name xddf
convert_spot_to_process not
}def
/map255_to_range
{
1 index sub
3 -1 roll 255 div mul add
}def
/set_csa_crd
{
/sep_colorspace_dict null AGMCORE_gput
begin
CSA map_csa setcolorspace_opt
set_crd
end
}
def
/setsepcolor
{
/sep_colorspace_dict AGMCORE_gget begin
dup /sep_tint exch AGMCORE_gput
TintProc
end
} def
/setdevicencolor
{
/devicen_colorspace_dict AGMCORE_gget begin
Names length copy
Names length 1 sub -1 0
{
/devicen_tints AGMCORE_gget 3 1 roll xpt
} for
TintProc
end
} def
/sep_colorspace_proc
{
Adobe_AGM_Core/AGMCORE_tmp xddf
/sep_colorspace_dict AGMCORE_gget begin
currentdict/Components known{
Components aload pop
TintMethod/Lab eq{
2 {AGMCORE_tmp mul NComponents 1 roll} repeat
LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll
}{
TintMethod/Subtractive eq{
NComponents{
AGMCORE_tmp mul NComponents 1 roll
}repeat
}{
NComponents{
1 sub AGMCORE_tmp mul 1 add NComponents 1 roll
} repeat
}ifelse
}ifelse
}{
ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get
aload pop
}ifelse
end
} def
/sep_colorspace_gray_proc
{
Adobe_AGM_Core/AGMCORE_tmp xddf
/sep_colorspace_dict AGMCORE_gget begin
GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get
end
} def
/sep_proc_name
{
dup 0 get
dup /DeviceRGB eq exch /DeviceCMYK eq or level2 not and has_color not and{
pop [/DeviceGray]
/sep_colorspace_gray_proc
}{
/sep_colorspace_proc
}ifelse
} def
/setsepcolorspace
{
current_spot_alias{
dup begin
Name map_alias{
exch pop
}if
end
}if
dup /sep_colorspace_dict exch AGMCORE_gput
begin
/MappedCSA CSA map_csa def
Adobe_AGM_Core/AGMCORE_sep_special Name dup () eq exch (All) eq or ddf
AGMCORE_avoid_L2_sep_space{
[/Indexed MappedCSA sep_proc_name 255 exch
{ 255 div } /exec cvx 3 -1 roll [ 4 1 roll load /exec cvx ] cvx
] setcolorspace_opt
/TintProc {
255 mul round cvi setcolor
}bdf
}{
MappedCSA 0 get /DeviceCMYK eq
currentdict/Components known and
AGMCORE_sep_special not and{
/TintProc [
Components aload pop Name findcmykcustomcolor
/exch cvx /setcustomcolor cvx
] cvx bdf
}{
AGMCORE_host_sep Name (All) eq and{
/TintProc {
1 exch sub setseparationgray
}bdf
}{
AGMCORE_in_rip_sep MappedCSA 0 get /DeviceCMYK eq and
AGMCORE_host_sep or
Name () eq and{
/TintProc [
MappedCSA sep_proc_name exch 0 get /DeviceCMYK eq{
cvx /setcmykcolor cvx
}{
cvx /setgray cvx
}ifelse
] cvx bdf
}{
AGMCORE_producing_seps MappedCSA 0 get dup /DeviceCMYK eq exch /DeviceGray eq or and AGMCORE_sep_special not and{
/TintProc [
/dup cvx
MappedCSA sep_proc_name cvx exch
0 get /DeviceGray eq{
1 /exch cvx /sub cvx 0 0 0 4 -1 /roll cvx
}if
/Name cvx /findcmykcustomcolor cvx /exch cvx
AGMCORE_host_sep{
AGMCORE_is_cmyk_sep
/Name cvx
/AGMCORE_IsSeparationAProcessColor load /exec cvx
/not cvx /and cvx
}{
Name inRip_spot_has_ink not
}ifelse
[
/pop cvx 1
] cvx /if cvx
/setcustomcolor cvx
] cvx bdf
}{
/TintProc /setcolor ldf
[/Separation Name MappedCSA sep_proc_name load ] setcolorspace_opt
}ifelse
}ifelse
}ifelse
}ifelse
}ifelse
set_crd
setsepcolor
end
} def
/additive_blend
{
3 dict begin
/numarrays xdf
/numcolors xdf
0 1 numcolors 1 sub
{
/c1 xdf
1
0 1 numarrays 1 sub
{
1 exch add /index cvx
c1 /get cvx /mul cvx
}for
numarrays 1 add 1 /roll cvx
}for
numarrays [/pop cvx] cvx /repeat cvx
end
}def
/subtractive_blend
{
3 dict begin
/numarrays xdf
/numcolors xdf
0 1 numcolors 1 sub
{
/c1 xdf
1 1
0 1 numarrays 1 sub
{
1 3 3 -1 roll add /index cvx
c1 /get cvx /sub cvx /mul cvx
}for
/sub cvx
numarrays 1 add 1 /roll cvx
}for
numarrays [/pop cvx] cvx /repeat cvx
end
}def
/exec_tint_transform
{
/TintProc [
/TintTransform cvx /setcolor cvx
] cvx bdf
MappedCSA setcolorspace_opt
} bdf
/devn_makecustomcolor
{
2 dict begin
/names_index xdf
/Names xdf
1 1 1 1 Names names_index get findcmykcustomcolor
/devicen_tints AGMCORE_gget names_index get setcustomcolor
Names length {pop} repeat
end
} bdf
/setdevicencolorspace
{
dup /AliasedColorants known {false}{true}ifelse
current_spot_alias and {
6 dict begin
/names_index 0 def
dup /names_len exch /Names get length def
/new_names names_len array def
/new_LookupTables names_len array def
/alias_cnt 0 def
dup /Names get
{
dup map_alias {
exch pop
dup /ColorLookup known {
dup begin
new_LookupTables names_index ColorLookup put
end
}{
dup /Components known {
dup begin
new_LookupTables names_index Components put
end
}{
dup begin
new_LookupTables names_index [null null null null] put
end
} ifelse
} ifelse
new_names names_index 3 -1 roll /Name get put
/alias_cnt alias_cnt 1 add def
}{
/name xdf
new_names names_index name put
dup /LookupTables known {
dup begin
new_LookupTables names_index LookupTables names_index get put
end
}{
dup begin
new_LookupTables names_index [null null null null] put
end
} ifelse
} ifelse
/names_index names_index 1 add def
} forall
alias_cnt 0 gt {
/AliasedColorants true def
0 1 names_len 1 sub {
/names_index xdf
new_LookupTables names_index get 0 get null eq {
dup /Names get names_index get /name xdf
name (Cyan) eq name (Magenta) eq name (Yellow) eq name (Black) eq
or or or not {
/AliasedColorants false def
exit
} if
} if
} for
AliasedColorants {
dup begin
/Names new_names def
/AliasedColorants true def
/LookupTables new_LookupTables def
currentdict /TTTablesIdx known not {
/TTTablesIdx -1 def
} if
currentdict /NComponents known not {
/NComponents TintMethod /Subtractive eq {4}{3}ifelse def
} if
end
} if
}if
end
} if
dup /devicen_colorspace_dict exch AGMCORE_gput
begin
/MappedCSA CSA map_csa def
currentdict /AliasedColorants known {
AliasedColorants
}{
false
} ifelse
/TintTransform load type /nulltype eq or {
/TintTransform [
0 1 Names length 1 sub
{
/TTTablesIdx TTTablesIdx 1 add def
dup LookupTables exch get dup 0 get null eq
{
1 index
Names exch get
dup (Cyan) eq
{
pop exch
LookupTables length exch sub
/index cvx
0 0 0
}
{
dup (Magenta) eq
{
pop exch
LookupTables length exch sub
/index cvx
0 /exch cvx 0 0
}
{
(Yellow) eq
{
exch
LookupTables length exch sub
/index cvx
0 0 3 -1 /roll cvx 0
}
{
exch
LookupTables length exch sub
/index cvx
0 0 0 4 -1 /roll cvx
} ifelse
} ifelse
} ifelse
5 -1 /roll cvx /astore cvx
}
{
dup length 1 sub
LookupTables length 4 -1 roll sub 1 add
/index cvx /mul cvx /round cvx /cvi cvx /get cvx
} ifelse
Names length TTTablesIdx add 1 add 1 /roll cvx
} for
Names length [/pop cvx] cvx /repeat cvx
NComponents Names length
TintMethod /Subtractive eq
{
subtractive_blend
}
{
additive_blend
} ifelse
] cvx bdf
} if
AGMCORE_host_sep {
Names convert_to_process {
exec_tint_transform
}
{
currentdict /AliasedColorants known {
AliasedColorants not
}{
false
} ifelse
5 dict begin
/AvoidAliasedColorants xdf
/painted? false def
/names_index 0 def
/names_len Names length def
Names {
AvoidAliasedColorants {
/currentspotalias current_spot_alias def
false set_spot_alias
} if
AGMCORE_is_cmyk_sep {
dup (Cyan) eq AGMCORE_cyan_plate and exch
dup (Magenta) eq AGMCORE_magenta_plate and exch
dup (Yellow) eq AGMCORE_yellow_plate and exch
(Black) eq AGMCORE_black_plate and or or or {
/devicen_colorspace_dict AGMCORE_gget /TintProc [
Names names_index /devn_makecustomcolor cvx
] cvx ddf
/painted? true def
} if
painted? {exit} if
}{
0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq {
/devicen_colorspace_dict AGMCORE_gget /TintProc [
Names names_index /devn_makecustomcolor cvx
] cvx ddf
/painted? true def
exit
} if
} ifelse
AvoidAliasedColorants {
currentspotalias set_spot_alias
} if
/names_index names_index 1 add def
} forall
painted? {
/devicen_colorspace_dict AGMCORE_gget /names_index names_index put
}{
/devicen_colorspace_dict AGMCORE_gget /TintProc [
names_len [/pop cvx] cvx /repeat cvx 1 /setseparationgray cvx
0 0 0 0 () /findcmykcustomcolor cvx 0 /setcustomcolor cvx
] cvx ddf
} ifelse
end
} ifelse
}
{
AGMCORE_in_rip_sep {
Names convert_to_process not
}{
level3
} ifelse
{
[/DeviceN Names MappedCSA /TintTransform load] setcolorspace_opt
/TintProc level3 not AGMCORE_in_rip_sep and {
[
Names /length cvx [/pop cvx] cvx /repeat cvx
] cvx bdf
}{
/setcolor ldf
} ifelse
}{
exec_tint_transform
} ifelse
} ifelse
set_crd
/AliasedColorants false def
end
} def
/setindexedcolorspace
{
dup /indexed_colorspace_dict exch AGMCORE_gput
begin
currentdict /CSD known {
CSD get_csd /Names known {
CSD get_csd begin
currentdict devncs
AGMCORE_host_sep{
4 dict begin
/devnCompCnt Names length def
/NewLookup HiVal 1 add string def
0 1 HiVal {
/tableIndex xdf
Lookup dup type /stringtype eq {
devnCompCnt tableIndex map_index
}{
exec
} ifelse
setdevicencolor
currentgray
tableIndex exch
HiVal mul cvi
NewLookup 3 1 roll put
} for
[/Indexed currentcolorspace HiVal NewLookup] setcolorspace_opt
end
}{
level3
{
[/Indexed [/DeviceN Names MappedCSA /TintTransform load] HiVal Lookup] setcolorspace_opt
}{
[/Indexed MappedCSA HiVal
[
Lookup dup type /stringtype eq
{/exch cvx CSD get_csd /Names get length dup /mul cvx exch /getinterval cvx {255 div} /forall cvx}
{/exec cvx}ifelse
/TintTransform load /exec cvx
]cvx
]setcolorspace_opt
}ifelse
} ifelse
end
}{
} ifelse
set_crd
}
{
/MappedCSA CSA map_csa def
AGMCORE_host_sep level2 not and{
0 0 0 0 setcmykcolor
}{
[/Indexed MappedCSA
level2 not has_color not and{
dup 0 get dup /DeviceRGB eq exch /DeviceCMYK eq or{
pop [/DeviceGray]
}if
HiVal GrayLookup
}{
HiVal
currentdict/RangeArray known{
{
/indexed_colorspace_dict AGMCORE_gget begin
Lookup exch
dup HiVal gt{
pop HiVal
}if
NComponents mul NComponents getinterval {} forall
NComponents 1 sub -1 0{
RangeArray exch 2 mul 2 getinterval aload pop map255_to_range
NComponents 1 roll
}for
end
} bind
}{
Lookup
}ifelse
}ifelse
] setcolorspace_opt
set_crd
}ifelse
}ifelse
end
}def
/setindexedcolor
{
AGMCORE_host_sep {
/indexed_colorspace_dict AGMCORE_gget dup /CSD known {
begin
CSD get_csd begin
map_indexed_devn
devn
end
end
}{
AGMCORE_gget/Lookup get 4 3 -1 roll map_index
pop setcmykcolor
} ifelse
}{
level3 not AGMCORE_in_rip_sep and /indexed_colorspace_dict AGMCORE_gget /CSD known and {
/indexed_colorspace_dict AGMCORE_gget /CSD get get_csd begin
map_indexed_devn
devn
end
}
{
setcolor
} ifelse
}ifelse
} def
/ignoreimagedata
{
currentoverprint not{
gsave
dup clonedict begin
1 setgray
/Decode [0 1] def
/DataSource <FF> def
/MultipleDataSources false def
/BitsPerComponent 8 def
currentdict end
systemdict /image get exec
grestore
}if
consumeimagedata
}def
/add_csa
{
Adobe_AGM_Core begin
/AGMCORE_CSA_cache xput
end
}def
/get_csa_by_name
{
dup type dup /nametype eq exch /stringtype eq or{
Adobe_AGM_Core begin
1 dict begin
/name xdf
AGMCORE_CSA_cache
{
0 get name eq {
exit
}{
pop
} ifelse
}forall
end
end
}{
pop
} ifelse
}def
/map_csa
{
dup type /nametype eq{
Adobe_AGM_Core/AGMCORE_CSA_cache get exch get
}if
}def
/add_csd
{
Adobe_AGM_Core begin
/AGMCORE_CSD_cache xput
end
}def
/get_csd
{
dup type /nametype eq{
Adobe_AGM_Core/AGMCORE_CSD_cache get exch get
}if
}def
/pattern_buf_init
{
/count get 0 0 put
} def
/pattern_buf_next
{
dup /count get dup 0 get
dup 3 1 roll
1 add 0 xpt
get
} def
/cachepattern_compress
{
5 dict begin
currentfile exch 0 exch /SubFileDecode filter /ReadFilter exch def
/patarray 20 dict def
/string_size 16000 def
/readbuffer string_size string def
currentglobal true setglobal
patarray 1 array dup 0 1 put /count xpt
setglobal
/LZWFilter
{
exch
dup length 0 eq {
pop
}{
patarray dup length 1 sub 3 -1 roll put
} ifelse
{string_size}{0}ifelse string
} /LZWEncode filter def
{
ReadFilter readbuffer readstring
exch LZWFilter exch writestring
not {exit} if
} loop
LZWFilter closefile
patarray
end
}def
/cachepattern
{
2 dict begin
currentfile exch 0 exch /SubFileDecode filter /ReadFilter exch def
/patarray 20 dict def
currentglobal true setglobal
patarray 1 array dup 0 1 put /count xpt
setglobal
{
ReadFilter 16000 string readstring exch
patarray dup length 1 sub 3 -1 roll put
not {exit} if
} loop
patarray dup dup length 1 sub () put
end
}def
/add_pattern
{
Adobe_AGM_Core begin
/AGMCORE_pattern_cache xput
end
}def
/get_pattern
{
dup type /nametype eq{
Adobe_AGM_Core/AGMCORE_pattern_cache get exch get
dup wrap_paintproc
}if
}def
/wrap_paintproc
{
statusdict /currentfilenameextend known{
begin
/OldPaintProc /PaintProc load def
/PaintProc
{
mark exch
dup /OldPaintProc get stopped
{closefile restore end} if
cleartomark
} def
end
} {pop} ifelse
} def
/make_pattern
{
dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform
exch 3 index /XStep get 1 index exch 2 copy div cvi mul sub sub
exch 3 index /YStep get 1 index exch 2 copy div cvi mul sub sub
matrix translate exch matrix concatmatrix
1 index begin
BBox 0 get XStep div cvi XStep mul /xshift exch neg def
BBox 1 get YStep div cvi YStep mul /yshift exch neg def
BBox 0 get xshift add
BBox 1 get yshift add
BBox 2 get xshift add
BBox 3 get yshift add
4 array astore
/BBox exch def
[ xshift yshift /translate load null /exec load ] dup
3 /PaintProc load put cvx /PaintProc exch def
end
gsave 0 setgray
makepattern
grestore
}def
/set_pattern
{
dup /PatternType get 1 eq{
dup /PaintType get 1 eq{
currentoverprint sop [/DeviceGray] setcolorspace 0 setgray
}if
}if
setpattern
}def
/setcolorspace_opt
{
dup currentcolorspace eq{
pop
}{
setcolorspace
}ifelse
}def
/updatecolorrendering
{
currentcolorrendering/Intent known{
currentcolorrendering/Intent get
}{
null
}ifelse
Intent ne{
false
Intent
AGMCORE_CRD_cache {
exch pop
begin
dup Intent eq{
currentdict setcolorrendering_opt
end
exch pop true exch
exit
}if
end
} forall
pop
not{
systemdict /findcolorrendering known{
Intent findcolorrendering pop
/ColorRendering findresource
dup length dict copy
setcolorrendering_opt
}if
}if
}if
} def
/add_crd
{
AGMCORE_CRD_cache 3 1 roll put
}def
/set_crd
{
AGMCORE_host_sep not level2 and{
currentdict/CRD known{
AGMCORE_CRD_cache CRD get dup null ne{
setcolorrendering_opt
}{
pop
}ifelse
}{
currentdict/Intent known{
updatecolorrendering
}if
}ifelse
currentcolorspace dup type /arraytype eq
{0 get}if
/DeviceRGB eq
{
currentdict/UCR known
{/UCR}{/AGMCORE_currentucr}ifelse
load setundercolorremoval
currentdict/BG known
{/BG}{/AGMCORE_currentbg}ifelse
load setblackgeneration
}if
}if
}def
/setcolorrendering_opt
{
dup currentcolorrendering eq{
pop
}{
begin
/Intent Intent def
currentdict
end
setcolorrendering
}ifelse
}def
/cpaint_gcomp
{
convert_to_process Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf
Adobe_AGM_Core/AGMCORE_ConvertToProcess get not
{
(%end_cpaint_gcomp) flushinput
}if
}def
/cpaint_gsep
{
Adobe_AGM_Core/AGMCORE_ConvertToProcess get
{
(%end_cpaint_gsep) flushinput
}if
}def
/cpaint_gend
{
newpath
}def
/path_rez
{
dup 0 ne{
AGMCORE_deviceDPI exch div
dup 1 lt{
pop 1
}if
setflat
}{
pop
}ifelse
}def
/set_spot_alias_ary
{
/AGMCORE_SpotAliasAry where{
pop pop
}{
Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf
true set_spot_alias
}ifelse
}def
/set_spot_alias
{
/AGMCORE_SpotAliasAry where{
/AGMCORE_current_spot_alias 3 -1 roll put
}{
pop
}ifelse
}def
/current_spot_alias
{
/AGMCORE_SpotAliasAry where{
/AGMCORE_current_spot_alias get
}{
false
}ifelse
}def
/map_alias
{
/AGMCORE_SpotAliasAry where{
begin
/AGMCORE_name xdf
false
AGMCORE_SpotAliasAry{
dup/Name get AGMCORE_name eq{
save exch
/Adobe_AGM_Core currentdict def
/CSD get get_csd
exch restore
exch pop true
exit
}{
pop
}ifelse
}forall
end
}{
pop false
}ifelse
}bdf
/spot_alias
{
true set_spot_alias
/AGMCORE_&setcustomcolor AGMCORE_key_known not {
Adobe_AGM_Core/AGMCORE_&setcustomcolor /setcustomcolor load put
} if
/customcolor_tint 1 AGMCORE_gput
Adobe_AGM_Core begin
/setcustomcolor
{
dup /customcolor_tint exch AGMCORE_gput
current_spot_alias{
1 index 4 get map_alias{
mark 3 1 roll
setsepcolorspace
counttomark 0 ne{
setsepcolor
}if
pop
pop
}{
AGMCORE_&setcustomcolor
}ifelse
}{
AGMCORE_&setcustomcolor
}ifelse
}bdf
end
}def
/begin_feature
{
Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put
count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put
{Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if
}def
/end_feature
{
2 dict begin
/spd /setpagedevice load def
/setpagedevice { get_gstate spd set_gstate } def
stopped{$error/newerror false put}if
end
count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse
countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse
{Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if
}def
/set_negative
{
Adobe_AGM_Core begin
/AGMCORE_inverting exch def
level2{
currentpagedevice/NegativePrint known{
currentpagedevice/NegativePrint get Adobe_AGM_Core/AGMCORE_inverting get ne{
true begin_feature true{
bdict /NegativePrint Adobe_AGM_Core/AGMCORE_inverting get edict setpagedevice
}end_feature
}if
/AGMCORE_inverting false def
}if
}if
AGMCORE_inverting{
[{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer
gsave newpath clippath 1 /setseparationgray where{pop setseparationgray}{setgray}ifelse
/AGMIRS_&fill where {pop AGMIRS_&fill}{fill} ifelse grestore
}if
end
}def
/lw_save_restore_override {
/md where {
pop
md begin
initializepage
/initializepage{}def
/pmSVsetup{} def
/endp{}def
/pse{}def
/psb{}def
/orig_showpage where
{pop}
{/orig_showpage /showpage load def}
ifelse
/showpage {orig_showpage gR} def
end
}if
}def
/pscript_showpage_override {
/NTPSOct95 where
{
begin
showpage
save
/showpage /restore load def
/restore {exch pop}def
end
}if
}def
/driver_media_override
{
/md where {
pop
md /initializepage known {
md /initializepage {} put
} if
md /rC known {
md /rC {4{pop}repeat} put
} if
}if
/mysetup where {
/mysetup [1 0 0 1 0 0] put
}if
Adobe_AGM_Core /AGMCORE_Default_CTM matrix currentmatrix put
level2
{Adobe_AGM_Core /AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if
}def
/driver_check_media_override
{
/PrepsDict where
{pop}
{
Adobe_AGM_Core /AGMCORE_Default_CTM get matrix currentmatrix ne
Adobe_AGM_Core /AGMCORE_Default_PageSize get type /arraytype eq
{
Adobe_AGM_Core /AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and
Adobe_AGM_Core /AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and
}if
{
Adobe_AGM_Core /AGMCORE_Default_CTM get setmatrix
}if
}ifelse
}def
AGMCORE_err_strings begin
/AGMCORE_bad_environ (Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. ) def
/AGMCORE_color_space_onhost_seps (This job contains colors that will not separate with on-host methods. ) def
/AGMCORE_invalid_color_space (This job contains an invalid color space. ) def
end
end
systemdict /setpacking known
{
setpacking
} if
%%EndResource
%%BeginResource: procset Adobe_CoolType_Core 2.23 0
%%Copyright: Copyright 1997-2003 Adobe Systems Incorporated. All Rights Reserved.
%%Version: 2.23 0
10 dict begin
/Adobe_CoolType_Passthru currentdict def
/Adobe_CoolType_Core_Defined userdict /Adobe_CoolType_Core known def
Adobe_CoolType_Core_Defined
{ /Adobe_CoolType_Core userdict /Adobe_CoolType_Core get def }
if
userdict /Adobe_CoolType_Core 60 dict dup begin put
/Adobe_CoolType_Version 2.23 def
/Level2?
systemdict /languagelevel known dup
{ pop systemdict /languagelevel get 2 ge }
if def
Level2? not
{
/currentglobal false def
/setglobal /pop load def
/gcheck { pop false } bind def
/currentpacking false def
/setpacking /pop load def
/SharedFontDirectory 0 dict def
}
if
currentpacking
true setpacking
/@_SaveStackLevels
{
Adobe_CoolType_Data
begin
@opStackCountByLevel @opStackLevel
2 copy known not
{ 2 copy 3 dict dup /args 7 index 5 add array put put get }
{
get dup /args get dup length 3 index lt
{
dup length 5 add array exch
1 index exch 0 exch putinterval
1 index exch /args exch put
}
{ pop }
ifelse
}
ifelse
begin
count 2 sub 1 index lt
{ pop count 1 sub }
if
dup /argCount exch def
dup 0 gt
{
exch 1 index 2 add 1 roll
args exch 0 exch getinterval
astore pop
}
{ pop }
ifelse
count 1 sub /restCount exch def
end
/@opStackLevel @opStackLevel 1 add def
countdictstack 1 sub
@dictStackCountByLevel exch @dictStackLevel exch put
/@dictStackLevel @dictStackLevel 1 add def
end
} bind def
/@_RestoreStackLevels
{
Adobe_CoolType_Data
begin
/@opStackLevel @opStackLevel 1 sub def
@opStackCountByLevel @opStackLevel get
begin
count restCount sub dup 0 gt
{ { pop } repeat }
{ pop }
ifelse
args 0 argCount getinterval {} forall
end
/@dictStackLevel @dictStackLevel 1 sub def
@dictStackCountByLevel @dictStackLevel get
end
countdictstack exch sub dup 0 gt
{ { end } repeat }
{ pop }
ifelse
} bind def
/@_PopStackLevels
{
Adobe_CoolType_Data
begin
/@opStackLevel @opStackLevel 1 sub def
/@dictStackLevel @dictStackLevel 1 sub def
end
} bind def
/@Raise
{
exch cvx exch errordict exch get exec
stop
} bind def
/@ReRaise
{
cvx $error /errorname get errordict exch get exec
stop
} bind def
/@Stopped
{
0 @#Stopped
} bind def
/@#Stopped
{
@_SaveStackLevels
stopped
{ @_RestoreStackLevels true }
{ @_PopStackLevels false }
ifelse
} bind def
/@Arg
{
Adobe_CoolType_Data
begin
@opStackCountByLevel @opStackLevel 1 sub get /args get exch get
end
} bind def
currentglobal true setglobal
/CTHasResourceForAllBug
Level2?
{
1 dict dup begin
mark
{
(*) { pop stop } 128 string /Category
resourceforall
}
stopped
cleartomark
currentdict eq dup
{ end }
if
not
}
{ false }
ifelse
def
/CTHasResourceStatusBug
Level2?
{
mark
{ /steveamerige /Category resourcestatus }
stopped
{ cleartomark true }
{ cleartomark currentglobal not }
ifelse
}
{ false }
ifelse
def
setglobal
/CTResourceStatus
{
mark 3 1 roll
/Category findresource
begin
({ResourceStatus} stopped) 0 () /SubFileDecode filter cvx exec
{ cleartomark false }
{ { 3 2 roll pop true } { cleartomark false } ifelse }
ifelse
end
} bind def
/CTWorkAroundBugs
{
Level2?
{
/cid_PreLoad /ProcSet resourcestatus
{
pop pop
currentglobal
mark
{
(*)
{
dup /CMap CTHasResourceStatusBug
{ CTResourceStatus }
{ resourcestatus }
ifelse
{
pop dup 0 eq exch 1 eq or
{
dup /CMap findresource gcheck setglobal
/CMap undefineresource
}
{
pop CTHasResourceForAllBug
{ exit }
{ stop }
ifelse
}
ifelse
}
{ pop }
ifelse
}
128 string /CMap resourceforall
}
stopped
{ cleartomark }
stopped pop
setglobal
}
if
}
if
} bind def
/doc_setup
{
Adobe_CoolType_Core
begin
CTWorkAroundBugs
/mov /moveto load def
/nfnt /newencodedfont load def
/mfnt /makefont load def
/sfnt /setfont load def
/ufnt /undefinefont load def
/chp /charpath load def
/awsh /awidthshow load def
/wsh /widthshow load def
/ash /ashow load def
/sh /show load def
end
userdict /Adobe_CoolType_Data 10 dict dup
begin
/AddWidths? false def
/CC 0 def
/charcode 2 string def
/@opStackCountByLevel 32 dict def
/@opStackLevel 0 def
/@dictStackCountByLevel 32 dict def
/@dictStackLevel 0 def
/InVMFontsByCMap 10 dict def
/InVMDeepCopiedFonts 10 dict def
end put
} bind def
/doc_trailer
{
currentdict Adobe_CoolType_Core eq
{ end }
if
} bind def
/page_setup
{
Adobe_CoolType_Core begin
} bind def
/page_trailer
{
end
} bind def
/unload
{
systemdict /languagelevel known
{
systemdict/languagelevel get 2 ge
{
userdict/Adobe_CoolType_Core 2 copy known
{ undef }
{ pop pop }
ifelse
}
if
}
if
} bind def
/ndf
{
1 index where
{ pop pop pop }
{ dup xcheck { bind } if def }
ifelse
} def
/findfont systemdict
begin
userdict
begin
/globaldict where { /globaldict get begin } if
dup where pop exch get
/globaldict where { pop end } if
end
end
Adobe_CoolType_Core_Defined
{ /systemfindfont exch def }
{
/findfont 1 index def
/systemfindfont exch def
}
ifelse
/undefinefont
{ pop } ndf
/copyfont
{
currentglobal 3 1 roll
1 index gcheck setglobal
dup null eq { 0 } { dup length } ifelse
2 index length add 1 add dict
begin
exch
{
1 index /FID eq
{ pop pop }
{ def }
ifelse
}
forall
dup null eq
{ pop }
{ { def } forall }
ifelse
currentdict
end
exch setglobal
} bind def
/copyarray
{
currentglobal exch
dup gcheck setglobal
dup length array copy
exch setglobal
} bind def
/newencodedfont
{
currentglobal
{
SharedFontDirectory 3 index known
{ SharedFontDirectory 3 index get /FontReferenced known }
{ false }
ifelse
}
{
FontDirectory 3 index known
{ FontDirectory 3 index get /FontReferenced known }
{
SharedFontDirectory 3 index known
{ SharedFontDirectory 3 index get /FontReferenced known }
{ false }
ifelse
}
ifelse
}
ifelse
dup
{
3 index findfont /FontReferenced get
2 index dup type /nametype eq
{findfont}
if ne
{ pop false }
if
}
if
{
pop
1 index findfont
/Encoding get exch
0 1 255
{ 2 copy get 3 index 3 1 roll put }
for
pop pop pop
}
{
dup type /nametype eq
{ findfont }
if
dup dup maxlength 2 add dict
begin
exch
{
1 index /FID ne
{def}
{pop pop}
ifelse
}
forall
/FontReferenced exch def
/Encoding exch dup length array copy def
/FontName 1 index dup type /stringtype eq { cvn } if def dup
currentdict
end
definefont def
}
ifelse
} bind def
/SetSubstituteStrategy
{
$SubstituteFont
begin
dup type /dicttype ne
{ 0 dict }
if
currentdict /$Strategies known
{
exch $Strategies exch
2 copy known
{
get
2 copy maxlength exch maxlength add dict
begin
{ def } forall
{ def } forall
currentdict
dup /$Init known
{ dup /$Init get exec }
if
end
/$Strategy exch def
}
{ pop pop pop }
ifelse
}
{ pop pop }
ifelse
end
} bind def
/scff
{
$SubstituteFont
begin
dup type /stringtype eq
{ dup length exch }
{ null }
ifelse
/$sname exch def
/$slen exch def
/$inVMIndex
$sname null eq
{
1 index $str cvs
dup length $slen sub $slen getinterval cvn
}
{ $sname }
ifelse def
end
{ findfont }
@Stopped
{
dup length 8 add string exch
1 index 0 (BadFont:) putinterval
1 index exch 8 exch dup length string cvs putinterval cvn
{ findfont }
@Stopped
{ pop /Courier findfont }
if
}
if
$SubstituteFont
begin
/$sname null def
/$slen 0 def
/$inVMIndex null def
end
} bind def
/isWidthsOnlyFont
{
dup /WidthsOnly known
{ pop pop true }
{
dup /FDepVector known
{ /FDepVector get { isWidthsOnlyFont dup { exit } if } forall }
{
dup /FDArray known
{ /FDArray get { isWidthsOnlyFont dup { exit } if } forall }
{ pop }
ifelse
}
ifelse
}
ifelse
} bind def
/?str1 256 string def
/?set
{
$SubstituteFont
begin
/$substituteFound false def
/$fontname 4 index def
/$doSmartSub false def
end
3 index
currentglobal false setglobal exch
/CompatibleFonts /ProcSet resourcestatus
{
pop pop
/CompatibleFonts /ProcSet findresource
begin
dup /CompatibleFont currentexception
1 index /CompatibleFont true setexception
1 index /Font resourcestatus
{
pop pop
3 2 roll setglobal
end
exch
dup findfont
/CompatibleFonts /ProcSet findresource
begin
3 1 roll exch /CompatibleFont exch setexception
end
}
{
3 2 roll setglobal
1 index exch /CompatibleFont exch setexception
end
findfont
$SubstituteFont /$substituteFound true put
}
ifelse
}
{ exch setglobal findfont }
ifelse
$SubstituteFont
begin
$substituteFound
{
false
(%%[Using embedded font ) print
5 index ?str1 cvs print
( to avoid the font substitution problem noted earlier.]%%\n) print
}
{
dup /FontName known
{
dup /FontName get $fontname eq
1 index /DistillerFauxFont known not and
/currentdistillerparams where
{ pop false 2 index isWidthsOnlyFont not and }
if
}
{ false }
ifelse
}
ifelse
exch pop
/$doSmartSub true def
end
{
exch pop exch pop exch
2 dict dup /Found 3 index put
exch findfont exch
}
{
exch exec
exch dup findfont
dup /FontType get 3 eq
{
exch ?str1 cvs
dup length 1 sub
-1 0
{
exch dup 2 index get 42 eq
{
exch 0 exch getinterval cvn 4 1 roll 3 2 roll pop
exit
}
{exch pop} ifelse
}for
}
{
exch pop
} ifelse
2 dict dup /Downloaded 6 5 roll put
}
ifelse
dup /FontName 4 index put copyfont definefont pop
} bind def
/?str2 256 string def
/?add
{
1 index type /integertype eq
{ exch true 4 2 }
{ false 3 1 }
ifelse
roll
1 index findfont
dup /Widths known
{
Adobe_CoolType_Data /AddWidths? true put
gsave dup 1000 scalefont setfont
}
if
/Downloaded known
{
exec
exch
{
exch ?str2 cvs exch
findfont /Downloaded get 1 dict begin /Downloaded 1 index def ?str1 cvs length
?str1 1 index 1 add 3 index putinterval
exch length 1 add 1 index add
?str1 2 index (*) putinterval
?str1 0 2 index getinterval cvn findfont
?str1 3 index (+) putinterval
2 dict dup /FontName ?str1 0 6 index getinterval cvn put
dup /Downloaded Downloaded put end copyfont
dup /FontName get exch definefont pop pop pop
}
{
pop
}
ifelse
}
{
pop
exch
{
findfont
dup /Found get
dup length exch ?str1 cvs pop
?str1 1 index (+) putinterval
?str1 1 index 1 add 4 index ?str2 cvs putinterval
?str1 exch 0 exch 5 4 roll ?str2 cvs length 1 add add getinterval cvn
1 dict exch 1 index exch /FontName exch put copyfont
dup /FontName get exch definefont pop
}
{
pop
}
ifelse
}
ifelse
Adobe_CoolType_Data /AddWidths? get
{ grestore Adobe_CoolType_Data /AddWidths? false put }
if
} bind def
/?sh
{
currentfont /Downloaded known { exch } if pop
} bind def
/?chp
{
currentfont /Downloaded known { pop } { false chp } ifelse
} bind def
/?mv
{
currentfont /Downloaded known { moveto pop pop } { pop pop moveto } ifelse
} bind def
setpacking
userdict /$SubstituteFont 25 dict put
1 dict
begin
/SubstituteFont
dup $error exch 2 copy known
{ get }
{ pop pop { pop /Courier } bind }
ifelse def
/currentdistillerparams where dup
{
pop pop
currentdistillerparams /CannotEmbedFontPolicy 2 copy known
{ get /Error eq }
{ pop pop false }
ifelse
}
if not
{
countdictstack array dictstack 0 get
begin
userdict
begin
$SubstituteFont
begin
/$str 128 string def
/$fontpat 128 string def
/$slen 0 def
/$sname null def
/$match false def
/$fontname null def
/$substituteFound false def
/$inVMIndex null def
/$doSmartSub true def
/$depth 0 def
/$fontname null def
/$italicangle 26.5 def
/$dstack null def
/$Strategies 10 dict dup
begin
/$Type3Underprint
{
currentglobal exch false setglobal
11 dict
begin
/UseFont exch
$WMode 0 ne
{
dup length dict copy
dup /WMode $WMode put
/UseFont exch definefont
}
if def
/FontName $fontname dup type /stringtype eq { cvn } if def
/FontType 3 def
/FontMatrix [ .001 0 0 .001 0 0 ] def
/Encoding 256 array dup 0 1 255 { /.notdef put dup } for pop def
/FontBBox [ 0 0 0 0 ] def
/CCInfo 7 dict dup
begin
/cc null def
/x 0 def
/y 0 def
end def
/BuildChar
{
exch
begin
CCInfo
begin
1 string dup 0 3 index put exch pop
/cc exch def
UseFont 1000 scalefont setfont
cc stringwidth /y exch def /x exch def
x y setcharwidth
$SubstituteFont /$Strategy get /$Underprint get exec
0 0 moveto cc show
x y moveto
end
end
} bind def
currentdict
end
exch setglobal
} bind def
/$GetaTint
2 dict dup
begin
/$BuildFont
{
dup /WMode known
{ dup /WMode get }
{ 0 }
ifelse
/$WMode exch def
$fontname exch
dup /FontName known
{
dup /FontName get
dup type /stringtype eq { cvn } if
}
{ /unnamedfont }
ifelse
exch
Adobe_CoolType_Data /InVMDeepCopiedFonts get
1 index /FontName get known
{
pop
Adobe_CoolType_Data /InVMDeepCopiedFonts get
1 index get
null copyfont
}
{ $deepcopyfont }
ifelse
exch 1 index exch /FontBasedOn exch put
dup /FontName $fontname dup type /stringtype eq { cvn } if put
definefont
Adobe_CoolType_Data /InVMDeepCopiedFonts get
begin
dup /FontBasedOn get 1 index def
end
} bind def
/$Underprint
{
gsave
x abs y abs gt
{ /y 1000 def }
{ /x -1000 def 500 120 translate }
ifelse
Level2?
{
[ /Separation (All) /DeviceCMYK { 0 0 0 1 pop } ]
setcolorspace
}
{ 0 setgray }
ifelse
10 setlinewidth
x .8 mul
[ 7 3 ]
{
y mul 8 div 120 sub x 10 div exch moveto
0 y 4 div neg rlineto
dup 0 rlineto
0 y 4 div rlineto
closepath
gsave
Level2?
{ .2 setcolor }
{ .8 setgray }
ifelse
fill grestore
stroke
}
forall
pop
grestore
} bind def
end def
/$Oblique
1 dict dup
begin
/$BuildFont
{
currentglobal exch dup gcheck setglobal
null copyfont
begin
/FontBasedOn
currentdict /FontName known
{
FontName
dup type /stringtype eq { cvn } if
}
{ /unnamedfont }
ifelse
def
/FontName $fontname dup type /stringtype eq { cvn } if def
/currentdistillerparams where
{ pop }
{
/FontInfo currentdict /FontInfo known
{ FontInfo null copyfont }
{ 2 dict }
ifelse
dup
begin
/ItalicAngle $italicangle def
/FontMatrix FontMatrix
[ 1 0 ItalicAngle dup sin exch cos div 1 0 0 ]
matrix concatmatrix readonly
end
4 2 roll def
def
}
ifelse
FontName currentdict
end
definefont
exch setglobal
} bind def
end def
/$None
1 dict dup
begin
/$BuildFont {} bind def
end def
end def
/$Oblique SetSubstituteStrategy
/$findfontByEnum
{
dup type /stringtype eq { cvn } if
dup /$fontname exch def
$sname null eq
{ $str cvs dup length $slen sub $slen getinterval }
{ pop $sname }
ifelse
$fontpat dup 0 (fonts/*) putinterval exch 7 exch putinterval
/$match false def
$SubstituteFont /$dstack countdictstack array dictstack put
mark
{
$fontpat 0 $slen 7 add getinterval
{ /$match exch def exit }
$str filenameforall
}
stopped
{
cleardictstack
currentdict
true
$SubstituteFont /$dstack get
{
exch
{
1 index eq
{ pop false }
{ true }
ifelse
}
{ begin false }
ifelse
}
forall
pop
}
if
cleartomark
/$slen 0 def
$match false ne
{ $match (fonts/) anchorsearch pop pop cvn }
{ /Courier }
ifelse
} bind def
/$ROS 1 dict dup
begin
/Adobe 4 dict dup
begin
/Japan1 [ /Ryumin-Light /HeiseiMin-W3
/GothicBBB-Medium /HeiseiKakuGo-W5
/HeiseiMaruGo-W4 /Jun101-Light ] def
/Korea1 [ /HYSMyeongJo-Medium /HYGoThic-Medium ] def
/GB1 [ /STSong-Light /STHeiti-Regular ] def
/CNS1 [ /MKai-Medium /MHei-Medium ] def
end def
end def
/$cmapname null def
/$deepcopyfont
{
dup /FontType get 0 eq
{
1 dict dup /FontName /copied put copyfont
begin
/FDepVector FDepVector copyarray
0 1 2 index length 1 sub
{
2 copy get $deepcopyfont
dup /FontName /copied put
/copied exch definefont
3 copy put pop pop
}
for
def
currentdict
end
}
{ $Strategies /$Type3Underprint get exec }
ifelse
} bind def
/$buildfontname
{
dup /CIDFont findresource /CIDSystemInfo get
begin
Registry length Ordering length Supplement 8 string cvs
3 copy length 2 add add add string
dup 5 1 roll dup 0 Registry putinterval
dup 4 index (-) putinterval
dup 4 index 1 add Ordering putinterval
4 2 roll add 1 add 2 copy (-) putinterval
end
1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch
anchorsearch
{ pop pop 3 2 roll putinterval cvn /$cmapname exch def }
{ pop pop pop pop pop }
ifelse
length
$str 1 index (-) putinterval 1 add
$str 1 index $cmapname $fontpat cvs putinterval
$cmapname length add
$str exch 0 exch getinterval cvn
} bind def
/$findfontByROS
{
/$fontname exch def
$ROS Registry 2 copy known
{
get Ordering 2 copy known
{ get }
{ pop pop [] }
ifelse
}
{ pop pop [] }
ifelse
false exch
{
dup /CIDFont resourcestatus
{
pop pop
save
1 index /CIDFont findresource
dup /WidthsOnly known
{ dup /WidthsOnly get }
{ false }
ifelse
exch pop
exch restore
{ pop }
{ exch pop true exit }
ifelse
}
{ pop }
ifelse
}
forall
{ $str cvs $buildfontname }
{
false (*)
{
save exch
dup /CIDFont findresource
dup /WidthsOnly known
{ dup /WidthsOnly get not }
{ true }
ifelse
exch /CIDSystemInfo get
dup /Registry get Registry eq
exch /Ordering get Ordering eq and and
{ exch restore exch pop true exit }
{ pop restore }
ifelse
}
$str /CIDFont resourceforall
{ $buildfontname }
{ $fontname $findfontByEnum }
ifelse
}
ifelse
} bind def
end
end
currentdict /$error known currentdict /languagelevel known and dup
{ pop $error /SubstituteFont known }
if
dup
{ $error }
{ Adobe_CoolType_Core }
ifelse
begin
{
/SubstituteFont
/CMap /Category resourcestatus
{
pop pop
{
$SubstituteFont
begin
/$substituteFound true def
dup length $slen gt
$sname null ne or
$slen 0 gt and
{
$sname null eq
{ dup $str cvs dup length $slen sub $slen getinterval cvn }
{ $sname }
ifelse
Adobe_CoolType_Data /InVMFontsByCMap get
1 index 2 copy known
{
get
false exch
{
pop
currentglobal
{
GlobalFontDirectory 1 index known
{ exch pop true exit }
{ pop }
ifelse
}
{
FontDirectory 1 index known
{ exch pop true exit }
{
GlobalFontDirectory 1 index known
{ exch pop true exit }
{ pop }
ifelse
}
ifelse
}
ifelse
}
forall
}
{ pop pop false }
ifelse
{
exch pop exch pop
}
{
dup /CMap resourcestatus
{
pop pop
dup /$cmapname exch def
/CMap findresource /CIDSystemInfo get { def } forall
$findfontByROS
}
{
128 string cvs
dup (-) search
{
3 1 roll search
{
3 1 roll pop
{ dup cvi }
stopped
{ pop pop pop pop pop $findfontByEnum }
{
4 2 roll pop pop
exch length
exch
2 index length
2 index
sub
exch 1 sub -1 0
{
$str cvs dup length
4 index
0
4 index
4 3 roll add
getinterval
exch 1 index exch 3 index exch
putinterval
dup /CMap resourcestatus
{
pop pop
4 1 roll pop pop pop
dup /$cmapname exch def
/CMap findresource /CIDSystemInfo get { def } forall
$findfontByROS
true exit
}
{ pop }
ifelse
}
for
dup type /booleantype eq
{ pop }
{ pop pop pop $findfontByEnum }
ifelse
}
ifelse
}
{ pop pop pop $findfontByEnum }
ifelse
}
{ pop pop $findfontByEnum }
ifelse
}
ifelse
}
ifelse
}
{ //SubstituteFont exec }
ifelse
/$slen 0 def
end
}
}
{
{
$SubstituteFont
begin
/$substituteFound true def
dup length $slen gt
$sname null ne or
$slen 0 gt and
{ $findfontByEnum }
{ //SubstituteFont exec }
ifelse
end
}
}
ifelse
bind readonly def
Adobe_CoolType_Core /scfindfont /systemfindfont load put
}
{
/scfindfont
{
$SubstituteFont
begin
dup systemfindfont
dup /FontName known
{ dup /FontName get dup 3 index ne }
{ /noname true }
ifelse
dup
{
/$origfontnamefound 2 index def
/$origfontname 4 index def /$substituteFound true def
}
if
exch pop
{
$slen 0 gt
$sname null ne
3 index length $slen gt or and
{
pop dup $findfontByEnum findfont
dup maxlength 1 add dict
begin
{ 1 index /FID eq { pop pop } { def } ifelse }
forall
currentdict
end
definefont
dup /FontName known { dup /FontName get } { null } ifelse
$origfontnamefound ne
{
$origfontname $str cvs print
( substitution revised, using ) print
dup /FontName known
{ dup /FontName get } { (unspecified font) }
ifelse
$str cvs print (.\n) print
}
if
}
{ exch pop }
ifelse
}
{ exch pop }
ifelse
end
} bind def
}
ifelse
end
end
Adobe_CoolType_Core_Defined not
{
Adobe_CoolType_Core /findfont
{
$SubstituteFont
begin
$depth 0 eq
{
/$fontname 1 index dup type /stringtype ne { $str cvs } if def
/$substituteFound false def
}
if
/$depth $depth 1 add def
end
scfindfont
$SubstituteFont
begin
/$depth $depth 1 sub def
$substituteFound $depth 0 eq and
{
$inVMIndex null ne
{ dup $inVMIndex $AddInVMFont }
if
$doSmartSub
{
currentdict /$Strategy known
{ $Strategy /$BuildFont get exec }
if
}
if
}
if
end
} bind put
}
if
}
if
end
/$AddInVMFont
{
exch /FontName 2 copy known
{
get
1 dict dup begin exch 1 index gcheck def end exch
Adobe_CoolType_Data /InVMFontsByCMap get exch
$DictAdd
}
{ pop pop pop }
ifelse
} bind def
/$DictAdd
{
2 copy known not
{ 2 copy 4 index length dict put }
if
Level2? not
{
2 copy get dup maxlength exch length 4 index length add lt
2 copy get dup length 4 index length add exch maxlength 1 index lt
{
2 mul dict
begin
2 copy get { forall } def
2 copy currentdict put
end
}
{ pop }
ifelse
}
if
get
begin
{ def }
forall
end
} bind def
end
end
%%EndResource
%%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.19 0
%%Copyright: Copyright 1987-2003 Adobe Systems Incorporated.
%%Version: 1.19 0
systemdict /languagelevel known dup
{ currentglobal false setglobal }
{ false }
ifelse
exch
userdict /Adobe_CoolType_Utility 2 copy known
{ 2 copy get dup maxlength 25 add dict copy }
{ 25 dict }
ifelse put
Adobe_CoolType_Utility
begin
/ct_Level2? exch def
/ct_Clone? 1183615869 internaldict dup
/CCRun known not
exch /eCCRun known not
ct_Level2? and or def
ct_Level2?
{ globaldict begin currentglobal true setglobal }
if
/ct_AddStdCIDMap
ct_Level2?
{ {
((Hex) 57 StartData
0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0
7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60
d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8
cc36 74f4 1144 b13b 77) 0 () /SubFileDecode filter cvx exec
} }
{ {
<BAB431EA07F209EB8C4348311481D9D3F76E3D15246555577D87BC510ED54E
118C39697FA9F6DB58128E60EB8A12FA24D7CDD2FA94D221FA9EC8DA3E5E6A1C
4ACECC8C2D39C54E7C946031DD156C3A6B4A09AD29E1867A> eexec
} }
ifelse bind def
userdict /cid_extensions known
dup { cid_extensions /cid_UpdateDB known and } if
{
cid_extensions
begin
/cid_GetCIDSystemInfo
{
1 index type /stringtype eq
{ exch cvn exch }
if
cid_extensions
begin
dup load 2 index known
{
2 copy
cid_GetStatusInfo
dup null ne
{
1 index load
3 index get
dup null eq
{ pop pop cid_UpdateDB }
{
exch
1 index /Created get eq
{ exch pop exch pop }
{ pop cid_UpdateDB }
ifelse
}
ifelse
}
{ pop cid_UpdateDB }
ifelse
}
{ cid_UpdateDB }
ifelse
end
} bind def
end
}
if
ct_Level2?
{ end setglobal }
if
/ct_UseNativeCapability? systemdict /composefont known def
/ct_MakeOCF 35 dict def
/ct_Vars 25 dict def
/ct_GlyphDirProcs 6 dict def
/ct_BuildCharDict 15 dict dup
begin
/charcode 2 string def
/dst_string 1500 string def
/nullstring () def
/usewidths? true def
end def
ct_Level2? { setglobal } { pop } ifelse
ct_GlyphDirProcs
begin
/GetGlyphDirectory
{
systemdict /languagelevel known
{ pop /CIDFont findresource /GlyphDirectory get }
{
1 index /CIDFont findresource /GlyphDirectory
get dup type /dicttype eq
{
dup dup maxlength exch length sub 2 index lt
{
dup length 2 index add dict copy 2 index
/CIDFont findresource/GlyphDirectory 2 index put
}
if
}
if
exch pop exch pop
}
ifelse
+
} def
/+
{
systemdict /languagelevel known
{
currentglobal false setglobal
3 dict begin
/vm exch def
}
{ 1 dict begin }
ifelse
/$ exch def
systemdict /languagelevel known
{
vm setglobal
/gvm currentglobal def
$ gcheck setglobal
}
if
? { $ begin } if
} def
/? { $ type /dicttype eq } def
/| {
userdict /Adobe_CoolType_Data known
{
Adobe_CoolType_Data /AddWidths? known
{
currentdict Adobe_CoolType_Data
begin
begin
AddWidths?
{
Adobe_CoolType_Data /CC 3 index put
? { def } { $ 3 1 roll put } ifelse
CC charcode exch 1 index 0 2 index 256 idiv put
1 index exch 1 exch 256 mod put
stringwidth 2 array astore
currentfont /Widths get exch CC exch put
}
{ ? { def } { $ 3 1 roll put } ifelse }
ifelse
end
end
}
{ ? { def } { $ 3 1 roll put } ifelse } ifelse
}
{ ? { def } { $ 3 1 roll put } ifelse }
ifelse
} def
/!
{
? { end } if
systemdict /languagelevel known
{ gvm setglobal }
if
end
} def
/: { string currentfile exch readstring pop } executeonly def
end
ct_MakeOCF
begin
/ct_cHexEncoding
[/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
/c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
/c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
/c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
/c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
/c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
/c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
/c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
/c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
/cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
/cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
/cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
/cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
/cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF] def
/ct_CID_STR_SIZE 8000 def
/ct_mkocfStr100 100 string def
/ct_defaultFontMtx [.001 0 0 .001 0 0] def
/ct_1000Mtx [1000 0 0 1000 0 0] def
/ct_raise {exch cvx exch errordict exch get exec stop} bind def
/ct_reraise
{ cvx $error /errorname get (Error: ) print dup ( ) cvs print
errordict exch get exec stop
} bind def
/ct_cvnsi
{
1 index add 1 sub 1 exch 0 4 1 roll
{
2 index exch get
exch 8 bitshift
add
}
for
exch pop
} bind def
/ct_GetInterval
{
Adobe_CoolType_Utility /ct_BuildCharDict get
begin
/dst_index 0 def
dup dst_string length gt
{ dup string /dst_string exch def }
if
1 index ct_CID_STR_SIZE idiv
/arrayIndex exch def
2 index arrayIndex get
2 index
arrayIndex ct_CID_STR_SIZE mul
sub
{
dup 3 index add 2 index length le
{
2 index getinterval
dst_string dst_index 2 index putinterval
length dst_index add /dst_index exch def
exit
}
{
1 index length 1 index sub
dup 4 1 roll
getinterval
dst_string dst_index 2 index putinterval
pop dup dst_index add /dst_index exch def
sub
/arrayIndex arrayIndex 1 add def
2 index dup length arrayIndex gt
{ arrayIndex get }
{
pop
exit
}
ifelse
0
}
ifelse
}
loop
pop pop pop
dst_string 0 dst_index getinterval
end
} bind def
ct_Level2?
{
/ct_resourcestatus
currentglobal mark true setglobal
{ /unknowninstancename /Category resourcestatus }
stopped
{ cleartomark setglobal true }
{ cleartomark currentglobal not exch setglobal }
ifelse
{
{
mark 3 1 roll /Category findresource
begin
ct_Vars /vm currentglobal put
({ResourceStatus} stopped) 0 () /SubFileDecode filter cvx exec
{ cleartomark false }
{ { 3 2 roll pop true } { cleartomark false } ifelse }
ifelse
ct_Vars /vm get setglobal
end
}
}
{ { resourcestatus } }
ifelse bind def
/CIDFont /Category ct_resourcestatus
{ pop pop }
{
currentglobal true setglobal
/Generic /Category findresource
dup length dict copy
dup /InstanceType /dicttype put
/CIDFont exch /Category defineresource pop
setglobal
}
ifelse
ct_UseNativeCapability?
{
/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo 3 dict dup begin
/Registry (Adobe) def
/Ordering (Identity) def
/Supplement 0 def
end def
/CMapName /Identity-H def
/CMapVersion 1.000 def
/CMapType 1 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
1 begincidrange
<0000> <FFFF> 0
endcidrange
endcmap
CMapName currentdict /CMap defineresource pop
end
end
}
if
}
{
/ct_Category 2 dict begin
/CIDFont 10 dict def
/ProcSet 2 dict def
currentdict
end
def
/defineresource
{
ct_Category 1 index 2 copy known
{
get
dup dup maxlength exch length eq
{
dup length 10 add dict copy
ct_Category 2 index 2 index put
}
if
3 index 3 index put
pop exch pop
}
{ pop pop /defineresource /undefined ct_raise }
ifelse
} bind def
/findresource
{
ct_Category 1 index 2 copy known
{
get
2 index 2 copy known
{ get 3 1 roll pop pop}
{ pop pop /findresource /undefinedresource ct_raise }
ifelse
}
{ pop pop /findresource /undefined ct_raise }
ifelse
} bind def
/resourcestatus
{
ct_Category 1 index 2 copy known
{
get
2 index known
exch pop exch pop
{
0 -1 true
}
{
false
}
ifelse
}
{ pop pop /findresource /undefined ct_raise }
ifelse
} bind def
/ct_resourcestatus /resourcestatus load def
}
ifelse
/ct_CIDInit 2 dict
begin
/ct_cidfont_stream_init
{
{
dup (Binary) eq
{
pop
null
currentfile
ct_Level2?
{
{ cid_BYTE_COUNT () /SubFileDecode filter }
stopped
{ pop pop pop }
if
}
if
/readstring load
exit
}
if
dup (Hex) eq
{
pop
currentfile
ct_Level2?
{
{ null exch /ASCIIHexDecode filter /readstring }
stopped
{ pop exch pop (>) exch /readhexstring }
if
}
{ (>) exch /readhexstring }
ifelse
load
exit
}
if
/StartData /typecheck ct_raise
}
loop
cid_BYTE_COUNT ct_CID_STR_SIZE le
{
2 copy cid_BYTE_COUNT string exch exec
pop
1 array dup
3 -1 roll
0 exch put
}
{
cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi
dup array exch 2 sub 0 exch 1 exch
{
2 copy
5 index
ct_CID_STR_SIZE
string
6 index exec
pop
put
pop
}
for
2 index
cid_BYTE_COUNT ct_CID_STR_SIZE mod string
3 index exec
pop
1 index exch
1 index length 1 sub
exch put
}
ifelse
cid_CIDFONT exch /GlyphData exch put
2 index null eq
{
pop pop pop
}
{
pop /readstring load
1 string exch
{
3 copy exec
pop
dup length 0 eq
{
pop pop pop pop pop
true exit
}
if
4 index
eq
{
pop pop pop pop
false exit
}
if
}
loop
pop
}
ifelse
} bind def
/StartData
{
mark
{
currentdict
dup /FDArray get 0 get /FontMatrix get
0 get 0.001 eq
{
dup /CDevProc known not
{
/CDevProc 1183615869 internaldict /stdCDevProc 2 copy known
{ get }
{
pop pop
{ pop pop pop pop pop 0 -1000 7 index 2 div 880 }
}
ifelse
def
}
if
}
{
/CDevProc
{
pop pop pop pop pop
0
1 cid_temp /cid_CIDFONT get
/FDArray get 0 get
/FontMatrix get 0 get div
7 index 2 div
1 index 0.88 mul
} def
}
ifelse
/cid_temp 15 dict def
cid_temp
begin
/cid_CIDFONT exch def
3 copy pop
dup /cid_BYTE_COUNT exch def 0 gt
{
ct_cidfont_stream_init
FDArray
{
/Private get
dup /SubrMapOffset known
{
begin
/Subrs SubrCount array def
Subrs
SubrMapOffset
SubrCount
SDBytes
ct_Level2?
{
currentdict dup /SubrMapOffset undef
dup /SubrCount undef
/SDBytes undef
}
if
end
/cid_SD_BYTES exch def
/cid_SUBR_COUNT exch def
/cid_SUBR_MAP_OFFSET exch def
/cid_SUBRS exch def
cid_SUBR_COUNT 0 gt
{
GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval
0 cid_SD_BYTES ct_cvnsi
0 1 cid_SUBR_COUNT 1 sub
{
exch 1 index
1 add
cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add
GlyphData exch cid_SD_BYTES ct_GetInterval
0 cid_SD_BYTES ct_cvnsi
cid_SUBRS 4 2 roll
GlyphData exch
4 index
1 index
sub
ct_GetInterval
dup length string copy put
}
for
pop
}
if
}
{ pop }
ifelse
}
forall
}
if
cleartomark pop pop
end
CIDFontName currentdict /CIDFont defineresource pop
end end
}
stopped
{ cleartomark /StartData ct_reraise }
if
} bind def
currentdict
end def
/ct_saveCIDInit
{
/CIDInit /ProcSet ct_resourcestatus
{ true }
{ /CIDInitC /ProcSet ct_resourcestatus }
ifelse
{
pop pop
/CIDInit /ProcSet findresource
ct_UseNativeCapability?
{ pop null }
{ /CIDInit ct_CIDInit /ProcSet defineresource pop }
ifelse
}
{ /CIDInit ct_CIDInit /ProcSet defineresource pop null }
ifelse
ct_Vars exch /ct_oldCIDInit exch put
} bind def
/ct_restoreCIDInit
{
ct_Vars /ct_oldCIDInit get dup null ne
{ /CIDInit exch /ProcSet defineresource pop }
{ pop }
ifelse
} bind def
/ct_BuildCharSetUp
{
1 index
begin
CIDFont
begin
Adobe_CoolType_Utility /ct_BuildCharDict get
begin
/ct_dfCharCode exch def
/ct_dfDict exch def
CIDFirstByte ct_dfCharCode add
dup CIDCount ge
{ pop 0 }
if
/cid exch def
{
GlyphDirectory cid 2 copy known
{ get }
{ pop pop nullstring }
ifelse
dup length FDBytes sub 0 gt
{
dup
FDBytes 0 ne
{ 0 FDBytes ct_cvnsi }
{ pop 0 }
ifelse
/fdIndex exch def
dup length FDBytes sub FDBytes exch getinterval
/charstring exch def
exit
}
{
pop
cid 0 eq
{ /charstring nullstring def exit }
if
/cid 0 def
}
ifelse
}
loop
} def
/ct_SetCacheDevice
{
0 0 moveto
dup stringwidth
3 -1 roll
true charpath
pathbbox
0 -1000
7 index 2 div 880
setcachedevice2
0 0 moveto
} def
/ct_CloneSetCacheProc
{
1 eq
{
stringwidth
pop -2 div -880
0 -1000 setcharwidth
moveto
}
{
usewidths?
{
currentfont /Widths get cid
2 copy known
{ get exch pop aload pop }
{ pop pop stringwidth }
ifelse
}
{ stringwidth }
ifelse
setcharwidth
0 0 moveto
}
ifelse
} def
/ct_Type3ShowCharString
{
ct_FDDict fdIndex 2 copy known
{ get }
{
currentglobal 3 1 roll
1 index gcheck setglobal
ct_Type1FontTemplate dup maxlength dict copy
begin
FDArray fdIndex get
dup /FontMatrix 2 copy known
{ get }
{ pop pop ct_defaultFontMtx }
ifelse
/FontMatrix exch dup length array copy def
/Private get
/Private exch def
/Widths rootfont /Widths get def
/CharStrings 1 dict dup /.notdef
<d841272cf18f54fc13> dup length string copy put def
currentdict
end
/ct_Type1Font exch definefont
dup 5 1 roll put
setglobal
}
ifelse
dup /CharStrings get 1 index /Encoding get
ct_dfCharCode get charstring put
rootfont /WMode 2 copy known
{ get }
{ pop pop 0 }
ifelse
exch
1000 scalefont setfont
ct_str1 0 ct_dfCharCode put
ct_str1 exch ct_dfSetCacheProc
ct_SyntheticBold
{
currentpoint
ct_str1 show
newpath
moveto
ct_str1 true charpath
ct_StrokeWidth setlinewidth
stroke
}
{ ct_str1 show }
ifelse
} def
/ct_Type4ShowCharString
{
ct_dfDict ct_dfCharCode charstring
FDArray fdIndex get
dup /FontMatrix get dup ct_defaultFontMtx ct_matrixeq not
{ ct_1000Mtx matrix concatmatrix concat }
{ pop }
ifelse
/Private get
Adobe_CoolType_Utility /ct_Level2? get not
{
ct_dfDict /Private
3 -1 roll
{ put }
1183615869 internaldict /superexec get exec
}
if
1183615869 internaldict
Adobe_CoolType_Utility /ct_Level2? get
{ 1 index }
{ 3 index /Private get mark 6 1 roll }
ifelse
dup /RunInt known
{ /RunInt get }
{ pop /CCRun }
ifelse
get exec
Adobe_CoolType_Utility /ct_Level2? get not
{ cleartomark }
if
} bind def
/ct_BuildCharIncremental
{
{
Adobe_CoolType_Utility /ct_MakeOCF get begin
ct_BuildCharSetUp
ct_ShowCharString
}
stopped
{ stop }
if
end
end
end
end
} bind def
/BaseFontNameStr (BF00) def
/ct_Type1FontTemplate 14 dict
begin
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] def
/FontBBox [-250 -250 1250 1250] def
/Encoding ct_cHexEncoding def
/PaintType 0 def
currentdict
end def
/BaseFontTemplate 11 dict
begin
/FontMatrix [0.001 0 0 0.001 0 0] def
/FontBBox [-250 -250 1250 1250] def
/Encoding ct_cHexEncoding def
/BuildChar /ct_BuildCharIncremental load def
ct_Clone?
{
/FontType 3 def
/ct_ShowCharString /ct_Type3ShowCharString load def
/ct_dfSetCacheProc /ct_CloneSetCacheProc load def
/ct_SyntheticBold false def
/ct_StrokeWidth 1 def
}
{
/FontType 4 def
/Private 1 dict dup /lenIV 4 put def
/CharStrings 1 dict dup /.notdef <d841272cf18f54fc13> put def
/PaintType 0 def
/ct_ShowCharString /ct_Type4ShowCharString load def
}
ifelse
/ct_str1 1 string def
currentdict
end def
/BaseFontDictSize BaseFontTemplate length 5 add def
/ct_matrixeq
{
true 0 1 5
{
dup 4 index exch get exch 3 index exch get eq and
dup not
{ exit }
if
}
for
exch pop exch pop
} bind def
/ct_makeocf
{
15 dict
begin
exch /WMode exch def
exch /FontName exch def
/FontType 0 def
/FMapType 2 def
dup /FontMatrix known
{ dup /FontMatrix get /FontMatrix exch def }
{ /FontMatrix matrix def }
ifelse
/bfCount 1 index /CIDCount get 256 idiv 1 add
dup 256 gt { pop 256} if def
/Encoding
256 array 0 1 bfCount 1 sub { 2 copy dup put pop } for
bfCount 1 255 { 2 copy bfCount put pop } for
def
/FDepVector bfCount dup 256 lt { 1 add } if array def
BaseFontTemplate BaseFontDictSize dict copy
begin
/CIDFont exch def
CIDFont /FontBBox known
{ CIDFont /FontBBox get /FontBBox exch def }
if
CIDFont /CDevProc known
{ CIDFont /CDevProc get /CDevProc exch def }
if
currentdict
end
BaseFontNameStr 3 (0) putinterval
0 1 bfCount dup 256 eq { 1 sub } if
{
FDepVector exch
2 index BaseFontDictSize dict copy
begin
dup /CIDFirstByte exch 256 mul def
FontType 3 eq
{ /ct_FDDict 2 dict def }
if
currentdict
end
1 index 16
BaseFontNameStr 2 2 getinterval cvrs pop
BaseFontNameStr exch definefont
put
}
for
ct_Clone?
{ /Widths 1 index /CIDFont get /GlyphDirectory get length dict def }
if
FontName
currentdict
end
definefont
ct_Clone?
{
gsave
dup 1000 scalefont setfont
ct_BuildCharDict
begin
/usewidths? false def
currentfont /Widths get
begin
exch /CIDFont get /GlyphDirectory get
{
pop
dup charcode exch 1 index 0 2 index 256 idiv put
1 index exch 1 exch 256 mod put
stringwidth 2 array astore def
}
forall
end
/usewidths? true def
end
grestore
}
{ exch pop }
ifelse
} bind def
/ct_ComposeFont
{
ct_UseNativeCapability?
{
2 index /CMap ct_resourcestatus
{ pop pop exch pop }
{
/CIDInit /ProcSet findresource
begin
12 dict
begin
begincmap
/CMapName 3 index def
/CMapVersion 1.000 def
/CMapType 1 def
exch /WMode exch def
/CIDSystemInfo 3 dict dup
begin
/Registry (Adobe) def
/Ordering
CMapName ct_mkocfStr100 cvs
(Adobe-) search
{
pop pop
(-) search
{
dup length string copy
exch pop exch pop
}
{ pop (Identity)}
ifelse
}
{ pop (Identity) }
ifelse
def
/Supplement 0 def
end def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
1 begincidrange
<0000> <FFFF> 0
endcidrange
endcmap
CMapName currentdict /CMap defineresource pop
end
end
}
ifelse
composefont
}
{
3 2 roll pop
0 get /CIDFont findresource
ct_makeocf
}
ifelse
} bind def
/ct_MakeIdentity
{
ct_UseNativeCapability?
{
1 index /CMap ct_resourcestatus
{ pop pop }
{
/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CMapName 2 index def
/CMapVersion 1.000 def
/CMapType 1 def
/CIDSystemInfo 3 dict dup
begin
/Registry (Adobe) def
/Ordering
CMapName ct_mkocfStr100 cvs
(Adobe-) search
{
pop pop
(-) search
{ dup length string copy exch pop exch pop }
{ pop (Identity) }
ifelse
}
{ pop (Identity) }
ifelse
def
/Supplement 0 def
end def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
1 begincidrange
<0000> <FFFF> 0
endcidrange
endcmap
CMapName currentdict /CMap defineresource pop
end
end
}
ifelse
composefont
}
{
exch pop
0 get /CIDFont findresource
ct_makeocf
}
ifelse
} bind def
currentdict readonly pop
end
end
%%EndResource
%%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0
%%Copyright: Copyright 1987-2003 Adobe Systems Incorporated.
%%Version: 1.0 0
userdict /ct_T42Dict 15 dict put
ct_T42Dict begin
/Is2015?
{
version
cvi
2015
ge
} bind def
/AllocGlyphStorage
{
Is2015?
{
pop
}
{
{string} forall
} ifelse
} bind def
/Type42DictBegin
{
25 dict begin
/FontName exch def
/CharStrings 256 dict
begin
/.notdef 0 def
currentdict
end def
/Encoding exch def
/PaintType 0 def
/FontType 42 def
/FontMatrix [1 0 0 1 0 0] def
4 array astore cvx /FontBBox exch def
/sfnts
} bind def
/Type42DictEnd
{
currentdict dup /FontName get exch definefont end
ct_T42Dict exch
dup /FontName get exch put
} bind def
/RD {string currentfile exch readstring pop} executeonly def
/PrepFor2015
{
Is2015?
{
/GlyphDirectory
16
dict def
sfnts 0 get
dup
2 index
(glyx)
putinterval
2 index
(locx)
putinterval
pop
pop
}
{
pop
pop
} ifelse
} bind def
/AddT42Char
{
Is2015?
{
/GlyphDirectory get
begin
def
end
pop
pop
}
{
/sfnts get
4 index
get
3 index
2 index
putinterval
pop
pop
pop
pop
} ifelse
} bind def
end
%%EndResource
Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end
%%BeginResource: procset Adobe_AGM_Image 1.0 0
%%Version: 1.0 0
%%Copyright: Copyright (C) 2000-2003 Adobe Systems, Inc. All Rights Reserved.
systemdict /setpacking known
{
currentpacking
true setpacking
} if
userdict /Adobe_AGM_Image 75 dict dup begin put
/Adobe_AGM_Image_Id /Adobe_AGM_Image_1.0_0 def
/nd{
null def
}bind def
/AGMIMG_&image nd
/AGMIMG_&colorimage nd
/AGMIMG_&imagemask nd
/AGMIMG_mbuf () def
/AGMIMG_ybuf () def
/AGMIMG_kbuf () def
/AGMIMG_c 0 def
/AGMIMG_m 0 def
/AGMIMG_y 0 def
/AGMIMG_k 0 def
/AGMIMG_tmp nd
/AGMIMG_imagestring0 nd
/AGMIMG_imagestring1 nd
/AGMIMG_imagestring2 nd
/AGMIMG_imagestring3 nd
/AGMIMG_imagestring4 nd
/AGMIMG_imagestring5 nd
/AGMIMG_cnt nd
/AGMIMG_fsave nd
/AGMIMG_colorAry nd
/AGMIMG_override nd
/AGMIMG_name nd
/AGMIMG_maskSource nd
/invert_image_samples nd
/knockout_image_samples nd
/img nd
/sepimg nd
/devnimg nd
/idximg nd
/doc_setup
{
Adobe_AGM_Core begin
Adobe_AGM_Image begin
/AGMIMG_&image systemdict/image get def
/AGMIMG_&imagemask systemdict/imagemask get def
/colorimage where{
pop
/AGMIMG_&colorimage /colorimage ldf
}if
end
end
}def
/page_setup
{
Adobe_AGM_Image begin
/AGMIMG_ccimage_exists {/customcolorimage where
{
pop
/Adobe_AGM_OnHost_Seps where
{
pop false
}{
/Adobe_AGM_InRip_Seps where
{
pop false
}{
true
}ifelse
}ifelse
}{
false
}ifelse
}bdf
level2{
/invert_image_samples
{
Adobe_AGM_Image/AGMIMG_tmp Decode length ddf
/Decode [ Decode 1 get Decode 0 get] def
}def
/knockout_image_samples
{
Operator/imagemask ne{
/Decode [1 1] def
}if
}def
}{
/invert_image_samples
{
{1 exch sub} currenttransfer addprocs settransfer
}def
/knockout_image_samples
{
{ pop 1 } currenttransfer addprocs settransfer
}def
}ifelse
/img /imageormask ldf
/sepimg /sep_imageormask ldf
/devnimg /devn_imageormask ldf
/idximg /indexed_imageormask ldf
/_ctype 7 def
currentdict{
dup xcheck 1 index type dup /arraytype eq exch /packedarraytype eq or and{
bind
}if
def
}forall
}def
/page_trailer
{
end
}def
/doc_trailer
{
}def
/imageormask_sys
{
begin
save mark
level2{
currentdict
Operator /imagemask eq{
AGMIMG_&imagemask
}{
use_mask {
level3 {process_mask_L3 AGMIMG_&image}{masked_image_simulation}ifelse
}{
AGMIMG_&image
}ifelse
}ifelse
}{
Width Height
Operator /imagemask eq{
Decode 0 get 1 eq Decode 1 get 0 eq and
ImageMatrix /DataSource load
AGMIMG_&imagemask
}{
BitsPerComponent ImageMatrix /DataSource load
AGMIMG_&image
}ifelse
}ifelse
cleartomark restore
end
}def
/overprint_plate
{
currentoverprint {
0 get dup type /nametype eq {
dup /DeviceGray eq{
pop AGMCORE_black_plate not
}{
/DeviceCMYK eq{
AGMCORE_is_cmyk_sep not
}if
}ifelse
}{
false exch
{
AGMOHS_sepink eq or
} forall
not
} ifelse
}{
pop false
}ifelse
}def
/process_mask_L3
{
dup begin
/ImageType 1 def
end
4 dict begin
/DataDict exch def
/ImageType 3 def
/InterleaveType 3 def
/MaskDict 9 dict begin
/ImageType 1 def
/Width DataDict dup /MaskWidth known {/MaskWidth}{/Width} ifelse get def
/Height DataDict dup /MaskHeight known {/MaskHeight}{/Height} ifelse get def
/ImageMatrix [Width 0 0 Height neg 0 Height] def
/NComponents 1 def
/BitsPerComponent 1 def
/Decode [0 1] def
/DataSource AGMIMG_maskSource def
currentdict end def
currentdict end
}def
/use_mask
{
dup type /dicttype eq
{
dup /Mask known {
dup /Mask get {
level3
{true}
{
dup /MaskWidth known {dup /MaskWidth get 1 index /Width get eq}{true}ifelse exch
dup /MaskHeight known {dup /MaskHeight get 1 index /Height get eq}{true}ifelse
3 -1 roll and
} ifelse
}
{false} ifelse
}
{false} ifelse
}
{false} ifelse
}def
/make_line_source
{
begin
MultipleDataSources {
[
Decode length 2 div cvi {Width string} repeat
]
}{
Width Decode length 2 div mul cvi string
}ifelse
end
}def
/datasource_to_str
{
exch dup type
dup /filetype eq {
pop exch readstring
}{
/arraytype eq {
exec exch copy
}{
pop
}ifelse
}ifelse
pop
}def
/masked_image_simulation
{
3 dict begin
dup make_line_source /line_source xdf
/mask_source AGMIMG_maskSource /LZWDecode filter def
dup /Width get 8 div ceiling cvi string /mask_str xdf
begin
gsave
0 1 translate 1 -1 Height div scale
1 1 Height {
pop
gsave
MultipleDataSources {
0 1 DataSource length 1 sub {
dup DataSource exch get
exch line_source exch get
datasource_to_str
} for
}{
DataSource line_source datasource_to_str
} ifelse
<<
/PatternType 1
/PaintProc [
/pop cvx
<<
/ImageType 1
/Width Width
/Height 1
/ImageMatrix Width 1.0 sub 1 matrix scale 0.5 0 matrix translate matrix concatmatrix
/MultipleDataSources MultipleDataSources
/DataSource line_source
/BitsPerComponent BitsPerComponent
/Decode Decode
>>
/image cvx
] cvx
/BBox [0 0 Width 1]
/XStep Width
/YStep 1
/PaintType 1
/TilingType 2
>>
matrix makepattern set_pattern
<<
/ImageType 1
/Width Width
/Height 1
/ImageMatrix Width 1 matrix scale
/MultipleDataSources false
/DataSource mask_source mask_str readstring pop
/BitsPerComponent 1
/Decode [0 1]
>>
imagemask
grestore
0 1 translate
} for
grestore
end
end
}def
/imageormask
{
begin
SkipImageProc {
currentdict consumeimagedata
}
{
save mark
level2 AGMCORE_host_sep not and{
currentdict
Operator /imagemask eq DeviceN_PS2 not and {
imagemask
}{
AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get /DeviceGray eq and{
[/Separation /Black /DeviceGray {}] setcolorspace
/Decode [ Decode 1 get Decode 0 get ] def
}if
use_mask {
level3 {process_mask_L3 image}{masked_image_simulation}ifelse
}{
DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and
{
Names convert_to_process not {
2 dict begin
/imageDict xdf
/names_index 0 def
gsave
imageDict write_image_file {
Names {
dup (None) ne {
[/Separation 3 -1 roll /DeviceGray {1 exch sub}] setcolorspace
Operator imageDict read_image_file
names_index 0 eq {true setoverprint} if
/names_index names_index 1 add def
}{
pop
} ifelse
} forall
close_image_file
} if
grestore
end
}{
Operator /imagemask eq {
imagemask
}{
image
} ifelse
} ifelse
}{
Operator /imagemask eq {
imagemask
}{
image
} ifelse
} ifelse
}ifelse
}ifelse
}{
Width Height
Operator /imagemask eq{
Decode 0 get 1 eq Decode 1 get 0 eq and
ImageMatrix /DataSource load
/Adobe_AGM_OnHost_Seps where {
pop imagemask
}{
currentgray 1 ne{
currentdict imageormask_sys
}{
currentoverprint not{
1 AGMCORE_&setgray
currentdict imageormask_sys
}{
currentdict ignoreimagedata
}ifelse
}ifelse
}ifelse
}{
BitsPerComponent ImageMatrix
MultipleDataSources{
0 1 NComponents 1 sub{
DataSource exch get
}for
}{
/DataSource load
}ifelse
Operator /colorimage eq{
AGMCORE_host_sep{
MultipleDataSources level2 or NComponents 4 eq and{
AGMCORE_is_cmyk_sep{
MultipleDataSources{
/DataSource [
DataSource 0 get /exec cvx
DataSource 1 get /exec cvx
DataSource 2 get /exec cvx
DataSource 3 get /exec cvx
/AGMCORE_get_ink_data cvx
] cvx def
}{
/DataSource
Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
/DataSource load
filter_cmyk 0 () /SubFileDecode filter def
}ifelse
/Decode [ Decode 0 get Decode 1 get ] def
/MultipleDataSources false def
/NComponents 1 def
/Operator /image def
invert_image_samples
1 AGMCORE_&setgray
currentdict imageormask_sys
}{
currentoverprint not Operator/imagemask eq and{
1 AGMCORE_&setgray
currentdict imageormask_sys
}{
currentdict ignoreimagedata
}ifelse
}ifelse
}{
MultipleDataSources NComponents AGMIMG_&colorimage
}ifelse
}{
true NComponents colorimage
}ifelse
}{
Operator /image eq{
AGMCORE_host_sep{
/DoImage true def
HostSepColorImage{
invert_image_samples
}{
AGMCORE_black_plate not Operator/imagemask ne and{
/DoImage false def
currentdict ignoreimagedata
}if
}ifelse
1 AGMCORE_&setgray
DoImage
{currentdict imageormask_sys} if
}{
use_mask {
level3 {process_mask_L3 image}{masked_image_simulation}ifelse
}{
image
}ifelse
}ifelse
}{
Operator/knockout eq{
pop pop pop pop pop
currentcolorspace overprint_plate not{
knockout_unitsq
}if
}if
}ifelse
}ifelse
}ifelse
}ifelse
cleartomark restore
}ifelse
end
}def
/sep_imageormask
{
/sep_colorspace_dict AGMCORE_gget begin
/MappedCSA CSA map_csa def
begin
SkipImageProc {
currentdict consumeimagedata
}
{
save mark
AGMCORE_avoid_L2_sep_space{
/Decode [ Decode 0 get 255 mul Decode 1 get 255 mul ] def
}if
AGMIMG_ccimage_exists
MappedCSA 0 get /DeviceCMYK eq and
currentdict/Components known and
Name () ne and
Name (All) ne and
Operator /image eq and
AGMCORE_producing_seps not and
level2 not and
{
Width Height BitsPerComponent ImageMatrix
[
/DataSource load /exec cvx
{
0 1 2 index length 1 sub{
1 index exch
2 copy get 255 xor put
}for
} /exec cvx
] cvx bind
MappedCSA 0 get /DeviceCMYK eq{
Components aload pop
}{
0 0 0 Components aload pop 1 exch sub
}ifelse
Name findcmykcustomcolor
customcolorimage
}{
AGMCORE_producing_seps not{
level2{
AGMCORE_avoid_L2_sep_space not currentcolorspace 0 get /Separation ne and{
[/Separation Name MappedCSA sep_proc_name exch 0 get exch load ] setcolorspace_opt
/sep_tint AGMCORE_gget setcolor
}if
currentdict imageormask
}{
currentdict
Operator /imagemask eq{
imageormask
}{
sep_imageormask_lev1
}ifelse
}ifelse
}{
AGMCORE_host_sep{
Operator/knockout eq{
currentdict/ImageMatrix get concat
knockout_unitsq
}{
currentgray 1 ne{
AGMCORE_is_cmyk_sep Name (All) ne and{
level2{
[ /Separation Name [/DeviceGray]
{
sep_colorspace_proc AGMCORE_get_ink_data
1 exch sub
} bind
] AGMCORE_&setcolorspace
/sep_tint AGMCORE_gget AGMCORE_&setcolor
currentdict imageormask_sys
}{
currentdict
Operator /imagemask eq{
imageormask_sys
}{
sep_image_lev1_sep
}ifelse
}ifelse
}{
Operator/imagemask ne{
invert_image_samples
}if
currentdict imageormask_sys
}ifelse
}{
currentoverprint not Name (All) eq or Operator/imagemask eq and{
currentdict imageormask_sys
}{
currentoverprint not
{
gsave
knockout_unitsq
grestore
}if
currentdict consumeimagedata
}ifelse
}ifelse
}ifelse
}{
currentcolorspace 0 get /Separation ne{
[/Separation Name MappedCSA sep_proc_name exch 0 get exch load ] setcolorspace_opt
/sep_tint AGMCORE_gget setcolor
}if
currentoverprint
MappedCSA 0 get /DeviceCMYK eq and
Name inRip_spot_has_ink not and
Name (All) ne and {
imageormask_l2_overprint
}{
currentdict imageormask
}ifelse
}ifelse
}ifelse
}ifelse
cleartomark restore
}ifelse
end
end
}def
/decode_image_sample
{
4 1 roll exch dup 5 1 roll
sub 2 4 -1 roll exp 1 sub div mul add
} bdf
/colorSpaceElemCnt
{
currentcolorspace 0 get dup /DeviceCMYK eq {
pop 4
}
{
/DeviceRGB eq {
pop 3
}{
1
} ifelse
} ifelse
} bdf
/devn_sep_datasource
{
1 dict begin
/dataSource xdf
[
0 1 dataSource length 1 sub {
dup currentdict /dataSource get /exch cvx /get cvx /exec cvx
/exch cvx names_index /ne cvx [ /pop cvx ] cvx /if cvx
} for
] cvx bind
end
} bdf
/devn_alt_datasource
{
11 dict begin
/srcDataStrs xdf
/dstDataStr xdf
/convProc xdf
/origcolorSpaceElemCnt xdf
/origMultipleDataSources xdf
/origBitsPerComponent xdf
/origDecode xdf
/origDataSource xdf
/dsCnt origMultipleDataSources {origDataSource length}{1}ifelse def
/samplesNeedDecoding
0 0 1 origDecode length 1 sub {
origDecode exch get add
} for
origDecode length 2 div div
dup 1 eq {
/decodeDivisor 2 origBitsPerComponent exp 1 sub def
} if
2 origBitsPerComponent exp 1 sub ne
def
[
0 1 dsCnt 1 sub [
currentdict /origMultipleDataSources get {
dup currentdict /origDataSource get exch get dup type
}{
currentdict /origDataSource get dup type
} ifelse
dup /filetype eq {
pop currentdict /srcDataStrs get 3 -1 /roll cvx /get cvx /readstring cvx /pop cvx
}{
/stringtype ne {
/exec cvx
} if
currentdict /srcDataStrs get /exch cvx 3 -1 /roll cvx /xpt cvx
} ifelse
] cvx /for cvx
currentdict /srcDataStrs get 0 /get cvx /length cvx 0 /ne cvx [
0 1 Width 1 sub [
Adobe_AGM_Utils /AGMUTIL_ndx /xddf cvx
currentdict /origMultipleDataSources get {
0 1 dsCnt 1 sub [
Adobe_AGM_Utils /AGMUTIL_ndx1 /xddf cvx
currentdict /srcDataStrs get /AGMUTIL_ndx1 /load cvx /get cvx /AGMUTIL_ndx /load cvx /get cvx
samplesNeedDecoding {
currentdict /decodeDivisor known {
currentdict /decodeDivisor get /div cvx
}{
currentdict /origDecode get /AGMUTIL_ndx1 /load cvx 2 /mul cvx 2 /getinterval cvx /aload cvx /pop cvxs
BitsPerComponent /decode_image_sample load /exec cvx
} ifelse
} if
] cvx /for cvx
}{
Adobe_AGM_Utils /AGMUTIL_ndx1 0 /ddf cvx
currentdict /srcDataStrs get 0 /get cvx /AGMUTIL_ndx /load cvx
currentdict /origDecode get length 2 idiv dup 3 1 /roll cvx /mul cvx /exch cvx /getinterval cvx
[
samplesNeedDecoding {
currentdict /decodeDivisor known {
currentdict /decodeDivisor get /div cvx
}{
currentdict /origDecode get /AGMUTIL_ndx1 /load cvx 2 /mul cvx 2 /getinterval cvx /aload cvx /pop cvx
BitsPerComponent /decode_image_sample load /exec cvx
Adobe_AGM_Utils /AGMUTIL_ndx1 /AGMUTIL_ndx1 /load cvx 1 /add cvx /ddf cvx
} ifelse
} if
] cvx /forall cvx
} ifelse
currentdict /convProc get /exec cvx
currentdict /origcolorSpaceElemCnt get 1 sub -1 0 [
currentdict /dstDataStr get 3 1 /roll cvx /AGMUTIL_ndx /load cvx currentdict /origcolorSpaceElemCnt get /mul cvx /add cvx /exch cvx
currentdict /convProc get /filter_indexed_devn load ne {
255 /mul cvx /cvi cvx
} if
/put cvx
] cvx /for cvx
] cvx /for cvx
currentdict /dstDataStr get
] cvx /if cvx
] cvx bind
end
} bdf
/devn_imageormask
{
/devicen_colorspace_dict AGMCORE_gget begin
/MappedCSA CSA map_csa def
2 dict begin
dup dup
/dstDataStr exch /Width get colorSpaceElemCnt mul string def
/srcDataStrs [ 3 -1 roll begin
currentdict /MultipleDataSources known {MultipleDataSources {DataSource length}{1}ifelse}{1} ifelse
{
Width Decode length 2 div mul cvi string
} repeat
end ] def
begin
SkipImageProc {
currentdict consumeimagedata
}
{
save mark
AGMCORE_producing_seps not {
level3 not {
Operator /imagemask ne {
/DataSource [
DataSource Decode BitsPerComponent currentdict /MultipleDataSources known {MultipleDataSources}{false} ifelse
colorSpaceElemCnt /devicen_colorspace_dict AGMCORE_gget /TintTransform get
dstDataStr srcDataStrs devn_alt_datasource /exec cvx
] cvx 0 () /SubFileDecode filter def
/MultipleDataSources false def
/Decode colorSpaceElemCnt [ exch {0 1} repeat ] def
} if
}if
currentdict imageormask
}{
AGMCORE_host_sep{
Names convert_to_process {
CSA map_csa 0 get /DeviceCMYK eq {
/DataSource
Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
[
DataSource Decode BitsPerComponent currentdict /MultipleDataSources known {MultipleDataSources}{false} ifelse
4 /devicen_colorspace_dict AGMCORE_gget /TintTransform get
dstDataStr srcDataStrs devn_alt_datasource /exec cvx
] cvx
filter_cmyk 0 () /SubFileDecode filter def
/MultipleDataSources false def
/Decode [1 0] def
/DeviceGray setcolorspace
currentdict imageormask_sys
}{
AGMCORE_report_unsupported_color_space
AGMCORE_black_plate {
/DataSource [
DataSource Decode BitsPerComponent currentdict /MultipleDataSources known {MultipleDataSources}{false} ifelse
CSA map_csa 0 get /DeviceRGB eq{3}{1}ifelse /devicen_colorspace_dict AGMCORE_gget /TintTransform get
dstDataStr srcDataStrs devn_alt_datasource /exec cvx
] cvx 0 () /SubFileDecode filter def
/MultipleDataSources false def
/Decode colorSpaceElemCnt [ exch {0 1} repeat ] def
currentdict imageormask_sys
}
{
gsave
knockout_unitsq
grestore
currentdict consumeimagedata
} ifelse
} ifelse
}
{
/devicen_colorspace_dict AGMCORE_gget /names_index known {
Operator/imagemask ne{
MultipleDataSources {
/DataSource [ DataSource devn_sep_datasource /exec cvx ] cvx def
/MultipleDataSources false def
}{
/DataSource /DataSource load dstDataStr srcDataStrs 0 get filter_devn def
} ifelse
invert_image_samples
} if
currentdict imageormask_sys
}{
currentoverprint not Operator/imagemask eq and{
currentdict imageormask_sys
}{
currentoverprint not
{
gsave
knockout_unitsq
grestore
}if
currentdict consumeimagedata
}ifelse
}ifelse
}ifelse
}{
currentdict imageormask
}ifelse
}ifelse
cleartomark restore
}ifelse
end
end
end
}def
/imageormask_l2_overprint
{
currentdict
currentcmykcolor add add add 0 eq{
currentdict consumeimagedata
}{
level3{
currentcmykcolor
/AGMIMG_k xdf
/AGMIMG_y xdf
/AGMIMG_m xdf
/AGMIMG_c xdf
Operator/imagemask eq{
[/DeviceN [
AGMIMG_c 0 ne {/Cyan} if
AGMIMG_m 0 ne {/Magenta} if
AGMIMG_y 0 ne {/Yellow} if
AGMIMG_k 0 ne {/Black} if
] /DeviceCMYK {}] setcolorspace
AGMIMG_c 0 ne {AGMIMG_c} if
AGMIMG_m 0 ne {AGMIMG_m} if
AGMIMG_y 0 ne {AGMIMG_y} if
AGMIMG_k 0 ne {AGMIMG_k} if
setcolor
}{
/Decode [ Decode 0 get 255 mul Decode 1 get 255 mul ] def
[/Indexed
[
/DeviceN [
AGMIMG_c 0 ne {/Cyan} if
AGMIMG_m 0 ne {/Magenta} if
AGMIMG_y 0 ne {/Yellow} if
AGMIMG_k 0 ne {/Black} if
]
/DeviceCMYK {
AGMIMG_k 0 eq {0} if
AGMIMG_y 0 eq {0 exch} if
AGMIMG_m 0 eq {0 3 1 roll} if
AGMIMG_c 0 eq {0 4 1 roll} if
}
]
255
{
255 div
mark exch
dup dup dup
AGMIMG_k 0 ne{
/sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop
counttomark 1 roll
}{
pop
}ifelse
AGMIMG_y 0 ne{
/sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop
counttomark 1 roll
}{
pop
}ifelse
AGMIMG_m 0 ne{
/sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop
counttomark 1 roll
}{
pop
}ifelse
AGMIMG_c 0 ne{
/sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop
counttomark 1 roll
}{
pop
}ifelse
counttomark 1 add -1 roll pop
}
] setcolorspace
}ifelse
imageormask_sys
}{
write_image_file{
currentcmykcolor
0 ne{
[/Separation /Black /DeviceGray {}] setcolorspace
gsave
/Black
[{1 exch sub /sep_tint AGMCORE_gget mul} /exec cvx MappedCSA sep_proc_name cvx exch pop {4 1 roll pop pop pop 1 exch sub} /exec cvx]
cvx modify_halftone_xfer
Operator currentdict read_image_file
grestore
}if
0 ne{
[/Separation /Yellow /DeviceGray {}] setcolorspace
gsave
/Yellow
[{1 exch sub /sep_tint AGMCORE_gget mul} /exec cvx MappedCSA sep_proc_name cvx exch pop {4 2 roll pop pop pop 1 exch sub} /exec cvx]
cvx modify_halftone_xfer
Operator currentdict read_image_file
grestore
}if
0 ne{
[/Separation /Magenta /DeviceGray {}] setcolorspace
gsave
/Magenta
[{1 exch sub /sep_tint AGMCORE_gget mul} /exec cvx MappedCSA sep_proc_name cvx exch pop {4 3 roll pop pop pop 1 exch sub} /exec cvx]
cvx modify_halftone_xfer
Operator currentdict read_image_file
grestore
}if
0 ne{
[/Separation /Cyan /DeviceGray {}] setcolorspace
gsave
/Cyan
[{1 exch sub /sep_tint AGMCORE_gget mul} /exec cvx MappedCSA sep_proc_name cvx exch pop {pop pop pop 1 exch sub} /exec cvx]
cvx modify_halftone_xfer
Operator currentdict read_image_file
grestore
} if
close_image_file
}{
imageormask
}ifelse
}ifelse
}ifelse
} def
/indexed_imageormask
{
begin
save mark
currentdict
AGMCORE_host_sep{
Operator/knockout eq{
/indexed_colorspace_dict AGMCORE_gget dup /CSA known {
/CSA get map_csa
}{
/CSD get get_csd /Names get
} ifelse
overprint_plate not{
knockout_unitsq
}if
}{
Indexed_DeviceN {
/devicen_colorspace_dict AGMCORE_gget /names_index known {
indexed_image_lev2_sep
}{
currentoverprint not{
knockout_unitsq
}if
currentdict consumeimagedata
} ifelse
}{
AGMCORE_is_cmyk_sep{
Operator /imagemask eq{
imageormask_sys
}{
level2{
indexed_image_lev2_sep
}{
indexed_image_lev1_sep
}ifelse
}ifelse
}{
currentoverprint not{
knockout_unitsq
}if
currentdict consumeimagedata
}ifelse
}ifelse
}ifelse
}{
level2{
Indexed_DeviceN {
/indexed_colorspace_dict AGMCORE_gget begin
CSD get_csd begin
}{
/indexed_colorspace_dict AGMCORE_gget begin
CSA map_csa 0 get /DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and {
[/Indexed [/DeviceN [/Cyan /Magenta /Yellow /Black] /DeviceCMYK {}] HiVal Lookup]
setcolorspace
} if
end
} ifelse
imageormask
Indexed_DeviceN {
end
end
} if
}{
Operator /imagemask eq{
imageormask
}{
indexed_imageormask_lev1
}ifelse
}ifelse
}ifelse
cleartomark restore
end
}def
/indexed_image_lev2_sep
{
/indexed_colorspace_dict AGMCORE_gget begin
begin
Indexed_DeviceN not {
currentcolorspace
dup 1 /DeviceGray put
dup 3
currentcolorspace 2 get 1 add string
0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub
{
dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put
}for
put setcolorspace
} if
currentdict
Operator /imagemask eq{
AGMIMG_&imagemask
}{
use_mask {
level3 {process_mask_L3 AGMIMG_&image}{masked_image_simulation}ifelse
}{
AGMIMG_&image
}ifelse
}ifelse
end end
}def
/OPIimage
{
dup type /dicttype ne{
10 dict begin
/DataSource xdf
/ImageMatrix xdf
/BitsPerComponent xdf
/Height xdf
/Width xdf
/ImageType 1 def
/Decode [0 1 def]
currentdict
end
}if
dup begin
/NComponents 1 cdndf
/MultipleDataSources false cdndf
/SkipImageProc {false} cdndf
/HostSepColorImage false cdndf
/Decode [
0
currentcolorspace 0 get /Indexed eq{
2 BitsPerComponent exp 1 sub
}{
1
}ifelse
] cdndf
/Operator /image cdndf
end
/sep_colorspace_dict AGMCORE_gget null eq{
imageormask
}{
gsave
dup begin invert_image_samples end
sep_imageormask
grestore
}ifelse
}def
/cachemask_level2
{
3 dict begin
/LZWEncode filter /WriteFilter xdf
/readBuffer 256 string def
/ReadFilter
currentfile
0 (%EndMask) /SubFileDecode filter
/ASCII85Decode filter
/RunLengthDecode filter
def
{
ReadFilter readBuffer readstring exch
WriteFilter exch writestring
not {exit} if
}loop
WriteFilter closefile
end
}def
/cachemask_level3
{
currentfile
<<
/Filter [ /SubFileDecode /ASCII85Decode /RunLengthDecode ]
/DecodeParms [ << /EODCount 0 /EODString (%EndMask) >> null null ]
/Intent 1
>>
/ReusableStreamDecode filter
}def
/spot_alias
{
/mapto_sep_imageormask
{
dup type /dicttype ne{
12 dict begin
/ImageType 1 def
/DataSource xdf
/ImageMatrix xdf
/BitsPerComponent xdf
/Height xdf
/Width xdf
/MultipleDataSources false def
}{
begin
}ifelse
/Decode [/customcolor_tint AGMCORE_gget 0] def
/Operator /image def
/HostSepColorImage false def
/SkipImageProc {false} def
currentdict
end
sep_imageormask
}bdf
/customcolorimage
{
Adobe_AGM_Image/AGMIMG_colorAry xddf
/customcolor_tint AGMCORE_gget
bdict
/Name AGMIMG_colorAry 4 get
/CSA [ /DeviceCMYK ]
/TintMethod /Subtractive
/TintProc null
/MappedCSA null
/NComponents 4
/Components [ AGMIMG_colorAry aload pop pop ]
edict
setsepcolorspace
mapto_sep_imageormask
}ndf
Adobe_AGM_Image/AGMIMG_&customcolorimage /customcolorimage load put
/customcolorimage
{
Adobe_AGM_Image/AGMIMG_override false put
dup 4 get map_alias{
/customcolor_tint AGMCORE_gget exch setsepcolorspace
pop
mapto_sep_imageormask
}{
AGMIMG_&customcolorimage
}ifelse
}bdf
}def
/snap_to_device
{
6 dict begin
matrix currentmatrix
dup 0 get 0 eq 1 index 3 get 0 eq and
1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop
{
1 1 dtransform 0 gt exch 0 gt /AGMIMG_xSign? exch def /AGMIMG_ySign? exch def
0 0 transform
AGMIMG_ySign? {floor 0.1 sub}{ceiling 0.1 add} ifelse exch
AGMIMG_xSign? {floor 0.1 sub}{ceiling 0.1 add} ifelse exch
itransform /AGMIMG_llY exch def /AGMIMG_llX exch def
1 1 transform
AGMIMG_ySign? {ceiling 0.1 add}{floor 0.1 sub} ifelse exch
AGMIMG_xSign? {ceiling 0.1 add}{floor 0.1 sub} ifelse exch
itransform /AGMIMG_urY exch def /AGMIMG_urX exch def
[AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY] concat
}{
}ifelse
end
} def
level2 not{
/colorbuf
{
0 1 2 index length 1 sub{
dup 2 index exch get
255 exch sub
2 index
3 1 roll
put
}for
}def
/tint_image_to_color
{
begin
Width Height BitsPerComponent ImageMatrix
/DataSource load
end
Adobe_AGM_Image begin
/AGMIMG_mbuf 0 string def
/AGMIMG_ybuf 0 string def
/AGMIMG_kbuf 0 string def
{
colorbuf dup length AGMIMG_mbuf length ne
{
dup length dup dup
/AGMIMG_mbuf exch string def
/AGMIMG_ybuf exch string def
/AGMIMG_kbuf exch string def
} if
dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop
}
addprocs
{AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf} true 4 colorimage
end
} def
/sep_imageormask_lev1
{
begin
MappedCSA 0 get dup /DeviceRGB eq exch /DeviceCMYK eq or has_color not and{
{
255 mul round cvi GrayLookup exch get
} currenttransfer addprocs settransfer
currentdict imageormask
}{
/sep_colorspace_dict AGMCORE_gget/Components known{
MappedCSA 0 get /DeviceCMYK eq{
Components aload pop
}{
0 0 0 Components aload pop 1 exch sub
}ifelse
Adobe_AGM_Image/AGMIMG_k xddf
Adobe_AGM_Image/AGMIMG_y xddf
Adobe_AGM_Image/AGMIMG_m xddf
Adobe_AGM_Image/AGMIMG_c xddf
AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{
{AGMIMG_k mul 1 exch sub} currenttransfer addprocs settransfer
currentdict imageormask
}{
currentcolortransfer
{AGMIMG_k mul 1 exch sub} exch addprocs 4 1 roll
{AGMIMG_y mul 1 exch sub} exch addprocs 4 1 roll
{AGMIMG_m mul 1 exch sub} exch addprocs 4 1 roll
{AGMIMG_c mul 1 exch sub} exch addprocs 4 1 roll
setcolortransfer
currentdict tint_image_to_color
}ifelse
}{
MappedCSA 0 get /DeviceGray eq {
{255 mul round cvi ColorLookup exch get 0 get} currenttransfer addprocs settransfer
currentdict imageormask
}{
MappedCSA 0 get /DeviceCMYK eq {
currentcolortransfer
{255 mul round cvi ColorLookup exch get 3 get 1 exch sub} exch addprocs 4 1 roll
{255 mul round cvi ColorLookup exch get 2 get 1 exch sub} exch addprocs 4 1 roll
{255 mul round cvi ColorLookup exch get 1 get 1 exch sub} exch addprocs 4 1 roll
{255 mul round cvi ColorLookup exch get 0 get 1 exch sub} exch addprocs 4 1 roll
setcolortransfer
currentdict tint_image_to_color
}{
currentcolortransfer
{pop 1} exch addprocs 4 1 roll
{255 mul round cvi ColorLookup exch get 2 get} exch addprocs 4 1 roll
{255 mul round cvi ColorLookup exch get 1 get} exch addprocs 4 1 roll
{255 mul round cvi ColorLookup exch get 0 get} exch addprocs 4 1 roll
setcolortransfer
currentdict tint_image_to_color
}ifelse
}ifelse
}ifelse
}ifelse
end
}def
/sep_image_lev1_sep
{
begin
/sep_colorspace_dict AGMCORE_gget/Components known{
Components aload pop
Adobe_AGM_Image/AGMIMG_k xddf
Adobe_AGM_Image/AGMIMG_y xddf
Adobe_AGM_Image/AGMIMG_m xddf
Adobe_AGM_Image/AGMIMG_c xddf
{AGMIMG_c mul 1 exch sub}
{AGMIMG_m mul 1 exch sub}
{AGMIMG_y mul 1 exch sub}
{AGMIMG_k mul 1 exch sub}
}{
{255 mul round cvi ColorLookup exch get 0 get 1 exch sub}
{255 mul round cvi ColorLookup exch get 1 get 1 exch sub}
{255 mul round cvi ColorLookup exch get 2 get 1 exch sub}
{255 mul round cvi ColorLookup exch get 3 get 1 exch sub}
}ifelse
AGMCORE_get_ink_data currenttransfer addprocs settransfer
currentdict imageormask_sys
end
}def
/indexed_imageormask_lev1
{
/indexed_colorspace_dict AGMCORE_gget begin
begin
currentdict
MappedCSA 0 get dup /DeviceRGB eq exch /DeviceCMYK eq or has_color not and{
{HiVal mul round cvi GrayLookup exch get HiVal div} currenttransfer addprocs settransfer
imageormask
}{
MappedCSA 0 get /DeviceGray eq {
{HiVal mul round cvi Lookup exch get HiVal div} currenttransfer addprocs settransfer
imageormask
}{
MappedCSA 0 get /DeviceCMYK eq {
currentcolortransfer
{4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} exch addprocs 4 1 roll
{4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} exch addprocs 4 1 roll
{4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} exch addprocs 4 1 roll
{4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} exch addprocs 4 1 roll
setcolortransfer
tint_image_to_color
}{
currentcolortransfer
{pop 1} exch addprocs 4 1 roll
{3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div} exch addprocs 4 1 roll
{3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div} exch addprocs 4 1 roll
{3 mul HiVal mul round cvi Lookup exch get HiVal div} exch addprocs 4 1 roll
setcolortransfer
tint_image_to_color
}ifelse
}ifelse
}ifelse
end end
}def
/indexed_image_lev1_sep
{
/indexed_colorspace_dict AGMCORE_gget begin
begin
{4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}
{4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}
{4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}
{4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}
AGMCORE_get_ink_data currenttransfer addprocs settransfer
currentdict imageormask_sys
end end
}def
}if
end
systemdict /setpacking known
{
setpacking
} if
%%EndResource
currentdict Adobe_AGM_Utils eq {end} if
%%EndProlog
%%BeginSetup
Adobe_AGM_Utils begin
2 2010 Adobe_AGM_Core/doc_setup get exec
Adobe_CoolType_Core/doc_setup get exec
Adobe_AGM_Image/doc_setup get exec
currentdict Adobe_AGM_Utils eq {end} if
%%EndSetup
%%Page: xen3-1.0.eps 1
%%EndPageComments
%%BeginPageSetup
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{ userdict /AI11_PDFMark5 /cleartomark load put
userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put}
{ userdict /AI11_PDFMark5 /pdfmark load put
userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse
[/NamespacePush AI11_PDFMark5
[/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5
[{ai_metadata_stream_123}
currentfile 0 (% &&end XMP packet marker&&)
/SubFileDecode filter AI11_ReadMetadata_PDFMark5
<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?><x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-29, framework 1.6'>
-<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-
- <rdf:Description rdf:about='uuid:bacf4235-e435-11da-8f1a-000d93afebb2'
- xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
- <pdf:Producer>Adobe PDF library 6.66</pdf:Producer>
- </rdf:Description>
-
- <rdf:Description rdf:about='uuid:bacf4235-e435-11da-8f1a-000d93afebb2'
- xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
- </rdf:Description>
-
- <rdf:Description rdf:about='uuid:bacf4235-e435-11da-8f1a-000d93afebb2'
- xmlns:xap='http://ns.adobe.com/xap/1.0/'
- xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/'>
- <xap:CreateDate>2006-05-14T09:34:14-07:00</xap:CreateDate>
- <xap:ModifyDate>2006-06-26T18:03:19Z</xap:ModifyDate>
- <xap:CreatorTool>Illustrator</xap:CreatorTool>
- <xap:MetadataDate>2006-05-14T09:34:14-07:00</xap:MetadataDate>
- <xap:Thumbnails>
- <rdf:Alt>
- <rdf:li rdf:parseType='Resource'>
- <xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:width>256</xapGImg:width>
- <xapGImg:height>112</xapGImg:height>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAcAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FUn13zZoei
L/ps49elVto/ilP+x7fNqYq8/wBW/NrVpyyabbpZx9pH/eyfPf4B9xxVIX1Tzpqx5fWLy4Rv5C6x
/ctExVT/AMJ+Zpvia1Zj4vIgP/DNirY8v+arT4o4JoyNwYXBP/CMcVV7fzf5z0pwj3c4p/uq6Beo
8P3oJH0YqyvRfzcidli1i19OuxubepX5mM1P3E/LFWfafqVhqNuLmxnS4hP7aGtD4EdQfY4qicVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVececvzLMbSafobguKrNfdQ
D3EXj/rfd44qxDSfLOq6zIbqZmjhkPJrmWrM57lQd2+eKsz03yro1gAVgE0o/wB2zUc19h0H0DFU
3xV2KuxVZLDFMhjlRZEPVHAYH6DirHdV8jabchnsz9Um6gDeMn3Xt9GKsWjk8w+VtREkbNby/wAw
+KKVR2PZh8+mKvVPKHnex1+L0nAt9SQVkt67MP5o69R7dvxxVk2KuxV2KuxV2KuxV2KuxV2KuxV2
KuxV2KuxV2KuxV2KuxV2KuxV2KvNPzI86uHk0PTpONPhvp1O58Ygf+Jfd44qk3lTyksypf6gtYjv
BbkfaHZm9vAd8VZuAAAAKAbADFW8VdirsVdirsVdiqhe2Nre27W9zGJIn7HqD4g9jirznWdHvvL+
oxz28jCMNztbldiCu9D/AJQ/HFXq3krzZF5g06slE1CCguohsD4Ovs34YqyPFXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWP+d/MY0PRJJoyPrk/7q1HgxG7/wCxG/zpirxaPyPJ5xsL
61lvJ7FShKX8DMsq3BBKMCCOQB3YV3G3euKvmfzZf/mb5V1+70LVtb1KK8tG4ki8uODod0kjJYVR
huMVSj/HPnb/AKmDUv8ApMn/AOa8Vd/jnzt/1MGpf9Jk/wDzXiqc+Wfzh/MPQtYstQXXb+9gtJAz
6fdXU8tvKh2dHjdmX4gTvSoO43xV9teUPNekea/L1nrulSc7S7TlxP243GzxuOzI2x/piqc4q7FX
l/5v/nnofkSB7C04aj5mdf3diD8EIYVElwR0FNwg+I+w3xV8m6p+Zn5ganqE9/deYL8T3DF3WK4l
hjHskcbKiqOwAxVBS+c/OEycJtd1CROvF7udhX5F8VW2/nDzbbOZLbW7+CQiheO6mQ08KqwxVG2/
nr8xrmeO3t/MOsTXEzBIoY7y6d3djRVVQ5JJPQDFX1b+R/5I+fLc2/mL8wvMGqPOOMtn5e+v3BVC
N1a7IejH/iobfzV3UKvoPFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXjX5m6u9/5kNoh
5Q2CiFFHeRqM5+daL9GKsq0LTV07S4LUD4wOUx8Xbdv6YqwP87/yjtvPugetZqkXmTT1LafcGg9R
ept5G/lb9k/st7E4q+J7u1ubO6mtLqJoLm3dop4ZAVdHQ8WVgehBGKqWKuxV6p+Qf5tP5I8w/UdR
lP8AhvVHC3incQS7KtwB7dHp1X/VGKvtJZEdBIjBo2HJXBqCDuCDir5+/Oj/AJyRg031/L3kqZZ9
RFY7vWVo0cJGxSCtVd/F/sjtU9FXy9cXFxc3ElxcyvNcTMZJppGLu7saszMakknqTiqnirsVTPQP
Lms6/fCz0q2e4lADSsB8EaEgc5H6KtT1Py64q+xf+caPyr8qeXYLq/mhS981QkBr+QVEUUi0426n
7G4YM/2iPAGmKvfMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVWSyJFE8rmiRqWY+wFTi
rwjQ1fVPNEUs27SzPcy18QTIa/M4q9OxV2KvAf8AnJH8mf0vay+c9Ag/3K2qV1a1jG9xCg/vlA6y
Rgb/AMy+67qvlXFXYq7FWcy/nN57fyJb+S1vTFpsHKNp0qLh7c/Zt2kr/drvsO3w/Z2xVg2KuxV2
KvRvyp/JTzJ5+uVuFBsPL8b8bjU5F2ah+JIFNOb/AIDv4Yq9180ebvym/KHyzP5T0uH6zqkkf7yz
gKvcNKRVZbyciinuB1p9leOKvD5v+cgvzEhmnbQ7tNFjnX03FuivIUqDvJKHoajqoXFWKat+YPnz
V2Lap5i1K85bcZruZ1oewUtxA9gMVSKWaaZzJM7SSHq7ksdvc4qiLPVtVsiDZXk9sVqVMMrx0J60
4kYqzXy3+ff5u+X5FNl5mvJ4lO8F8/1yMj+Wlx6hUf6pGKvpP8m/+crdJ8131voHmy3j0jW7hlit
LuEt9TuJWNFSjFmhdifhBYg+INBir6BxV8PfnL+ev5kWn5o+ZLHQ/MN1Y6XY3jWkFrCy8ENsohkp
Ve8iMT74qwz/AJX9+cn/AFNl9/wS/wDNOKu/5X9+cn/U2X3/AAS/804q9x0z/nKCLyh+Vmix6hcP
5o8+X8UlzcRySD07dJZn9D6xItaH0uBEaivjxqCVXiXm78//AM2fNE0jXmv3FlbOTSy05mtIVU/s
0iIdx/rs2KsBuby7u5TLdTyTymtZJWZ23NTuxJ64qmmh+dfOGgypLoutXunslOIt7iSNdhQAqG4k
U7EYq+qP+cd/+cltR80atD5Q85FH1a4B/RmqoixidkUs0UyLRFfiPhZQAelK0qqzX/nI7XPPnlfy
dJ5r8r+Ym0pLAxQzacLS1uFnaeZUDmWdJGTiG6Ab4q8488+f/wA7NB8j/l9eab5ra/1vzqUnFdPs
I+H1m3tmitlHpMrcZJm+OgJrirDde/5yZ/NvUdDsdS8vap9Rg0qxtLbzBMbW0czalM8w5j1IXVfU
jh5BUoo3xV9ieZJPT8u6o4NCtpOQT4+m1MVeReQEDa3IT+xAxHz5KP44q9DxV2KuxV8k/wDORf5M
f4dvn816DBTQbyT/AE62jHw2k7nqAOkUhO3ZW26FcVeG4q7FXYq7FW1VmYKoJYmgA3JJxV9Cfk9/
zjPcagINd88Rtb2JpJbaLUrNKOoa4IoY1/yB8R78e6r0P8+fzQj/AC98tWuheXVjttZv4zHZrEqq
lpap8JkVAKA/sxilOp/ZoVXx1NNNPM80ztLNKxeSRyWZmY1LMTuST1OKrMVe9/8AOL/5HaZ54u7r
zJ5jiM3l/TJRBBZVKrc3XEOwcgg+nErKSP2iR2qCq+woPKPlS3sP0fBotjFYU4/VEtoVip4cAvHt
4Yq+H/8AnKHyP5f8ofmebXQYEtLHULKLUDZRbRwySSSxOiL+yp9HkF6Cu21MVeRYq2CQajYjFX6G
/k158fW/yY0nzPq8paa1s5l1Kd/tMbFnjeRiepdYuZ+eKvz71XUJ9S1O81Gf+/vZ5LiXv8crl2/E
4qhcVdir3P8AKr/nFLzV5z0eDXdWv00DSbtRJZBojPczRncSCLlEqI4+yxap68aUJVa/Ob/nGG//
AC+8tnzJY6wNX0yGSOK8jeD6vLF6p4I4o8iupchT0IqOu+KvDcVdirJfy0kuI/zG8rPblhONXsfT
4btyNygAA71xV+keraNpGsWL2Gr2NvqNjIVMlpdxJPExU8lJjkDKaEVG2Koebyt5YnTTUn0iylTR
ih0dXtomFmY+Ppm2BX9zw4Lx4UpQeGKoL/lXf5f/AFOay/wxpP1K5lWe4tvqNt6UkqAhZHThxZ1D
tRiK7nFUw8xxmTy9qiKKs1pOFHuY2piryHyA4XW5FP7cDAfMMp/hir0PFXYqpXNzbWtvJc3MqQW8
Kl5ppGCIiqKlmZqAADucVfL/AOdn/ORsesWt55X8ohW0udWgv9VkSpmRtmSBHHwoR+2RU9qdSq+f
MVdirsVdir6g/wCcXvIfkG60f/FHMal5kt5DHNBOoAsWqeBjjqal1HISn5ChDYq+iMVfCv57eYJt
b/NTX5XYmOyuG0+BD0RLT90wHzkVm+nFWA4q7FUwtotfjiH1ZLtIW+JfTEgU1HUcdt8VVf8Anaf+
X7/ktiqhNY65O/Oa3uZXpTk6SMafMjFVn6J1X/ljn/5Fv/TFXfonVf8Aljn/AORb/wBMVfV0dxce
TP8AnDLjPyivtWtpYEifYkandsCoH/MM5bFXyNirsVZT+V3ldPNX5h+X9AkUvb315Gt0o6m3Q+pP
0/4qRsVfpTHHHFGscahI0AVEUAKqgUAAHQDFXhn/ADmLr66f+VKaYG/e6zfwQlP+K4K3DH6HjT78
VfEGKuxV6n/zjJ5dGt/nNoQdOcGmmXUZvb6uhMR/5HGPFX6A4q7FXYqtljSSN43FUcFWHsRQ4q8H
0Vn0rzRHFNsYZ2tpa7dSYz9x3xV6diqSeb/Ofl3yjo8mra7drbWybRp1klftHEnV2P8AadsVfHn5
s/nh5i8+XD2kZbTvLiNWHTUbeTiaq9ww+23fj9le2+5Vea4q7FXYq7FXYqy38svzD1XyJ5ng1izr
JbNSLUbKtFngJ+Jf9ZeqHsfauKvuvy/r2leYNGtNZ0qcXFhexiWCUeB2KsOzKdmHY7Yq+Ffza0W5
0b8yvMdlOhSt/PPDy7w3DmaJveqOMVYjirsVfpZ+WGu6Prf5f6BfaRMktmbG3iohH7t4olR4mA+y
0bDiRiq38x/zI8teQPLs2s61MAQCtnZKw9e5l7RxKf8Ahm6KNzirxT/od7yt/wBS1ff8jocVd/0O
95W/6lq+/wCR0OKp15N/5yy0vzb5n0/y9pXla+e81CZYlb1oisa9Xlen7MaAs3sMVY//AM5u+YvS
0Ty35cjfe7uJr+dB2W3QRR19mM7/AHYq+RsVdir3z/nDXy7+kPzNutYkSsWi2Ejxv/LPcsIUH0xG
XFX2xir48/5zZ8xfWfN2g+X0eqabZvdyqOgku5OND7hLcH6cVfN2KuxV9R/84Q+XeV75m8ySJ/dR
wadbSePqMZph9HpxYq+scVdirsVdirxz8z9Iax8xG8RaQ36iVSOgkWiuP1N9OKpD55/Pzy35S0CF
mIv/ADHNHSPS42oVcbepOwr6aHqO57eIVfJfnPzx5l846w+q69dm4mNRDCPhhhQmvpwp0VfxPUkn
fFUgxV2Kro43kdY41LyOQqIoqSTsAAMVe5+Vf+cWPMeo+UrzU9XnOna1LBz0fSjSvMfEBdE/Y5jb
iN1rVuhXFXh91bXFrcy2tzG0NxA7RTROKMjoeLKwPQgihxVSxV2KvX/+cffzgbybrP6F1eanlnU5
BzdjtaztRRMP8hthJ9/bdV77+cP5LaR+YdnFeW8qWXmC2Tja39OUckf2hFNx3K1NVYbr79MVfJ3m
78r/ADv5TvHttX02QBRyFzB+/hZakBuaV41p0ah9sVYpiqYaV5g17SC50nUrrTzJ/eG1nkh5U/m9
Nlriqhf6lqOo3LXWoXU15cts09xI0shHuzknFXWGmajqM4t9PtZry4b7MNvG0rmv+SgJxV6n5L/5
xe/NnzJLG1zpv6BsWoXutTrC4HWgtxWavzUD3xV9ZflH+R3lL8trNmsA19rdwnC81ecASMuxMcSi
ojjqK8QST3JoMVfNX/OV6+Yte/NqeK0027uLPSbS3s4ZYoJXjYspuHIZVofin4n5Yq8b/wAJ+af+
rNff9I03/NOKu/wn5p/6s19/0jTf804q+vP+cNvKN5o/kvWtVv7WS0u9UvliEcyMjmG0j+BuLAH7
c0mKvoPFXwB+fcPmbzH+bnmTUIdLvZbWO5+p2zrbyshjtFEAZCFoVYxlh88Vef8A+E/NP/Vmvv8A
pGm/5pxV3+E/NP8A1Zr7/pGm/wCacVfcP/OLHlW48v8A5RWRu4Gt73VLi4vriKRSjrVvRj5A77xw
qfpxV69irsVdirRIUEk0A3JPQDFXy1/zkV/zkboMsLeWPKBS/voJKz64pDQQsAVZLc7iVt92+yO3
Lsq+Vbi4nuJnnuJGmnlJaSVyWZmPUkncnFVPFXYqmXl3y5rfmPVoNJ0W0e8v7g0SKMdB3ZidlVe7
HYYq+vfyf/IPRPJMceqapw1LzMwr9YIrDbVG6wA/teMh38Kb1Ves4q+Z/wDnKP8AKoRv/jvSIaI5
WPXYUHRjRY7mg8dkf3oe5OKvm/FXYq7FX0z/AM48fnhENL/wj5jmJuLKMnRLhjUyxqP95Sf5k/YP
8u3YVVeh6Tp995p8xiNiazt6lxIOkcS9afIbLir2C78n+U7yOOO90axu0iVUQXFtFLRVFFHxq3QY
qln/ACqf8rP+pN0P/uG2n/VPFVe1/LX8ubRuVr5V0e3aoblFYWqGo6H4Yx0xVPrWztLSIQ2sEdvC
OkcSqijanRQB2xVWxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvmj877n/nIfzqZ9C8ueV7zSvKx
qkp9e2W5vF6H1Ss3wRn/AH2Dv+0T0Crw3/oW/wDO3/qVp/8Akdbf9VcVUrn/AJx3/Oi2geebyvcC
KMFnIkt2IA6miyE4qki/lZ5+Zgo0h6nYVkhA+8virJvLv/OOH5o6rqdvbXenDS7KT4ptQnkieNE6
1CxuzOT+yB18QN8VfVn5e/lr5Y8iaT9R0eCs8gBvL+QAzzsO7t2UfsqNh86nFWV4q7FVG9s7W9s5
7O7iWe1uY2hnhcVV43BVlYeBBpir4686/wDOOHn/AE7zLe23l7S5NT0XnzsLpZIQfSfcI4d1PJPs
k03698VSP/lQP5v/APUtzf8AI23/AOqmKqF5+R/5qWcPrXWgSQx9OTTW+58APU3xVD6f+VX5lyXs
C2Gjzm85g2/pPHz5g1BWj9uuKvt78jtO8wWnk5T5m0eTSvMfMx35laJxME/u5IzEzgIVO4P7Ve1M
VeiYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8885/lqLl5NQ0RQkzVaay
6Kx6kx9gf8npirCtL8xavocxtZUZoozSS0mqpU+1d1xVmWm+bdGvgF9b6vMesc3w7+zfZP34qnII
IBBqD0IxVvFXYqpz3FvbxmSeRYox1Z2Cj7zirG9V892FuCliv1qX+c1WMH9Z+j78VYzb23mLzVqP
GNWuJB1b7MUSnxPRR+J98Ver+UvJdh5fg57XGoSCktyR0H8sfgv68VZHirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdiqVa55Y0XWo+N/bhpAKJOnwyr8mH6jtirANW/KPUY
mL6XdJcx9opv3cg9qiqn8MVY8+geddKJC2t5CB1MHJ0++IsuKqf6e82RfA004I7MlT+K1xVsan5w
u/hje7kJ2pEjA/8ACAYqiLXyP5y1KQPJaSpXrLdNwI+Yc8/wxVlujflHaRFZNXuTcMNzbwVRPpc/
EfoAxVndjYWVjbrbWcKQQL0RBQfM+J98VRGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
uxV2KuxV/9k=</xapGImg:image>
- </rdf:li>
- </rdf:Alt>
- </xap:Thumbnails>
- </rdf:Description>
-
- <rdf:Description rdf:about='uuid:bacf4235-e435-11da-8f1a-000d93afebb2'
- xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'>
- <xapMM:DocumentID>uuid:65ad4e0e-e367-11da-8f1a-000d93afebb2</xapMM:DocumentID>
- </rdf:Description>
-
- <rdf:Description rdf:about='uuid:bacf4235-e435-11da-8f1a-000d93afebb2'
- xmlns:dc='http://purl.org/dc/elements/1.1/'>
- <dc:format>application/postscript</dc:format>
- </rdf:Description>
-
-</rdf:RDF>
-</x:xmpmeta>
- <?xpacket end='w'?>
% &&end XMP packet marker&&
[{ai_metadata_stream_123}
<</Type /Metadata /Subtype /XML>>
/PUT AI11_PDFMark5
[/Document
1 dict begin /Metadata {ai_metadata_stream_123} def
currentdict end /BDC AI11_PDFMark5
Adobe_AGM_Utils begin
Adobe_AGM_Core/page_setup get exec
Adobe_CoolType_Core/page_setup get exec
Adobe_AGM_Image/page_setup get exec
%%EndPageSetup
Adobe_AGM_Core/AGMCORE_save save ddf
1 -1 scale 0 -93.5196 translate
[1 0 0 1 0 0 ] concat
% page clip
gsave
newpath
gsave % PSGState
0 0 mo
0 93.5196 li
214.165 93.5196 li
214.165 0 li
clp
[1 0 0 1 0 0 ] concat
8.25879 46.7579 mo
8.25879 22.3165 28.0782 2.5 52.521 2.5 cv
76.9634 2.5 96.7769 22.3165 96.7769 46.7579 cv
96.7769 71.2032 76.9634 91.0196 52.521 91.0196 cv
28.0782 91.0196 8.25879 71.2032 8.25879 46.7579 cv
false sop
/0
[/DeviceGray] add_csa
0.8706 gry
f
5 lw
0 lc
0 lj
4 ml
[] 0 dsh
true sadj
8.25879 46.7579 mo
8.25879 22.3165 28.0782 2.5 52.521 2.5 cv
76.9634 2.5 96.7769 22.3165 96.7769 46.7579 cv
96.7769 71.2032 76.9634 91.0196 52.521 91.0196 cv
28.0782 91.0196 8.25879 71.2032 8.25879 46.7579 cv
cp
0.5647 gry
@
116.116 47.1055 mo
117.075 42.9981 115.555 40.2793 110.896 40.2793 cv
106.516 40.2793 103.46 42.9356 102.483 47.1055 cv
116.116 47.1055 li
cp
101.063 53.17 mo
99.8052 58.5411 101.595 61.004 106.256 61.004 cv
110.22 61.004 112.205 59.3594 113.233 57.3379 cv
133.266 57.3379 li
131.397 62.6465 123.05 67.7012 105.038 67.7012 cv
88.691 67.7012 78.7691 62.834 81.5796 50.8321 cv
84.4605 38.5137 97.022 33.586 112.466 33.586 cv
125.82 33.586 138.41 37.4395 135.127 51.4629 cv
134.728 53.17 li
101.063 53.17 li
/1
[/DeviceCMYK] add_csa
0 0 0 1 cmyk
f
139.871 47.2325 mo
140.86 42.9981 141.766 38.8282 142.365 34.7872 cv
162.536 34.7872 li
161.512 40.3458 li
161.648 40.3458 li
166.04 35.8575 172.068 33.586 179.16 33.586 cv
185.423 33.586 195.758 35.4805 192.936 47.5469 cv
188.498 66.4981 li
168.054 66.4981 li
172.026 49.5059 li
173.122 44.8301 171.49 43.1876 167.941 43.1876 cv
163.209 43.1876 160.644 45.8418 159.507 50.7051 cv
155.807 66.4981 li
135.358 66.4981 li
139.871 47.2325 li
f
39.7618 47.836 mo
17.8775 20.8731 li
44.6934 20.92 li
56.3023 36.6368 li
75.6192 20.8731 li
106.646 20.8731 li
67.9107 50.6114 li
89.6958 78.6407 li
62.6739 78.6407 li
51.5777 62.3243 li
30.9258 78.6407 li
0 78.6407 li
39.7618 47.836 li
f
199.061 36.5992 mo
197.165 36.5992 li
197.165 35.1919 li
203.389 35.1919 li
203.389 36.5992 li
201.493 36.5992 li
201.493 40.9673 li
199.061 40.9673 li
199.061 36.5992 li
f
204.381 35.1919 mo
208.069 35.1919 li
209.276 39.063 li
209.292 39.063 li
210.46 35.1919 li
214.165 35.1919 li
214.165 40.9673 li
211.909 40.9673 li
211.909 36.6236 li
211.893 36.6236 li
210.309 40.9673 li
207.956 40.9673 li
206.469 36.6236 li
206.444 36.6236 li
206.444 40.9673 li
204.381 40.9673 li
204.381 35.1919 li
f
%ADOBeginClientInjection: EndPageContent "AI11EPS"
userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse
%ADOEndClientInjection: EndPageContent "AI11EPS"
% page clip
grestore
grestore % PSGState
Adobe_AGM_Core/AGMCORE_save get restore
%%PageTrailer
[/EMC AI11_PDFMark5
[/NamespacePop AI11_PDFMark5
Adobe_AGM_Image/page_trailer get exec
Adobe_CoolType_Core/page_trailer get exec
Adobe_AGM_Core/page_trailer get exec
currentdict Adobe_AGM_Utils eq {end} if
%%Trailer
Adobe_AGM_Image/doc_trailer get exec
Adobe_CoolType_Core/doc_trailer get exec
Adobe_AGM_Core/doc_trailer get exec
%%EOF
%AI9_PrintingDataEnd
userdict /AI9_read_buffer 256 string put
userdict begin
/ai9_skip_data
{
mark
{
currentfile AI9_read_buffer { readline } stopped
{
}
{
not
{
exit
} if
(%AI9_PrivateDataEnd) eq
{
exit
} if
} ifelse
} loop
cleartomark
} def
end
userdict /ai9_skip_data get exec
%AI9_PrivateDataBegin
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Adobe Illustrator(R) 11.0
%%AI8_CreatorVersion: 11.0.0
%%For: (Rich Quarles) (glassCanopy, LLC)
%%Title: (xen.eps)
%%CreationDate: 6/26/06 11:03 AM
%AI9_DataStream
%Gb"-6l#J&kFY<FlrXS_PAtmN]Ljbu=A<r@?WQR@K]8]PA.h1lL)d%f3@Yb(hW%(ZHVk:<,+8>9G%;<$r+h\4JAk%%?HMjl%q;R=s
%l1<s4qoA0&VuQP2<E3""F^&*.AUi5eNVh^ns)J(n]8u26fCdMAGi<dF<t/Ej?+8'<^b,5%hc=^Nr:KFKLV(T&?TgWe]DMACqt0CM
%r:(S)e&1Rb5F\kN:QM.+j'ViUI"2%mkJ)HAE;O=_rVH-[h`ooR^!C#mq.9HJrr1kos7H6Jp=!#k?/TAg2tX'+J%YaJmMAss2h1bK
%a*/&dhqrhc%Cgcbb7F+88,T+]LAq2KmaEQI+$??PkAPkKYQ)rBo>aX&+/jcu>SYjZe[P=S*uao3P\knM>lDQAS)=/3bMVZhb-J_7
%r_2ae?%uR_PZRnScOWg$]RA]M^e=\\W2FB'pt8J\f+$>;(,1hrp%J+641uJ#(gBgs*W-hfTu.YeFoVAeGPA$PQGZPXY6Jc$(]EV?
%SuiedFbrn0b9!]'i.'R,XhXS]:[e:)X4Ku,l`n<Qa/6d^78]-Fnh6VR+2818/Qut*?2&KkJ?SC4n,IG.pudFE:if>g=(N1T$!6pg
%.SFU7aLrMV;OE7e2"nC4=*jOAei9$c45`g:F>Ie"f6=r=:"0!CmGkt\o+/Qh4AH(+;;X7E\aEhn*ZgpP,+%R_s5CG2hq`e[oR-Q#
%rortQr/@!"n*WAes)@l"Ncn6)^j`ho`tj/Z^ZA'idrZ=`1Akq.&[iB)M8&.;po:R5mf*1amOte)DVs87IX:kc-f+i1h7qu%Z?cHA
%p&0BW?Ke&fI]W=nhgU$aHiF!(4`2e(2^@5Rl_jK$&$uZ(hYk>DmL&>dTnP/ph<jfXGFsCN4?\)3hYuML.-.GdI/`W9gE5jT5>#eQ
%2d_#`p\;@us$a'gGu[j(lh)!7M>nu4!CDRR$L2<.WfEYT<2bsMQh5j9%-td!oFX5[_,mk%^O3cqmf)_md_PjOIt#+]+80jgFn6./
%"0HnJ5O*`9/G/hgVn5H5I/hI[rq-$(+!5FiEH%r:WpQrs,/0FPVB>!U:U`$j<S(OTO1YG%RXY$bUnrTC?/s86_k5tF5IXkq['&qC
%?/rD:NSi;EJ%OUuh0`;UiDj0=n%'"4l8lSXlh5\-Eua_=EPuW^Gi@K=Lf]Q\?A3mf:V:GS`N-FO]Q:^(Dmil_B"uB)p\V,2]D$[M
%I_Y&m\Ad60D@\so^Vr;-qmprXi(pumqh.3(.dWAmPeY*WiD7)jH\=Vgh`;Bt0D5^%i]HK=rkt7MS@E1t&cT^tj)=i0qh3;VdH'KN
%<S/u&M:_+gpmKD<[[bC*8!-:JJ+B/cF)F.MS_M.[a-Q$2knX-5X0@*K'5QSFjBhG%4Ce.*YJU;'%.gFe^">RIM=7Zm4TG2?>E5?6
%:V7&3LHg&"H'Rm/o(2C.\d#D#\pebH\:$L)GSQ:/NXPTO>E:B!G4BXaAt:Th6=4sHp.e[9p($QR?LtYY5Q$@>nbU9)nX/gZp_0jI
%hRP:]AaA43OlIhYlIIhoCIM;D[[^D+Y6E_u3i>+.gc?L!IP-[#[TmH5qo3KnX7YX]45\BAo8?hu4-N`%cT.$qf<D.hYMZS=q&]9a
%maeVKFI^5%kLH^#5--u]400U]l!]m#Pf#UkMf^67mP#R5<c,$(Qg<`pbHdcWrar04b,_Q;S+)nS9uHG;Dgo5Mg6Or0^\QFSr'(&@
%f.c^k@F/Wto%IpTS+)nSe&:^mDgo5Mk*\F?^\P:lnb_gF?\Nta4ib+NT00=T?Jk9kk[2kVRs%#_0Qrpo1\C9Nf[%p8);jiE*j4km
%IVu4U?f0o"p_R2mo^dP"2HYaJ#/6MB'jP8#nl>)cX\nO?7f5As(>MdI*UnJ-Fhg(D(&V/$J%0eh_rH-F\44,8Y<2I4[YJUm]bGdl
%=.]C5mgf"gSXV=Q1_.cVX17'W2ge-F9)]Mo@/9/1>"do.8=^bb41+VSfYtV9hsiY&p."2S8_\X8I-:Nbg2WtC[<]FBp,BHcC2EK;
%BM0D9I]e"lF=/kaUuhB8Y&E'plET8"^jGfse+;DN@bN.*4j<Kn#]gMb03<B=e1g*FnSD(i:^?]DXZ^cU\VFs?LLM94cM8rlA[tS+
%5<bG&VmSEA@qYmM6S!PF=6/(c[H%3B@ro!83d&aC8RX10q9luMb9u'=n-m"bY(A?B]NQ4@ajP1kq8N'^)Kj8kY0fk%q_qT!pq,nQ
%Ib>`6K\?*\T80i74780<NRnSuV#5FDJCmPrVjN]$BFb/UfmASnm]8s76K?GVN9;UO[Z"BiE1cqFS2"k2f&fJ10"-,=f!i3ll!#Vs
%C=j#2qnQtt>rS0o]%:*CF\Ya$p-S`>fb:PG?$5k_pbtAOT8gV[IV]Km31B;=<XVb0qIJC)(s<heG[,M^FLTGp%fAF/o=^QS_rh=h
%AI<S=I.ME(Pk;oEnY>Do\rQ9nV-3HWW5!WCBD1H&j/mE_Aok<A=m]a4nG@W9`Br+b*VdaJ:Of6PLT%H&Vm`3f!;f:bmU_pe'5>0n
%>nc"'?>nfEbdU\hP3Xd'Y#[!1h`[1I(l^.46X/V#gK)<]fAALRpF/3,c!4go$r\3np6OjMf=g6ZRX@lj^6Q)Cc#,M]EdcMOng^n$
%[4:mUa68qToV`-\(:nHm%I5J,kB5063P5!6rIeJ_kM^V@;P'Yq1sDZ\G8RBJEj#B(>nZh:$f_fPZ::m>O&9-XpuF:_#MU-h%qcK(
%!uF2l(mJTXROq:j;<`W)dbNZuD8nd'lD3U03hFM4PPLr=#26+8o.&\i_u=;;b5Kj<L[0)jQBaIG3kl$lr3lMh)#GZ(TD_N#jtXie
%WLhh8R"6HGL3M"Qi+Yf-e$Db5rN<GAT5+qsAbhXJhM%LX0'JJO8(nL9REA^ZB2=GQUKd4?Eosc\?UMD7W(oJ//_6TTc('qp(0W<%
%GYdnClA<j"&[tfOeaT(*9m;A\B^?K3P?Y:0/?`I5>2V)VVhA&gV(jJt!l%b]4IeFRifd_b!<-s"He]E"')D,7n'i^@?e9)rXe\fu
%E5C%e@^"2gh%=u!q2bJP2@-rM97k7&DMBkFnWQk-9'6P21\^4mHTj%ZccLe2XFg1FZ]Q.ab&(=.HWYk0S7haA5KES^Q@hkFC$2a"
%ERF>rb0i8YP>\YQ-c;WV;!Z!oD0IHsgQikH6T:`df[!it4-:PPQ0re5'$Wr.C[CHE67kW%"5!3=/^9`m`md2+dBcmYmN8W!%?Or[
%5r1oQP+D\DoS_PcHaHB6?e_IhBIEYTer$Z&T,sT<j6up'oZc!3T0@bnro!)3k2/?eICf<#s7kEfh::06I.r$cmrrI>\CnO0^O(]R
%52L+IiTm!#]=[h3%hH-.]A%P%5Mb/nk0s:Hqn&=NoeLa_H[j'f?ZJfIh;#`VIt%.f_m^/#s)E*!Y2T7rWUb7:q&S;UDXR;N4*0_Y
%^\+2!^ZTD#br,7pRRaC7h)t58:OMPn\b=-Pqnu5)ba3e@90\2)h9BS^mJGZ,^:Sa+Gn1@s]=W=nj*gOhe(sTtp>Y,g4#DrQr:0Br
%_qh5[mr+h<"MXob%G^L4p@8)'+(1>)a^b[b]t\jeo_f<HpYYr6e'4fRg\5n6DP-rV_enn(]7,/(o`":5S'CB`bE!1C+91F"8)HOY
%rqPIOnT232J,aK^Gk9m8qQX70Vn\jqhg]tX<S]mriSP_p5JI$mJ8b(3>PMHprbnFt5%5ns5Q0^6k3bIj4ktLZ5@J]j^UnoE)uO"!
%5!6[B/t;CeB:.tr%o8f=m_8W6hXO.l4ZqMLO$3O<rU%5/Rgi057M_Kkg>+mM)L6]@9tIn45egtU_[obCqM+=3GN!WBnGW=#hr=e.
%KBC5P?i=?h52YpimQNj";+kW$pib+JWm9FJHOh-_jT//kq&Z.!oH"eSc#qZOJ%Y`)k8Qs1i6kDNHM[OOQAE0+QmK="IrBRCm!Ri:
%4>ah6c[TYqlS&3*^Z:<ejGU`/okD1Uj=>]*=8^oUo6^K%4jMQtO7tTqDOuXp\*oo.]g(EEA[h,A6h$E(*URbDo_J$hgZQm)*c=2l
%JpmFdGk^BjGIMO`qq[9+]^>ask'%n3J%5BpeSjA=2L6%)g-*/s6=5sa>^^*&6=TDF5MSY6hF(GN4o'=%038L&:oh7_]RTe<h=#gf
%rm(J9lq5sW=(Par^pr1ugZR;rGgkL(5CO";imSEM\)CH9"[FX-DK0jiN@Tbs2]Z`2:\V=/n*e$ip'*SNJQr:p^41TXs7m[sKR9Zf
%',!7&IMd";r,DDdm?K3Bp')oFDP4%Nlu-dVLE$4[=tpLGoA.<^gT.>jAC\P7qp2mpn*[?YVSJ*3?laagoa`/Dq"4(#%K@404a4U$
%nb`U2pFDUN[#quXI#m.nhgG+d)8>t1kGQY`s75^7-he-.107hV;>g7[b=D?f:KQ$:kDt,(qVBWL_p>LF$fih@"i#HaA?S2l%(LJo
%r_V!2F`22LO:_)uJ![3"o=]Y!g:[_5\:;#:^'f)1>Q=TYSR9.,U!0o"rlS<6\`</mBM%!/r"(>9T7jt?XU(;m#GAXMI5Up\2!e<<
%s/mFbY&(iLp?DC*R9KH/p\=3$%o;)P@J$/lD7o`&\'Ns8<K!u3Xnj).jm17eTC0Qa5CN;JIG1j<rmU9/q!m?9hB>-(m/HeUcOXi^
%Wk4]@c1h6sRhmL10<Y:_^AA2cr9AdIdJ'8/O$@^M#NY,)]a*]c++aBj2c(hLgNnU[K<fD&-mb)b8dtr2/X-`;%qTED-lXQJPV!R\
%Wg[5"F7<\sm+VS6#mFmq)G3AoduI$2AUlO6fg(suCoPWTG#\0;]#&SY=&Q#je5W@a<#<;q.K^I\:XH(\7qKFanGfB@<)@=C/cNcq
%G+5)GYSj-j0m9mW12h?*4oV&\.-4FeIg;N\l$ir7T*?_([%[NK1f)k?2smOA[b-mB.MrZ^9=O;^$rH9"S[R;?DEDc6b>?EZK9<<E
%`3?l04No%7c+KSp2"<ocmttBWV8Cp<2:*dqKS."T8G#^_-t<Qh/"qO`e/?E3gm@o<W(Jg]f._D#NYtCF6T%3`<)Wt&X6+.umH^K!
%l`.*n?,HfS0W][cct_L(YbMq0dG22flN>E,6urg$9U!X5Mc2[b1r9AVS2Hb<L*ikf`bkn=[dA7o^.79r%4eAGK/lWA6k`%b>LQsr
%2#K.'`<;A[_A)Ys>qJcW"oX-(KrLW`m5Vr;NT2_d@gD=u)/JGG3>TM]fXYE3[P1@D@2t#qLNUuSbtnr$;"XX6#?&jUTA\rY[%W8_
%dmAt-BNa")h&b916Ye&_2>TK0d"g1<B56X.fn%obMfXWE:=/#5Q>mH6DdaW#(ltsS@/98i;tMHMTrkSRJ]$k1_CuHRR(.`P(g>^"
%'lC@QhF#uD-JZH`i3jV68d:Y">kP4OC[kE@`0GIBm@ilS12!!&$!0)[1%Z$S)^i=Ql%_o?+d>e1>T0h3AmD"5?uY(`N`K"Q];pW4
%@(d:89,,>dapuuPXD-;mY_e7"3`S!aPkt%3<kkXe.kZ-P*\5U:k3@kCVIuF'4jEASL_,cFM.V$#1HcAulD\k^k;_c:c$W6=%LHGR
%VVTY4Di$mQh!==mr3o'rGn%]m+KPZJ#u&uT>3d31q4<$FoUgVnZlAZ#LAooR0!RWlB[P\1T+6>.<l1JMk3"AgF-lgsms$5KVVRQ:
%$rK:BKj/[hg1.t\8jlIs*Y:a_H:[OmfJ3'fWBe.7\"U+`9iO$JN92K(^1L#l#UqdSm'5K#k&%*p2VkdP8OqI,]KId5Pb$]tUMNMl
%p85!_CrRK47c'"ID8i*T+`G;@)pYf"AL#>]KUkXcUpEaOjt(&LoRsOqdQ&NA">VmQ5ja=.C8cY`1pBA0+F!u>M@C-4/J,e4)[ddI
%'bJGU(=+*r@nX/+B-a+0SXbUc,0k3Ei^m84&P+L,0jq^]Gm?Gf[_b<Y(U9a3]_>s1oGe&+'ZsLmq;OMXTaXCd4,)>rAMok.@!4n?
%%UqJdk>8mF>"G-40>l$:cErXf>mGhC_<9cY;V2UBCkO&X;66:tOV-+dlA5'E.HE$Z''\JQ[$&QsV5FAb@R3["NeA]>n2YrY=,qAU
%eq(6R<'NLC6m"<l51gQc<%C'r00I$@>QAtcG1>D4Oh[&]JXV=`=TN(<2T-",G$l[K5sZO2K;0d-TYY-9(&":J(1ElX\'r*Wl&R3a
%fLVJ1KTUA2PLN1LE0>Z:bD;9kN^MJkUr9q[ISr2K;+S-9QHEJ_Nu9oOr>fmKI*U\YnA<.9l_oJn)Z<(K1f8U'(o<k#f!B)-Uq$Yi
%Q;1.MLUU%'Q4EU/*qD'<4=Q967d'\[XRkmhcr8daN44a'C`=8Sg'fTpkse.&`^b9cMV.E!fP`*<)^&4:@(?HcZ;bTD7P%'=OE+&f
%\VP3i9Xnb>jJIP&Cdkhms-hM999jJ\V6WCe*/PKe&5gBg\]i,Cm\K46H2,<ESm+dcW<E`NR4XQJ:<m31I7O<YF@99lUK5]B4Y&r^
%U&Q=3_#KRrE(N`@:"1$EET;lLm6kdTL`7Ck6jMZS3T[@Z?tSDjpN.Ur:ZSHCQmn-7G.@!tAg>LD@LWZ&/I492ZR6ooLCTuM_kPFE
%_Ti@=*>Nj3&:4-$0.qURF(P?sR(J8:7*BVZaYrO?qD'AR\:h6/`)Xp['%^[_$?;VnZL7KeELst3i^g.t=a.4?kHL]`Z/'an>O.l(
%6=M/WN6]btlseec\9Cp[/'XA#K`&)W[GM)H1IKiIF:)daQJ8Xa/^sfhCZolCTJ(PSm=A&"IVC;ped+@3hn`?J:#?LBYBHb;'5nE5
%c,@(cYh3np&$VUeUMGF&f>QX5BQo2_1,$?gP(I]"ofsa`RP\tm<"=YYKS+?,.u@<W6u-Ta&Y%B^&.MW!<:MXJLajUcDIFtkjhr8j
%WiW/IU6c[!@K\`b,%D0&6#:Wg2^4M9kqH3';<:<5+B=.);P_Ht.S5dSBr?Y4Kr7<dKVh*`K;V$`Ju8Vr_9;n?s57ScFms\?H/Nht
%H-g9HA\</mH)u:e]a4%46O("D\;Onenkpo!#iY1c.K":JhOcAFGKbMj-W1WJ/.^h&cSOAiMd";O=2^%4Ib(dccuqq(TBK\DkoW;l
%ePTs_ic],&;FMM,K!Yoj$p&YOFEBtT[/t"cIX2#o2%Q`#W:M3H,(qSe:a:dR;IZ<UG?tb'h1R"*L"$cB6(occ/]gJ^W)-KJ.P"\s
%Suf.-=fEkp5'^6ZrM"Cl@S[+e(RuHS\[&:X.Ug/K(JPGB46epYAI;;UW!oU;TZVa4OKe:e'YR0*8B.Srjg#P.@M08^0VX3`<N$YN
%rtN<TSb'IPI[=5CpsTq(6`::"Y->u_a7k:kZag>gVXoqU40Q057n6mep0d!#"ZrOmeLrC92Pg,=JJt<C[tK`;PLd2F&i5WpG9Z_#
%NqC#`!,5j0GIu]4eK7AVYpC\#W\6u/"]-HG.YB@l^b__5RC^JA5l0NMJV],1,t.sH?Gu/91g.N=Uu$k]8HGjSM"HP,SB0YWgcLj*
%MC<7N?%`Zf*8Zj(Mj_#h\A_[\Mmp+;m.B(^Drq">s7^5]_h'GPW3"IHoiqF;Ng,Q)4At_E=;`qq(^OL7KX'([2e?l2@;`1NJQZ7$
%j;KpXH!FF)=)Af1-*(g@%'pNFIA0m67L(TiHId9oRYAjs'jtP88EgC;1+Kt7S60L<'PTZSM^pFk#E2bXC2Y\\D'_IL0-f_n2hJLm
%l7?m9imleB`FS\r$u7^tnTlA_`1EjY$J2sQ?PW>KM/8a6^@;+(,2Oi8$S#+nr3]i]#KR:r9.J.,M9!rdjXkqW[+6hN09[2'7gc!T
%7D/!.HJ=7;M/l<Z@P`q2H]i>k:*`T8gE0#F)<=J"q6M@^D_4k#7HB:/d63=Q3spt$A(JJ93g!C;Ep4^%'MG>UBoH1fa\lkF%+efr
%<>:m$?H'3i,X89dg63MQibQFMDdmOFF;?FJ^.ERI8pHY)0M6u-?ehtWHH'I-m$F0$[7d8N4\GT]H\8\Sd2/,Hj,UXmA_"Gll:>m;
%8ZJ[jSlk'0":hmbEU:WpA>G6>d'<71a$BP:>:JKp-$GjjPVjLo9`E2J[suMHQ[TM%)OJ/T%PW9.>f6^sbIY6q:&^;;>_Y1CE2CF4
%l2SThPC<"c37u()ORfVq[rUk2mG`0I'fn^`dbHFsm!l(D9)ifSbEZ87Upu@O*7$n*`7T$9R\)HcgULq@m>uM=@+t9``H&DgKbdG/
%1jfp2pfQ4Fh3:6eaE;bVQ4%VZG/F.oVM&T\5lF""eOI*i"3reTN2%U"<\V^A^@>)/ZHJ\uG@HH?^kV2r7V)%`@fNDZ&G4fC!jp-D
%d,HimAEZr\BG\e;@Mrmm?)/-\Lq8#>4_-oST9rD^Y(N+/]f:TYl3ug26"!`e&^R\IfEh-\@ipPiHFjd7K3pG-*"2X=M!nG;"&Y1=
%Tk5OZ(bn)jQ_)3/n:"pf)Pr9[C9'TDlt;'J7Tt5+q1u^n7Z6[!/Ic8]_qEM#%V!0[%MoLs$`Et>1u]f9J!D^>,R(Gg*u-Qp;&Q?L
%8?"n-aF2&T3n;-p%'_Bk7\H3`fi^d2a+?gV1Lm/SU*CnXj3.Mf+GG@RK=1:hV*J6X1N&J<ShgJIK,=ejLJim`%-_GQ=XNIXilh\S
%]C8]%<T/kG4NNWMT^0Dj_09Jq3ap`b*l;1OCi%=ckcAT!rL-YJ=^^Ooi/6itkR$cqCrub>f*iC'gslhf<rbNc:qZ(n/ZsV/@Kg,N
%0>>!0K'=LB]jeLd:,!([89!e^nfDc]Tanp-6bGRn\SJBA@/`J#?;_*;!k:Y"!*EaBKjYOslaF^>2Zs;_cR>j&jU,0I";fojcPF=6
%Jh[]H1R#*2pi!aNWNP3Ukecr:\;-]mOG+EZ+1?knCP:)E#fiO0,k9sUg["^ICqA%Wo&;.'"Wf9-$a5)P;(hMBlW6mn#3iC#0,!h%
%2MYM`;f`/5J%deIqqN.LC")ES^"$USn&51jqtKPtIpd(`qZ`WgX7J6sPTc_?.Re+jOqOphKWOsTd7&h#OBPY%<QUM5F&WQB$M;CW
%dZfnBHQ)*.?rboB;))n>n=j73auHY]12GW*Z&&R`7#Vba8Y*(V`#gQOP+D,6/r;/HV?g<KA;H<fWdkWF`>rM_*"_[*aSdg]_jh8/
%4nY[pjHhTa(WMJ[*ThI*D.##:jDgR)$2b6R2]29q_h$>OQWQ6(I;%itXZA4EA41Pf8>^$f:u/-fHC?jQK[ZSLM,d27Z'80:<Q95k
%mhb%c4W%G"8d^HOS.]OK4;sO>,LIJk;&sr$;-%D<0m\bS[]$Jm%oQ%2hKs/V\%U5bmLQQL3mpBn;T.EDKS].D+[Z,#'.ICaHO_6Q
%$4nUL*-XUVZ:!_AHoOWHYgPn#*@13mR8&C:22>E"VCIP<D3,$]XY=knF#QTBB0P1SE.4Vmc!^7*jmP'be'cI)9"$5,Nj8L&9;k."
%9kE%\=F__Ocj(`O'^,MOaoD%>2:o*6+V=01X\6so=kLg65M=hfSrg@)d5KjrWY#bG/Y+gnFcQ)m^&Q2d)mrZTiiY@8@:RU&gT>'5
%-mX0bGsRoplc<,'<[sn2lM8RT$+n9tdX/_!I-.e,92fF$W_>C*Z\j=Wc/djVP;De-A1JA]b97Vt,oUrN8B$%7L><kJZ!VPL]CQcd
%LD^)9Z?#e0#/He*SkbR"]L,bFJl:CqQ[HV[pu@SrJ@4?:pk-Z/'_)Hp9?:5&>\%<tX`+ZC."SZD6Yp+MAD#RtU4QB6lnGsn[1k\s
%p7ep'f?&a]>*V'DQ?7ZD]c6)"aD#l3DorO"'G'&uZ4f1nL6c[NEKoNh8]u>H>qA!j#huS'ibLPH>Z+ASd]N:L2WRM:d/mD,93gUm
%hCl"n?lTMGI6\u"8Q?srQ7R+O>qom^"m=^]dN<m7`L"%^?^FDor03+B.V9-@(T,651#V<q&TRd2##k=8pREI"roWW%=22>Yr>+Hb
%s!Q=WV+=SuP:ELFBdgo5Nl($t`RQ>THa2?)5d%GtN1I8&Zpto[H#HIIdDW6@s6P_Ss3LQ!q*2OLeWTgaO[rJt9eksj<Ca^%+l;UW
%W[pLKaD'a43+T'J--oJ.0V;6g9BRn'2mbcCp6OPSMXN[TVif)`KdB<HahcR*<@]BbFMK=CT\<0MONX"?oB1X&1SkhJHoskEL5.+=
%*X9H,f0G7r8.r65<`%b*$Bcp07"<tdD\+[KREe!2ap(Z95$hu]`3=hQ`?9o7+QfG<>S;_-+rNJ)B!en$IPt&`@s98p(l:C<[P!]0
%7;<<+Cat[J&2JRR@e+QWm,K:A&!_,UF%P`/G`8p)Tf>5of<`!"H`j.6T$E&Z*]riN]FbWan?1$OKfEL/auGQQSop0f_>tFpj`r7\
%)j?*re7)":Fdqcnd[B)@*p:EKD3/1sW6XK=&5BKAj5KTa28VLm/j,(HOUiOJf-'`':%%+Cck4jg=U?H'CUZg'%nP.EF>1dX[^P5e
%W4_J?H?'60O.+U,,=cWeagm$R3Xm%BQ1FJs\UY(V5NblAlM9lHmAHlFX5+;1E3MfMiG`Z+E!>3qVOb2I4k0QVWdkf"dt&Y.gF_cR
%*Lp;(CM-u$IPjnbQN_G,*HP#:(3U:DXiqL.[dg99i*BGgp=-!2\T!F>KEIbj]'tJ'\01u5KM[spMJ!d=4OO!RL/LApp-+"8'&d;Y
%[W^[U(((X0G#>'PBQ4Yi&h"hG'Ja+f-8Ha_,ue1jTnCG.=VOA@dtsm7P82KiU"BGF)h=,cWX3Fo69Fm[r7!E95YYW!R*p)Jh?_B"
%T/\hf7?5HMb&JoUKl^Ql;Bpk:'.6"S8u?.M*&1tdDkdH4oU^044u@tM=I;OJ8I\AAi2"Kj8KE5@$;YO^h't<tW(Q<,<HPYOCr4bK
%gk:XtarR;M!Wphb64H4Xcp/@P)O6&`i"C%:9(WP=\/&7$G0W/$(GcWO&^KnIApnK!36#qHVI?rJVKn(4g.701$]O!"$]`dc%uTuP
%=#OcWE"R70&*/^7LkCVX3r.kW+/ucg10YV@8=LG^Jf/)W$LpM)m``"82bPe+B1m%dp3%9cg+Xf7hrCa3XFKE]9I)rD)P4I4RTnF9
%Ham_k1oc9`AtWuu>eL<lXs8M-!4d:tQ56%jOEmDEh%(o@L\tFL1?f5.'\UBa*;gAZ*%<.^e-e\rrJoV,1LIO:C,1@2i+*K(I0hRs
%;m[je?kV+&ODpI`%R_haG_l`-KI[WZ9*htZ'.1<MJ16P&?r1/tY7e&K'^2Ak5Q_O/Y[\\nn-KK*;'o>;2#d77I6S$GJV"U>^\bnQ
%No$=<j#FkRb,tNm?g&s#c2u`[_,JLI"1N9-Vj(DH29J?^ke)V;gD[6PL5U/&"p;dH1Aa6j`(!M?ck7D7^nV]Z`.neCQ?dTo[@m/U
%)l?[a3'o.bL_)SNK&@ER^af[hY*8:]++E3llIAUH6nV&.$[*SA+BF'W1=1^dQ9si4f@FF9N6[?`ZXT1koRBTXC+f^ni'X:G&IE-+
%`7;d;&R-=B23bS#nJ2+,`WReYOZ<KaS&^Ko88jJ-l\b?Nd,"gNa4=X:GiT=";Op=)M\4iKCQ^S%_O51Mdp%bkI@`WZT2H".W1Bgg
%G$-4NfL\?ab-I+B3/_?F3PQuRBMltp@Ublh`(!QH$k=]'CjZRNodQR(ckA;&NY1'aXOfmX]Ij8t+iQ$`!g`+o_d)8S:*N/[S4_AL
%(3c@dd6NO7(U[X&ghu3gr7#6,7]bCt71'M^=/p6q&3V1`/qM[0)</+.IE3);dN3*TH`$=649W**%lJ^0m@>D?&`=^W9.hf"a.c$5
%)RZ(9?s'mR*Ri+IXc-JhD&om!XiF_W+H+5TY0.PM#HVk3Fi-Q"`a&dWY\nl1CMMJrTFjJn&W3X!"I2hm'cs&VY<K(nfOs^]*-H$1
%$%Dt<YF#8=#c>IH/`L1*d1%R<Ud>H2Y]#K(XVVImi3i\)[dihlUL6j56oi*BlU:_g+sfUqC'LGJ#[dpqc_tdg/8]UVCE;]-NK;F)
%B*3iA/l3K%0TP;:M*FGENQX'Nb2+Xb=Y3T)7WKb1W\`9/-IbNe(Gs]uG5jf4%IX1PC]lOKW#H>W33Wba'(7(RZ4cjCn"_!$Yt]<K
%g'F`+g$l=&EELSIf'b-:8Pu:q3-T;9/N*mIL8pa/7,c>tG4M+t2P0NGS5DuuQ,D0k6f!X2)0J<hQINn5r$i#bPP;!Cd5kGN!BkDm
%gQ`S/Cg(K!4MC2g]GL^-?!%B/?NrS:g.?NbJ@ApY'ocQ,@:.%+1INa6X<P8RTNuph4*X7c9aSka$jR1^/hI=q_4e02irk[3U\.U7
%HK*Jna%'u[1/m7u*iILiBX'Y<'nWCS*)Yb4kUq_3WC=ZAXl\Kk<*mfCFErmgQ+@s0`P=;T/;7'Qc_7mQg(;^:0Bp*D8<Pu1^Q:mW
%[(t_5@b?m!3<bM]YS7FI$B\ae6#:M4V+."XlYCXWOZ`rCU30gG@,*Y#jFY6Z!Jqao=gubDCa,C;LpWU*Zl:HgX"K#2=\%20,p6_.
%&ot91IHs1ArJF\03k0'ZG'c:<mH"gYN1h0f7^mZJap?`p\]RNF"An(\QR%AgK)gs+*bo6KKe+a#>N%Z"hcn(m>?[+']h]5]K,>Zr
%`Zg3X\F@dhaLrE@g`hG&Wa72jS)0q'9qo:g"&QKP*DY^k_E.2n++,'\<n',kM>\nmWDe0%n6U_)aM#Fcpb"uH076#d,9@Ad&)dl3
%>I4/iGUZMN[8\6\&]%11\%MjFjq'@-$_:V(eQW+2$%dmjQ7ie+@NX_YL.89'':"V_BRJrUnV*(G1ak-0ong-'H$*Jon4SK3e@R`k
%qP>?u$e8Uar(GRiBrIh@!1d0lVLV$J^gn?=RC^=-BSc8"PGo776RUc5_gbb!iQIs/h$HVO_2[E2N;?Oi6a?Cg1A$nQ:01#3+3(M[
%E2p`8$*]Q+)M3tKr*)0"DsYX)pb;7lEKmED7tIDujK?3PEHp['$-t-4]=mZ_pu!-)KAYPB5Q:3;00aOW0;taH(Ba+eUfP:@=E@u?
%=pK\bc<KQZg,'&UP/)X+'6S8f<X3A>2R/ujE2$th/X,Cc-4pLt]n>.;=fK=hV++tsPmCKp,jtt.-G;!f!e%lL&1KkU!0mOViVo8>
%B)tl>IUZEgBJ8!LYE+&\Mgd5L+^<)?.C#YbMD?^.dMt"2_R_PP:7NZ2m;7e\m,K(uS<jNuAn--+"(1IY=-uJs@#)]h$2ie']Y_Ri
%Kkf7/dE8^SH>+JIq8^HC,+6p.7AVqS)<2^'_'M'1SQ$JFY]N7op#3Mj"[E$pW`F>%;+jAPU'TWdjL56Enn,*%3krP`LN!(%X70Ms
%RTCn-/$r.hs6.*0W@O!Z83O8rc:>R$\/1-Q=b;OH[4YXa)O\<r(l9Q=>87=qfJ(Lkd@/*<0GA8UJt0%`_,2`);[BFadF09b%_7'c
%5ReOkONGJ_pBf2<^uEut$<=#*o^!]tgJ<AU7QNsV6%+YYOVHXs8lOacoKHApS)aU/^(F\XpAtk5I%<'+=IVB>rs%Om\Kg[TYf:TE
%7=Paofac<3)U>N-cE7I`5UlE5,sB2$!^1aq@qt$`BUUUX(g.qVVQC\>CN!gU..P9JE&f3sRZ8L"M=ptt:(Ek7m"@`=Ur\oD*B(;J
%#]./mT2-7e>PMa&Es3470S7)2Bbt@fFj>cRe:'(*Z_KASTQ=GT\,%3,4eV9HD[;(^6&bYdE0gVWXG'`ep%V-t%5d7%?S&WZM\6]F
%"%:_^=jWQRb]_S`V-]C$Xgn&-<cG2;X?onZ?4hWX/>hJaB%WUkfhbS5S>f_F4-`1*nfV4X6HGhDFV31tN;I&fp<&o3#D60Ma%Yk0
%J6(i![9AE`IRVmo#*(a'Wb\hT[i+O8F5X%hO>@bLE]Hm>K[r[p-77L[d8H.(^na5u#a09RFTrf.G@]DQT4B^=UNq7I*Kng78\,9W
%rl@WGG3"QDP-Gtj$i;)C@VKV:Z3!USij>Y]!XZqu%LjFU&#:5GW'FQ)jf&nN"VM1g'hg$C9JDT*&eP_3KB,<"lO+gJDo1Y+YSh5+
%]dqqdnhQ5HV);jB,jXD:[3CX5LP%*$[iS:4e9#?,#$D>]8haA90"VV[8siXqLim`Sb/*<T1rq+T.lGi:-l28Tk#W93cB9he?!qrY
%n5UrK*HdrZaU$LdeWb&lG*/S*-E:Pp<8Anti"`Ul(S%0DaNGn%jdbfc/&`P.qIj"8nBYVD^FJhtiTk02JW"mh1Z-,E'Jk_!nd3AU
%a)SXjT])7!3(3](&Xp+O4VL[6'l;RSQ/kE4<0W$(Mm=YJ<TLc7YS(/mK"'LpH't?S?VLlu:A(EhS6!MsL't\+/t5BqF_.@V(.'ad
%7'a-e6:o*G&Vph4%,=;4iBWKU>7cS8(qNMh52h,&S;C/Rj<5(i;b;U.I-k4E93bAI5ADQj3Q:Ynf);)>q'Kl\=gP>o.0Y?XO)6`]
%hQqT1AhZPH\X5L67Y]Vdm,+jo,Ycl!(4#9)AW/H88EC&7R_cim]\(pQg_0<6.^cqk`bc["G(iBM((cdoJ6<`C>C<6("XNi9CUm3[
%P8P8)`Eu^1FgfGfQ_*4Np%@/$a3V4*=22Fqs"bJ)6Ph86D5Ml[)FV_cadT]/SWa<I*P)h1j[m6BB()fPph3E_1RhW(UfFc.'c4t+
%7CcJc<?#U:!OSLg-hn:0jVGr1*[jho`+]47\d)-a")5Zj<mk4g*dcWC.4d@E(>aB=n1Atnc4oGQTUq1qM@?LX?<[q:$^SGZo43Rh
%@fiC]"#[(9e=%EMX9[H[_9'(ic?"^BA-Ual86</C7bR3XO/6j$;[ji9gn$o8CUjAc)>1DkYdL_lM$4leJoN5s,>lRf5/Bo/5kQTL
%N$XS3!m]AfK+i3UDN&Q4%57eb*)de9$[6R*FE$/O7q+UN/=a3Ok97B*@bh<c\:asB3Ns[t9G-5fdeb.ik4i;<5Md%s`kYr8&k>;3
%'&JYmJ8,4'#j6F7h+#:hj'_`)Epg'Y4jhTXQQ7Afk_2j+CQ*jL"s^iUJoHKq5eR:t=:%=b81$>B%tqT>5.158_1EY>/ro*iI*ZZ6
%GqRTpLdKoF+6jmKh,t7c3!kn4*/(4TSM0J4FtpLae[[7U_MqXM!GtERB9XI?kV]Z$QU\`D/NG4mjCq92IihqR<^#m9N!Um)U9IZf
%YqS6=LHn[>%C8@+a@(*Y5)@%\KFq/HM#1K@$EF8+gt<N^Vu.Z-?bR(>3#+*:pQ^/\$j%h`30c/F>o2IiLD]rNRWUORIg[j\q'd46
%fSG`Yqd9e&!CntPlPP1^=BGt@4<\)@kOZ1ZI'Xe,h?b1_0b3usS5ml(^c;lAH!ocbeQ8dF]WXK"I4>`i5oS8L\Oi'c9D*#ONHXJT
%0g>/]:,h'-DkS01;ZsP!E%#Vg+qS3P:A0o&W^p9S.Y^'mC*)Ro:7%KkK^dXfZ8U[gZ+ppX8E83k<bH-SQ<%oAF&RL%NCQ1PM((X(
%OBW0k<DP0p@]Gk@!cN$I=!?9)NS/Z`C=&R;/h?g+Q@4okFglCm#P+#gS33Up9=$Q0FC^0M;M/R+V!VWn6\<3cl:@t9bH5H!^WSN`
%XfFrLNP+jPO8+$`Xs@#4\21K<p/G9k9&e.CPoRq_kem2N$/1Q8.liiaKN'81S(>EP[!`l,m2Ca!L6d.^N]W'"4_Adt7r666BJu-P
%DTA>`p.UAq`s6`J7]Va,Mj$hY['`QXn6Tr!a]WuGb7$R-Nm#,[i03_:6fD?do#\]$]FL<'BTRQ]0Um%.\CUbf#tKu%a]XfjC8.q$
%<D=3$h-p:e%PQo@"-P!MPl-'%\rXVt!J2Z=i)t9We:s.S@'%Mr!'Sg0HA@2b53jgm+P9Wd6V9BV<-B8N.%3EMOjbp!AL+0jjBjbq
%.CiLOK:U>X(MP0k^Zd:\ihsE#LTBeQ&,2.Rn"*CK(k7'3.9*39gP.YI7B-^Ir9JmUAI_PiH*$Y`DlOY_B(fFZ[Gb5h)UHSe&#eGa
%8Qa@Rj0-K/lrs;MJXSV1I1i-H!%<N2j:!_;!:U7**bPR5]+c!V(:]2Y4R#%j/n-N2k8^A+96"*9RQ"ip=\\2rE5Y2L/VH.$@"jrE
%aU*oJD6[B;#ph_Em2EcGpB`O1#:4@5pU0SB4Q8S/>3T*[._XNH,pW$4n@q9,]l4bWp."5Q!,LsWW<]io7=^G=hFOukN`!#]$eLi"
%NgVG?N/OrN330".%L(CE"\kOgeAq4`0bjoJRGN:pg4eNge]'==Bi#Zd:`X2'"U9\n=0/ukKs6*6CQr*2#4/kN*U!=K)Vc'-KeMCc
%[4?C3"C.d@\-R(sYHXO,UkH!fQoS3b"=9#S_$"FHP#,GQJL$.Fgb6Xs2-JJK_Q)aMIl/f/ZJWschn=mPR#AND[mpB4)]dF+];Y'@
%?"/pIk"5Wl<2g]M[E"e[ZEP]pVoW!jl3%rM%=/tZ]1^M[dr\"_I7]86n(GrXZ'e*L$+i/$g%@_jU+IAsG;E_?%Da$=^^gJUK+n1=
%@'s.k!tk[W*D9m6QR0r#]'OamD&5PIS">t70'>89&t2_-?)H6%B/B>q0)048nX^clIOl[kTsAl2':$HVNI`12+[].`NIu*\(;Rr1
%Si[UY(HXRS2VnXhq&IbD:-O8.G+rbUC7A8s9lD'L47$("9-4$4nRDmmX1GQi"IYAq#C!s%F$N78Ebe4boOA4$$0LV!ZO)ce>\XpI
%'.@.jGY/::P(>\(R(*+6P"L'f(LA<`LP/PL_<1hhVn=.Uq;KcIV!+p%^QjdeR`BBThH*Sd,^-+"O\53^-0n&o/p-;4:Y2p@g,+h-
%h8Z(.F*3iE\aJ?9p\3H'Ij4YMadaZf0W>U?V4T)(mR;#-,pdRh`eb;K<223BRLo1%e[*FGo4-'#;rcH\W&`ush5k(j>BRC:P`u#q
%/sH5)7I"Npe3Eh@THV4HaW%KB!tpdW2&SQ)5`h<j]-q0'89B'\$JOV4)N'bJWQ>8KJ2$IQ.2f$/j+Ls+Nm-Z1j%O"9&nNV]WM!lb
%O'HoXR,\T4Zs2ghnbcj%e18O4TOQ$F,WWD;1$\<A'5rm1)`Bl*Gb1,#8-,O@Url:P\p'=k\Kj4?'@#V^M%Y-R>2n3',33ZG!>t"b
%f!C$47ui*=*@_Fs<MYO#"b.[?XQj^qhpW;]@/qCZKl_usaK_l25u.6P#Y(I5D*C&.S`mY-_I!8a=6J1n$+Hihi>+`PDjC>OEkK5K
%G6rNl`2j8@QR4!f%c0+5figQqS&qc(c9Z!eBM@'8%liOq;Y>?4YnrQRg:E_W<P)>@)dU)%Git#eP0%U]F@3@4,Uu0^-IZ4?BstaW
%[P0W;G_/9.nd/QeN'h$<X]F8hoIDYf,qD0<s+R*,Qi<gTj;JQn/n#s7o+uG#CCHoKKHo!4>f>L$EHgg`p5W?t+g8>oWjtcI27@1)
%Gl4b9rpGs0s/dU#Q3:FfE@^jRSU>-#O)3otXqe@3#M-lb6Qp&=O&-q!kb;!43_.Ft)GX5V?/A26N)$,hj^9)@l>.^.lf9j7bejAH
%4:Y"-fijaXXFqa-QE]n<+VcA]>aS16_@MQ3)dfI2fnSL>_)tnG8Y+irOEVVa\.)Q\JLPU\0R6]o1oi'@OtnAZbN<"$R8u2sW_'Uu
%8cM,AChKJQHfr:W6`@)4AV=IEJEIcrf580:fmE_97A7%k/5OmnKpf[Q!je*ZqJf@j\\`a@EW:kQ%uR1o7H?m7S"N+69/2n2SP:`m
%IDkR(b3lgY9-j:h`5./6jo)hj\kShJ/TFA?F2+)>4.CCW=6@s,l!0^upA>fPc<,5o:NIl)\s"Zc8g9UbI(n4j=q[>ueD>#0BHMN^
%N,-fr)fo+MHVYk9moYg68p):"eZ9`@+tOO')M8s:54Msjmp!-YLM1*iag.!;D@G`?]Hld<[(4%[+%Q8m<]rX44s,p=L\5W4V3G![
%&+op:/INYbUc.Dl&6\m^]rt]"?";/[q,X-5FK*HR,HI;6(A=a^N9kJIB[DSFX7VfPpJJ@sS$>r9`oJ`m]q%fRoBAq9l#Pma%^
%D$L%&1MH8rHH@cSiS<&r3CK_(&&o4o=_r\jj9rQ1Q\8B!Fl0[9WAaaGnS'[RV<b:H_mo!OCHQbL2GNUD]!&6GZF7C5S$EF2UgJ)d
%0R7ch?GkilX4&`3\'k5d]cLAsEYEptf/?SoIgtT1GZCS'c@3sQ3)WgX?Pdk@Rs:F`$b@6bK!+C]L:)\qc3[\MrSur*LV*:^hoSAQ
%F3BWK?B&0?]j.VPS@J;Wa_@_W/b_H,V.R,OHreEcK&F[`j-%?HSD(7O*j"qC/N$+.927C6jg$,?)pWT*fe,5IOYcg?QWc`PbJL0m
%XCP6e4qT-rD?iaQk^h5("5/Q!@[R?GW_#.FqH..WVI^'b5:,b"(.JcWA)i!-jLn2Qp6XF0LWaE?:Wq7qL*14n[h;36//\@iriU'W
%qs#PlOm#<8E7IO#%G,XF!Aa=:%7&VukA8s@e0tj:L5J$kUFkeL:t"#p_A"O`Fd-$t?gLhJGqhg[C9b"Tdk$3cTR=6DM7%S#29lTX
%XXHiLkdb;c4`_HXU(WL2aU+]fWF\7o>g41X/?Ebpc@XaJlU0sO<VTpr_Z/?>nVdf.8uh#:cP(?2%Og+E8T;-E&/\\",2d\_6kg:I
%"[tsIKEd/6HED/g9!ncgmS),\Q6?rThtSt0QHc\o9%LBjYg3b/FtsZ5o"p[`ZB^]UJnM?2bdF10$;i96WK2&f`(N&al.0Ca(11@Q
%R&S-r9U7JXfq%=p)i`l1HTcMs\083Y;_:Ka:KAXq]^3tVPB1h=AWj@h?FZcUND<[??#j0>p/R12g+S4:39_>Oh7]s@k<4!$Zi!.+
%:0=;MQmIEq/>-k^g.Zk/X*4kSPNH\;I!q&oi:CVM%)R)p2LZB4,fUI:SGVMDkTq<,?r09;C;BY\!<j:u!&k@,@tb;k>ZBt)C)9p`
%/=]6Ol!JH@!'q9n/c`]o5huEL7fZN4&BqNX"/psO;PsMuW<p;3_)XdJs+@9@=iK8Z0u,`bfr7%u.I1d<h#_a`X411/o93j4e5:`i
%ohH4KC97apn]"GDL0"Q/hT7Sg6T2p4+@0M[-4on#mU1&%/k2d#0)[&0\C6V^=W-169kMSkGF=-0CU3?l11u\H2erK]7V(>F^`%Z+
%q0>R9f_'EbaH)cg/gQR[I@Ll8F(]NbKoBZ>hshjhW1fbhMdV20]TB@k4[#;!_!HFW&SWgbK/%]3d#3p:2'*2Q5%e>u=D\e!VG!T0
%NY1$SUe9<:`"=6'1$N@CpJTI;7HB(,aPN,A5X:Qe!"j51LgG#PPOZ-sA9=%`'UL4(X[;W0=u2qs'Y.&Z`'ul8C<m4ViPHK1p2Y>_
%WJtId2S]&d)[[V</tCIt[J5-@.*pR9(o)$QLN&a:*594_l+V3cp1B<p><ZFR71)\sN/rh@:Zi6`H[&kE1B*hapj.h4[d<WeiEM#u
%'d&PgH6&dWi=NSq;NYDRF!Zs`E^En[_$(Unb'UBi?j$S@.N(YFJWs,!fIk*pNEaI/3Nu(JaGpN0cH$/>ZGDCGIJMpPU7ZmgQYD,5
%%'2N-_1,^,Z3]<JZRi3Z/0'CEYj-(V<LB+VPb:<F;4tkM'<a647UHcY5Q]Yo"^]i<?G,bK5VWC/irk.2(#D=Vl3F(9=$JKpjk+hp
%T`@l*!3.!A-P+r$0le0fc=aul/92demR,8bq';@$`pYa<[#^?+,$Z<.66$[Fooua3AYnsbo59DY`"H?`+0GIm7P7@Ba2Kq!`RoSn
%Ed3MTRuEu/1G3QZY)hL^W33HF>GOP5`?GkiEKT/Fi58DM``[KJj.lbMlS;LuUSTk$$CKQ1!iEm9CsB_.qPC,oM5r4\l.8dOXhr"o
%N7!uECc0Ep"PVR+>8qCj#e+(DgocFf/i/pjX?^Yd/^T=3PLiet<Wj-D1_4RY'g6T*)<f$)fpGQLEY*bAXQ6\$CF)\M2."m/5?p(`
%p!@oBZ1jl3Qag'9DGq(4e4&FtE;D.>EB8WDaS6e6Vsr2*>n;se:<*j;jQLU*l'$bQcJa%%Z$iFXjF]>NUQ`k^Gg^np++C#>LJ&-*
%.,jNQUS$^>Dmd*__*+i(3eiu)btd2ZcETGO.;Li@Mp$VA$?Ol]cRpXp<N^RM'<eb(Ej4r:`$sP4@AOX`lf(SPL:aQ3#EHl4?"!L\
%8=[^jF6c)"L+,hQV,TYJe%2UopZZ.JFm<?'<S'Kkd0EMhMJJrb-KcVR[YpfU&@H7?YidFA.ZQG03+g9"r^WC.;s]VdqFCg?`+:)_
%1dd3Gko[gj2[C\s!!J-Ie0brnO<F@;VEKcC.qT$qp;Nli,o%KMn%;CU<oM^L^0d<O>]TuBP,9ot==F'P=_Z(<[.S?bY-O1Ap-RW=
%O>2PH"M$sahN5=lVX5:LDB(Rl.*.mn]Eu[6DOt.bI+*qo<_YMaK_76M43a/.]f"QuC$M4M4NH2b9_KHu*C:?1pQ>8p$pO:.]?LSb
%dbm*WGFc4r)<1Q&*<HqBZk3mpBaS49"#.u1C,haMn'o!8##*%-&Y\"5(taPjBD1%#9hA:ZPL%/G7`jDZ^b"ZDZ>>Pi.>l6)@8\XU
%b%:Zm:hW+$':j+]cGuhfJ4ACb5ebBS;u";+;pT`CMM6BmeI&Vt.Dq6Z;Tm(i).(."$S^&T%%CfCEd@-%b]btBc(iAb_!Ip.dBBg4
%.TK8I\ElX`RknL"$^DEc$%Y.;7lS38PeGDQFGEOG+iif4EiSp\M(Z&VDg"$gl59I_/j?Vug#?]4<&#PfdrBgoakoSPgGTB"N<uR3
%VU!Oe92V+WSg``k-+B[$qE["-!=q1DrOLoaY-eu+Ha.GtO"2()0%oe-a>Y%OeJ6.d"3'[n-Y-`Y4p'^V'[@MA[d9`073.!6X@&'f
%o`sZ"6uB*#3;+h^^8eN[a@LV@3(BE&7?S354@RP:P<(GSP0;rkH:bCgpKDh!H>pG_R>j2o]+`6!e@@5Umjl@J[Egi.7;dQ,nad\5
%$X_3,0=L%4`]WlMYZAEh_(U!!3sCmJ`*;'NZ0AA=+ojun`4#5XQCg5F/t^,Y1FVlIe5>0^osKLM?pW'fkH0>bq.bn9=//"5bRbkp
%Z"[\%)Xo!/N[6N;k)69:M;JZU(95ZH87el`[s4/h0=&loAOV[pH(1p_G$2#P3_Fm;;rFqkRu`@Wb837TF/L9@E,0,kP_:jc"B2h.
%(`>LJ(H7.m.CLb'Bp*hO-`J\3?H_7s',/<1SID(sZFM[[@6c/#(#RF`%p=!I@Xam;^FA[!12>=u:g0LRNR+Nr)N!-0B2.l\02/js
%4EY,f\C+Vm=K8F)\F03j]Ll(ejXuW7>U(R8.kka>EBU[nV$lmI2)X+si.FH2Z#afGJ5aV8<HG`+2G:i;_-\d,4DXee;:EYnDddHu
%=R%3Ao973)>6KllehFrpimjP%XlbKha]c[iFT/BqZ_CE%.n]IjR^R>hb)9SE'jgf!a[0rD3F(N3-AUWq*UCrL$0q(k.;7<AFM=8W
%M6^C3+Zn2PQDhX+8+H%HChG+5hi:p;VR>Da^=]#^AlH-S6.deP]p;p`iPu*B$q6L61RXI8Q^_RQ;B3NKVMjRgXR2ociSTNG*@n<Y
%_N#8<o17L?h?>MT6$XYoCpteH0:*6Pb^-iXAK2oH0-/lsXAWh_DIH1.So0Z2Z02$/+XVSo</%T,S'=G>j'\kOQ!N*ec@G"Z\\k/?
%,t_7BE".hC5r+t#_7`JR)cORl*QZsUL2S@(a0+p0b;>bZI4f-#%b$aX]PWs6B#Uh%X'l[n=r7"bY#-1.[k@6R?,RZq`Si5tfL]L`
%=qdfS,P>8X/.o!dEe;o[kQlOPU,FLh`6p,D>SkI.@=_e=G6%u.1I.Js]J-H1^pY;)gS;P2"GMYg,ANs;7-OuPOqSQBrDFk:m\AAb
%TcZT_p>g_-*G:a0F?4(UGoTK`b!UU^mF5'hPF6e+)PC=[3>:afB^<3uLNt[oaZ-#$Pj1Ub#*ChWp/^-VKg1D$s$jZpR4"W`F@rC1
%/NiFM4iFkb(;@`t^/]Eol_igFG-Pu=g"p=V^1F3(Li)/2dLV9Y_cdof'_6IhPqH9]0gn`@>i[[!>pkZJ0H@l2E4c&L=G8UHL"MSW
%$UsX!Og(HYKs0K`HB:Bsk%]4jIQhQA0"7oD\lXr0c"&oIBK*)2_<f`/")%=r9/]tb_4n%HjUD]]+H9/=>jj0*h+LE2ZIjL_e"&Id
%WNW:5't/W9l4rCY:0e&[,TqhDW/puk&mU1Va:EF>O<E*hPs&c]1TL5r6teoNEM?Sq&NTBWanaAdHIFF8BnHBLpdW,LljA4VQK/,D
%F4`SQ>fq*h`AsLCX;q!q.^Pp*l"P%VMd'#E*,Q"HV=m+=<C0Z.lFT4fU9UOC!IuSm-5f\o',&s8/tsSJ7@*OWhg!bbKDpWYj+)Bc
%$XQL^Lg[`K@]2'l]@*o.%D1#\'+MS#TE>Y7c_0k<]$?sAHI\<8\!/3IF6)uS/lRn5%&XUUlAcip8qI;:#SID/J1;+#GD,[B3'ZVJ
%=2LJDMbPo??."0FBmeg(Xu&M\mR9M#YlbG\Sm8`A7XI;(LIr^B,K2X(DbAJj*DFbnojnU[D:ZP!r>@bL*)$\hB57a5C)RRdmoBPX
%<mWg%:jk!:31$%@,-A;3$u!?KRL]Z92CFFmZjXUh+YO7M,U]R"Eg_Y3P9&d^(+F:FF2jJ/mnBp&Gpd3[ED_<)[?IROVnstf8-Qt.
%#`&eU",=jsG!=AJ7k3snE"GA40QqOh.4hYL(X&,oi4UBBj4n%$isqu;'7X3*&`^f"S0geuH#_t!ent![;#E%CI`3ncf@Eg?cBaM7
%L$5$P,nlE]T![fg[Sm$C[M9L;D6(Wm"lWn%d:0aD3`@@W&N!9n$B'W;R#*Nc'%&NNCmQpJR,dT*L\1GZIY)n*1(ND9k,3Yja7j`.
%pSIJ.lM_hd^pbp9_GL@MlNZ5uU<18D*!HC_5.k,-ck')eh/"%hki91Y`6$T4H.ag?Ct%1.RH,p_)='s'omD4S/:R)7H57<.B/tJc
%Cf#d:L2`(q4<TAtDdWm<35R,-E#q[)TF&49R.+5!!NXRg!=)g<3,faCiGelJQ@aqs8#uha/-@16JVbse`:?`6-7C$F2B2do8:C@j
%YcL%FrZDbl;rk`M1Id!S"34tbQW9O#X1[:[fGb-D,@PL9m#?\3Og$bWp-upU8D)gUKI,?g;Y5JIAR>@?e.<sq_lC98@B$?/(;g;/
%e+Sc(D;U0.A3M*n_AP2F\@*"/q-&Z<9MEW5jN=i7YM&"tjt]'^DVhItnCSoADi6t_EHPIHOh`$ejT+54clIN67)MMe8:g@>+:!P7
%R4,@,.9IRI_a,?ILVe4)$X4g8o;ER,LXo2bbj)j-I,`E9*TWPae$3\9E/Z0S/XO<.MUAku=Bc0//ISoH#\T&l8NHB='1IrUd^U"=
%Fn0d['-2j4YC,(2WiKO=3hOArEPt0FF*?29ACjkd>mHGXWq``\`HQG/i`/6M"mE@iZTS<%"uJ)np<$L@#4L*)#':Z4^6[h(>gf$@
%)p#=N30.AMPe^W0qiqDPcsIfq=Zicl+nO]NLYqE^ijC:aobK/1A6(YX_K<@n;c;CbQQ>RP=u^)`E7)6ieZu^FQR!m->:7CX5A<Yq
%6"7'C-13Vj9.XD+HO[b'lXJgN^lk$N&@d6V5XXgjQ.<NEd_Gs1UEj[j8MA?s0P)S@e?m:3V/jdXOqCj:---OQh9ZNZ8.]G9IY/h(
%bY_D%O_C6j1fgDT$8a[(pKCTYO^q].A0Nk:al=?-'E#.:Nr"942Z!Tk1'`72d-3=\S0"/`jq:)36'bl!@/9=To,R)Ue"tZQW?-bZ
%]p!$:U"Rj?=45lC?4;'F6WQ&S8=9c2]HZQ4#tgo`cR@JSKQObUIC=boWF,fPZ6a-qSdDs.g,0B&%:`<pK^Gn_h@,l"0WQYY9b#1C
%d5X$"0<inlORs0#<SY_M,;cI*8F@%W@:1$CgK.4]ag5M4-u/-0TjDu9NGpr[(_p-kB<Y6;_58:WQ(FDn"Cks_\M(hf,GDXp0t@kC
%GU<ipN?dDk-W*sO.$Z'o_DoLPl@B<PclofKT8s+HIQ\kZH?%cG"BA^9>r`aOM6h,3%umG5*"P_(O21'u9n!j8,']'*,#U5,7tk#"
%E(PI@es4?.s,ou66Te`1<..E!-:ANCI.40Q&<ieSIh:u/dTPYJqd1U9Ae@Tc+N^\]Mj/#V,"L#<O*HWU0cWSF=>C>G4QnNZ,!b:\
%a2g:?,!Gg]$kZ="obL,oW,2sN@P2t;AsNO)2MSe%WB_/lfm8Ln4sH,ALl4A`XFEdd42guMeD_=>DB\?`il*8;#q<P`8F-rJrBV'/
%&F0ZiDBLS%"'PJN/DWOll\BW[+P-n^I6Q0@,BEK[3-m,]4<iquG43L4Ff[TEN2teS).2m']>b_;(ouL1QYQ(%*ggi-D)Ir$FTJS2
%GW'l_7^iB^N?NV''k#!\?+r+DdA>fZ"%PIuk.NpXaWFWKh[*Z?/G/_DYk5sYb=^+Oc7VR<1E-0Ylu&o<O&Yj+a7$1rmF)Kf<aj<(
%qoXWjbMnS`gA41iQ\1_j9tafC6pn_TGra$ZCm=Kk+]"YM.liqr*KdA[f@)=@PSH2ijI2ON?.H"!=m(endZ<WkQ>5g27rMW0D2Z/G
%n[C+L[`..4ptHSaqq^84d4@.)./F$hkAZ!]>+]a#IY"XFRmaD/@eeD^W/F;*lu[!:ljBmtAgYb_8?CcNVU/!C9&t9J*5Hek='n/!
%h&9\`JI:!l5r.h=eR:-s029gE!0%nPO<u1_&ktrjQ3QOQgmpAh2lR,;,'UX6'D*.HBZ]kaGqg]0'0R(nlH(B!9(QHe<)7JqKfi/"
%jbY`T3QZWi=YDXl72;Z'd%$GdBZ;L3`1@KZ0acZOTUHJ"1?RPW)cTPNSM:k[Z$=2lU"3\coiXY+FK1)NTd?8<S3^+qLpl:bf9=0[
%ZACW7:fPnSbnN^jBgiEX]bGS(f:$$1``+aQ%]"lJ.#f"VAd<f.]<J2!esonYYnJ\uFsdSd7r\XdqR!"ZU@b:X*^qEPjlE0WEA""3
%+PdT%,Ip8,OPn>,'rc*co,a3+hCNYAaXBLUY0>^O]*]c`p(3t>.4%8.8OJYJ>RjiF%a)"ZnusX2Q1K'M/M`(ZUO*F`]!\3Cf.`n&
%$bCZo'=uGLj\AL1FTRRf>M.^3".M6Q-.XrYXg)eDQaMb7/E:Oc:TWU5hcD'4(VBUJ48l>Yr$GabmYKMX(Hee.DrU$IN7agjLD;gK
%i/#'mXe_XgL.E0,M\e[h:r,IE$BZXI%&&d;Z"]E(JgFPHYCX_3NK(0Gcu.HV:4Ym9PW#ATg%VdlPOfBFC]PM%__Yk55YL$#<l1`[
%=VT2sojnP\SRq;+j,hEO-'Z^dg!2oZ\0>sd<0Q(bJPt;O`HTae)9lbO4le`YHKRl9!_mrA(L/>%)]IXi\0qd(c>--@m_YVTiN,pj
%'1.rj@6=+QTV?C_jO?N40FZ0gS>%Sdpk+f!96\Gl@6SqeMKFUn!&$EsIq892>kbgnMH4t^PMN5;HJIF[F'E.FRM1I>=$(ChW_+>k
%OD<%M-e\EJEH]-Z:M='")N]()1,eF=6LE%H$GbDcbX*YWU27QdL$VT,)Tc&4k>rLIJ;^CO<X0]+_P9jg%3=09a_nc]L@\Q=Q.:9M
%Lh0F"ji1NQHgd1]MBfG'+KG`&cYFfl#"dFh\X^t_KJY@AZ:gP+AK4*BS&<lj0Flco<OA;kQ:?I@`nX")W]>00BmOkM.nOZcpF5N4
%!nD+dWOlW'F]Susn$Z!`\oFg:C3QH6;Q7PXcQ3<U]p-e59V+m5TUsHiV;)5%?"-93(qMbKItH(dDoX$=>+Bf3bmPhcQ[fsP$pVV<
%FDqYPgJ_I;^Jf8\21;lWnjSgGf.A*FGfr?78l@rBrOFQ-0e:0%>Zehc31VVI:.7E054jS+T&QKT"VpVX7=A&>\W-Nh3Y!W7d,oN!
%%2NqY5[20\-2b_n8;kYrPUdd_Kcm=1dEaoRgPMYZ$L]hd51mY:nqK-IW/O%><?qr18$E_\71"toAFVt6%6A"+W$S`&`!b:t_7bmI
%AEsCLc88)=gFSkfd^'>n7g'mA;l"to2%('-6)[bO?q-)\b`JemQ<*$snFX\`[ilH5L(Kg4PV&S=/Sp^b1\D?9I8.cE#,i4WPa*Jd
%q>o59"K3uq6`VTLX;R%_P!$!q3\b6pQ_L3r,U]WU3EL?V5ej.*K"QLPks62:^(f\l5c;I/=OTlII7M_rc#aZLF:\k\h^%c"PG`=0
%,^scuN>GlK/+N3a9(1`Z^3m!rB8ui/7o7Hm^FflrV>j-H)?4k,FE/sX1<l`-$q2s5I(.J;+1M.fN.6d+**KK%/kU=Sl.:eKDh\qJ
%GcWls-2VYL:+50HmeE-]To=oRi&&=30Uot=N\W]?mYl`K22)ku6(%3d=BM(12gA,!4q=W*as-=RSWC_KBWOKDZ8`n@,G8"?AhI\P
%b`]IeYC\DQ"un$h=oI1_CfMkJpYMt.8HJ9*@#G`glsfueBlI&uk&P0T&#dF,.`>ST1&f-!0kW@Q&S#`jI[0cY=:1>l<Vhai6Ydlj
%,,!,8MC>?2"b\HeeqVsJAOmkO6.e"W&]\*ZKgD.<2%?m^fYZa'5^/B7Lsq&k1>79p,HSVAe'R*S_GrE!\Rt/m`_I^J^N2fM.o3SU
%43t@8F\>`:iBmAZr9Er0Qa4%=:F"?h`<W)Og35`NBQgbD2MOHJR%ce(ctuTV*)I>9MC>"971ht9JnmKr?LWGWYNaT!U/?M4HNKdL
%jf&sWs/\Ur;mB%)CKSK`qPf5HgTpp(NUnXPfdgO:Cj[+qdYG]>V:+C[=p:)K?nbP.15sHOD2?f]-e+q/5T:oI"\'\G*?neqG49*>
%L:Jmi&`KZ4[AcP4Rn6sDdVK;NJXN#WFD-o\_F]@D_6>'m)H(ZQG)*?P7,;3"d7Pq+k9(0UZ<W*VHu>L!Bc2V^"?KFMlK#'K,S+44
%g^)Y9#`CY#``Emp.uIc#]lkTH+nO7m_c@G3-JDeg:Y+M:ndu-fmsrfc1nBI]#XM"XVfT6P0'EbPg\<$d]3%5V@dHZ8KDB;r"K*:=
%MkUeEj0p6_FHKUV]G`'H@$lauDEQP4%(d7AXM@gb-P^kRmhisrZrbYKKud'aRW^2DUYT_>XXI3JCYGmsR"(Q!9pQ&C/#?N#R?s+N
%r`g=Ab.(?*ZoauN[S5A[>q'i"S3[_-Q`MZ]eK:]2M@>]5C8DagSlN.3*9f@Ye-=2gd:X2@2@^rHe6-G4Uhu&BA@GC^"pQGPc]W>"
%ZT?CmIh0m=Ja62%Sn8SRBJV=H5G,qA&WBY-pJH\f@H^ntV][Z#MOu#_5NM_%]I1q]_%Jk,Jp2:8]lORn!O3kGUlXh%i37a*%P`J8
%hd!Fh9i?b5GU977+0QX9l9RZ-P"J842K1cdbsjh'g9H71i]A(dS*Vh.:r<o]30llU?;LlBkpQT12<BFV&4Aghk1aWJr1Tj%Tq"7F
%hA>G=Z:;nr"+b;OV+91e2&nhb=A0/D1D<T<!Z3M"ZRRpj[W#:>E(V6C[3`j@jJ?TG]kq/V[:ATWJPu25@]k-p23N7ES-0RTnpF@f
%>a*n2Krd@u]a@-V2^WQ.jdC/e;JTPNS;I-6N5f%D@_m[U\F'R!h4P$P2-B;kF*a=ckSh+76rfFPctq8eXj1q29b]I!9$WX*X4A88
%cS^=rIJpSFfr8u$,Ykf\/>FB*0iDrm$Z3+1O:7;71M>,+,[-YsEs?o:!)64Bm#5"[N,"TgQ!0m931%4t^XRRs"s;=PAZEdG@iS3q
%X!o&NcD1)4hWIkO:=U,hG47?J<G@I7og2YC<&W3*hKuOAO&VG7fdi?KI.9j0QcWFD;aK\m,kqmZb1h_@6$t"N%1p0!CW];tP$YUB
%7GHbV-7@74DE5N:g&&_I-T420CMg_"CI];S_'UEB2qKW-b1ISE=$hP4^hG9/2l=Fl28X2bW4[-7MgX;rFKEXg`MRXXDeoAimD#e%
%\$c7EpA[4VrRJ-OVR]0!CD$K/]cn+L<VP)cXQMG,.X/_PjI.DGfJG#0Zp&m&&;!M<.=Eg'I0^*^s6?E,\AcAAatjRI33>Cr!NeM]
%@n/ndghIt`Ta)SdDRD&D[jfcmesWBpI[V*JP+bGS1ei?U8ZoCm=&mMFkZ2\u#M#h(=+b6&Q)g*m33eq&>eoef%5(7d=HNlW:M6W+
%<]3gn6,+c5f6KGX$uMo9^ENAr$#>lM&p$]!Z,?taJF0oNgeL4h9*91CGK(seM`0#;V6"7.pGh$#GOsE!gT/t'1gX->CW3E*FgP[$
%F_M4bM`]^FPqoHXkDuFH1*7p4QOE!1M4'K`_o:#a(IP^t/+7G*^7$7H8pHU:^/B[<hY\*mp_#6)R-sNMmQBUW/U&iF\b"YiOc:Kl
%&4A_;8'D&fYn-1:p48H0htY-2l6i\\!X\sO_R*OUh4Pc,>J\`H>$Zh?`b7'<i#XIf5lmFbn]jD))c5l&'`<ISS>#ATo2"`P@pOW7
%$-9^[nV]L^cqW6(_8P<mbXO23n<TC''lM,2;erJmX:5hf\15\o/@;?M_U9FagfA]p/<o$!o65l03a>OBO'?0n6OQ]KISXGg1Llg9
%UFj!g_TQ0XaR):Sfc1m.dD*(H,Tqf.Ns50`81>M>5<BPBhaFuOLSF^s#+18<GACXdQNGDn+6]>Mq(JK?RnT@P1<P)c-\Oh18X+]<
%7JUjIb(""m_(k;PLqc7No`?g9;2f&qX?IX55>IB4[1k\=peA7cNY@cS9t3QN':8Jg\3l8iQhX:b<CkpRj*_r#l&n>K6WPk[2JIu!
%QXmY3LINsiV/Aq]Aal)R"=K]C-Wg^7&t_F)A2-a;QVYjV,#4l40)MH^*a/fp-[4WZa;G?r*e,WmbSp+Gr4iDqF4ihi'b0NI\W!O,
%<oDlqBW;dRfm*V/MP@&$A/sZ>Q&1,ECnTWBD3^$0hEsQ?GIB>Zm(&?\+b3iBf3K#tY(>mXZZcql'l&]=`2C6$L8WWe^a+T2#=,@%
%QQ@@!)p1WVKfF/jKqWFD2k:l26hIoJPU@gK?lV+M<Ok'mhJ]SE1Tne\2MRtYC^us\K#>3BZ^W0p.&4ep+>=W>-QNB(TM2YTTU1C8
%Occ"BA3lR`@J0ekO5P*88-B>kB>["SgoZ^h@,:jCJmgu(S!!8@1Oi8JO6^+3$g&sqX)PpT-qgfRV[V?KN#4AW6N3!!nuG^aLH(ZA
%AgP&;g(g>oTl,(KDeG'AC>Dn]NbXc-'#q`q=$m[S\qiWEi`-YGSd+_")oSejZ'5CC//>7<:_a*_S)Pc^9c?d(BAn_+`d/9a-c(BI
%gJEJ:AJ8I->X0J'QBXGI+&_a)%E7'@CPm([$p7L)J=D`.\PqiD[C<'pX=7AFA*5Em75VEgM@s_R_1(B\-\cORIaO"SK^C%"+5(sm
%aH)`Aqi-C/]Ak%t#:]0M\l=%)Hj$7H/^<uiAir=^f_h6pofW&q5_@!AW>[k@O^OG"m4?6TCJQHjB3'eh%n@!Q\7R5m`XkHSNii]D
%9T'YU3WW04m!3h-jAnUY%O0sVkMmJt)MhH[R/aAlP,oXlQ\,9SA0pGCke(6C`[:\PCr<*QKpjh7Tb6nqX>@g?!uD_'9CPrF^9f7O
%7+<KtT2AmZE$Lo%8[cR"0MbRZ'51Ak>N/A#&gC?iIj1g,cK&3^)i\N-OA(L_V">"W/kW5gDWadeSpVr%GU2T9B;6lkF'+]sWP=$G
%7q6#=b5#O+GUn`9=b4k&@N12k\VXkG*4jWkjGYpNX`Y0%nTF43C@X1je-aX"HX.X+kMsa;9jXcPlCE^kfLDBA]`Q@h@np4G8]eoh
%:)K6AA*Sl$(l<Oj''!BPL)ods>N..k_EJA0Y+l27@sAcqo?Nhr-SZH9IZ0l.S5slm>%!U&'*C084E\NO6RRrdQK_O;&a\c28#K-o
%Ct3l^ibTjt-*^SXX0m__VDF$RPQ4h!+Vp<[lSO`G!3R[4',Mga9L_L4/_M;LoFY<9Mi?=L8NiE3Xm]b%lWWCmb*O!b;9%8>E:/j>
%b!M@a5QQM*$,@A]'U7tMT1'tdq&U#,.*EbZ6:,OfGH7^GlLl,E97>@af0DtIo9==a&g.ki.$:T0rf0kqe@*tKP,d!6kIN\'TqcD6
%+kOu(!3S0gN'_As536Mh$DGNQj/9g_2dR_?2K9fD07/gC;UuedM6WRXq=ReIlW/8(`B%MD5$1PhYK-`WA4fTGH`4"_h@=k2*O@Vp
%CD]1QTdqS06C$=Fe__::G>dC6/VtQ*AkEgnD(>*J[b$^pS)R*k[SV-;$EH\kd<e`Y3qG7aOC;^2GZCWj^,2\up\pAAMr#olYJ1\V
%]=>^VWSS42k#.Xk&IHXJdafg;cA7aIKGY`WAN#$U?S=A%Eb![hmmFq!'R2uD0SV?OFGr+(j4:#;PiBX?]T>tTdX+T?4H6JZ<s[Fb
%)t,tefJ96FE8nK9eB@3<R_Q*dfLm_t*.sTCMo$W:imgTd"=c2MAM/S>25tEf7`'W@$@`bIF!eeHS7t%"*3Bg6i1Q@5-\qMT%,#U#
%oHVC8"Mt`a&48QbR7Z+))GkdR#6Mbsf0DY<H!Ho<)+lj]*d8bS(J65f.$g6"b`#,Q$CG9g+p&6Sl?bsq!>WOB"/]%+E'C[F^n?SX
%@%C$TRV9PnSlh$&@&a?.%9REkj\2f-6J>7J<f9RM;gsg:ZU&OdL6ugKV_sVqM_g)DLu:\$X-0cB%qKD,;5WhdlsE+jpY*?DYdXts
%.f;B-n8HKc^[MMWku#$L,GAlE=+.b^pg:bPh1"N^N[d)p>ZtPgnb?o&Dbi%@_o8a*EI-cAPB&,ncKoX$WDpWuW$2`een.Mf([".E
%D5e;IN(O^@AnT;Dq+Y49&=X,PZa"NGfKN&Fs$jkSqA'!p#fN/.h4;.I:Yb1>Eho84Rnq*=F(in&DcPGYDRi9^!9U`OE]Z`pdHNiZ
%FNqMOco[l-Y`W%*[ASdZ7>84Pn)\9EJuF]8PF1%Rcor:VHUmL4C2df&>+<2jXmYe(lQXgTkY:NNl^)hl'(c"ec0srg,rq\3__r@h
%e"C]'&6'I^6b/r)2uFU$qlq[L;(0]n]YtcoEK%K1&sY;uirN>H+X@pLOrjD/,CW3F;R0_eL.`sb67sgo8-q^Y,_SQFj81i*j<8d-
%=C7S_0\E0J)btTh8V6WT.2Ku:-<WH.!K57h?%cKO!m^HONq%D:6.cJX3W"Gh#4/o6:Jg`m*XGU_]g0OA<.M,uM,,Q(jEfhlg_tT)
%/+WJ*`S7^D:X9ZNHR9P)FR[6,Ob0g;2j@JKSN0?1PARQRL8$1:&0qc5ruV%0]\i?%];%%[B0@@Wc1P2HXb#NN"@:"L9C=f#pRUpE
%I@5^Z(<Eh]NJg@?g_F0d9sLDo=P&r'<8t.qgag-LFa$Z&HaU;eL'<ZXX1]R+`nG!f\E0uH:NF!fX$2k9dB*>KlHP1nAlLFaEgbAr
%CqEtK5ffDVJAZ8$U!2e4Ru7Icaln8dK99Rgnch#HT(L()4l-:'5gAi=_-hEW"N/ai?/*5HeNdE\S@dcbPf$^i_qS(6>7,:AiGC#S
%A"T(b;hS;Fq_!O!QZ,LkDdUEbof3ed2u/^<d3YABkPNaT`LV#=TuU'iCnTnB@:k-:0d>cbLq!VtP/N/e"%8Fu+qu<>OY;qR'7U%<
%O)SkNA0!\;q;#NST9=D/8H9S5c_f*9adhf%m`ZRcCOJ+.GtkU!E;#AuW6Hk9:*g'!.J.A2[$`ep"3j(X$2!2Hb_]r&M7q'qH@(HE
%aak[?GXN\SRM>'AKftsX--ke5$.aO75VY0.Pan#f6VuXflDb`).p/cJqLjcEQ`LYY:(Fm<gaUnti6J%bC`(.epW>9P[fl_G.4_G.
%a6<'mVB;7sKR*R10;>U:<l,jA[igDARH0E4eB`,(bBgG)L$RE"kgd34=A:s'@P9P'4>)&<V=6P+8X=[aD7qnm,G3tSk?*hhX^nT4
%>r_<4'/)B;>a/3Y:VA_;;K;Jt#mpF'_`Bk4V9b1@FHY'V&!)i",MZ0H6L42"^NjAgR#W\PS6&I+&jI\*j\UbjESY_.?Ft?H9a7XY
%jQTBAHsPgo*B$r^naR[F"q+bnhD5haJZ<\:#&CN6/23?WoN9sARsct>A*n(j=r!P\$&)t9cIfu%Z=PSU[p="$l\o+hM1\kVFQ,^g
%kOh!uZ@N\0_B]UN3P2qRF*&,Xp.[N0>/,">?udSJ,,ER[2Gb(o@H/J^A$bTqN=/=#C"Onb::7HW(_@Fa[Bgu70fDAi[O^2a4T7D5
%GW_$$S/an=$p/FE<&u67.lqH^b$!l6VX=09fG3?k^.ChC%o5.[YBUPfKn2IlM+E&H;EMV%i&bkk\#0&\knDh;HNT6>Ou%=j4a,4a
%n1b-p8-O)DZ,R_UI*bP5\g`un9ZQsJ<@an,.FL_K2N!dI"(a]51k2m-m,+<6Z(^g;QiV3$Cu/i#Y9a/,L2nAV^??RabPlFm/+iLt
%h6C2='pn9JBSX*VF'[Z$-)[*Qlk(%PP(efeE,I\C9=h?#SD>UMNFb$$e;s'^SV8\;OV7DM%4B`b#5tZ=Dcq-C45)6a<CEB%C(q&u
%'rlVWUV2i4(AbHijRpC'ESO@g*1*pa>PTEIYnQkeb8qkt%S9HYoc4*\`7Z`J4A'.F"<Xi;fH,$]P?:2mq>&S>/og,6n[l^].>6V<
%Mp>V%qd.)P$A>:J1*VpR]BVG)=-C`%]&k9_9iICSLTWDDl3m'1RD+!glDo]m*dB0$S_#DE38un.6H6M!OAf(IRHanO4-SqletR%^
%65:a(&J_<MA0/s/;.FRUS?%iTVRg#Gm4hK3F=AMgl]>11jQ)DmT##(WS=,.7+d[geW"r"n<70M^R\N'pG&P#g+b2-1]d"GbF]5DI
%-TZst)-DSaFl;HI#u20:h29YQ'X9<lg2S"DcI/Yq?!(O%6SH>!oV$E%f4hP3(O^m]Z,"$YDLlD#rn`noVs4:`'F6)M#Z"A2]%eVq
%bb#mg@<;@#kI>"c_K$0(ABq>f<]W!M>GHAW?]<nZRh`s=W-IPBHui'"N1#8;>B&3ql59,>9Lk0b@[F<8\O#X-k%nn-AZ/lsf$R<l
%K:R$k]8Sj:3g4usNEkg[p\N"m@Z3=Pb$\J3j2mOseK:,/N[nNR>dB9@a-7fDq;D/n8"u\]Pmc2d-O1MqQU)E.U6l-@gsI%d"'[^%
%OTQ9:gj8-7i+^dCC=aSCCIrh!Shn[(c7EC=/Pp9m;nE144U>&G@'tlkIgT;[5h4;WMYJp6CYOM@f'F/-6g&ENLeDdn",6]d!Xq]B
%6at7s,;hY0*RB;\JhrEp4u(kK3LqEF$2NgBJO4<ng/3Wb29"_8X$,pHBMsJf8/eNSqEA'f!1/5S$kX#NA#1m$3`ZY(P<qeP=6g9P
%<5=WrU602MV]:b]@S0?O83Bj5lRfOL!OQB8;g'VMJ$DYK`C>F8,RdNi%C*1S&3La].lIe_-Girn%XK$kLL92&]6"g0-T^;MJ`eh\
%\F(ZG\?RD6FZ:IbAXjG*"-OT9)AKXtQ-?b>GU[9\`arG@o-9Li<jmY!*DWBUnfF7i0Z6`?dE6EdObf>o]KkJM83I;o0UuJsnS#ji
%gZ`a8LI2:,OSYalYM55qrDn"gi;uoQe?F0op!Hk)&dZ+P$\!^K.7\^8MY%2LbQ,c8Fk-+a:o:mu%VeAWDM\f)1Y;Q-@`QTRiMJ,G
%S@l"o0r)t'nG[Kn3WJF5]A'CNiUbmOSG=*.e>I1S*%]E=q+,@tTaRRJS5*\e.:mZ7gcGSOG6kRY.:`KQ]&]$S,Xe/[:JHJ_nNG\i
%!M<#0nVe6Er#/1oH[%A2+O)<PMe9HW4@LSYZ]/.b2Z=F:eYTu&<=5ff6:]tF+WnSH-^`g;=#1g\-(R,fGZ3(/mcn'29lW3lQ_TEK
%E66!_rm3<U;_am/iiDLmLf?C1_tA$ED@s"64!N-@dN4SY*HVM<Sk,QoSkjC"-Y]bXY"bND8Wk'4RY/lk+?Za59,tfi!"JWjf4=Gq
%qoEV%6;6b[Ha])DTbfFSKd$sZa&Pq'S/Q:ebZU1lb_lnPR4^:q,)i-iFQP"4ZAA(A;=4d3kH%5h(^.`pVCYrqs(cp:9lB)lRlSW.
%[[#&N(#et2PST0U;D>*mVP@fBg!;5/f8)Ys8%Lc4hp*Z%cahFnEG>nVN%t1]ZHa`7./hF##r,n@m*1o_ho:"Q^te_0CiofaLmlj"
%\5X+T"On^]Kk.j#@V\FnZ=_"s?lGG\[dr2K91'Ftl&[='69^NH7Bo;%LE(+e))OhA:rL4t[uf't$R6atLP8'oN,ldDd4J-28pf7?
%C:iWjpO4WJVB:G>n=U<ea"*d&=a-iI_hmP[7u,[6H'(Y+d`dXhP+GL%Xhq@)ptVm-^Oc76Fs7pPCO*0VL3+n*L?=5!Y][=M*c&gM
%/A/NP*Qr"g=]R<FU<%in\nhdGm8X@l5N(%aK;8b&'VV)=]P<g2I+uf@%)iiUn<oP_5'uMERjY^qUIcW?9KF9RIUbW1=^?_Ldq5#!
%(W<F:mg*neXQoFV_s+F7l'Z/pPQM@g_X,VBE:WJYj:>oSqGV?7S:;3>KY7rn]ruO<LcuJ'r]*9bp<^3!bY\b=T,`eY"c(e;LKk/+
%g'/msK*B`?P\sm#C(4c=$pYPPO4ofU2PR[5jZ_>_9rWO.ge*]A@^cFj4fl1+(0h(l9!N(M9[j:/Xah(0J<d?o'7'aRG(_.u_6VOM
%&4`gI?O,#if]6BKC%%A0^T;--$L`(0"E^E[ZPqDV"')*0<RY-hf%\*O"13LFT[jIAg-E8r31C02"=Dc_-$>t5.d>#h1:/&.!u7f.
%JhXDV([?aFV`C^r4&+>D"ATHF-0,&gs2,D>4fm`d)EpMu@>2KTQp?m&4H0h/bnfHJJis91#hE#[]5I\8XFNGp^fab?,;:9a7KZRG
%"6jN.mEL6S0u+^3kS^b\q9\0nEqVMP[mJ.o5*p7_ZBbV$-J'R9C.YPi"fYZ<.RU)g.[;ImM*deT9i6)5T$/ds`g6k14-QN2P^rGm
%!P\6KS1lM"kt*&Io[gUkCs_D991a'=\Z;k`F#A_Y9%84<L+6!/QKscke@$7nFc6g[j"FHiR&6I"]l!3D1_MZ%_a#*X`:nudM%lV=
%DX3Y65NC>07_o'(rmUhD]DqbCHFSCtkF]<[/_0Y$F7]ZXoEKC/#&*R^D=b1MhNl%5;Rd.tk^3m&&pU41\=TbY_T0+r$1jpa^-Oor
%nN_"Tcl9B>48@Zu_V7t5>7,kp:lk+^2nsWar9F+Wn^IHsG<c,<@?'UimPj%`2`6*Vea981GL)>c1Mr`PDQeNdq)_uKr1Dc%K)T*n
%^rq,qc"Cd^[d7@MTXXq7rqufS_nTG6=22KG_uD0ghUCZfnltA%#Pa;O'N`&4^SF>FT>'?d*q@CRc1gkXQ_\*nV@#2+XAg.d<=?LM
%-r+YfnF0=P_pQls?Z(9r.r?do!Zk?>POreJLb`[RGTYdjlN`$2GE#j*5Ue(b4D5*aS`./uHV(E_fQ5QJEk#k>lY`X_*hN?LQ=/rA
%.m"12C[q@"TQ[`VDYk$[+/-mIZn:-eTCr+b!VOn<VW.?paR?0uhj8^`L[FB3g7i=#Hji+P0'TOZZ0:`V3'b+1(40!M4oKM/p'lH$
%6"f,(f/@^]<f8!W^YZfG<='JnXaUDZdamnZe'ajW\?<AWi7UI.?cXfnU\2`9n+bl60`=o'Jo>Gg]!`F4_`l[9;P0BrL8q%5;4j?K
%HL0U93\9dW%uZBO"-Y]R[5,&[^97Ctj838doeA9j:e`tD1b:J9%<cAtW#tRXFh##cMn\eT<A9kA0j`B4_B3r&(%u1:YNk8]WQL>E
%;8YO[1pQJP>G,e6YV)SIFkr,RV\r3V#JKOD\5r%^Wp9jiP-;?I/e$06I<J[uGJuOJC"rRF$Z#@)XS:_c@46TQUT;"9am/;KepYel
%Pn!.P^Vjp&gWC+?ZENnq$J''NTChcR=W&M04p!<k"YI2?]jDYj>oC";oum>\!:im'bH]%\4ie`;^?TK>aWOj8at"%jO]E.0DdbL4
%/#t+)EQNfk<bo"*m35>-^Y]gsL5C+Q]%,6"\@,V8:Mg3ceDlhf)4ibsr1:p)X^F(EV;=RLLS'-.GbmbX;\eHBX9Mu2*1kq$Z2f^W
%C<SG?;;m,#jUe<bK=mED:KBs_\?mj2VImFr6;ueuVLnt7WdrnsIth[QaW$nENcm)3"3ZBI5^rO)9.X7tna_XjY$'<FEp)CtfjH(+
%U`.5_LQ7E*):jBM))@<$GRirF>`u"*91'%V`<]ZZqV"t(+X91Jmg&Y]+#mRaj#%,;jcs']m6]Hi/#a$tgpaSTTV`3c1JlF.[Nd>s
%)TSej`ge5U6CQ?V,qWHkYQj:sN`6,2_37M51aI<W'hoK?H\Y+^g]K(AWN^*ISZk62ij1:Z4A$.C(8)2B.V&NenI7ARNeVp#ArdtU
%>>AHJdoM8ppXo"R^`Ck]*&;B4lt3J-:.JfR-<[pfUhe/mgKdlL6do9!3Dm4An^q(@duJHA.gYIiH_A,@%<Q5oZ_d:?VE_VZ8S?@C
%Cpgi7]"T?Y_LjGPU-cBH!gdO9D2u!&+3Y;km[0TC6f?!3*OZ]o&CCtT<`48(#uO<i1.1s+`QVn;eI?tI_&GL+i(?*iRK;:Y$\C/9
%,MNN[J<-M.66C=rC^o/KFb=VUHK]p?+;`GW4H$^dCAA,NlH%(nkUimXOZ0pa4-5^2qUQhM7%:.X14lVW];kLA#<uJa8WVX5Y&`T(
%T\2JK03.&#ZG&+g)0.mEU'BV/TJg28OOE[p=m-r3injRPZh-*s_X\!qZfKRqC<r`(:i0j?`X\%Xb2<S,[.kDi(O?He/ACN;[UK.G
%[o@u%_'0&o%F\C<4FMX$qN;-p1EZ97F>*'j*t]B^1<;\-QH:L3`otdk>q^tga/*F)&nM7A6Ogpfr.,,f;DAPj;C+ODj?)8m8erCa
%SZ^3H=>H[\XJ:N)p;d.&mI6SuP2;0`l%S#*Q%+m4&at?cQRoRA_]O#G@RFu9f7l\-Phrls#g!Os,1&g^hb`jt*e_JUT)2QbRrH`&
%0EP#q.]/qN:>D(\b(buW%bDl3PD,kD794fnFoEH?@/7-l`Ro'mVBC:lT#$aL7#A,iL74O*Lm03=0"[I=WeG`:ZYH0#g#9;=Z;flq
%hC?s$;C!C.jZ>l3=A;]k=Q'Ui@'EjG,J$d]3%u*rLp\6U"CO<1rurB`.m.,h(\8P:kAW6j;N_T[m*5ZHE5XdejFBjo<bS(`7VbI\
%L?;RM+jHr36^enbb7B!X#$Tk\o9-OpHP]PFR-]'T['btjQ#CLAniO:@o*=pC9Ka!_A8YqW@`T_96IA-p^rq_US=Z-hqusPRLP5;8
%_0DiIl%4!$0XmI`\(I27rl&r#)"BC=[p@srI`2&`qf,l9:b`E;-sX-RPN<kSL#lXOS0(XL<n0mh54Agj4&Nh^LX]53N=&G)&b^gh
%XfI[,WGsr7Z\=mJlY?Xl<n_?>2f]PX8+iN&!PRl>.-Rk.(Z'th'@[5&A$+euhU\nTFf3_HPCIZ'6Yf4g6g^nCY.okJ%/h&G!?js]
%V4:@n3MA3I6GbJ!-d#5Y,,-^0X)oK%Zs:H`8OJmtWXD]#n<mO@g<e5(<*F-@2YeV?2!Mab9/9hA&J^a*=#?Jr7!M@VJ5?]">BR53
%K\M$<b+=tDI..D8IVkSD!k,$_#BhpR@C2b!Kbbq.b;Pqn@tgk%T&eFJ][c_#X2^Of*G:<.g/a6T0)W\saD;i$>kCn>Ce`/mCZpH`
%*I9e87#*sXc3Vgk\$5)US`VpVUX/Ta;6'4^Fi$eZ0iCu^UanSsV>!F?.4RJMNZ.#JkVFO7neaImF/nA(@u6SM64_G8?Va:):f*!S
%:kcj$1s-B!c5*@Y:<n"X7*bJ:]cM,eB(f7lcOst/:QV(R2/I(K9Kj2+PfHX^)YN#WCm"/tM]Hq"f7eXO,PD-VMh][8?:maW6:eE#
%3uY>J1juuB`XjH`r",5Tm7H)-56<UnPo1'))\U#M)32nnU3+<:^0GKSACICP10%;nHH`4[;n+F/\KUV[?EA]1QKYTg=EF#$9GVHW
%RT!CsTN"Qf7P%RL-Z2r3#tu=@K@\:.92^#I-*>_tceI4A>*!IP@8Ck!iO]D(h\7>.Uo<'/"UBi\6%X3K\.Jj0UYOsQd(<_.g[3UR
%`m:GO0(!Q.>'544:4:PsP/oq0EcV/<\]HLn[uDoRoog[QMML8]FNm0oUn;[pjKB034+/Vbs7pZmhBf%Dd@HtRI7OT8ee2A-=>.=,
%]rsOoE1V-c\J0oo,K)`g3T6&ljaXn,^LoLUn^B?O[Uq3c5-9LWW*OVlnuZE6p<s+Yb-e?X]f;HV0)fSB!aU!:cZ\OnLL#4%(8`:*
%h1:=/Df?_O$S<`/IY0fNKQZ2$)>:nP?8E&bYg-\S>HXB4SF8bReV,9KODFa:\#`rDr686IbN4]ri,(/$9f`J752oeo#$c%*]Xs`E
%^?0gMPC9tun8mK$<+f8?['k9E)[0h<p$B^??&>ncn\l1;m&_7>aukfX-<lXaq0Gb=YF\uT44Uo#0H*i?ph5'QlL$LpjC#TIYdCK"
%WAS`CLg+ZW$D<G81_]Uko8e$HlaEa6EDLFX+6^d;TpO>'$6SWun_LPkVrfgWT-j;C@\#'SY9mGtegT*eWNKP$!iXs*M>(XXg-O6/
%BsWZmaeCUrS=V(c0M1G!r%ueEi%[-V*+)K&[]]XNf'NkCW_[+^O68LX%hms=3&d8nVPEbUM'H<<!7&J]"ZNte$LXP^nURbC3-^P+
%<XBqQTb+H0@?Lo$QG?E;nXmPqFmhG4\=_+HO7n.8M,P33H>*DXAn>K_UAZPHWL6\,??@Y;o(Ss,9FLgBpSOKofTok<XL=g^S)#KG
%B*nMd^n4Z^;6Nt('/H,rPtY5Jr'?kWBuSn$D[E0sIU?ZHJr"^cB7c)sG,GHuYAoaDj>ok0]eYui#!:UJ_sIEg[\I^j(j:d&3)5Y.
%7Ber^hl0+ELF4pgKM_^87j(ndr>B)(C$#?FodS7sj;@";+=s-1BeO(2)>pf6d3A6]4[P'80DqtC1%=e)GaLG'H,0<icRYkCo0Ad-
%m%5?N&\eh0Z%Z-JkMAAj<25,:-0R9toq#@0L"[E"Gb)VXL]-';pJUZH?2^sUiPls&eT'8X4h/eF%,3%,O^171$HUpkXf"+'L":<&
%Cs[K+C0FF2PDdLsB\WtIp!S"ucF79;R<#lCZo3Xk*9P8=E%rk8pdl;\TdXbLQA/MBfC_#6.24)N:KY_R[`HD7m]>YC57AX7V@iRR
%#<T@j\N,oBRrCFtbB=AA2ic&EA;okt#Xb!KTQfF&YBO@*SiQdO0Bdd6"Pnbb(Y'aT1Va\'cU0NYrCp.?;paH@+g&>p&D%nrOBsYj
%Z$-"VL?9,n[,r"GI'C@[VX52;pG\E.0V-OUp$Yr.Yfc*.pp<pNjKEneRh1EL/0*t%97*$ie4cd>o[O8)2Vk7`pbZD$%"#>>n&78"
%F_X:;m<#C-0J,P8r5S@h)+Q('kqop!nA!2-V\s%0^VN*3N[F_.B!$3(?@8@pVU<Gf:,*4q?=8)2EjV<0<g<n4hptH`WS6Z?h8V8;
%9>dVam:bNt2p'u\5gRmU<Cg73K7OMj-aYVCF03-T+'6XaNMS[NA,V",?S@sSqUHV?S&cTrngLYR=oKo9T=+j9(M6EXkhFZFoH&\u
%U)CcpPXA:A.jp#C/>!1+h2gqOcXpV[XLa@#e.(<f,AVZ]kgoO_S9S0-DsF/p(sH?V)Y5]d[o%Kij7P7+ZQttce[I]J&'c,I.k:cN
%Ykk_/1a1i=3T@IiirfsC2(dEMYPEORpr-eMcl`7_a7`GKIPjVkJ[p!CmM*_]n\%lZmphUICW+%'Rkb2N/:HSEl\[H/ncfuW>T@.B
%Mt1c"F4_RT?;-q?@@IDpXt,aBqBe=6qGu4(B\Ukj^`9-@K$"d:0a1s4f:.!Hc-jZ/2Q'^p/`]!W1[`f^?khPN3)F@+^CCh-bQe\C
%7(r=):6(FX:%C>ba,0c>HI.Uc9cpt=SU9grTT?/RrLouQIB@.o=/"FkpS"?K7p=2(LZ?'i2P2\,Y9S&^KWEY)cM(;se!)qO&b$Mf
%c[)r(phD+bO6<Z;$?Y?r+F81V8#29seE<2=d'cTj0u;hb3@;e.'8.n!R)C4E,=1PDSRW9SCO];f,0(t_gW+5&T-CR)qAbXj!D=e,
%!kARr$tLU@0[T8_].lY2>DNk"k5kG,q%aG^5N3aNhMArUhnlY3g1ZE)=s@/XJa6(,.RV2cU?e@r(!f9K<kPnCZK'\ZcAT-=ad6>Z
%H1-F5e<XIY)=Ek'hn#6p.4<0?ET#!=2t;^1CMN-5D^p?1QL9f1H>?0eWGqZ>.V^'2?B^BmOUY,3grA"IO0`PlEV"kMBBqC>qaiut
%rjFAt"Z*<YQ_cUB`:$_W;Xp9*&Uf]+Mnl/b&I@_IFXWpU:u10ac%b,J@<E+PQ`afqVjT8gm\MKg9muBRZJQN1GbHo7lB&f4.q^u_
%1Qh4sc1IF%fJitgkrI&FDH;hIrVbrJ'Di?JJ31`mBd#&O#X8:e%_I+OI'[d>'qVU%!eDNHFGg9i>$HSP*AU6%D2CXM9I(*2:>OOH
%B\][1p+uFs@OV?Za&3%.SJ#mFI;/!4HL%b%lC4r@U#oukmb32=G96SY@6QVX?bQjmB99ll9tgINQ#Eji(u[@JChZB3:,An;RSgcI
%N8g6r1\t_2c#RE\6VdeJ:Ps&(e3>;/C2W<<#=7ZNf@(UhL<U.]2tCCA+e<kGjN]?=Am+d6m0?7\op5*A>=`SWPJ`<-Xq"(/)a1>c
%QW1TYE!*1s54mrA?K35K%sF5(C#XZAQ>3^c\L(G=Lms32/r7cY[M4O==6O<>NfSNk:+`1'gfm7q3OXEU3CRT.G3`BW:a^@!7C]FC
%&FTprlI'X!X'2?WoW9"eH`V\2Y&k_5GR(CA"E]B][,)6uLB_sZ@T2alIa<Q"8Bi8@!1fs)6peoX2'*VQV^H8PZuC>DNbg(baluQE
%?b<`Eq]h1a.#?O^<"IsW]qHTj)^"sNH0agT'+9#&BVH*Po5Y^(e,J[mOlt34=*M(l:*B-7jn01;+MPpii:UD["pM2k0g_Ua"u._.
%B+WP_FR]*#Rq&))oWktK(B9SKJ-9[#.,?aJ:_j/hVf2A&g[[;mSUJ0b3(BV4a!GLeIolr>cO'PY3LYNaKG'F$J7'Snfe(C/G_Cp^
%!MAFq.VDGN*^-[B=WkukF-<GjVK>J^P!TlI.oV3e;IR/N"dMiLK`mo"$[q@5Sf?ohO%X@+0=1G!h?udY7teK4^.aLCV,,>&Q*d.Z
%1j6D3UeQQsj3u28(NK%sche<uZNph.o-,M.0euCjq-5YF4'qU?1Kf@=3>9<LUQb)5&+ae4Z1EX?k5-\9*[J^W1g/dTMib4OpY39f
%OKp6bq7\J)[KqboG/`7/fRY:C-`2)0Orp_h;A<U5[iC*E%-t>aDFlFGa"=?'H$0+A;V+gdehP1>]:S]4QBc(4Z6cVupZPoKTgV>p
%<p3ZOXcTZ[6Io^JKmr&dYX1FTl5U`9JJQgtdEs_86;r])V-'%3@R5gP8@/Z-'q#huj8(P)h6\#lm^bH2cp?.m4+$KA>*h%PU<(Tj
%qtdQ5en9Rd6ZPXe2r=u,(?l]t0YTg.NPYZef9`b/?(9Q:rTCN(VDZcnRVCRdlfqp3mH^<<@3O.k.4g.,#RROp/OZ>FArO[G;Z3^2
%jaAmVM"4)+#uMbc-r1&3-_J6A;g@jpp_bojs%Em@o6ACZq'/kD)tL3#gt2bg/1@,,*Hd',E!flZ]2e]E<9ZK:=Qk%E'l%-$`Oq?+
%4sFoUOcL.p=\HgRkKqsuf\FrZmblYacn(o_f,qDgaMS@%B"PI=D:E1/be"2((Si-Bir^'f].'G9G7Auba)bTXGr1DZ:71uBIdaW@
%qIu+?Gtuf3D.dH/9]=6DY[gM;c50FCo4"?R_2Gsn(2bNh&ZK<3WJ)gM-dj?H2i,FEC<d2r=td'0lM]Akj1'`D^Z%;+mLM]Cm3UcW
%C[-Q?@Anf'[f$eVXY&bN-CoP]i9?[5A#-WMA%3M*UprOTO2@k53F:ZDN#XOYWCmgb&>Hem).\LC6r#FobKft3DV:7uUbR#UaUNO^
%6S\rVLV*=@(oDI9k,49]5)q@8?+;tp]cVo3pNS'+\+?lu:A!\#SR&V[\8a5OOeEG@()].fY^Pk_%"@7c`8#;M6;;lg_L[fJCZG,j
%_\#h0U[X)rN:8Y(cXSfCP:(SGjGj.5Vmp.ekh9NGbF#kmlT(6)ehPdYSjP!_UX<__*5>[C^GA'_1p>#MrS96o=5(:uT,&s:qT@N4
%1l+W^B_5-W1\RC/h0D&0F`O3N\Tpe2:"on?h/(/Z1%l@FHoW4I,!^;<d\4C]\BS'bfkNGTnh^k`VTI:dEeI\.E)^Y#q.LWc:TO!`
%(uD6ap508\]O:Dck@?65m0QR5^)b6Uce5Ks%X"8f\4?32fX/8M45V<G?c;Ugb?lMq*OBkQ1*lBt2V]3.Y+1+IG8K71,7!IIA\K8,
%41E^$r[<7dnN=t^(W$(ppRh-`p*fL%Zk+)I3h\5o1aDdKZDI7fT&G=+*[LP8[\I6"V;ANs1Q>6jHp`t'+dK4m1"5Q)h7jcHqhW)d
%[Abl61U%>24C/P.3_Q5N>(,/3GBD?',1cao>IM8bPo8QT]]^mjER":G=LJgs*>>F`2@`/#dOVD47/"T0lrY1TDaL-+1LYJjl^X)6
%(0YK!S1.O4kpE+C[6IlRMfcBtX.m)I8D&bN2%k(A<;ZI_=Nus3&W>I9ho"rgNp8HOY>1he<jX#*"/;?7'RB<sZ?r=LcL,tbd*0n4
%F*-X`i&A^V]u1.>`t/_ZAY)IhZd#4';CFm(2D"\=MPd(j#$G8&$:9QO84!#_LrX3`:Qq]U1`<Q2,POE2#Ob@JUFH/XL1_e]n-^Nk
%n-bB,itl/g<cl-pjkaM?To/];AT9KqbpL6(8_DA<GoAnAFUQnoQj>ts#nrAubfGdZ5.WeHCojrPFu!fcJf%WsTccgjfCqb\%lDd"
%c"si$9SSs*gWeNnW=Mf'Hs8n-=+$B:jumD1TO)fF[^D+LhC+=i,k['<J!'rijs(`M1Lt37=_He'[EQ*H/W97o-b8r]Ji[9tI;s#K
%eCrCbP+m_oOS$du12f,3DU_>;8NaaYmr+;TdJrJAf1f9VJp`_dZWN].hQ$e#@gZJ>Ibu?XN2kbu-XPu\B*rB<XtR(sQ?CO622u</
%gdA9B0$f>9T_<iOcoI?5(]nC6f\4sH>@c1;8N8*gCmGk&af(U["F'dET8f)7LF@eA38H3?GE+'<^(l[ON[T/[kBVpXH&,NeQ^4Bm
%JanFh"7*\Om0gZn#O42-HcG,N4Mu^^9q%RKe>##p@h.Mn-4KaQ3VD;CR9aU'kH4@!rB(R&eAR4iY3;ml\A!)6]JCZ@boXXN2e3he
%kNUfg`l$f(SO0[3ke!G"'<e]GWEjEMEP#dtm;>(2[5GE@'*r++DAW07:r%W!1#j7JIl`U&[m,(Z=PI_Cmcq$ch&aMBMuD?M7'YGR
%ZL=fGPW/U52LSh3amlT^"ApSu,VS[@r%85$YQ%_YA"_Dahj7"5:c<rEZlto?ZYsJ7cY2qsRqOYTRa2"lChDBd.[ukbOR/C?"79oF
%N#7[nnr"?iG279bpb?Gh0D6Nu"P@H]D"(qVp@Zk1p)gMhR[8:MJ`_,'7I?-)nZAqB$1[?tB<^h&>F`ObL7!55`bB>IkFLKPncO?2
%DMGd[P9TX)&?3p9o`bl94<RYo+1Lq\rn2iqXq1dVB<rY_%Q7q]5WVkK`<n[?2ah;OZ8EtEm7V6.bc5sNFd$j;X_etP'7?2Ge'dFr
%c+KM5AN$a-LK0dIM)(>I]?:5S4HTO54W[l\.q0h\,Jn_e>;uDn5:Pt@<Y#-hk5B*54u]iYDW5.b,kE#*\NA$NDaXWNg.s:tq"]t_
%[#J]?Vp.?3\lnb_*Fk[91O,;Dmml^1g4Hn$l.t)R25_X(0p2?%T0;Yo6!$.Vplk<orENCoFf1fbg=5c*&WE/a#7NjldW?85ZS6i7
%>-r=O;%g`FaD5PNQF])MckkTn*VpDp4t_\;F.5,'BlA*d7.`/?T,E.kqX3kD7SSooZS,+X^=tFn:WUe4CDLa4ZaaoK<)K]t$%R8^
%2)ho6NOFIfI&e!to!=CXE#(F>5^HH_`_d]\H(4p(7l&?6eQ+MLC$b?qa,JOWjYP\e@%$*$+I"40ocha(i-o&)KWhXT^<J+R<ZWG(
%g[u1'.Itc@gmgcYF1O/_eEO(Uo9;,0c'HS6#oiDq::ghoV";6;[]MWgA@$"+_%d6Dm&9Sb1H&16aap-XXeB3@Y8SChe0KLl?*sfb
%39=KP-iY`_+891KmM=F?F>eE;oqP3eo8Q'R(Pr$'0]dS<d9o:_dc0,R]?$4-F3couFDGl=8d\S4lI55s"$DQlf:T=K*<`3ol0Mh>
%=h[6=TFHaUd>]5h!RWh-U"cJu;tjR6;Ek=V4gR;B+SlN!"R1G\f?gc5GMcRcg*6H-6_C8ZrY;o>FYKq\QXs\3H(=Uf7i$7VDiEei
%K-tufH#oPP"$mb_Xh3J83c#bp=.Cl>ZfK#,oBAC6;V<6"n#?]`>^nP]2SuN"3gjN&5U50kD"BjhLW)<80Rl[h%-$VBfY+Aa80_3O
%]$!*5rp-.&EXR0(mUBDcW.&XH+'KqY\S#sd.MT-nnXI,t%cmI?8)@9:VLErISEM6?Mk#&q=AIddr\c=-5FgD$bC#f![9pC%=;-Rq
%35<6&\*nh2,+:BspK:H(_W7"<I?/F#U\@-ALU$$r$Y,iGJ\+WR2ANskU9h-dl`u_S40PlD(&5"*f2e*p1n3L9rbuu1G;<ip;POYi
%K\SE%L["iE3o3qgN\\a/\qOr-$/L0kODpu+_H-'sNa`@MpnJ^CXg3UKV\?5Pjb58RMhPYB+72U'LI?-i@`tJ)@`EWJ6<2RLf1/mX
%e29Ko3o&i%C:CAg/ideVSNZ]>UK;q[YQ!#a.MDY`j]n;G1]r"6bO=&89'u6nVO#,0X@B@tq&X>'aO]?XF:fN23]Qb[Jn;gc)cX'^
%,R'*%2O8s6<I6fq;-YC%l:#]Pn1C+"#O"G_JhLCHR1Z^_;c>2QReYBh1H3,TWF@(OISW&V=n)BrHI+Xt^Z*PG&>j%0Y`SLm>u+l[
%QC8!q<*V\e/(*8[+G4!%*dTSGI_U8K[LSALj&b8]gfm1JLseL2@'a(m$eXf@KrWX0[mCq\ETRe\KsLOPg'0rHh"B\MMEF7Aah7a\
%H:>KBf[*:@pst3!['X.-g*#lk-).G$H#G+fkHm/VNW2NaCAlQHloWfuLZ5>l<ZRc5cm1"D1%Kk7K\$ZDYA:eS"ANb2dJs]h\@^?C
%Co(4c3_;#^LfXl==,#e5&Z]hV53)2P=5RhpS4o?S[SCmL>.r(p%Vg%2H$YIVDk<E$F8&\ubT^a6>,JL3C6d%N*LbTDnG&[5!oeem
%*t>DP'M=3A+[reW.K9"@2.X]5`?-*JjDaoHi]Y^1ENqsN@'Jfa`1SkW*h?:CTB_rKYQuO:6akMD8\7DZ^\V8okZHn^Q/&N(lW^t9
%V8^mHja49X.E#(_n1J8U,5!hY;B;JQ?Mi/!?"uRHeI_L(=4</GXWP1h&;te-IQVc?cYV\ql&%B8Na1i'fi;&!Gt/HrdFH99s6Q_6
%ojlAY`S'E6q]rqG$N4e/-e$OtMpSCJ$T$1$%aXU;$IE]!UX-c/q/J/b5+=4Q`7;sud7,nYkH2.Sgsia&1q@R+k<6bp>.7UUCKH_?
%@:R$jOKVX&(`j+Eo>I+Gk;7CTVtXjs*A+Cg)>=#2f_M$T<i6ald5SI2UUehfI@7oIZTLdrSRerb?48+=jR[gAW,XNS_1%a^YD0O.
%/2nZ>*E9U21MUu-l0?KlVka(BJ[!Vt3TJ.irI!m[qY]-eQS,rEo'J-`H&[;rl_iK^`dOiD[&+j\h!HF3r$%hInbocA**g'994i6a
%WS`Q1mjo>]3RMJt:s$,-F1b&LpVUD%l0hndh?\jA@_cCdR^5D1hWCa8FBon@E+!5WjM8omho!>0blcF)DnT_HKVP1[V<EhnI?D<@
%Mk>E$p[B3%QiZ"k6_D@aTBF/A]Ql.=p2O>M"=J_,AmjrAgq*doAe@%]cu2D>4h\5P=JN6F7%"ae=/KlgntMVV\rQF*1f!Zf]f,H6
%a8P#=_fkT]juSN"j#N,sj([+4eu(>GCSF=4Ut/L<*>I0\1:BD;feMg/O+Ce<=@iitM7Q<'ePqeGl'?(@@Pnpm-&U4Yk^+"-dn6OZ
%\?Gn_*BZ7bf0.bJPdB18L+1s5h?L--[e>>X[S^r&]$1^jgge:gOE;eXRP0nIhnV0;4H7/*+AEGuF+iI=&E.OkIGYcgA!hWo7PP$J
%1pp])dF?NLU8aj"4IOqNbP#K@*fT*B`Vd]Jrj7KYFZ(njVko9UO>a'8@b1nn*,7.ghcEM7M=dWa)^jB"(E_[+T1jL9M/PGs(Y?8+
%D5t,&<G5=g)*(2Ck[Yre(tW3[kGdu.I9^V:Ud)2.le\H;e(T.Q0qCB$V'-^rQuMoAUcMUQ-H!t.PjddJV:Wue@IG'lVUo+SD/&$R
%2bN%37))@`-S_H,;-(cb-nAj'kH,A]F3k_`F]9`[QK7q#l.f1K"@f(H8E;.<h95@ld(aB$ql#I=1?`Hd(*,q%ILd:qf(CF,c<%Km
%G-ZB)h1Ne;jOoI$HP21a(emBmg*`qKdAKh:Seh9OMWm&JN*klh1:D-?P'P!;\+if7c(aLXT"U=\o+6Q?S<Ts4ots?df>$aLW;a6k
%l0@H8f'"P>GDt;D6[Hddh`2DG0jsZ3dU8)%q9d&X3_)I$$:@pc=ee'j&o4!]oo5UCNT?_`QB!%*)U[:5o)SGC1(Re,;d@9UFn+7R
%G:$%"TA1;)R%7l,Ek0G4#N_+;s0F4l4nSbkaBuW2P:'o3PIsZHEGE7k"TE(Nq:M`\=5H#I*hc*UoQ'#kAeKnE7l?Jq:XU69m,@cB
%-7KDMD`(+#p-29\(P2)+N0t7`?d4rUiS:j$BT*pp<cFk5%T5=bcR)#:$5sq/Nlf[hJrVH2-jg^Qf"SW6p:YsJY5"^30kl>1*3S,,
%1BQj:0+h#&IGNKUMLcSOe.t7c8.Otj7QW^=0d>R'L_8sUB2=+m2JVh/OCmN(bpn'^//43m`H#;Np*5a!9$>j9?+ucVYC%k+Zf9Zb
%YP\(7))'\T'//'!c-?-io(rN%7)./^pni@5qji=Z[#O,0G)fTC9JbaCO/^]6qjjlD'=sW/A.FWuo\)$KG3*H3%8lf/'t#8RlJnsl
%R<dVaS7ZQ+`o@1DBE,V$\j\EYVRF_2(&5..STGHlM56'nCLdJ<GXUgn@-59,"S]EKU]4ALeStiDb[]MSL>d3%46@kRG=+.37';Zr
%:g9M\5>4gan?#5nLh@g-c-+W%B&,QiA"J]:Gb!XZa2N:!48V@3hN4$&IbkE7bO%@ZgodN;Xb0@acWUK4],]fQQmEnkMqkD2CRo&%
%/95Bcr4KgY&#c?3N\$[R;Gh1q_rbd2pnP0Xin;A+0lM('(-(]C%[;bj3]b1WTCD:Z+`HIFeNWeNkk5B6:WUf?CDLj7F'3(X9T0sJ
%7C=EWe^qa63[PW]Z]AmA(-Aj)H<)`>;4Ii9QiZZ2)9pEKG2(ZGWQ,)\'36b_5/TO@QVmU<U1ootZWMR)qgJE!r9C!4cq.f`3a&]8
%gAL7!g4EJQN]AZ-&)*WrIrLj$X>ue4?Ds/n@Z(!DJMm[[Mn?^F*?sn0F="`DHT9]247V:rMT\F8&PFZ'pk#J5k8oY\o@BQYRE2j8
%;3cifksXjc;/#=`neYT'0"`*Z>:OT3r0YmFa6KcHXRiTj)OWh(PtojofU;Wc2n!M6e&5Fn`r;!+]HB'4q&S*qc>p>-aN#F^]WR[:
%+;4DA$r`^AY@Tc*;g4;7(&q<4<Zpn.bCF=/EW"ZdA#>PUp'%uDVp"koF]dg0^=Rg-c='EGlN3:5K1JXaRLUjc@HQOMj*P!6>=M%=
%8UJBMe;aoQ.-Rn;,Q$5X*m[?k`<s@]E6BVu(\oTbScjb>WCIuPC6X%"D02"T/Z$@LpAHd[jI)"EjUV_r%Vs9;`g5J)74t&t[Zf0N
%8c(QmMldK\,0Ef"W?iXWY*/Ujra#cf-nl`RWfpRV^RpRQbp*#_r+#$:7s[q^\]AgVqjLMq,3P9bUuDjF]<sQ?Q;R?<iA4ur_-;\7
%p`P]7C9-t!`r:'cc/\Ss&X-OObd-=FP7J;<VKLc?ga:].aGrj!bU8#4]^Tm5YYk!KDc'Uo:\,Jf9YG^p^<GGh$3%1$?UVd_4sIL1
%Ul#ah<mA2M,UD:!^IjJ;2S:`brUI#(f\Imh4hZdPXH"9S=S7fP&?EN6HJbAPf;n"Pb@n.#DSFau%Yp62Pe-@iLXK8hTG*'P4mn$!
%4]KRC[.h1%,]8>,F=jWAX6QX6*MW\5C8@l*m_#P"YkC-&#?bE)jqX:V^(mV>dL.8@TO4%JBG%O"1+bgn4c\eio$bMoqDEE,LLVEG
%>=[K"V?o\'<ckA@+duL,]eA?sJ%jDZhBGrE`7m4)N^+,M0Jn%>:"R^$I22DSXQJ'$#$R>C?sA,g]g(35aV\fqWP=0g'la8f:l0R_
%OMHuS&e]Gp=Srpb]3DftI;N<HoBLf?&B2;mB;DWj]h-HaP0ceFrY[+rrF_e54UIB<9^A/Di7+Gt%_g*-f2^uBVpGuIC)TDV2>B:K
%nCZR!dY30%[(YrDFo,9Ok/9G!\N-pU4cIJZ\RJJr^I#I&!pEWL]rjP3@YGFnDC)0=8k^+fQla-_hM39L+FPf%_PV,,h"GZ^b92?s
%iA<$>-,1MXhTI&]B1D@3$md<,R@tlhfGu?WjD;8pXI:ddjAj,\L`qL#L&TQ<PGB7J.gos71!,V^jNMCI=sFR$kl%I99uPN*+Q/tB
%`uSuGR"CbCSS^!^a\*Vip=6go&N!cTL>>C9WFdK$>"^_/q3-@X1:tE8(n"ai?0n^uZ_HRuX"4+(oWf^L9UMS*Xq1fLp?*h`QH"lW
%_&"!>PkHhCLn+MBSOZ1>kVJ5T/kpDG.74=9*edh?GUI6Mo!X",\&':M3c#ms(/E24Om+:Z`=).EnU>F%59V?R;\3D]`'q![(!S9"
%>t9>F$+7BIrX$:Nictg$L1tZYcYhnNcZJ63h=W4+S9uiAZ'I+UP(_8d%hie+&c],E[aoLjR2db>Z^H%r,EGmffa.OcUjcK=dpefu
%imW3rJjqW8GpI&[/E1%2S:)c,GFhN9J%APsgPd(!jC9=LP;-r5ekKf-8;*uq!"au`eHH#g[AZf#\(N8*1qro&QtOLh/9:._C!tIV
%e"W<arFl^iSlXF-\9Pi!_Wi'Bl!PU#bQgp_^)asMce(dBSp-l:MgF'kg?(;2I%rfQ&_8V@r(1:q85sHJ7s/Of8+gJoO5qPCMWCOI
%VY[35q*AKCe5BMF8+A[^jsS"$8bH6I^MXESDi4N^HB[5H@F9]aj7eH$DdAE5l1F4oSWFn(GV?NQU%T]%T&elf7ahp_p1YJ0#&>9D
%#5`!3An'FL$IdV<L(#Z(L1D@1kKSGi7^K>q[V'LnWD3+4r/0fB\.NuS[977ZE$KBbroh/c=L\rTgeXrkX9_NF1+tuCGRPY"5qnPC
%0F3D2=mDZ$7NP^fM``e2XDuoF]C(uBMB/H%pLHU4Y"if$OfK-WC':F._]%bMZ(M2DQ)@3K.!T)jAJ.6eSoN$$6rH:W+i;:sG",q:
%oYlYMdFCa^di:@D)H]$B,j#ZR3CNAKR4ujNGr@h1\D0^@:]M/h&AUG0JU1s9[L$G#5L8KVDbSesV\PA.AgeqPb^TN1iX)S&CWh<.
%'t<A-#iCN@LleWtPAd%ce,4WcihIfJZF!D^q"Ie<fbVp_DJ$6:Ct>+giA=D=k4-o*GH+&eg.7J7;>\U7NPdc9p="\>0N$+BbSS`_
%'>-Y!N!-?2&>(L%T-p"K.dCPnRB88@hk/ZudYEU,^9+-TX1_:]lLplZM]2;mBlb4P^.BBl_KqO/Y7#4g2u6'4niQMdZUr]ERRL[^
%W+Jg\m=Q+ZBaqub1%,FdL=,$8MU,G654A8VJ%DeC(mI>4MaXItho"aXm8%r#@GdgrJN1fq;4,Xlp/MYg8H?I`PeU+cni-5U*;"MO
%4O'?S;p:iQF[g<OpgjYI@rbrBh%KjrS=J^)2l$%X[a7AQZ868u`i(T#k&fE(E60b#U07C?d\#NmVdP'95^A;q*eTsFaQGQ;qDi`.
%CS*/6K9^qBfpTa'?31k3"*V85;^?q5$bK2WgV`p!B76l/*(;SP=Zg(R_>cW0r8lFh\XVI[$b\F.*h4I]B<?6dNA6K"]BPl-.TaMp
%a^!6]Dd<_mjJMUpT"[*AAso-;UH^?-#NsG"+.E-ucX$FWfDj,<s5IDbpilc$ornCCrGVZ)YPt<:8oD$B?4d6&^tL<JnkV?Sa!Yg$
%odtnFThd,[=.d*fiYS2J/*9/e_Xs"Tb+kf*Nibi(q]C6"<e,ph<1gSXd&\@C6Z()8:i6R^lPkIXhi%>9h5Xh(EJ\-sPtRpM)S)nn
%jJGAY?Z8+(P$?n%/?#XE+4>o[TDtSH4b5GtX!\3;71u,rU,[1T"QPX8:U]R%rS3ML^LG@f6PU@JF`L_EP"X9p(ZP3c1bFPaGu<=Z
%P0>UGFp=JdD$@WAJ])b+n\VJGStFV4V*-0CM9"_h0'-!uIbH\3=oS"P^Zj1rPcFE'&)eg=;#B\W54j(J52uHqJr;-;_Xbt;?^JSN
%1&mH-bP1XIe(iEEs$`Thn,M&frr?@9>>0GBB8sjrIb+O%k'Z'VT";PPHoF!-EHB8ed@<F5WqS+9SCBYcP\B;qmb-o/^5u-uS)gUa
%1]Ig.^qLPelR)C"2nI>=g4\o\\gB/?#u>F97sp&Yfu(K%D_nF]Wace:17b^UJY&+j]W^_i7m-D+&F-s3G"O_tW&(FWJNb7-mo#ib
%]KuRX5?tK)N>l@B:C$'R[s3,L*ZMWh1Ca9B7/YD$$[LQ$K;b]l<[8l#I>DtQHiKu[pAF%'KKW\<M%eeBY(&+lZGaLJ=7Vr7rhrQL
%o=f"@`\ZM#j3K4I@s*H<O4=gd5?>gsDf&/JhU&ZQ&OLsVWP<Usp<U#i`\rhP8>RmC97JUG@4hEQ<l3Lr>;'^6^cOi`Jl#u?e[638
%CVY:JQ[nf3YCLWl5P/Z'M`6;+5Apc]o=Z6a`#koUJ#c/%,gYQjo<*['EnL-1+9J-X8etn@WeY2*U9bF%F[Br`Zg2TPmEb_!IQu-8
%DQPrT*Kg=m]K'<70C/DUFr`#*,5bUA3>rb/V`s`J]0BabdP.#+?'*[i+[,;81-L*?EtQ=]&f#K*!6-,JBAB3p3Zd@9hqC3BHCKDk
%b;?-+QCGE653Z9dSfd=Rg,Zc/?iTrg+h4\BYmg+RMtUc&ft/5Hs2_\CouDKYDs"djmtpeID#<!f(A3aJO6;T$c>0oh)"EdJN^@"o
%GiB4r)IG:<(#:[/h_<#<8$#A]ne)`.KK[Y?Y2N1JO1=8/NqS.?<Pq_@Lm=#r%tClj\lJ\Br**IeV/b`qcMcscAmdT#\&NiLm2-Eh
%gZ%3cYh!ZSRdj=/c*$ji\PQ]1"XQc50B<A;[8@<3L19JPm8nV"^F[:Witp)C^ED7^[Jni7no+R#YQ+7PrN#s4qg\V<hu3HPornAD
%J,8KGs#XNd%tFO"roWZskJ.&e07No$s7l><oA_M'e)12MJ,JV^pm6K!XuRL6Am%Iog=S1#YV/6?c1TE_n%/=%IdB;uk9'`Us1S@*
%pUpOpr\mP(@a%n.403Q(dO)6o^OOj!`$^$a10.7KEH_=,,PConhu0S\%CZ920=i)RbkTfI?N9j0^<Kl9Z9@t@VE;cOc?Qq-Vb;@T
%poaV4osoQJ%H)HJrVulAhu344r:Q-NrGV[9E"CPC:d^%mrr\[>0Fe'6aSb3K/`iVCIsgS6I4%5JMe,r`Z/M:(rl`Ks@`4QSrsSAA
%EXt0Vgp,pum%eec'FCLU2H0,?Ofr]Wo$HIL[QHDA[r*s(79C8/Z8-1t6BU$!rkC5e!0\R3J6kCuM!shDD'ZWdYMQP9f*6kXA_QA$
%THZNVIeLt`ZUH=q^HB.;p\r!gB,O8?SPsL@ZlC@(lRfkn5NBd"I5kS+?!a.P'ebK+i2L!9L6WQNXd9q=hhj<9V]^H_9D:Mtm$H>5
%[?%h1qQlS-N"b%\NJuc6f7)*kAHC26T>g-U1Y7lk'-h)Q&OP#^`(ua),+ZAH'.C\@P=Zit)\,?CVdgn!,sUt,*]`g]<_%/Xj\+?3
%a:`kL>@\RGAQ@]2`0:1:Z%-Mqogl)b?<\u4Yodb.G2%K"pR:aBKAk-l]K9tir0pG=ZuMFMaLV?W1>8.!>kaGi[F:H8p3CmWb4-]A
%E!/2WD?PM^TG?X?!!,BX];kZ^5h(@X90!=&R<JkmW`"a@fGEY@&d68#r.U`s?$1cB3;]#f"pfU#hAZaur_aX?r]V"V#f=khmu6=f
%5QSRRf%Nr6i*Y)]+g5;-Q5fpglfND]U*o!Y&-0<nXJ&<pmS3p?6L&_.<^P:1RA:Zmr$3_NHS'W_NWbjHqLuqtlHOTo`\\6Z:*5Mu
%dGrGC`N:*`HB.goXVCrsOUNWl%!MYb6X1OUJ<EPFgd<K[qprKB\WBU\P.bL:^/Xco-t#*dZSiLOjf4DKF1/40dNnCW&HWC9NO.5*
%.=*Clg+]n[+!S-#(r#Vl4pi-O#/"8JQG(,Mc^2&Un?^tM=:!D1TRciQ'Jepq[31Gq6iZFo9ba?76@&OHi\sG$r5C7<Y:l5XhY3cA
%C4F@5rQma@Q=a?_712UMNsH5UE$Q^(9=.D5E3HN[n$N5BOP3@0jQ>;b'bk"gpUf=kkGR5:cJ9s<E1ldPh'4Q/.G0TCSlDImkP'-D
%c/@GDhF@\u/(,H4B5G^JVO:Ws!Jh9):ZHouds1^`4O@a-'c.(uV>TnCnYX<Qr=%WhG[<nu/J"=["pW9H+XA!Hmk>)baubW7LNu%m
%fii1NIeVUjr:Jb$#tf$0"NR^+HN?mS)XF6WM"04LZZNr@^Q/[LQab2D?Pi$-=9S-]"9tt_rb^HZIiH^XMsNLr;DHqP1I;Im>5#:u
%:j]=>b#Y&nXetH6RYdkj42$pZFZ+BTQN-?<DS1-O&Q/R7-s7+;J,A(.iq!Gd8IiH0lL)W@J+;^9],1MGjl(X$RYYED>n>p16F/uZ
%?PoI2FNY3oo(oNR'-6dqep"^7q*3]Y*q%fZrI`+E?gD%UDV`W.bF`\.n!i/kJ"d/sT'e\pmWC4kB:nTd5`H$G2eDP'm1t%kEbH[A
%P7UN9Xo&:TnF`91KpYmeijLH#[Rse!X8CcPA<h#@]`K+pV,bHHIb&C82Q3SM-]g$#QO&3K\X;%ts&>&UD+6Fbi"t"pgeh<3Sd/%d
%g=dpiEE+4naN_6U>1n*XK?_'cPecb72SuN8CN;h)HeX!Z1tk$M=T=pgqJ`<>BnphjNJ61Y5\k)l^iND>*;E)UYoQq2aObEBaUPq!
%IYjOS5#Gkfq,r"id(?+EO\"dbRS&s3Y9QHN#J0gh)gC<Y5;@WWL?M_=&b_br%lGW:M1u4`G?<KOgt-e'OD*N*<o'0X3@c\8G?qR]
%KpJoh3A7bX,r%YkK<Lt9b[BennaT;\Qo=R0#/gqRa,fp/E*_A^9*K&b<$2SV5XGV'odV^22HA\h.5lOPJb?Qs^WFbYp,as5$jQ(4
%K->r;*GrWS_\O)+`LK37GMetb)gAj+_hb\ge@V6j?V!`Ua&ZAnkrlYI0A\6HEX`Nmq>aW4L53S:BC2oS2We@O';-?,I_P%<&>/Hk
%iF"Du!Q?TW&m#'jg)3H"$=+hQ+06]"5kTk^1VOIWr)p=rm0G,qb!;uk/rLpoJ!O8gY/X6G7!jKil9?KQhLD*pmbdrmJ,%?>p%SLW
%:[ns9aVU'9,JJ#+RP$Q8EW.E_:N'D%g.V393RkX$r6jEJB67qcp2mW(g7.CDKa4(0BpYeV49Z'%Y+eP.05.Kb1Ule]JF'jgF<o,=
%f8edP,i=K]\SuX=a7Rehi75L.:tAK%?^#<d4X[XDZA[>dYnOg^B"X`*[JVe/`qM)cI/(sH5\OJ*IYZ5`XkIp2`55ABGX9A6A271'
%aA8Kt5_k>uGQ$o^l_NA77C(s:iRaQ<BO5tM:-=:&9e+gWFL1R`Bg?mQ\cO]p'W#[5Edt2Fbm%dUWl<_,]_(H$?!s<tM_^tlcrX'6
%K=1bPk7)9dCSSlpWji<!A/s7VohL2\!3IBl[AWB,hsd==::b4S;*o=6Oa^[/ELgLlZq$1]m:+2RXBON^Jm\VE"CHipH0K&KSC/@X
%>1K:D+``\]B/F%!Nf<*`-]cGo[WCK3DldE&JPcSTEm,7@[pWP7F(Z4V?JN/9M$!Q>]AB<1e>Z+W6UsclTK@*XaHg[Y1@T72XcVBA
%G.U7b^b-"C@$e<c$Co*K`Ur)-HKf7$SM\]!$b"4T(cd:j!LQ,aD.4d,MHVkqFcZ.i$02C5/NlYB:PWNj<Y.0e[9XAslO.??[s%?M
%\*HbC%m[M<q8[,k7gr[q8\$O2TB86-Fh_l"OA&XlEP#ft9&NCInPBMDp*FQ*6O,t7?<),U*W+O+p7l3L`-g&#F0:ZB0n!'=XNJkH
%QX?tg6)L-M?"-PR'+0t`R;k=8_)U=/$%-UBFsu6fDtfs4?!e7YLYe>9p8f]^PAfR"%1-H>9D2Z9\V@XKZ[k1&"<1XZ,AmZn)VQic
%3Hh69,L.!(#SP,#ID'X,%r^&X<?9ng6hI(J[&e+R7BAjA8$r`.j5:k;IN6]`2IVg:']%Ulj;)TC\i+X\@a!aPKO3NIlg%hfeKj:.
%T+>f045`bG8)a]RZ9'B1Z<+&J>L%MGY/K\oTfY6?JK2.tX(Pc!]8XW\?1!_p7[MDV<ThCkbP'<-XFh`8Wm!_E5u5pl/Hp/Bg]<Wr
%&>YYa\DVmf??;;^nH3(sWcR*pr8%)Y*3lhnS?J-cMsHhsTgMCH:..UOTe=;NTQ]BJ!D&bP#2l/mDY(#W">8VN?[$K\n*4&qd(OP/
%6V\-9:!&'Z\],b(KiN52(HMQT<I51q`+mDDTpDCfdg!ST?;VH9WPYgAN>hBuj5)ZnY!FZ627so#HWn^1%FdqF_psqXNu?Hqd@PBq
%A-I<UXY73S:c[N9<UOe=VW2\J3biC0:AFhNSp$c@0%h$!$"fIOb;MEo%80mK#`JTaGTGD1JV.Lo\1H]I:,PW(D9tua22/OsC-9MT
%]mZ%AY[(bVjT=51;mouAih/trL8V:Tn=1!AJ*h9,nN(RS'5C9A),WKWf`Pu'heCuHX-MZI@J/'t%QIN80dE/gmGb7"HUABm/)Ufj
%B^t$Hc_J#o(X8LV&PaHj=Z8WhSd`W5h'B-0*TVtj0`L3VU4f^)!EH@O6`+NqrHN.S$YQ1#qH3NdCn&us@^/Gk'K+3q>cl1@jK9.&
%krLa!H#Rf>=M=@76VaYMQimr%<bH2J.3um;EAs60.T7'.C)!0?8+X$$E0tMSmKE5EER&jud']!G_HQi]l)K!BVK_RW4AJG9n:"98
%L!HsEeTpLSnj/-*8od)?&\5%2661+!c_N$,HTi5NZpWmt^%eG-?-ntGNF]G6=.U?G]BZ2+*?_:0#BFpQi-T7Lf&/?[$3lbDB<G91
%'D>TqJbtR&]/F]o./Wt4dhN\fl]MkE!K^d/!GCWnF<]\nFsJNAj;u*C>gN6J>s2ghDDV"g\oJf32B]u?m?PuAP;gM,G0gQ%`0GW3
%/03-(?GcOL:M5Z&q`H^WF0bCIK;uV!U7]%[eWh1PL^4;J"ciAHd(tQq1;NE!\2i#]?_>UD_+Mpa'9CREZ6gY5cg.=NOc][V8u\#I
%K,CJ.E'g^n<QL``;4>`_TrQ^9$dmVY%QPuN5("@X=<-"*1_WgO^fsZD#A0<n3s^ZF)-bn6AA[-iY.`.gYcaO]/"DlY!ROe@<a?Lr
%BCBK%NW<:Rkkk?,6[@lYOcGM5;j>+Rc5/bm>,2[H$=Tcej2'l@1,.7e-BGk,c4"V.7ET(L`DW\j7m8D8eoJQhRlB(`QA%OhDC2-r
%Dj*^UA2[jckCrt+5#HMYBnDXM207c.,PfnW5cYVZOQIOAC#6s$G2<br50kj^5#K8^Z*$[M;a3IOH5'mI@+m5NLf#>3`juj9Wk;PF
%08k^_?GP'5-.OIs0bKb2UE5$dEJ=KN33uTj^6P3D<#Wgr;B%SH7:'%aH;o$Te2;s[je:p*k=@N>d=J%pi"7@+[UBZ>o^X:H?TRhI
%D<#r5;gn!)e'cmDf)o7KKhm8qb1IGo&'V^;#BB8W,Db;=2Sm;i"["c:eh"]m)1Cg'P*IU(.l`.u/m-$uLcB/=-rp'd^o+PrZ]DXG
%`eQ%b!h7h./pUDW>>`]B"BiRrUX'>c"ZB"eIFef--H8PqC.hFf$DOoDg'E39ihJ9YmS(K9DD)2BW.]G\.Gd?DJER^L?P)qA$Jh`5
%!!laC8lCNF@O8/+l&'=H>OT+YeN9'A@YK>.?:<YS:mYHhSX/CZI:0%a?H'_("YguT.H[Rt]OZ<e1/pWIj(HjN]>3Ar!M&.t!jRKL
%^u7!Qi#J"=&_r\g_bAd?S`q]FL1aC`91,f5KaQ)&Q,d(t'T$9"Re>Mcs(215i1X8o6W+ME]rp##GEPN,4o3AB;-&Ma$6$FB%+'S'
%(][NY'ZnUoX9V#fN^SqD-DZ>EnRT'`5]g4:!)`Om5\;@:jTaN!,h'qo<FC"e*MVl&#Z:q<b`fX%i-do0BG8`fU]r;AkQ2ng\LrOF
%bXN_^*^XQ,dq<h/O=2cXY:e89%8f9VQ$COoVSEm7YlUR.C']JI688HPpppp^YmI-\H\'#q>[]^eUu2BY0$.OTR$e&j(Xa4J8jZ8t
%e*@8Pd8^d"L.GqQ$R1>^OdcV[m/dg,M4o\gI:-Hu]9%o'G;5WX93])],BiV=?h!-(C5Gg(L+keZ++>bfj%\R4T39!k"fut#6e1.8
%THK"^>`1rFn4Z+N=XI;1`fsmkN)u8]h<ON_Rhan]&B]`l2<FlLM714pZ8-LmP[X*Y9:qUb_#IG<67aYCaTsUb&J2bfL!ki0L;)S&
%]om&hd6sk&pf4XQm/gt=jputb")=)4LEpH)_aEc+#)M"i-5Ce[Zg=-I:thUGJ:rq>i^p2k#Z:Dp(01qiUlaU?*ak5\R(N!QblHO&
%V<VpP@;WSXec6h)'P;Tb9oRDo=@aE"5QRS-qp>SpNX9oAWQftW&snsa_BfA*$Ju\t']K+K:po@:dKbfgKf<GraeZl/:,(WSWD?!K
%bE!!cW;Kq*IBcTGV,&2d#-PGcbS@dk=IBb1h@FMpXMRE6Qs(Ts#m="(=c^-udsuPtKoi[YAE)$97ZERr+-/tsS$O9l&!3D(,"0$c
%>0/&O?:-,.KfTlAE&$gE<AN87_:b'dX4-52d\i.B!2RQf2-h';CP8W4YKNeNBIkXUK2YJ>aCD8U@n\X84t#,rB3$Q>n3Pk,l"G*.
%$\[PFGcg1rnVL4VmYb$F2bGCa5gTXWP0g"hgEY5RSI>lnfu;L<>ta[G*W"ui?]oS7]^=-&CVW=%%!]33(*Af%3>Kf!eV%LcJdua\
%s(]@RrT\K^$1NKb%r0<<N@!tGpi,ZkR=hMY`F3\e>#Cq-N"rhC@sr7;*AB[>NinV*Jd;pT.A>5-DXu5P:QG#mfmBu?b1-4Wg#M!K
%\Z*kk2M(=Nc[j#UX<hcJa*j\6gcC-b>.qW[W\CD''W#mrT.J+3GhO!dImM*'mU<OU'QL.o0YNe7W=#';K_I9mT%[$Tn_$\eD)D]m
%Yt#fsg<l*@`C";5Lph9BPfoiW2,KHq);"2CNu?(gh+,Yrh'*UE#7i'i>QAcW'rP<,'d]6u!/TkVB9AM_!:cIWgHAR=Ft>@?)V!2W
%AH`!"DffDEXK,e79q:R1&6Xe\0^]]Q@^"BEkV?@PT6o&gjAWX(#_C;4ZBfR$f,rI99:KH;_(<^RpO`er>WB&E;4n>)\59L[MprL"
%EmG[?9t=ZRLY!9(TIuX)N%t?4m\;<sPE<"KN:I\OfTghfB>>hE&;$.mS]f??e8h"S!ob6nABn1QR#:RlS'Pn74S>/nJHd$Hf<-$$
%T($oEC["nJHhi_P,#O'^Xg7'<,2RQLdu]d^B>V%]`_QL;8!h/B5I!gTk"e7n\]NJ;&J*6R[_:@Tc:oso1A+&ICchLDNL'[FZ<=P>
%Fh`J3+Fa3q=bh6Jj)6i)"^PLt:RSbD&t_0_pWVp[m-Q_6P(3:afa2S\=TT6[lmhAV_/7<79C.UnPU"7/MK*/Zd/p`_2JM.G7BV9n
%HPZAj:MSCebrf\';C_3tPI%X-JeBFjFpIF:=KpZNW2GbWSZ-M2Cr$:+1=6dZDVYJ=#u`hN/nE"W1gRLt8AXo$W5[aY"B/\VNYisd
%.-hYt%(;d#\RYfoWcLMANT78W_LjX\eZVGM]5`/7re1kfHFd0/gn&AUGj;t'-S\Iu^mpr_K";2EKFMT/&\sWr.>m(52>kqT6TfB$
%o-0ZioJ..Ej+_o'OerYn!TPN`^^%#.`mheUKYn)hUKo3L'lg0rD0;BBgF-oq7t%p;E"p:R+2;9SG1ko9#5<.1dtF-CXuCGk`0<r[
%"'dC):0lj]gE:@o>0Eq+p^1ap88m/=n30;^o6i3a"aq(2:f0L-KnL5e6@rdPVG/S!XX"AGWFO`+A:T:he]JA)%\;K?9M,tPI`Sgs
%MmD96\0_Y(:]I<p;#/J;1CY10&af[0%F2gEb"uel"$r:mVF_]k5cDB=@uoJ;_t/p;`=Xe^!RFd[0iCk<5[J/4%Kk)BckERlA$]?[
%*pk[/<oSA@Ct9D9]:o)7k!6SM2FkJtohh7>ZlG5C$^@Tr.A)B3KcVV5I5qO8q#OYA8+SbsX?&*ol,el^M_M.`4NAM;>E>dhM]&9-
%>)XoC`[K5eFZmlh8B@*eA8?iI/Xco:>!t$O;51HQM-ber9p]$kL_E0;HttT`.q:lhJ/ElP+bC;c(:P!1IEI+i3n>GYM;A;-22:V6
%i-Gp^4(_(PTjU@-3A$9'lsX4:QV?BmeLk@cEfSQhCZS_gLo!-K0j8WbJcGf1CYL\,9A=,2_g%Keb/>>+d0VZO.g-&7,jf(7DP#mM
%JQZ^kBtUb(+Wsc>_4uG/[-9;=N)$@H'1#uGPlZe-P!IXXLlfV1-(;4O<Tb+T#K<5#Nn=9CWA$+k,&MF1CI\E820>$'f5?u40TG(7
%Wg8(U65RPHT=1pN3+L8!+BaLdI+@8Q\0&FpQ'a&P)6P#$(q=)u(_q;!$lXqqSK<T!3KliAZt9s%iD>n5k'CR5`sk.0N1P"`F4SKM
%[]Upap/PnbD4D`55S[#^"F:/sF8SWsI4lM&-GEURJ]\DMMMX<_.G$hM(]l;h>qVs3^9I%c9Z1&');/o#I]n;<D'I<V.;+)KUlD\'
%CB%GS.[h)ci^#U/pEdaO&m+ZR$!1,Nbj;Z=JIu3(N&KY*C/k;o<F\FHdOAf@e>U:Y1^k>_RNPM]efm41A.[bJ]%VF?kT^+d58=sB
%'$\*j8,S88S>@C/W3Kff<_s"KJ7Fe68pO`9T<STYe'+L<Cr^g^/><D8[C5j34fmHF]jW/J.H1mLg:96s<*l5'4X4AOb%Z_NdU!WJ
%;O4MBEY(`!==U^W*Ju2[YcS$24,Ljg0m3fh-^uXjn>MtZO,iE^%,8(,S;=l!8R0>p<'_R+(S7sD"EOC>f5MZV(a)-tU,Vm1NqP!K
%*a%a-T!V4haG']Pl>h1`d`T']p^NNW9MajZQ\Ku#YBYOI"'K8E]5d]GQ>/6K$fR=]]FC'bZ^]8i4tO)Zl!^T$`[`s1CnZ7nf`3aE
%8$^7?fJnPh4"3<u,RBPHp1^`Q,'XL\e$edce1-blm!Ntbpt19)(G^)lX_t7lfF.HPef`Ba3mnJg58r+Gi5DfI"$$E:*n</B/*t>>
%b-'HX;:Xec7mAphA3W?:g$c2BAII%!iG3qZ[2Yt"D_5Uk@)L"=8nW6:d`sc>SS-l1+c8fXN`,DMP<ISC#6o@Z?->Of_bRq0=;<>d
%N2-mm1m--f&Un\D`j.#8Y'9eY7E(:R6m*>P%eC1t&8iF&=r>Q;K-^=(4\)!&SkD&MD*u<DHKtR!#;o[`4<3&(Y-d:hS[Zi)+XmUd
%qrf1:dgMuG!52gBB;64o'X!9N5W[A3b]()k\1^8PWZp6Bj23"RlODGpOjNBL$dj\d_a;FF&P@]e5^-j/iW;&?V<1tT<9/On[@[dA
%:PcIOi,AhV,-,!Nrg'h4B2T:VZk!Ll3c;W^.CJ?u^bms$eHGe#b4;RaE0A-f$/X_kC2CehjdTcUB6f"65Z?RH%QT>E3)?N;"0gT8
%rI1XF6,pd^gQqFp/J2Y7I6Amhh/!.Rirkipetcg^30;t09/jJKVUd*8N;4dKjPI*0p0g+9^4n7rKkDP5KOml7?R8gRbHU?<X?s;6
%A#2LpM=pu)ot6QF<OJu%R/#oNNZW7`;,'WqT!h;P^L"V>n-p*u)Re8>23=D39Mg_hUimj&]m0Xe)lDN[\e(O'O&V_).-XEp]M4n\
%.:ao"#'l<SndZV^?KBTr[?E<tO2l3S]1KW>!FMQ!ksP`,;e1,:_nG16O8/0Qlu3/#S'EC+ERf/=1mYR_1_0t:?#IW4L60k888&-[
%EVt]gS9Bic>'?R@UY@CZ>jAg]/<i+4n#i4@>d?5pa-\mkF-XE<'<^.6^#;68KYf_MYKOt7=B]gD[>IHLC;@BNF.B9.XYS%k*%/&J
%F6t)+%J0&8;_=gXK=Nti.d`B3dL)(!YA50PMmO0_<"T[t7C>d`PLV"L_V4CpQF<T9S<?5p6WGS7rJ$;BPh`G,`4m3#l?mjH@3(^.
%5-d4211F*2\Z<\JPpR):T;6TkT\9k'mrIDaGj/b_I8ZgBT1i*-%?Zj&K.?1:Xk:O$]e.p_#X:<NPSY">!9l(L-qY?:!4?+JFR)51
%*U.8#d;V;-D%SLVIoF5bj-CP#GlTpIBNo?s"!G#hTZ(ip5ZC(#<`B#(f@jK8_ANDjR1tOKG?f!1=278qnmam=5@K8%a&I=/Z4J?n
%48[i<%OJ_kn;jI$XXS."Xb/L$7<T.aU!PadaC+.S(,aVK2nP%C(`F`$'IcgC+Gk@hmP4_UbdU1e7lXmW)Fdnp3RtF>*BcMB]Q:0f
%j1dl//$a:<b3KWLE)]2Q?'-Ci[8.Q&T'K1Mp*)_?=mWL).j`om86742j<m3!>:QU@(jB*On2=a\rcFlhNj+=/0V*4D?V/ZV//WC"
%gA2;<\""_oXQ*]Z/#N.E)AQO[fA4!0CNZYsE^k)bicHU8/W5\09TNFHgs;ODM+^$S;(H<n*3rbmB\]+FQk8U6&3c<b`iT<%a\(A2
%gYQB/Q7q6dbS=ac'liP0X:Vq'n_]jg1#U\p(L<7kZprhtViYm0PJrd8)=T,XDi2CN$C]sD-u@ZK.%I6J.T(q'E7j6uRRIGE\b-s]
%^Y@P)[7;_`\7HGB4iQ-JEIZfP/M]nEX.C&Qe`q:]$+M0"HE,KZ9ee)c"M7\tUbH!p:fL<gbYZZq&l:"3-S5hI9M#^KY#l_G?<Z6?
%OM,.'LBp#q?^tuZ+?Hj.%BJU77;;.3=ZeL)pRBr&k_[lrOK^-[m4.!:;q)YBH?+IV?r0iF^fXCsPl_%GpStij6"<IU;me-oS=aQG
%f_>r8G>-V&;7[/o$lD(?/6&H#XdaSHOKW#sr#cVX&Gt"YK]1sBL'%re42lgLJaWC"%*YG\+06&7j1u`_n=[U^";SP*'GQ).Q:QFm
%g>Ba:]+)\hM"$:pSe,:3BYp.tD"LZ_L[)Z0X9dsm_,M+r&=VD(TJ:An?urOccN:LB72$tSO(_MS%0RT;%RAf$VFM3FDGWg9p7R&u
%*G[4W5>H24Q_u9o.5GV>=uSmC1:Nk.=[;%e,'l=mj>GFfkS6[H0f'6*"BV]:;H3:=:_&G7*7DD#&1,H#%\b<.<);,I8?pbVFF_#4
%p.XU0UWeCupp*.n?iUk8P39`GGL$g-';R<t;aIsRASZOH>Qk?NDMB9Ad)g?O)L(,Eb2G8=6"`lQpX%(/ja6>[6#]@(@M%C3#<G!(
%0JGiLgF4X3E>j=0VYDD#-g,`tLCH)K6b2JEj2_33Xp&VdWXH3`cBe9fHkQu$_XWAU2H$OZ8!3Nli1S+'GFbqMRoe\9]E[DmrE\dE
%)s08=-[cVNOkS0d`(m$ciKh;>+ZdTBE^f4$;c$e\I5V=7)n%$RTf,i3NZnpm`;HAJ%>J6q)Y3T2Bb[UgEe\Q5=0mY4G?DLd1W*Cl
%N<d&i@>7.4,VUSJ+]=(%7O/9@`o?oC#&qX2S/N0%EMPIDn\Ce^i(eq=oU^+/`hkQgLdm\!/^R>beS:!VF-^ND=@(P:"io8H%ZfLc
%SAJSJ1?+,\,uc@p@]W\@Ld,+DVFI\g`ggK31;'6U_/Z7risb=+baUb3=%nR_n).U0[h4XkW`s!3i`N9JGn.4'iW3N)@SVrgr>cgF
%=Fj"Z^1pZ0%IqW*L9=4iR*k'@XQ`a6UXC?D7BkL*:6+pQh61CV+gMC]3\?2MKMLI1/$+!6@h[&&0>=u_1KMBOo_bfOc@ZJF9D^e5
%I\4F[/!Ju/`U(?KUD.:9\6(^7S&<'9[ST;W-o.S'%U6@hBj$u"m?eRne$O<aA2.?85VO0*J5?4W@SKY)`R-&,BkH4kU%t>#aVIC3
%k1cmJOebD`oGfAd,KcJ,]:R,g(-W6f:esBQ%4<C08eeGS>7fAa_r0S_f))sYc.)?C[2iGYOMJmC2)XpApsVTRrPP-3lL:cK+\7'u
%5nU.4)AhD2:C2$4(N]"L0!%9g,W#<NBjedNT:nc!At6MK%#6G_R=:mReD_%GG4+OSQWAPRbNU^<!uq4PHM4(p&You#)@&kB5)N#A
%C%r*D7>bNL]qNd),''sj%)W9#q)O5t`Ec5_SV#GSod6<.%X0UKn$"reB]5k/Obd4&nMWGLe_a@B.41<km80T"Aj2D+)X!9A')cS/
%BLC(7_Z<hm(*bb\2m!*BCr2O<_i886XG@+fEp4+&ReTHr+_X:&6p*A=LPBN+DM8`#)1#AKV^cSj:g9@&?gdn/Qb$4b-VfIKj5uls
%f&9okXeEXj.M_jo=t*B@'mB2saq$l4E(7h=4Z8kV_X\Ja\T3"jO&5)&SBEb0eZL91A8ST`@k8bV+jan9=lHs(p2hQ"G?-ZL6EJ?Y
%^_-!oUtY$RKWK3DTA''KfGfbcN%j-'fGk)RRMM#MQObaGKup,gB[Ad'gdoRL\(4tW?XX`!T*#-t`3u<EH0q]9\O[e[H<fQ7NZOfm
%//Md[R2brn"<"+6B&XU#OQ\AmTh)t2W#H/50XifijA_2.k(,@p4kp.?'2io!fH_-#+SY6Xmt5R;?/X)i6P3kD=Jb0RJ"6'1^9mIK
%Lo_jHhr2N+0HG2C.+nimeH(q+j^ue#N-6^_p[.rcbp8Pb`VFJWOO8AXl+O]&I<=\Y,Bom*4@OdL6H5t/NM"0J_((@CK5Agrr5^j$
%*_O.YBJc&$!ZMKZ6Wn8V?Au7o*(oIi0NDZI/uNOCHU9J-)U[4B62uPLm&A#u?.S.>Tr[uKJui[$jCa$1@HY>\7\<Zt^)/"\k)T&;
%jn;Mj8&hT,]NCUS0sNI334s<3m/j"^VYKN13fW41ab+WDY!dB#3>%q1fYa0,2tOB6)dj$-d'6+sKl)aKWORZm*@$rAAQ+.M,4C1n
%>&0T4%JiQ19Nl8[LE9b?*Mkf!(4eMg)Nc`8p7O,cq8gGFV4!s0Z6[nO?Z./@GSm[K!@Su8N9*L6TM1rXgr`mZCY3Ec9Y8rnWu:0e
%lC:M=T;'f8/20Gh2c22\)h>aZ6t/0+]JT5T^_#.&'!ileX!Oi&i]&@[=edbaT1hL6jO`JGVjM0Y\kFlK<PcNBC,npa?7kn2.@ao3
%EDh$noU)ZO!E,/V2t`1.0ZX;(G;pP.;qk]d7)=G7/CMMe_2RK0$C\9s9ZqTFp:sOo)4SoZAq6Mc9f=L!WdKrmoYrH-U!G5hf<ElT
%)Mtia25pBJ7_TnLJ2]gt\6cQ),;iC5Xm\^4ZclXt>;+r.TGE<9dYNqtFfr;b4!bDs=9iU_HHP&WkisA+KP%;U+<!41`3hK\nMBW`
%1*,#u%a!D_6]'q,;lH>ZnXkdi/Fl/0;g4WlCe_X.8"So.9t'?\6r9DW:@HDH]sfQ:FcUm0_HDMV>o[A-QR71%CYN9F<JLJ;,U(7X
%b$f3`;II2Fj:YH>V#;D*M)<L;^^u'X(\AqA+%7'_N1CiqZNW40B%/>_i`=P\@jYh6TgX@K-I\4\<uI$(4!lQ>#E+(i2q#86$kmG+
%[Q.=L`I[s!.-kEGEX^')ru9;a$ulR))\0n^f>$$JT(gZPQSfVl)c't4m].lEMmi?.#Ng_K<L\+C*Wm986Z2Lr?]O?(`F;1!ZZ(Yp
%$j/o`*,V-CSO>"m8/;[=pbMI\VfsS^LojlcU6.Ea&_JR>H_g]cPCeIdRi(!M0+fWJ+S^`0(Vmqu-#R5'6gG>g?XOt!`,\ZgnZpj[
%S&KBn6WXh^_DGY=.^qE,)cBIbb-Y9/FNou&@27bJ=<)9\'ZUK;n\K4<%rfDNZe1*[M23RYTWWDpCkf6h+S\_[-aSt4&VePd@?X`^
%@d?Ckd)pF-JkH\S"'lXZ_kYA!9de5i&g"t,QqIb=`9JQlCsg?6P"OnL'-/7BF`jJjIHJ(Ql4;N9^5VXgS_26PK.e7CQUSr[0SL-_
%\nhe%'nbA[pk5]kPsP>LofODj6'-is)paOoF>o/G]$O,]`hrr-6E.<63r2dVmtJ6\M.&l:-cpq/0]H\Wc*S%S4_d=%SD8_%hfUpf
%]<(:RVc#MK[9ONmIND$FXi4_I<+?>`=ql"S4:8(b]S:B-A:oHVafsBo/1f"h7jngF'uV8;3j31JlEbF@jM#8Igi4PSmUX/MoS'.+
%g>:G8T+_`uEr-Fef-99%/f=#tR->ab]J,U8=N2B/Ud]%Sk+`oXk7k@B9bTXL[7(#J6Y0Upn1GA.Qp(T00?rOoSc"0KV@20nR&AI8
%P2-:sWjYs%c:AA=DH7Lic7mN.?o`/0LFaAX<1cUN,giqPfQ01WG8u3c/D7I2iYJ;L\?&%DfqG1B:3*A7jhS)n`gpFFH;UV4<KriL
%Z/J7WgU2,cHP%#.CW54N<<3&FXoUWESH/NsIaJNl]?O>K7_:M%Z)6+,K&<k[hO>=QL/f3Zq.mQe"["f+&B/JHX+E^8)`q-".`H0)
%l[p=H,`ro%b^r"!Z"Ri',3V>&0im[MEj7*;$Gi=E$!2u4e"m509=\k,SW%FX=>#^XPsis9bj&+AY_l&S,ir;2V=daWmQrHJ>Peh;
%"Fe+;9iWffQt($hGmIiK%T_EY(DjdDl!iVTR2QjNYKC$FBr"2N.#VhsXU=.*<Ws0a\3::u8W>Ta7Nc-c0PEkK6P^B`E)hV+*+F,'
%P+)1jWqqcU%_/<1(%>AaHXh"$ZqL5o_@NLQMQi$1,4&AjhX3nLc9\?!Rg`:&d?NOF-i>MQKY!.QGrB;+^bp43q=]--haO40kS'W`
%"XpR`R__bE?+CH5NK%,[,>K>7lti[u0)D=Uql7*HdhRn]JVVR&9^oXI9`5^m[oDo9p^,pC=K\J(^kpf;$"OY$Z`8I5BcFRs/l?a>
%WIjhN8l&nj'l4&@p8/>]0[Nl=A!J!]9X5B?:.WAe.E2q>1W17cqD!q>JbpegP&N@T8VD4U=T>,ac!Yr6*#,Yd0uu\Q,r$8("q\,>
%Ldh"CE`@s""Fi!MQ+LSh@3/i<6`[n1,U5\SX\Md:*c5Uc%Zpkkj<X3r!LZYAHSjRf@`*pu?"%Mk$j$J\b3"]7\t*?+3O^Gm<!ec2
%-e+`A9BM1jO,K%FVb>F?XphZ_eT+9+c3m8`c\Qu`N3q7_b!=0!L+6YKIK8%Gq.:j_`!nIDS^4Z3W6+!b*Po*]*O:VL#_kRE">M]6
%ZYT-%b#or4#h2>JTp]hS.c=ZKmp=_N]0i\](jZggqn#M)0OVN/:F@cU>RXS4H8(*[\q/cM]A)nOV%XbqnW0?]o`\CEYU`_0PCE`%
%U[Y0U_0V>lBo.7]?Ong("D`ep'*'S#MP28hUnc8]7@GW;$kfQNQ]f4e_A6?#s/WMI+_P<pSLP^5SXKR:E0goXe^@P71tLr_41/oA
%R@c#l23<#)!!3H;*eP;IZa'uEJ`#[C$/g`S+p+?kB*PVL7l;kt;BG[ne0e*oYjcKF%==*Uetgm=SBX8YB9OM6@:<;DTN7^I)h/M%
%QRT^`+eU"8`A1#0B%FOd.++![W+$[fB2kSM<._mG6K36/"+V(<U$@.]r`\\a#UGKPlm/+@,%12*Z3V;MLis/MMT#Spk^hnGP9Hh@
%[&!Q[8i]9/pBe"K6Fo'p9/,/f=CS1n*<hoD*";YgTHY+;jr'_q"JPf]?]hA4E.]f0;=e&8Q0:$Y8G&lIkG2oZP4W-\4N*IQ]!'Z3
%)ojO_A/=mI5pPIpmI#d@C^93@n0c8ql%gIeaeLR9q4c9[SP!7cNW*B50o:=1JLcX7MTCc$)s!I.Ni\7("MqmY_RuO?2IcMbj`/04
%h4V+!U1flkih7"Q]4r&IY!<4h"$)d%FVkM/8j*T@8\*+*C)#:/8-:9gc>6r6:-e1oHWElFjh5eA1'?Npq3R7j14-/jVSiKEgF_^X
%l7=%Z`-\H67GES7bnL@I)$f`@Ko\$",)5BI0[W^Rm%B75GDTj;+-a%RY%?riEn&7kJsj_Zg%;ul_Oj99D,(S$'Z-f)<.e]hPn%m5
%7QcM-1.@V\`ThaD"e6Us8uuW3j9.SVUT^u]U[fk%=B1)0q>'&_Rb[7$0FMD*Ajq[^;uj4jT[p`>CQs$#`T<CSdS9ZMB'["6+'J#/
%dB/cm"?U<?7oc)'7>Z`FZZPhF>G8<#Gri6*?k]]#4$-_$N"KPkr2dlrQ`uq=/5TVe#>qg-7/fj_:P\4j*%*84&\qDHn8X>"!X8:Z
%;c9W]4A+@;[g#FJ@J\]k"J9b#OPFkY<#:nTT)/DR+Wf/:`Gh.lZ](Who,S4%+r5jK.;%N+!`r2YRF5&'".Zd.Z;@p,3_3aH&.t%M
%OGA^E2+S)T)\.ac5g5uQ*c/XB4Fota)+)@mF$;'J_+7a)O]1YZCi#cAX(G_l9,*S0VYc\>BXd3,3qrM-X#b#O<cL0^dir1)c&^/S
%Jn4`dpIk^@)+IZV6fA=ipJ)%Mdq3mD^OU;8N$iUa9,;`E)_.<<gcuG[L;SDE!L^?#EeBKq*RJ8%T`cWq#=QJfLdDui9e`k,%q3Zl
%AHT3oVK.2L3T2sd;JfpY5Hp;h@&'q0k:R41KE!ub4:D/@`E>Z@k9kk3f<m[W=iU<XPthb=FG?QVm*q`W0dh#gIQSoB8g)9M-H30^
%+tCm&eI8%hO',/l'ZBSkgP%F5gu+Ruq^1bb34DX%mIsm@]f<bnG+cnnQ4,d:0aYlQIqJ(;7Ffk/g%8;MK"Do+EUH5+/5`PtL#O"9
%`hbDjYlHs?_UDaOaF$`pM,!]W,n$>kLuCNX3?PNGi'1Vccc"IG:AI/:&p&1A[+-I"[&.7<!:A*AqprId]=2X:gFa`Il%5*P*WF8t
%NRuRP^Sn_[^aH2&-<_g^3u.!#]\#Z(%E[9_Vb*j*bB/mnQ6nj"42K-hY'21mA/>7`qRC'oC+,`g"o.^e=r+jVTSTg-J6\,5r.WeN
%*PGjW!`pc2mK2P6YUO&-eo58U8><O:LYA^3F/M5V5I23t4qWhW^bDaM7P,WXd/hh@J8_p!T.KDhY7auD7aNjb#)ZMO=.@9p3@r"-
%%Nc$m$*mUZ0$\AL<A1BY>bh'-l3tN6<]<UhI?>!,a>/V=%TFQdZSc]$Lnnl,C-)?FZCZimM!6.5l1J\4A<c&M/*'[4?sjg`1)AD5
%p(_8fb]0&.[//5t6^#R9a[5fU),L,QDKX\tOlR"Y"?'"I]gJ5X[>u=S6`H[Dg45/+FCAcY*2qpgq0<\M1/Q^ZM><bO_?eSnh`/`d
%>m-67U"NPTIH^672IW*fC(b7%H-a=lC,cMiX&Ki)6XI[dg'ebj:B)/J<%7UOc)I=O?itp&hP$9'&:r)NkL?B3M/$g6)G-jsh<u$5
%[OOJA>'WI-9c0'+p5<GDmSa8PkE>!hk,$]WP6+(E7^KhN+hQRcl-F1XRjp845?6<^#+dFh7f,6b4#T1qZk-_V"Bjp[oEnC>js0iP
%at3\XL7ke0J?5&fb(QiaIOO'LB)-dUn+_"h,C?A>+B?Ee[[PGE4cW.G:6[C`=ln;Y?+=4K]pof=%9i[0'Vf`15I8UPU1B&>&nZ%!
%-T<i5-a*7Hfm]NU_'TdaBlT:U*RY>settD8-Ggp!X[nk_2BX>J.##<hV&H]:+K=c51H<P.-<EWn+u_%qWk&8=;f8PY:oJ9\>`IE=
%=b<BI4V3d3PEqV:%$bb1Us(i-LS$[+R;I(Fd:COre0\PtFK"AtF?!D1X+HEBT8'S3YV]np1@6i5@=q^Y6BcNFk`L!'7+C]JU9ZVg
%^GqWHUi'4sCUmST2uDT:&F\o=Fsn90Y)9L&<)ckY)P!h+9>&pE_2X=Eb@Zd&,l%3WIq0e[`#+3TU-7=R%u(fY*ao/+:o\+2"T+q@
%j*h%^1[6#M"uAZX<Lq9#$f.Td6lfdmd(X9a@Cq4'_K%8sFegH?E'UB4MEnFM.*Opng=g_k-W6.M^?r-l<^cq7,chi\fQFFO@Z\[%
%X1:02pd6PZfQqbUSLK-khsMs@f\JL<'I!4C".*-5hE`FnZ,9UoI0l$PTMC'\6UJeg'(irYH9XiIBmh9L)d-a_#GZ;poOq3ZLj5Ml
%/b0=#V"#'!W$i-rkA%/U%>Qe1G^%,u7A^9+nku$`;c#9pMU%[&r3k!-<4!ie[X\i/5DWH=]!DZhAIJj^<X`9q:7Oc;N=>l*;abdq
%IH+(Nm#=j!d-2CO89IWdMf)F&W1g>6bJL7l]V9q:`t;N^[_f_VlKlcip:CUWZV^^i<@!#Ueo?mMd5=u!SiZe;&J4%h1!^BLY:q@X
%C[)usq.6#u&"31_ikKBU]XOMj-:2,nei%`*DG_bJB'UOR<2R9t2/d@0C-:G(gYK;!e>.0JmI!5J<"hE^J#`ee_.<(=4V0oA.+hL!
%LDI?1S.:n-61*^QeE`0SJP8>NI+MZ?1/!S"J0\$T*9_Q*Bfn%$eYN>p1jUfY/r,("E%F_q,.itBLB@#tgK;DGdUX'?6X7/OSj<\l
%Pd5_h#*QSROF%R:#R2/T8Jrmape6jF.?Pq`N=Z%@VKg-00j,f"i$1Am]f97?D[,,UX'f)k)Fh!_i'P8Y6Y3t#@jjXO#NH@!,2bR_
%(p:Cbo-+tN)MRG[q^*g5X'&_;G@0H"@TcN_SRKQl#o@j'E?3A9Zh!Ne`KtW\SWF<,>k1E/7-$#j`9*LID,3j4gGoI[&/e8idn3M3
%!-49c/:K.q&t0s<bWs6)C.OFg<R/X8;Wg,"%3Y^?O;.bM[4"+Gl:?,e\\&2&VSc\+E8P1;A$*G_22k+/]TZQPj+Q*n41-FO\[,ti
%5Da$2:>`JAOh\t0atPtjk1<Q)7aa%c@7Y3ol4Onl4!uC-a&.[%[9`OG<TLaZIpaTkKi#N6B*UYop+t8-A08f@-`Y#mfN"H'aA.Sq
%P<;*5*&K_C53/"ZF)+mRO=XF[.YY^]]qa<:Sls!j]4^pSEg9;L:bkZ/RX2%]QlRW=(!M2-B3()\.Z"t6O@mru=F<:]G5KSkHtG9I
%`Ep6;9!%QYWr[5P.Q6e78HilKLYqG"k_F#r"r%)RLJ)qZls[qG?-Q#7m$eKl^b_;7^+'4,"kmqJC!S=cO'Z:Y4r]`j9X`@;LQ3B+
%5$Wagp28qi,LMMc!m,/Cp'.22+jOH6$m.$Y^=._MZ(<-6b`9b"g,RMBs2';dR!Oor!C2hKUfSB`Ct!2O;/nBFMYfV=<T2`>&VLVr
%4=P/F0mGXl0BOenZgQ\Qie^*OaOkZD2ot/VW4#b2Ps@1C.[+<'5*UPWJEL`=0^@&@L5>\e&5:'O8YjRAc;,(bbQ*#u;l!0^=4)V7
%/?':(X%k6,.FnOP-?E]_28a)C#E@h6hH^md^-qDWj)h8p*Sbi`k=YHVSOV.$3X+4n.jI(K6Pd[hhQ5+O<@fm:JE@@r+]EI5Te\]1
%)>2Z!X6:+SI-oLblLMX83=l3K6h$Ll0cui:a!)C15e/sSSqp3qmLoqC/?)X)"HMZm!2ZNQ8Y"D>^f#kA<=WRXm[6gBi43aM)+%[B
%n3kPhHc0fUrD;EfEA7k(8js.$'dQCsV6^Z>[Me(g\[=^\L^5)g]*7lIG0=J#2\bh&rL!K^Og-VW`U.#"`BtQ[g_=;A<LX+<5IcT+
%)cHfR&]5K_QFYCEl>i+fn,_Q.jcBplcghB4JpOqm@'@LDHbJWlB%90[E`-Z2(4=X/W>mfIAMVQ411=[.6<%,Hhc*bH1Ca%(FJir4
%>/AF:]b9'FHu:_C+.41VAJpY#%i;1hUuTD)"o:KJTd>NoaeZOWp-"KF.h+BafHsER*>):NAcTfD@!%oJ=O"EshI$%i;@q5Tdsf%]
%j*@gX>q[6#"%aODJ,uE1?ENc?MS78]e&h&55.&?QjnR>aAis"s\UNuD7n-$)`b^$*Ei$L_8Mc!FMsMc1g8aG^Z:kRdA=,CjMUmM-
%cb@@EWA(7.P:Aa86Nf`%!m?D^hM\0ad*1;j8^p\N107Qa[Xj9!TdDWR<a\L!^06fZ[8UNF$g(hj=<8\F),IQ_`fT>M\5W,dZ:I=#
%ls%PlL?/X21_m<r"*!rbKKbpnBEE(Pq:)_9;<$dA]Q[u='pk$7%r3GnC`J3KWdVM7?@F)t`oql/*M(XM\<!gQl!i$b$S+<;MD`hY
%,;Ed?#OfVd._/(\7`)WqWRRO_aM%TarVsf"$+1ClI&Y6g2O617!@ne4-09Pa*\LENBK?B7S!O:H."XgDe[AcGoRd!o?0cW1Q$3G@
%)G<+*MTH^q&\E8];bD@ej46Nt#6`ZpENk2GLmDGbOSe#k$PS=2f"8X--6C)=;TuD%ZHF@*LBYs'HtKS+-DZ>^QikX0OJ64!'&\G*
%'h\SM%!hsO,363RFBJ>m,,(5VbaA9!Bir;L[%EqD=k)':RY16YRQ0qmF3$$COl$8CYhid9'c,oNo.$SkLO)KboC%i6a@@0<I*jpm
%N<Q<qhg3A(5'R!3b9_n*ml?V^D%I(R(9/pQ3QVNC6[%F615:psc7%*WE8;aFfmXUegCQQ-.E6RDH;6'fW5o096$i_h]=?9d3o.0:
%@1g;F41.*Z$JS"]F>f[9Cd`9)JH,ko"jd4&!`dS!Jis5*R3e%3>'F.E<`@kkK^Due*HRq/#^Ek:!LAP0!-j/jZk("\JMY_$q]^K?
%C)"^c&C;uOAc%1qE*/@k[ir$m'dhSp^5feZRso@g>gIRXE4V3`Dma?2gSX;U<O__XXJ;k0<;4tjdo;'W^H!M0OgXf1p'ImlC_AYG
%ObbhbNe:&Q'D<[k,N)tdWDYW,C75JunNs"K$fo[u=B%Eg[Sj7l"!'V2S['kGmh,?*R')WA4W3S,#WtA35d<\!$;U2Aa#1+SWb`@C
%&Bu/Sfe[AZo-h(l6ASK]VsM[?M_24U'IT2O.m6Fq)+<GJ_E*4YK_QEP%YNKo!g2$@Gd*ATdl&&E@#Mo_ok.!(;D/a=\%k;>b2>p]
%$"BK?apZ;N(J/mWea2;".oi3ZCJgAR4\>Z9*FK&#,VgM$6q47Z>T7d&6#hrGZVUu?USdT]LFb<0&[.`jG6O[fo4"pAQtEFF1u\(p
%eb!t6*@P)WXpDM^U1%)Rmp1!dg;(+$N`0S/W)BjcrN'^,-GJKhp*9TJRiIWMM0]aA;S_^-,]2Ub<=&5:;m4e?=d$CT"J!d9fhU4j
%Z2C$cj_KLoGoZQXR%c:Uf+d45OUsLJ[%[t"l9N^BZkp-DG$5/0PgQ%!qS9Uu=!:7rlGK1qE#L^7TrGOW[9W'?d'r9a+Gu"KJ(>TO
%A."?[E)Bs*P*[=.A^D%ZS,UeSJUWcLePm22f3k2meuhh"R]>hR<3oNQL[],j"tQ,%igPC1ES&/m->Xt):*Ymh,C9n"=ehQ2#ZI(l
%[2)cn:A%_J-kf4F).67la,6g7A'PcgHkD5\8ghO8KTd2S<u6R&Q<i"55C3SZ2B+[lrW[aYL!D$S-0A44JUr+E,Y@C'0$jV&0=5T+
%oFZc^A+qG264pXf8;'umYm5A:,B2i*Yif4a+G?A&CDf=J:.Em1EtE:63t@rcd9mY!,o;i1ChB>(1Xk?#(d+/h2ODlY+;_$6%V7?F
%XAB)qq\[V_b(K`sX8,;I6b<g6+An73#U?MU^(\_.U4.t:/l7V$,aj'1dWd\ln7nc@+g)RjHC/sn8JcE8m4@nRid<_Vq9kXKMgT9o
%VMWR>\lBW<<9Ihf=u=a$;tcNHMaEN0"Vk6#B9YTajdo3VLDMq5aA<<^Vu38W(WJ'R)J<`/7%c%U)@lVrXFA_7Ad((pZ,">2ZiI<h
%AhtV3E9(OP;^VR+T-SEk:cD!/l)YI*$2k/E;m;\%$oE5b&AEt.I`<N+RZO#`541.!*P3ESqs$e,PaOL\QK'St7Kjr=I(JA\'STOk
%BTLVT#%,"Pd(sn8fG9-Z]0i_<XL%3?L@B]p;8gMHniO,%g<Z5)jQM;%"klq@2%0^poS]BG@[St7nI$\8A!^e7ETX5as"JNXBM';_
%H_n][JFBA$a0cNB7NV;'Nt].p,-qX:Z<&WTPe:!@I#(bMDXEiC4\[=]A+Ym\(jR$e<$:&PQR5ch-!-DG!F\hsid1n>:j'lE3)SYa
%s&j<(.0cTQYV4M6FWtN%`Thu*(4aF92Pn&oT8'e)P@q/^VRl1:XE9CDF`A5;M(?RR&bU-Xa>loQSuQW[PjY9L!S7YA'sVOB0a/2G
%*77rS6\esDln+E/_!!#D0j[>L_-IgM"3uNkES1qY9GKTk@$@Uj'F&>?0juI%N?YtcHWR=Bk9B;bJ3.Tq!0<ag:27pL()_th:d/F=
%XR_F.M.IDX2I4@["^ANga0cL,6Y"nMqV94!IhH36;Heh>Q?.]R1^K(S/o&$#+m`0aS=;h@aLlnhCnd;sc%tu().=JlWZf@C9G#'F
%70u_hV4WGh]Z2_`Y%$Oka2Eis&`9E,"QJqb-gB3V=r)pOf^(akrXH2,%L%1]EGh$gg]fN&/jEYU]hN6Bqi.Em%TMS0@735:Xtda'
%ocmWJ5"<bmZAIRW`onWloP%r98P6boOpuq`E5b"dA3qEK(%rh2^+X;)LBg>o79_.d7#Wr2'FZ8B`Pe4i\Nn*>"DJu"569Ma_E*9,
%!o$[nLfPUA@D]/_.2W^Z<Br!u[&:sPnYX_T5H-.0Z#?@'7k?2\*Kk2&g<jWTFH!Z6VKegA=2eAkLd&(Bj'<@#8SOlQ)\FEYcnL8@
%62,K`d0r=C=Q_[5Cp%&s492[\4(kKa/'^mJqa[44C#f`1rJOC%*E!825)`H^?8a&JoFpS0Vh.(BXsh\u@&`PA?rLp&?Q:PQ\F1WG
%7Q;`#X0srkQR(s12"bs14?E<tC4uaTT@pL>[N^L]mYH.Cn#nLf6SCPrPIHA-KttL?E@M%PB0iNQYW*UZJsWd5=,*3B^OSCpinXFr
%LiR_OKD`PC<M>o2hI13J?;.8_<960DM-c?3dsb5k4%$DDn,^n4'lCK5;bU3@oO_kNW\31R'&4Kmn!^iXROXX`_d3a.6Z%?)9\Z(D
%MLM=I&5m(@L^[30IeGcA(*]7di:b$$5]qg^#SrhXo_AXqfK_KHZH6I3D%YrN#"XCb&1d7=-r:M>"N_u\G3$CnK/'Ng1fn2aN=/Q*
%r>-0N]6J*.rGbnG?PS^>[_b-5^G[W18-bM:qTKl7lH*j(D88Frc]!K.WU^j^7'>DimEO^7I"mlg61s=KDKX?50^J5^212b0>afAp
%AW:(p.R-A('O(5R7D%Pg7AKhQT5LfAjD\N^ZiUA4&\H`Sac6L`%8j<U="qZ8r5bm4`]`JRluMe'<BYujPA>c32=VqqVsA,t/EM0?
%'p0MijkpWH#.),*%P!64Q$tIe7j3l2GpAVD>N&1H4:!"^:)aqTP14fr?sJ;[0+c<%V(laSOhffn\G"@ocOA:`_F',*&kO48>@C0l
%'"0YiX!H@<:td^B,1oGXA`k+fTqKdUO%Iu<5S==L[CP\'=GHWjaG88aKAGc'3sL6<7;5c16S$e5TeQSgD'a_mTkpbbW":?/pYg^$
%C#u=lT@oN5O-fZt8Oo&E&\qm?;JjCt\]I_Qi(/Ab6LD]:o/4T=8T`&MN/,^FAG)XrFie=F!,#:sXu?@mX.9:8WemdV?WA)p[4<l1
%mLR*5`DoE.!G^>Y?u+8_\[IEu\?=]Ddgll*Wp!^`/nXe[C39"t;:=#*#M'FC6u#,(KZs?=a?$RQ2pt0_:G;%0=^:q3Qk_>!Q>X!j
%OlCK98RMas1=8Itl=Y-(%$9F-;"!T^e.oDZ_.'37"hDL9bpkbuo.q%5.iUchXu^2`AHnaP\&F%f;8O:K!)R_;_qd,.-0PNdDDKBb
%E*,2[L.?;rZC7L);cE0$'/in'j!+#B^g_LrU:m8$o-u=V[E;CgA;>oR'bb%X.]i+WD6BDWp[^0K/X`)"\?j=9(U10uCMLM3RA]"E
%`#CgNSnj>PNS'Bq\[k+,OY!Im?`F;PRF\R0S*H!%0K/)1:a9]Eb)DLqYb'&X")=^R$.tWWZ"4,fF6J`:M(Kj^2Y,5D&'V,N^0[%B
%`Mg.E'4Z)YG8/hE@@i^8/1WZi7RrhRb;tKR#*<d;,q.!GX(qPf\f7,Z3BGe`b+7$"_P[2!f73\GVRDKp\F#1FLe8R""\?3XMeMMr
%*QPfM1U%C\rQJBD>1b?H9PKq+m'I7t`%@?QRHTtOCFLi+fJ,\l=6k,o@%dX[MSOdLRXB?cGt"%[eBSlgd2@s]-Am;QFR(8sqZbpN
%>(D%-*MX?U!HBD@f-o]6#ImVV*Mm+hqiT]uo`eHn1,:&]eKk6A.2Z(+,`E`V3]XE+%i'!s]'E'qN`egUs3nAs+c]?u/ZSYjf2CIi
%$e_ao+jE_R4_n<.da+d#2XGT*Sd+DKl4D>4],R]hbj%t7%[,.<CjG=47i"e^54f4-[1QSV'KMk?7o&,W[V9Kf/6&B]?+JtaiTt?4
%N\2gpibtQ):F\m&HCq"O;CR_+kbfFHRO]Zq\`A&[V6A^gbNM#Q\+]Jp2att8eXRpCP?%.4eeT!')ERbX.?`5>?qNpUD-_)DaOpnu
%1O]u[/3Gc9TZ!:2<R<I3iRcFc/h*&*0uKF]n20\%E2Za;8t':E!&in/8!cBV=e1l1.b,-PAL1,Ha>KPMP`]+aO92(SQ:VZY-L?0F
%kslLXQC`\(%%5ne+cDiA_Ipa`.2oqAN_`MuiKS0]a.14?TN!i<'&=F1/gQkB"-]hR(*q@;k%7n+W+e4i;F%N5/[U`d9%4'9m5+oe
%<ke_t*n$.@>ufpB-ShdKZFeIahqLr.K.7R88]/F=#BUA]!7q2]=QJkLga$R+e2AN7NX,oa#_pu'Mc-6J''F3G*`qI"]aeY,j2a0$
%Rgs1Tf;^__eA(%`ZKOQjZVh<>3b:?heVp`-i[2EY(DI]$WfS/\qjFFE4$&V6U'0)H$n]=ULQT'OLFGbT+Yl1GaS>D.(HH8g-HE<0
%e[)87r2Nah*L2gUd\%`g%2Nt^iX"g$Ls##m-'>76g()2(Km3cA4K.9%jq;C()`ttV3VW2PZQ467\<k<P;9oFb$Z!#;G?%d'C0Rcd
%%qd^7!TtEILYL3A,L8+fApJF`_Z3%46RbXPf%]ajaCtLN0h7.l\<*GaLCDt#lNGm,Vfib!k;a7NA1H6m)o1N<M[Ob%?2`"FL,oRp
%K?h(/1Q8Spc,U$K!s(ri\..@uFDbrND1S@\%)>GcT6(,%]?"#Hrp+EHP;*Puld,eoA[TDm>+@"UaV\2dI3g>c[U$$f%6e[7fG;A!
%GbS?k#'a!J#ITuT(j^nGQ"tkQPhQ7Vgbl^$j"$>=[W^gU,,+*MN"2u@-lS%4%G`br0Ns&"eeud5j%l;#YT@9GMh35r)cG:lAeO;e
%2tQ,r2-f>rNQGCo*tC2KM$b4W&A%qe/NMbH"2k8$3*bFXNEF.ejq+DnE/7Op,hi/YgmIT.JQ6JeHA&HQ4*!RRXfe<cmkuHaB(%oS
%/\n9,*ss\W9Pt)>)$:@^J))ETORE?__s\YF@]aln`H2<#]7G8Uo^u&R6uG7BkAjb2`fU>nla57WgDCPGk_:R=$i?1Uq\@R.RB7FP
%G,L(P<Nfl1%W186e-'&qVEodT(`Y#l3ng[:'\A/9b,UC[?*AILESQ2H_:7bOTJ`Zk8Tdjdi-FM^,B09_5iGLLi3_-+&](1=2l%Aj
%m\.d\+N&t1<kK<Sm7-B3E7lFi($H-#\;?,hV4$@u.or4dl5Y_s6*t8B.-tYR8[EfUj;J/(V8STYDIqekeF@7iFbA52;PWlXLPpLE
%NKFZJ3Okh%1bCSFl!FCgogBQ$fNp9uMGoVA.FJ#/f4Nt5Js&:7!A0F?:9uP#7>a6og,\rL+`V+H)57Grd/_q7W'6Tto",-MO7Ni`
%Ndf2>d1,I227XouP19qBbZrme9>bVJ?H8i=BbCYM9*!,EVVOJo:(`R,MdI6FqPVI3BuWV9P\ml\,aqmb"cL/BF442ms"88a&=b("
%_mgog)9*8EH6dF![*CC;ocLU:+9T'k0f[.`GZJ!f]3Z2emD[+m3%pdOCT:'Y9n<Pgr^7]Sq2"i3OPoFe4#"E*]I?BLhAB4(6Ea6K
%CDr(W<8S&\c'l[p*pdo4?lEUI3>"T"7caVJ@32/]>WC#!fitu5Aht)NPp)8G$ikt`9:Zg\O\k9R,6P7nCB7MU=]45(inO.AdXdZW
%&:em"9iPIn1AjYE5!#Pqg.4PHR`<W?;nH;!0C+acIB+b6)'au$MWF3Je(+P3;9]je/a&i'qYkuuhJC6@/@uDhK)CE$@R(XC_Wi)T
%ak(jC&:t=U75J?X7cB4_BJ9^[,#e!gqi#-i^!F5d2DYD$!L<EGf^3Ed1ZfN*]*+irTbkd\@iYI8cE.^V94m10l&Ap)IKj*5P]qiC
%@[TY)RX0L7(WNL#30coK`fs?/%;tM:M]E@18&a:Z<mAN3eHh*VCq#d_`/ldD.)i.)AHJ@Lj:k,Ida=]:p`M/Bq\iu.2g#hj@.\Y:
%3Q*)>Rp0gGq:W$YndtXUCQi;AZl2kN&i+.2D<'2L=q#-]m8Bn=+m^(\1NHXG;Yrl6&jF1j*,![41N#AQ].qMu*mPB!L:^H*2.N?\
%Tq%'e=A#]OF""C`NE[O*$B461Y;;IP]^lE_O\g.=bN1A@DIo(<j7B(H-L_/3O'U%7bSV[cefp8"dC2p!0=b;T#pMetqh4Orcthc1
%lebf-QI0^8fT99DPW`ChbUVF[#Q_K3TY5p-2>,co(GJjhd57c;=:E8J]a+e>BgrH]Z>&iu,$`bU3sq'e?"puh+hC7>T/Sh5j8d&)
%+HV6".SDVe0-0ep1][mUO="=iXUTe=L0mW.%p0D%a@0kX]LWP2Y%G-*_STc_R1baTBm+Le!-nZ7&BqA@:X'LK/t&XtPO]D2=$/<o
%!)N,#4UkU#5B?@im1gH*kI,1a.7QJRi\qNf[L(9bTpd&_\QD)+G3(89NQ1EO28A'ca:pGldY58&i";Fe"0dM'J7"!liWV]3Z9g:>
%`DuS8n2sbUc(I,Xa?;F9Q8363^$-*Ok><PCMG("LMG!Q@f=mL8fM82Z<TC`-8m<*9]1FnoU"FD,f$s#cS.(1/H*SaUM<3OR;GHcb
%Q=+c2+>eoW@-Ed5"_2-@3`T`h0a)_rf3G=>`=h"ABgrbN?X*^nXGFpl\:t-9@m/!%XOK;^'ipcc[Vi#&:LA`dp@^@bTH5MnKF2)o
%4c256l%16`N9=!eP?&F3J6/#4pKDc;@#5c\T.qKk#jaAF>uRP&0AZ8s*"?'$BlQmL;%S"EAOW^MgIa7/dd/68,VuCt\4I"18&'G5
%aE+u6an2s;!hi]t6FIr>7M`s\Yq)OOWQNa8*J&R-GqT_Tj&oJk\M[U=lSir.="$%,,`k[-&esVgT.i*:3YPW9\p<MD$kF8Ofu-iQ
%7*2?"@ULLV$rf,/p2;MS_aKPk/=p.drpFbehG$OKXRnc2CQ2G]'tjM\j.C)XbOQ)nGk;@7gdPRB/!3I]b;`b3d3f#HZIhUM?k\)l
%"\o4lFXloKg9r]BZ05bO^K-$NQP$,_28YYSi?_b9;TuhVc*%WSel[O!_\q119$^m"AMCX9d/HbQQ]VZ1fnWrRk$h2tSBH6Vc=VQe
%q9!2Q(,j;)#2Mu,ho0<_XNd3#'_04[<=DX?h(:E;OTYcHoaa=n5938Yb,MM=P,ohQ&cdD`'`-o4-bi$=0L[D"jNtU6e!G)aR#Y1X
%irR^6\=GWYKkXY9>e05Z;pJ!a]F+m\4,rpR89?d+="/j:K\HO8q.,8eg"bTj\mb"-c+KPJ6;QR>^WPo.Zq6OKfBe9iT$+ofl92rr
%RVMT4c8UtF@A5#rA%rnYlT*"s\B)eA3LT%V`=853M;^Ep4pbgMLhHODVW>tnimXb!3j(FDb"N*XGA0e":,4tN<*J3eD@i*d`X,!I
%#$\?_QYuXl.W7cP/8GE/kq1:`<.F645aUH&2IXp7=[Ui(6V?!cLpWZBT@(a\<b.tu=UEH\E_<L/A.9.V!jTkjC;n/<S^H]SjUj49
%FCuM/;iG1.V\>hY<!p=t,2)YKU9+-LnJ?r#3G+_.p*eO8nW-j0"-2YVQ:7]Ej!gPDRsHZ<Dbl-aTgrK?]]itC[%WXL@[,DnKp,mb
%U2O#%^c_1[]`ae>la<(nQ@b&!"l$J\C$7_h0S![_)WIuKp.(lQTQ#p]S2[=Q'<it-[MikoQ.Bp(bY(Y:g*E8><D+Elrkb+JO38;_
%`,-D%KZ,$slSnR0"p&$(.V&l;6<NC?)aeO*dsd="\J"+"^uVhhHRU)T]W59a?IB5rbQ>"DWtoRbmD;hXV6U4Os.MT4E<6hqEK287
%ChP=#LZk"G73e/B:Z@>9niObo=GQD$9:sJ"Y-("in7gjc@lYFF?[5F*U_LP%ZmM"=^""WA5p@RbMH>%Z;&Yu9*_k99;p"a.%0Dt;
%,41^nhC+.jFD&eYO5@lnYs?cC6EInA_5;coWZ.7R@RQRoSA99&ER2r['@M<,A)3rI[LNT2Oo%kq>KD^l@MntK",khhEJV0CEi*k%
%8:!25IRtaFmac-S]#JkdD(U8R6M4,5#SC!T7MG/E4N8Y$K;Y<PAUZk+ZN@<18nGH`_^L,i79Z3%;h:qUZ45L:T;Wl-f2"ND>5KJ'
%!D,dAZ78!DC;psj)a/nX6rk-CQr))hU70=Mi#$!9pg:9lnVSfY_(97OCcK@9PG!<ER<Re=W4E#M[l]W36Z5"R7kG%M#r3uTc.Q!r
%=lENT/)[+oJg9N@$p8L+TtJDkY:n.El\ePLV9$-U-\HEH7pjW#fja;d=c.r6!-XT%:kd<3UFWVtl*-6M[PLV:I&20uW.c`'qu[c>
%=^PZ;M,\L+o/p0IL5?stgUs8;@jc%$L\nHdap?Y;ptNJ,Oof(dN^ud$3Y.*78XNgel'O*KX!0hLp4Gfk?-n<M8d$+"d(M9lXWN"1
%&uf$VF=S?N:2&3YO`Ad%r8uW9TQY+pa)?0RZ;,BLp.+(f,rrB7#ar(^YY@RLK"r4sVRA46.'4q'.!>CGK`sJmD^tW76U;F,'nHu`
%me#'4:!-,<%RB\(a:+4\Og^Y*Z9jd(bpEuu\?m?H3fJ/UJHVEM<_H;RQZfup&3c6GBdS476HctSBLHe15WWEZ82/IW+HdkmftX9u
%W`C.2;lp79Fd`AhL-d:M@:!8MVPL^2[d>O_`qYuqa=Gag?,Wq"\khUq'3-khd?2LVLYsoLn%C*7dO4dl=CNOIJlX]r3UeVh:T.U_
%Z]u:'TufY+_5V5R$<F-.WKQq@f"6(D-h9'lIYAWW@dO/B_YaU5;D_#_^^Wi#7]NNldr4tKUKi&6dj2JgXlfub+m%)dEq'c08ku7m
%N-QZDU>00(bV:+ZUXL\gdtX"%V#Z!S/gR4_bUdi(Lr#b+]cZT2-$]hGQB[=`V,u#`R7N(]XIs+Kn@gSeTFX:pf.>QM%<q,khj[5h
%hC&YgQhX5,"[u2MZG+R!#`Jd#hu]4o2#T4VTG+Bl;f2nG,)<T6L9hap@tE$lRj_2CjhRR4"5(!!&EL6q:V#hd"_Ipl(+#8cJ68M3
%V]P&2$+kD4*MareU#nKd$QK\S=#`+28hlP,;L3,a&@n3hIu3gmV<,FWb5cr.1PrF;g^Q]OPNk"rC;<uV0/1CC'@X^k+5k&,F.*9Z
%Kg5a1LU'*n#kTH$*triVoF%MeW%q-)8rRfC+'$7H]O308$k-3P#>G[A0G=i$ds.Gh:":$R?GM;UVI;2E1H_^oQ5hd"Yb8%A7=T"1
%FNf"Elq4sEK5/P?H"jfB,nsMph&DHU@3]>9[D%!q^_Z7D(98_&^DFZ@$!!G]5,Uu!o?liVeKer)W_Ya_\RD\:91QSi+mO/c,T-':
%4#kRDb1pU.)2'&F(/Br[3SXZQIHN+\/e_?WV)Car:(fW$KHU/@hTr6C!r#H*9&#_M#$)*ILS?=;2?c([<URm<gREj,SShmJI&]O)
%V5:qk'7bPNAE8ZXG-B"R2A_oq<oJ/9bZW(eph+[edDJ-MFH>pROT)=AbWc_"GT)Z(E%.qn9^+aZY$DHBW^7TorjXWLYGJ+N;(Q/]
%oFG1l$_-Ve#\,AE:5uk4ml8EpB7],ihYE_=^%YYmIE(r^#5fg;H%HB'<V/:91c#G.*\mrH8P",$X`,r\r2%IuHjr-Q(YN+fP4kEO
%]s,4J\(i8o;b!p>]$JM_IrEIiDT,stW:4PcorMRsE#i(X<a8i`R6lP!V&.apqeQm,XeAUo$WJB7=,gG3*-@Oh_&%Yh2+:-cRTdb\
%6MTAP$_5[mQ^*rNFB9V3!YVJ!+pIUOj$F<b:<dgh6`bLq+nG1S;YSV\?]*"$GMl_">5Ar!ZOY9f%.k/=acbUh.7"fcU:Y_8J+"<A
%VDt[.9NbEuJJs$>W'reC1ItOEfO5EiQg@lkS`fgO'edG-)>IK:>m6]/\>H"Q4O<J"B![pC!t8&&^P%#=a^<`S>PZ]sjd]-;Pn:Hu
%UuW\I/MNW_Op=4aVo+N*0$tr:)$7X4'!o%OrCZjTN]ODL>%ueOX@aIQ@.A*>kd^X[<"Heus,>7FkO2\3%SP6hPsj7?WcZR']fIhW
%cuZ?`-Z[;6iiEdbDW_o<Df/7W-EItc8?IL"LL>0L1#4RigU5X6K3'&'X'7&O8S&u.4>n_!pUqi%bXtM9d56KA+&aHmC+4lG%&BtL
%898>pH89^5Xnf@QG7>E(H+!"-ATE+ge4pJN.Be8:SE]rnf1<U"B6<CG9P`<_=Vk"jJt<7,1EknaW?jhO/Ou&1`g/2F9m;]1:47YX
%%@_B<eJ:,50X5OMU"UMG&GuZ"r@B?TQ=O^aYl+>.[0*%5d9s=9quc%&>*@M!l=/'s/r>4X34.llCihufpGVtd9H%i;R1l3qP/Rc/
%3"R@"3Al5_Lu0<1E'Q#RR+pCnif($:eeJ".D=O2Jdd/AmL!;WR=TB4Y/4s1tcBoG&-JO6O7IMQUq4t<s9p*^N(8TY(Ki:+T4i<#W
%MVj%h!S8,VZGB8O#gm41<ei,]8-9qu\LU_V"_`28gg\TR=#+sJ-(p1T%0$*3_:5A`]g^(-;)^m3KIRu`"2()a1Rf0SE3$&78ST6F
%$IZOI.*a7$0\;)!-]5qkM0JdE(bfo1i@2,NNYn:X+uUPX.\II]6W\r'HEDL6U"qsG^O/!6U?VN@:](.7(J8qF-%XSbc7LBn]=s>Q
%<HDlh)iE!K;K.kLXErl#Z),AFLim*>G!iP6]st-Z'ZHlQF^,P)_;UCnUR%]P6HNg'Iujl2RA:m5+#$]pem>g#?'Y2:0&A"<I8*2Y
%T>'dF=J&,U0F2%-!d<(ITp^\g$FU*TE,I8<C\-P1+YR8n)Ai?VS-#l3$,teDqi(/(!_RD^&Qko-P/Oj6Tr+f@obiua+Lt,8n6&Ts
%3&`Mu0X*5gKAI&RX0I;"ld!F]TZN@MICP$FIcdc[4sQP2CDrq>r>K-=CVbfq$o:50OG'TnQJ($E#6,Mphr9<pAD=Z:BR'[`8):L$
%XC72sJ_pl)cR:ZRkqj9Y6Esd(c[_Z^PKd^R2?o@KO`I."9Oaq!##KCcW^*,SbSGR%``n@Lqn:^N74':4FS1SIY1:d(jlU$,V-:dm
%c*\S!";E:[!HH##JI^+#f^]U_2K'Z-2FpS]Bj&kjW_%dNrcka=OY7,&T.4k+fST*7W:@]7grWT@lSupToVc@AEiEA0nnP@(a^;p,
%ii9fJiHK\sPu1pJ6e0%f"keu)1/nbKa\A*n*2fGB#5LBj(d6K4!:SJQA8-"\Hl=T&RP"pY#R[lOc!X#*7:hmZL]h.Sj-h,$)RgOm
%iV3\c(fint4CM(!I,h?F4sOuKj<i>'X<h&/@9=A^LaB[PL_PEM2A!r9gDKrU.?O>6GmZp=F[V/89e.!A"?.RWq5WK9E%WX&%,qdg
%11>I099_rnV8W41:"hSn$,a9*#OOE:/24d>1p4&e&5V<4Ieh,jS,I46962J29X\7pD!]!6)e%uK0_QD_S\q95fGUroOskoK90<A$
%"=0Xio:0G>U;?l&=N'Vr$R84VR<(N,YDFP3X!$D!LfQepaK(boB%c.u3r:fS;R]R?T)g-:%.2W!!IF^g>Dmo!Vm6RT6#-(57N"o%
%)"C/G3o=*P$a3Ulp?G,G;l*7A[rVmMVNdk'.Vn^d(iZ..#J[?Bj0Q?Y#p)gpf=D+bM>k*-:hS2(<[ct@'t$?"Nc^NNLfBA[5bfK[
%%=8OeK@eG^2;0G=.-ja\DTLtRhaRk&gXB]W0b(9-YoV327*S,.es^6I9/rZXRKXoHSpE=`)l>25ZA)ZYE_/Sb;&UBmSLS(VAQ+Q!
%,,#@(*;4%/MV@6RDs1K%$$Q%S&bOO2hAY_oHBV?4G=[/"LNS5(3^S<A[m4"k1oZpS_m<?AVC3s?cH43R\^BV;<Mr,JL73fsTYHD-
%RQcdljd9Y<hK^oL0F-b#2Z[@F@7A6XM;]#Tl]0uFB7RCVb?^7hqtc^^Rsdb0dPsUK0!7JuVY,YsKh,'&%TR5TbrFFX(Y<_g/,4S*
%%:ZD`:!C\cl:E+04^tSe7;sG0!585D`^hN!@Q#CJJP]^_?6/`l&_`OL.Wt8%BJ_]M/L5[M^@TohT+I-dh@$f3_P,ILG@bKfEMLXj
%*f>RRU4fkoA_?19U7KDc7\OJamSVi;BqrT:VTk)EX`4/a3T!Wk?C68!;o089Y+\US<\J/j<pPt?R\=D$Hj2I&QZQQ>=4-nXhV.>j
%CILue_[ni\%PGU@B8R1]\BaofKNGid":)8orqgocECNs+Y`E^/'Hq$d]kFsE2qt)WLjmVu!joS-2-p[Lm*JJ0Rbjl3G#X%*Wh?kk
%R:Zf-T[$Rag't0ELuIZ$IP'c=Kn(%F/>A.Voa!$!@Fie;>a)V[@^%3,T(:dpAs@@(A-7rY[i&[=[EGcGE0UIjr6@;-Q"552RrRtZ
%#S_D#CJir98CruF[E<EHEJArVl&mGCc9Nitd0b"lhtbqr*2\SE$2VTk,:2k9k=$K_m2?oJano1L(pka=Fj?s9ZhCkD]rTj;+N9.-
%Ik;!_P3cD0g)L,d3)N8M).R\(+n-nb?";h`Lo<rtO!-bq_`]E^"6A%;SWP1pHM5O+hE9"X7)u<[<(QSi9VP"<8^Xfsp![k=Uj]fP
%PnTsnNdIHg<0X0fZLaA11%nu7K&T$3k+'KoFbVks5V).Cf-.rd4sUK+iWiLQk"7Kb@9ub!6`VD@^]N4:=sj(pcU9p`ZN`>s/NW`R
%]l_F]V!&kghk<0F_b3)J6C,AN'F18(cmLqd3gckO4@rquODQ?]3[%k<$Bu6N]C$E&q\ZfD,IX+ZDfY0$H"o=1,.Ui&086g+.Hmk+
%4dFaq(99e[JUUqQ2[$>bEktAt.PMS'LS5n.6B`TLk3h371%)(nF_5-FA=,OVLS86D%KVotB!nYA`C+*qZ%s_^$$QuP!kO8SgRmKW
%>BMVQ%=@E::P8_K",TS4L$O\V#4m[?86cQF+G5M&c!p.[8+[atP$I41)BAus.Umj$`\DZR\:-mDnKH%-Q7I]<PuLRFZScH!E'e,m
%-Vm)C5UrET_?S-lEs=.(%ISbDLa/H]o9dR^X)!X8nWCDAQPmKD;5[\&.m\XpR=N;%.C7Bd"*0]%S)b4N<HW!fbR?I7YK_CZUecX`
%3H&q=]WB?@,f27_8P-H[0&-`4UTb%2PUR4;*6"KdQkik<'H(<0BdFK,fQV7a76qhN+!Zkd6HHQ3h"aO'KV/g.LDr;),Vk!ZDDlLA
%/&6dZ?k`iR6Bm;"Fs(bW&UB*L#`04s/j]<JH9E7bUU/+X>/:L%"nG;'$nqg?2DF_T>[Jh/[QV<t)@@<pS6[dbHg@Zg)sXMjdL(>l
%h:*.U7(et8V@2@]PtnAjb]%GE5AZT\<pKjPL@>P]Ch[3)G$Y;aE>Kc:a,O^e/4JW?:C>s15nd00Jo:[q6@H'@E!3"S(mdXTdPPJ:
%=06r%L"#R&k06<<ZInA@=V#]f3C$,r`*#oNS<oGd<O?:MEHMVJ"r2;(/DBk<VskHYm'T]/kbq:1<i\O+o[WPn/dd*"=abZ/'uuW)
%QN6(cP.]aiEAnISh-HM%QijcJb&T.q?H+0+<1=,*40<^5ajXJUhI+>9G7/K!%uDGJB0jC&,@32%;OG^!A&5juUhRMXr<m;;+&*0d
%A3kY'QICM3F$FNZ9G?A46m'uNFO&noZS'h.d@I3/TZp+HQ>,L2G\u&:07>%99CDL>a-Z+FH\oo+bt9loks]CufPG!0@4=HO/ebcp
%;fbj2]^gCaYfW')@U<eaM9I#EBMnU8=Q#ZX]U=19N$msD"P?P1ZIUHPi!9OOP?VChLe9K=q8d4#<\_luPYgt'7@)UrX.-p)?Zcie
%/)]j^2"WY$!2M-8>O7HFfRs'W='u[CS@oiWeng5X2X@K/IW#3(]?QSmB@'':`MQZsUaiAZMu_ue.'7_<ULnZhF9Z#IWt$l;g:/1r
%F^QmGNiaX;j>>$lW(W#K'MHOMS]h/s.U4`lae@]m/4#>5(3JH\Z:1e+U6FjP?gM!>JfYp4Q/Yu>C<8GZ&?B`30s6s79K*%L"oomU
%/iq76_r-=+D(Ar:[5q+lbam2k]Jo/YK0BmN-M5&lB4Hpl4,HNNWlPo-hS`tZW6\Vb"hPYni'(V0;R;`"!P1#dMWm0(e&'J-]84'^
%VIJ)MV1A0#/]>nGZ\qA$l7SgCI^7+%-7<tfjK]`e\uZY)0'WMBZI6!;qd(l(qJ4;24He4s"L?13,>,ON-Vs6E*?E)j!uA>J*hiPY
%1t(gL?5rRg7DD&J%Yk9OB#I^4*'L)h>K#&3GU*8Jno?S!ZAV>>^BZ0rGlT(VM\/Lb\o]e=$B]X.,fjOR)C!Da_(<SA6I!.p^,5R^
%$'$F$f,Qs@fT27g6"@`&K<[1CCQ58-M-el<GamRH?![$%cD`4lJCh@833G0aW0,7p<u$k_j/TCMm"&s,Y[+*X.FC/Z9mc3(h]J*'
%`e^#k885@(Sq)@9XBAZ\RP`H(R:ZQtV^aa_98\S$Q=Po<R4d[R!a.&_eP%(t@shtX0He6WIB[)`\W^E"JYBd/X^Z6!=,g+'Q8L'7
%b+',k`6gJpQ?\B2c+8cF"Nf2-/b]k!7Bmbi,o`i4!\\LkYdH1O\O6m:p_@(G+;+j#<";&_g@r!PD\9>5T)rD=9Q"\U+hTn0_\$.\
%J5J8'd)@C4,rVCL%>gNd6P?&7WNNG7&uc`XMO%]1J'!1a+#.L?#Rmam*@]$2=P@(PVZ:GQ3K>ggq%dG*F'#81_41ueCYSKNj]h-u
%Kh8_-2A5fOP,ZCYY<#0V<3$?[mOQ'oq+<BL**O@q'CP^GAldZNa#,lBa:n7#[^V:nrFlML(cFXP/#(s`@.MO`,jVnKd0J\5`7--B
%k>c'Se5eB-&lS>j_jY?h0Xnh*NdWLFl!h1LbT1L2`RNBS%n/C(_-RX60$q;]G+&PWa;pb)+1^U^U1EXtb8$'rA/e\iN5D%^^ths)
%KnQLf#+gEJ<TFQB\JUO<(>03[.Dj^l/Hqc"IR2Q-qqA-\55P3hC-se_lI=TVXOocK%4uL?Jt!uR>hZbSCOsX.L8qV#A]prEB@`>W
%C2oH+.Nrlfd>c#m.7W4"S%AYI`?jguUoIML(?%<87K`;u':D1SMooMOcYkF_jsBQ]AAk)q<D2[JmNAYQBQb)GefpD[3kpM8U:..O
%OnU$cT%3?^.DhZ!Cj[rAs5'ha9<2HM@0*Bm#N'Ak%jBtd4O3LZ>1>?@>;#m&3/OYqAsJ:QBS1$=;N#+5E(I@SIC'MM;>s/A*XhUa
%@&VF?#kEb4mJt*(7NLoI`>!s6$.$Sd'mGC[MMh&e,ZBGbY=sS=)pb_U7UX!h)Spm'/eWh=[7ke*%@<c[fRuP24]UBH20#@BJRPFB
%LAbp,LIUm../`+`7W]3b][/rI>:Jbg;+X>!F-<HcS\a,<'W'd68[525hosRb-mE4$5!C+CNLMO/Kd*?75-uh!KRp7\Q9b(`&Q9.:
%@MsnD"\6E"QC#"Nq'gW1;H1:3G]0X*h)gK1%>49D[Aq(0B/"?a<AfgN<fot<7:Cg'X]J@4pSCl.Z+<^[Tg#;p-t*]Z+!kcoY8KqF
%ALCQ66r?+QVpD#$k;\,C6ZRC`?jaN($^O+M/%/K0=I4TWM(Iah,#8WXp8kp(BaoSO&k.dZK!Papo2"&=cV'ijGhYq(`HGsa_%8O0
%MnbO$!G\C@a]&<X%2Dc\nDN7'Z*d9.N4oB-9NOM.gmEr7`XAZ.$<C&9\C!iTD..E+fVl:b\8A8$(UX]<e_PPG=?/8Aef8n;ht+7'
%$-8t\q!3e`\TO:c#-]p_3tl$bW6CI>7d1i"<BGYo`"e0n/hlW'3WTPM$#%8!2G'sFefd'QgnGsmWoR>!2J;=q8PZ](_[:-!7MCo/
%!=,&L,=Hs;*VJZD^6Y\tK`Ej(6i&$D*@$Mt8\^U><To9)Y;I8<K]WX83CH?=CsG-GPS2qC:9RJu$)0FUQ?%jd+!cN@%]2)bINo]?
%$3)1oZ!58OX]e5IV$UKjV)cnn*e+'Z0-gcr7h5"lK"Z%>impUt*,6o.5H8Em]!<?O.UMIDUVn<\/HZbVD#.PIKHIccf&e(V>ReT&
%.aNsOj_&Hc4='j*msQ+oTh70Nnb9^cJN6/<YeY(XN)*gP[@mHKrW?7'TG5fe;V(rA7p\uX$W]R%_0uLo'f8q:LZO?+n8P?BamgkF
%",WZ*g@7F8B'*:G^2oS`CF$?M\YTIrctWuC\8gHlp?'A']d?!<0^YaYXh&(=?bY]=Z#K(uKU^I&Vc&[iAAQ0\MiKLSbJernbiS8G
%*/D_9LU'IpCdhls/p*PQM/0L.UJHrZ+WSUgMpnW4KKg%FI+ecn[:l!QIQCq-aH=SX2+o\O`m+Ht^(>fQ+@!)cP$q>kq8eF2:'&.#
%;].0!)q)j'?,Sq[FV(;TXTd8upajkuL.Q@#/8-TYOK1FE@pDD("D0rQ4P;=qcad?J$`[WkigmsB=Fn(G?M*eK?OQcU<e1tE5"%0!
%bU]]biT:JDih@t59f2,CTL-*/J7d8(nU_0*lV`KW]PCZ'qFc_[[e$FbOcCJrg,_fI2uohl&a:u)\nRH5qU@>)Q3(]V!/UeY^tlj^
%I/]Wh"^EYFN/F#;VG0t!"8:_Kg&g!OUKN9&$<e3&@EUW\"q;0efOWU0Ao4NM/"Dl?0s9`oen5fo[7CE8@gFG/P%a!$(7Itp>7HdM
%'j]=CVa*^1dF$.HHmuik<PC:`'i/RQH10CO&RZF_bmlE8FD2A/I;V"&5URW#FP%:8>%$`b.HVl,lrd,H[jc&Xlq$SO'k\@Kd&K_9
%_m5)<,(p_#\(#7n\.Nj47&FXC6:8SuIefKe72Dd$i<.ApmCb(f$Ulb-1jZ5-**l\oMCq0]V5`V>LFbimTJ]`#CcQOb`n."X4A1nJ
%G!]_J%8t#G9*FGiafC(Zd(D?__QQqFcrC07)e#0fSjppDPdnARb*V+4;^&_L6oXkC-$aRI0`BuLf\m0So-QVLQK1AcCi(Japd%MH
%Q,=`$`muq>j%iX,RmlDPehYEHjIEZm'6c5p`9h#_[C6FIA/uk6Le:@HROL-bZQ8VmPl3mH!MCc8(fLkb`65W>-.Xu=Xh`r&D#,]N
%)8dFM?"f/D[9RUc18uuc64EChM,t2&C8raY:$:hsOS;kJ[^VRBA07c=iHQa7(m@_(E-rtB-Z6u!p3j8q=8Cq\Jt@R$g7V%:(4N^U
%@WD"T4[qiPHS$sTjNGSn/L!(e0nAp%8C>%t-BK%RB"s87B`NER^'D6R<ZV(rJ:Q@>oaORc)0.D^HSAm@NHMYhA"OqgFj`>aEAd.*
%,j"`n;fOoU7@&]prsA^7''-7Ge?8.9;fel!qF_?)FO`f;T%S9[;'\kQc"olEjNVQW&lAtanYpdt)qW6,l%U2r?;(sD"K".&2[\LQ
%Mi=<(P*Tg\NDARk\6-V!:ka9-`^sIk[J0U'8'-b20eVNP,c"G7l5g<;E.dQj&pJ!!;MfWsaF%MnHc9oh!`A4oRW2i;GV.l]N)$oN
%R]JBM+Z*l%8-l>e5a.$,PJK!O%&tqT/mrU@H9="rd<*n(H>^j.KsLPp=+_K#=fkWTjD:bMJhVmKKc9A,>SN=(._'O&Pc?@'ro61'
%-!d6@Ls.$_To_$t.^6_QbRt[c'E,Kn)@@*b26.u>6?$R/(?#!=^(eNNo'iW2dCWH^efM\N,YN<cm5r7kR,&>SQip8$`%0fu&CHW]
%FN3,K!Tujc+YIO]K/MB46#bn!&r@k7O@=s=U_ZP"c=?)fnnUmZ68qU(53<5`9HN4.)FlI<o!S6m(JGX`SD+a5;f6,h0>ZWO8dN8W
%:0i38`.=?`6k+kc&JVBubo!n"*;n5=jE=fO`NF"X#o#Zg`;V,A%m2qERa7RH.;9NZ[82W[330e?3VW)!?]/2M9gW4.&URFd6X.6:
%Z1a>&*uGT/QPXXNQ@:-AF("43<gG=G%[')?K1K.(.27uJ)J[YQWg$mjVC#[fgcD!0RN%")T.E-k853\FWZ5C<6Dp3qe!GG*B[sJ/
%;a2UC[$\0CGh]PZ)qde_\;=A\XZ8_ag%*J1a.U4sCQ5A)cjWuuND$9E9`@:s1[1ou#d@6`+XEWdQX4O7`97qR!>W$+9im7H,XKgb
%53?W8X/:JnX;VA.WF]89$?VK.2//(9FMeG3XR;kYajF9NU:r$o\ch],U35m!?Q#`:L*;1rN?"rPf>KsrkN9<8_@Jp'/dkqml7!gd
%$BPHeA<9?pI*:.$<DCI][[?2$l(K@T1sdht6?X59=Q"XP@DkJ`0P;&3AD)Z0;:;,-F0*%J98p-$obg6<MUsD@h/!g(>Xb^[#]aNg
%%]K@sNn`Ws6(+_8:\d>aWX2X^3-H.:>os<:?-KmVO>_1tWktgV?km2"WFT)!MUY<cVLn@f2Z^9%6r!n(<$L9YA67:uBF<foPKqFr
%NIjk`]8d_GOWm!KV.QtB6A@$\IK#J77B3AN%bY'Eg4^eqg!q!6fG9P\!Iq`C4sGQ`*C.h\%"rFMjaQ9MTUj.C0?1YNM="?]24Gln
%($*=@NCf7SmQ:rB"[WUkH<>KKZ+n-:A,qG^ngRoQ;cOR@B2`3QCF-uLOI`&3lE0D]ZfL/?&0O:L>=<*PNZVe6@h9W>"S9'i=0`+g
%Wb*F,)_`ihN\NE0:H)gp'L=D-.Rd")>(pE^_>RZ(.R?r@kbjbcq,3T[dQ5MtGZ;#*8ppl:.fCa[cGJa%qfn=cRhDsBhJEG1JRKCm
%&-2.:0Y#=pSm!F:QVsAPo9#_DG)K+<X&KrDC)*^_<L.fqNB:?BjS;0W'VDB4"2ZC!5oqKq3XNGG^$N-QSN&'#97TtdpqV_fP3a`Z
%.<B/:ZR/_LVMQ@6nm?YHHo\L]7f6>kV<ItSga5bHLt[M\&u%Rs-nX`??$Gi:-!q!T'ang$X16tS`Di%2=G0mF7aAH*n.9hX<'/>F
%WAE+^&R'qQZtXQHZHVtQm2X,]!8lH@FGR9pfI=ZeEN7ciMfD)N,4X+%,H/=,U.T_Yckq$,QEPt2MRQoPE]&^W8%/2L/VAl5<Nql"
%H*4)skUH'EU6D)SVDL)R"VO<k^N(Qr/]tq\YR35o=^[;"%]6%C9=\5[bGZCujg0]<Q;hjeVgQL^:\e2XW&PO+<&LOr@0J-FE=hP]
%0SKR/#cK499p*o_DGU>,"P^"GMZKr2:K?KQZVho<5V.WPFZR.6OW\/?/<+a1bKuubAs&,*_f,SXA@D@.']\`,[sU*Zj(`NaUk(0L
%VQ!8;hKG0+;W=dWMS#8C^^_G,!Dl]QH>`4pMsKS$EEcZ[V>qB)#_3k/99eY7Y#;po5agCQ_"kN,jG?RPH"B&]92Od6&%UDhbHN'H
%ghc@nemqQ&XZHhl6Nt08<9s6Yb*>/"<`hP`W]_'t6<Ib9Ft>s\!(2_h1:@V[?n$?U(PN!LW-_(&"Yg8WgTa\#f7WQ899kCUllR"9
%G-5_qHVTnW'e4$MVqXkd)3V*I.^bIR)u,177:;"qn4?!KQr"3^i[^-jqd]VC!e1Klhu.$-ljfJ$"2t$C^eIZ^0k8hg1-=qD^E8\*
%&ff!\W&:GrZ:rpg##BC$-$dn((gJib1"%JSK(([Zqr5rCPAQ*+\9LZSEG+ARVF/WjC"&N:Mci]a;a8dDjD]_#)R1DhRYRrb07rgH
%jqQlP"3smu6"\Xf>QX>ph3C*N*AB5GOAJDL^hO4(^?^d#[g(A3MqN-a?d0S$6Wfsl82;-]OJt3[Q:87F'!LH$l6FGrm4Nd*?g>C;
%ap&DF_4ZPT<J\0o789K99C?.c8HZ:'a>$R'W1F*kmDs9c=YeGo_#P)JZ80\e3gYdl.!4."=BQD&<S<TVeaKBNk\Ci#e!39G9p-m,
%9MH;?<hc4f@h;s%I7H/\K^k-(^3UmEcAGSZf1umTB!R5<VA(Q/>*$F&mcH1'hA)7eRJc6G5]iAn\I4H.Fu+A=*XCLM$,Bet@@]i+
%93SGg\:`'6JJboAaI4pjD=^1E;(]X^bR.O5@&F'=+^CHJ(9e>Q0fq7iP3F;KR3MtHTE=9gHH%QVo`5=-@sI+<@rRJT+iBE9YB&=<
%db-Ghi<878GR(KqK(&T#oEC.U8XulFfchhB;mb\`T;29Z;]!n8dq?TsJHu?M02R*ndaYB$"=!nZ_-AIOpFRJ8TI%q'#>GIm6-Cf;
%#F;nDe<7oZOiFl&hVa@:XqGZSnJlKPrR-`i#>o>hE<fdCgVD"c.17cd<J#:[&Xl"Er/ur&0*=ole^WTe*'m`\MHnAaG4$$IMOF[J
%"G1FJJ8S(4Qh*6anJkRI_Ojt1J,4uuAL,EpdZA0TW7Zb?#%E(7[PYms:MikNgN/9c1DK"]J-c&Tq##rKK(fQR&0">ue$>Lj#@U,r
%,&!.s:`O"1:%D54S;nKh-7j65]PCXn>SSdb;LeeaKPcECP42lfS\d,[cu$98@U#RuDR#2-f:bYV:i!7mBHP]^3oDX<b6D<llcR"Z
%U$D9P5UUKdSgcX+V?G)HWc"fh(R)??%sdH-Ui>d=#O4b9k"J\j=6Eb;k-7L3PQ`V/\HNMB:..J9)-K_=#E`-IdFP?ZdUr=gW0*sW
%C=%=N7Z3JGAoLQ/=*%uh-3_U*M['mok\aLg*9<IoG[`DP":ikc`HiiDOtP10EZ*f@<)cf>^<%;9Hb9&`.&D``\B;\UTOJJ8WkJhZ
%!*nJ\<<Nl,+B0E"\md'+<S,mUZ(EqLHW3E8_hhsN>Pm)+W[\&82"n,\%VhNV,)q2U*A1_j;ll_C'38(3`DE2`UpM[VgYAaL`P_iM
%@:R9W``/mL/Lrk"PeVj@f!U0X$%1$6>Wtl'XI@i@hG_2/]%`4#8Ff0#J/j3ARq9#u]fgtoP;FL<,XCf26?V*7&lr#\6;<'-a;T\I
%Wp,RQTpeOaR:=XndN(iX('o.e.7g9X0au)-\<C[T";jI!6S0U?Llk"R^<#VerKnG!0MX?2k7EB%Hco<e*IpXBYIf;fR!icQW4Bl1
%!BlHBI)s/:ZI?nYb#Ndl\tk8]C8NN6cu,J2a&"N#(_oF(HW&!r-=Kd<*FL)rp(pIXcqdb^.BV?=IP]P4PEJ\Lm7@.0VSNR5r&+Cj
%V/ZatAQ[+>a3A`m:43F]WXj:Ho!Ql>0i9\2ju'q'n<K:T<5$5GGY>A=M2!Doh(27gF(aHrZo$9oliH>?&9\pamSEN4!AD<rWsZ0h
%MHhN>NNe!:<G*d\_U5tA3b#kC1=fa3J5Z+nWD)H(_5%-JO[P;kBJd^GiaddE*s5)hhnFPg1^j9#/a?4$ZL9tZ7jS^t3JT2KG;K_N
%J&WR8=)qh!2R"C4_D;PKG*905N$1:pkXQjd5)4qPBlY0ej!Z@8E^]>-0pH`MJpA[HFmKd(&0*;<3ZB9d!$Tbs&-Tb`q$,J2Wg<-H
%99YccKi?kaS5k,%"dM-sDS,<I!lkiq#9!heQdt2p`B!F$"tq-HJ\RiIj^BoVmaQl##.+cBb)r^9>uj2'AgGMa]h\O=<"p]Gm1Tr(
%A8-29N<d9)]Pld@RCoDm>Z4ONj*AgoP=4HB7TE2fnBDStIorF5InY@RVkFZ3A2bt)1k..Z*F!JLN)a!?'I5?ke!=hnaIgF<lsde.
%m:Ok!9+4,<JUj2$*O49_%#'QDVAYo9@HtsCh%[#Z<V*B8.OO[Z>_APhEuLS*H5?1_oYM",T<Ku]lRZV5WbTose0/)"LV3s<HV)26
%b'WLBTr(bf+8_&^okG"r0o'M#K$XbBY!&`OQ+Rb_0d=SAI;S0E*+e]bY5Z%O`\@dL*.HStdTfpRja>eoKf-%O\$9.]8r'a0G>Y)S
%R101h$B',?XM`XD15Oim&HkP^d!KHd6V&FVF./r]cAT!<VQk%q5_S*ZkZ:kiBfGRdk-QC4a31n^YIOP;)CJNB&K6nb_II^c>Mr:c
%?=lf?,Pme-o9_Nn,cNk`R[2qZQr=$/i;'%AOHBcD-oDlMR/iHs@nS-jiiJ.olm\PL)]OP#"/c["(4,O*K_Vp0[=@JS<b-;nPoU:`
%E0N??nPo2!ie5HT[QkpIic$fnZ:?H\_5qJeh5,3tPKjoS@QHi[MMI/bNWm\=8lI]pQnU:S76#m:=OrS,8#V,.P%aK)a>>45daDFa
%XU,U'A/o?)E2%te5`I,li:JdLc_+mi!VYEt!.OZ.C$MR)h'+tEEHeoMOSPc+T=j[^/N8q(Lm$^[7&Gk-Qt"%Ogq>Q&1?+b\<\Z%T
%Vu\UOCPFH_'huYNWaO7&%Y5I`)6YbQLbRRd3dj5@bkXkCE0Ai^Wj1oYX?].A59)P"m_)kEG%@W.ncV]G\uIrKS_T'A@%\nMN7E*m
%,GcJTl2igAlf52C1'ROd<^D_[Q,YH!-.0Dlr$Q"SkG:-Ym]Vk]%*Z3X(OP(OAgoDY"OVREo)4P+9S?GGYRoh<@Am*WdG\ac(r-sh
%PfRd7r\Vcu=^3]#Z'!RUiR1\PP^W16ED3#?1YQ6.'98X.bCe3JZ4K)T<;ghqbdpG4&n?PR33t>S^/P!>L3b2,YoAPPip'L^gU+/_
%]+BBbfG%VVSO$AO/mG0^NL&Rkmii5pjb0Kk<3[F,b]5F3,lY[F4?@03Lj[CgOmsprVaI7rj;#e48/0<,^lL^&cM)9T<(Kj!M?rJr
%9$nmk&YshH<FlFgQ9I)A[E'k/Zf8@W=B:TAJ?"%-&lYI^k#e;j>[7[aXJ3ks@=g"6M6T@_4R<_mB7bNVRIDNIa&WJCV_0AgQY8TJ
%J'bT,H2KONF^8X\JBi7m0[kp[@Zr^c0\,Bu4MbiXM;/Mu-7TTdbcIu$VID2F=X^$#dJi0qF')Oa&Qii>aU"n0J7I;q7BDM<b<pG-
%DN]ZfUoXp>H;8=Wr0uh=d10$Mg0>A9W=%a-RgAh&0!t3u:(s2odS;1Lnee?cp1Qotb7G:A!GlBILW3?'6WFk$\JK?'GnserB)5M"
%6!1T8!$S-MmfBG'euj+MGD71V8Q1mD1O/BM]oL&^05ib;(_5g9>+6^GMIE^tK",h9XFUdq"uM@48#`)U+[&h1bN-'6c4RC=q34n1
%#MYPqW$:c/DMo^";tPNRS:]::Lg[bu@O9rM-l,l'j.^L9?>V#Zb_d#c;bEW`;;dAK<0-s8[@ETEfUOV6IYj/@1$l,8@PLG(e\iWI
%+=\r(Ab86^*RG<D&@Qe=*uG*bKP0Sqd<#HcT6oXfQ:!`@+1M)j:<ZHTS"^:Lga;i8lo(rSno#h2pYG6LOVDd*.ZO9V_Zht+=R(D-
%=i=sXq?m=&GZ=_DFC:(_0X7"-2SR;:q;GC!0dX[oC!'1]q0@$HL"k[M9%])Y$5RDT6oSn=?ur0%2b%jt!l7@BPad0[Pu69R:!9Ip
%@crPdTmQ81jFJK/r7"40e<JS)guV@$-QcOn(-_X[@[phF"+`D/b0Y1;#<]--*pq>J/_7jJ38JL/g#0QB,3t($gCqsQA#l1&2CAa]
%8h*?)d=II\F\>rcWhRb-'dLn4J^0,rZW,@)7CIg=Ch>8c(r#e_9<)unO<G/iJa!4@MR#$6D03=+fmZ2M%DdY0V3;KQ#&J)0=!3gl
%d:1k/lXF*R(YrI!CH@4GKQH_8IGm99"J"($178AESIAQ&XZ<6N@$sIAWk);47mu)dXllaPr%-iLX$Mh%[LO,]30r?3_mdY8c[<he
%No<>*57hfgbTa6\3W=2cFe%->8lAW+\Ksmg$i#Y-bJCn*Xb(pq=2+Xm9j?Yb>.n'\ESh]/NSd+TT]R6gW9n>&(94Pb;GhrI9T<Vh
%I+36mKQ-IR5bsR_ZN1;5jbHt4q%Oqi(mS7Uf:Wb9X9r7O7+aR4%I'<q_]euJC@rpaeNKsi!QaPRadp5\-1fh'NT*aoo>I5iH5@7n
%.a:NX1U=p71GJ2]aWVA.P(t?t,@Z92ror@l_4AG'mZ&rh+e.%s#T[>Wd/G?;j'urY;\:8![].Ida#=DTi'4uWV,^YsN8T1a;_h9B
%H^GOT=:[EU:#5Nl#9VE+l!Y`uAIW:Tr_R+gU:+&ieo##;j7RODq#\24@h5ptj088CX^MU99,j46o;8t=MHGG:O\>&*.Fu]L%($m]
%.mZ\dLX6*RB:4UH$f*%IT-b-r+`Xs.K&D"[h%MMS(-O'ML,Ca;Ui0"0RQkOZ/-6j&b3GX9Z(`hk;qK!C6&Qf<$;C%1!Y?Pr=II:_
%DcqEnj/=C!VF7KA9n'&;NTTp_1?/(HQ>!?pOA]&_M_q&*m++X;RpD9FbYu!J]N5Q^]O2S+)$'C^,4j7tC,IFsM)`jKI#DI&=Re+G
%@nU]V$&94D3B5':R`.[-r!ZM0Fpu`lFVqpF.9\8c_\%#NGXleDi0kiR)C4"8-s6HkejRWgeT8<%P%sUG-+>jci/cj`\o(cNq[dcS
%0S&i?KmM'^&hS5/GQ#ffh3g4Ph<(GNl]X$cfG(9M&8l\YPN&rDP-^G]R4$7U%paYr'r-6J6eaepdmjR$.mY7<$4rr5QV_Y1pj)2'
%Zat3:8;:P,`L;cf.Ps),K64QCB_n^sm\-"'c>S/?W2fG4nJ0=3)#T$A[]bg2`9D4*MG-cF^..c%m*BoeC"Hu+D`o/<h>-n6-j]J?
%I/e5o1NbnUD*WmOIT[niDgt-fIJ(7\oa"h@hEI6.14\Z^fO%4`L!1F:MKV6pEJ$1Jr26glS&\Vefn/B*4j9"[#0k4H@,.t+@em[L
%A.bQ@IIfu@QLhQPW`@='Yu>FP#W1lC!<d@&1caI1J_H)hJS!^b6JUB7B40<>AQI%p,*(.V^>7%3$H6g`8t7=.hE`e(F-!dB&^FM)
%[Nl>@En5'fn-fn"V%q7G;N^SlB#+>^3$J&J$QLKW=eBE(DgOlWU2g7"ko5:h3Lq.U"9l[W_jGl,?pJu1$8_g_SR/%O`VIpf5<@*B
%'PigE<>5jQMYQ@1^\l3R;HeGm2GgeQ&iqg]'+W*!WCm)M.%G:,<[e%`3`EuIP2cD\rkUb8]AStK2GCObcUp"[&5b-QkKs%+LbN97
%S6<&7U;>IU]R%!._*TV!=l5T@!Mn#d@WZ2>(f^Rjg#?\fm;Vj6H2"m,ak>1*9R.Ug+V*@fn6uBR:hfjV$QOds0HM-eanmA#l:a5r
%nnkV<$BX>g7TLpt_9s!G/Rf")R%eT:Z=%cccDN:gG_fX,9k2)&dm<=-jsl:JM\Sk1_pHgDp`#qR68'hQ+2=:DLdjYd7o<7mUdG!h
%Z-Wc`@?Cgh\pPSJ4oFei$<"fL85MBiKZ$iBQ_HqAg4i\`P.q1V)Z[/p15oLu<s!^Bna8KL.b$"oaR7T!.$auCSRR;pAl?Sb;c/&u
%6=@GJ"I\Ka3*9ml`hRo#o58#f33"[O<NrA,6AbiL)t6AKFs/Mr'@]@<78?]%8J4K#0fESQQU;?<XUpJ5Wb$sDgf/`>UqLP9?2_`O
%;DCh[_Zr\=cKPCeU$p'EaKSJ8,"\cZl-O&o9?CN7F/C33E"HH3Z`n+";cnQV8<R$$cgPkN]#aE5hX<+WVno+0.c8=AF^_%SaJOF(
%g+2rY@pFei_$J^/Y-/AI2=)]J('&o<1UpLgc.`R%m7m?Q(@lo9%(D;DJi/i@_i?LjA1[ZWJ=b1A]2^lPVp!4CbGjC/bLtGH4T"ml
%=sM@#o<faNVB4Wka7la8%s+XSHT,R*m3bT"SY+4V^4ud,];k7+FVp1H]?eh-bLp*_HL^1s*?rb7I+u;oEAc?.`*h"nB?=gaUqc(9
%cQK8*%#Q>h"b`5.&jeQhNq;j1J>Nj6iHDeg.-oW^rZRVTr$m:9%WE/tKO=9K&^abN[4!eTna7/_S"!ejYJeFl55dM$lHD#.K.54s
%DTU]/EPn7^SQ)dX7%*>!6inEeFjI76S5.DgSIZF1RS<t$b$qOPc07S/+f(BI48F)&o%9J@lcNTXj/-V4*>I%2B-%2[D5h!=]'dQu
%rt)YE=$8uC2_L4%`s#ZQL6o*"O8BG)TATXe?[Vb:s-:@uoe6@$^\XSfs8K5%r]gA-J,738r0r32Hi<pcroX7YgV<KFs8LcfppYbL
%]>+<&?h>F>Omt:5'dp5l548&=g1pH(o^/j^+9)0sO+7.9O+[K*>Pn,4^\r*N0n&pp4T<t4T)VAugD"kjK)L)Wqk9fJRfE9Zr:dtt
%OkZ*"o]9;hH;8%\=bZgn9F.YegKI[UMVC_8')^/\F'pifP:D]#$1L&c'M8-E3+qM8nT6&&%er!6X<F0];TDX$D[K>UeaK0ET4\TJ
%n;_fr"OsC0SK_WD9JSjG@1M[H8/J':-8\7*(E9bL=?rOuVAP&!bE0hlP_*LeB/6iM=3o*q5C`[#:dr>H.$Y3k7ZI?1<8mm_iBE%5
%0bba,s(l#Ss/`OYRe]4#+OHSmKd!`,du_rFWNZ%YA?#gI2K40t6S3,2aZE&SCKq,o#V!+I\uMN@3grnYj2_;3TYdFVLe+cjN^;[S
%0Qh`KQMRE]cGE\JoK[)1Rl_i;+[A3+TdaRU"RH,"TWhD[\KN#!NbFqtS#>PR&VO[PX.KXgRNSO0'B3]SWYWTHAD-"%`S$0#9GYte
%G@Rj".kW=A)q8-1F%@#aU*a$nmKdq?.$B1*Yhi@>;&j%UD,I0srmV(u1dLHFFQN5)AB(u%j:L*QC?0oi-Z+:ob$+\]4AHHZ6Zj9b
%l0rt[i5.WZ`82dPd$!U.:kTSF(C4<PUhNF%K7s;=(Fnkra=#E&6XGC5rXuOO+WS;kAf%mWJqnppV?OYW1WB8i99E855D_IMrV@2i
%CIaqSatiEH-3/ZKSfjQX2,0A1W*3?&>-h!iM]UdgaHJG1;%eT$lDh3.=5:9;%\e7(%gKie:B`7A-0Cir-o[_-5l\0jJgcT7<1iJK
%Bgh*hdVVLOK3I]k]O]s)gH$0<<kj+^ER&qm@Kr3KUnDG%iP\h@>92e,1C;H"QpTBHc#H8(&:1,%i81X$3t1#c'L5V8`,<]<$YLT;
%4ph:P61.A\<])[:G-bbJOk;ZTU?+(A=JF_+^mr9m5!7.G5uKr!LkKm^>QR%V&=iq+0sBIVm=OmOg]EBp'#laX#8uZ^b9<cHmKeBi
%0"#Y!Aqa)Ra<LS[1kZXC&ig"qGM:@dNEWq$CB4s=&6pIM/`Zk%XWeJh9,*SO6c0p)SP.#u!%\d/h-1:8=mua7OVhNl^1<Y9To4=!
%&.?eeJm;Zt5MF*24sh51T^VF['J<RX!<@%Yeh:&&,7@5gUigZK!G8UDr355f`ioaW=E0#//#a6T\')o2AE=bP"d"5Q(duVh]N5p$
%aS2<6p"1YT,hb9<X5o.,+r<[l\e0f4JE#2fO;+0"08<a_]BF.#\+pO\X"LM,6_oo[d;5R'mDIWSIQF\,rTVibA#]Sm#DDEUrMR`)
%je,12"f&)EQcRj]p9<@0]#a1=LA+H$N:='><H4-R8h$EO2SEX%-j'9"6k?i;VH>m/r1PEIML:/f(ga!nI>hSMIA\lk3#6^pN.p\A
%6Pe2Xeh,<uno6n$89<?-eM\Y7ZM4JmHW&SW_9);uk2FE=15.Aq`cKpKS"O*kN+3KLLpE6>dE+?1ZS/n^&`gFWaXYi$8t-Da08A=9
%dTFZDn.6TnjOQl8,E&h"7WJ$G,`TO]fOFKoOPRB*e7tNH-?$+>?H@(+/[9>""q(rN>Y1V9=qFtQ=\!F=+DpfnYCj91DJ!e8&1mhG
%,a,ODk<k#r*L;3mAnZ]B9nO_HE?UBAN%c2E<JNP%!.iRVP#;bZG0QWEJtf"0(k[^>q0\,[3Y.nb01_<\De_T<h6i*RP"hYn<.IaI
%hsdg;[Z;Kgch+QA'0gTmRhd?nb9S<+VMm5onRXmj0c8B6R=)9&as[P2j>!'`V&oam:'A]B0V_AF-B%<;LCdN=jEdWj!n'b3)uVeK
%9.'lEWf0*A1itVY?e\a4e.gMhaa%Fn'J4JfdTIiL-,g]]1,UE+[,K*U\lrdmYdou]E+e-c&VHrL'eCVd?.WM@JmA\p0,lfP<'PGN
%(WL(Z/?H3@"KMWi9"2.FP]=AJX;W#K[r\F7X0,5'7uSYSf3-kUPj?:QSgsJ%02q;BAEB"T\YqWX(\,D3>Et$!5n:<d)f4V07VU!'
%+bM/5]],V6iIq)2Q3=7/-2u[\F'FVnep93GIm,MmL_jW_KPU?FYDR8hog"%3[7g']4V'S$4U`@RF;#qG,<bh?Y*5@b\:"Q^FN/s:
%PIAtgDC9k:'/[VuI44/Zmlt1QQbnXYH80h(li6m^&LsaePk._4-0I;sVW?P,Gt<p4#,f$&R:Uqq109A6LXTjOP&GLu!$#o4gYV9a
%OGZAo`LEA#b2eE\K1B1`QN^+HTd:g[]9WhfiZkoV!cCd+/B%JRJNteqhWLqN:kT*UmkuRs%Je7>C`\tk<+iX&%M8\^>=cb7;r)%E
%\?'+>Vb=c2jdDd6Zn=$C<B1Fg>Ce@0hUj](O,7tm(u\`4eEnOF,'?*;>5P]W"aGOIf_GBV0ht--)#j6SFj?Uk^65DjBD*,^nOi6(
%Z:DOB\LT*dje'<0$A@7#,CnKGCI4N/b;OAlq^ui&ZhDq]T#:tXTP=>HqHCDnnIYoYN;1"($$YX"*/h8$Cgcmd>5[VAFj&6:mQ4+H
%mP,\ebS&%q1_=W[MS\NHJlcle4:NgtDEj1GcuD.SW=dk,`NBuo(_Mkkd2/RkH0.7aMPTITII?%+et/cV_X$af0b^$DKt$l8a)3QT
%0rnLnU>]hWh]M/1ined^O<Cb@fY^g0RY;sRb7_$_E/O+b(LF;WNFS(Y7G%E?piN*.9_;Go<33,;8?q[&dMp59A\S2A1qeBg^TI%E
%&:/eM-b-oWlk`HqH!>PTc^W7oKjp*h3_qgTe4Zi4:$d("V^5)sC\i#9e4K#GF)5+%@e5$Eh5Yp*m6S":hnLO^qtgbS;/dVe@66TB
%B+kBPZojB]JjJPl2lm_;F\L7ogSi>b8_L_h'?=F/s*D#AmSc7W/3G\cB05H<2oAgG3j"0>/CQM$_scisHIV0)M@aC\ds5'F$,I%i
%8XlKB,2lGRBYAnH/R'ie*mqEFmr)eOq7ZuO=(iq"k!Y<%I=E[bj0t>QV`akKR'$5^ZqX=h/33ApIGjRg[fH1KO<!4QJ4^gQ2)^?e
%D3Q4<OuVTpL5PZ+S\6G#s0uoIk8\>PnKu"WHeeR"@rFci%7`fm\#?cC%U$DK--&VWfjj`q5.Mt@-2u"cmS$\5?gg4ePJ';imA;W>
%?,lYRT/'SV/h!:9GVOQ@0bi-RrgU,RoOm1oiU+W'*"Hsns$J$"54c>)/p.Rp45KX(_Cas#'>BoA4+E<`Vrlh8kHQoEr%rUC!QQm+
%,1(kl+\AnJ&bqn;%ZPE2`kFaUN+U"/p>J>^?OT)85?^I3?J\l`VHC>FJ8(>%HX325H4mTrLb'[C4D<_s`IZBU&Pl8oW0u3`Jk/R=
%Pks>Cj_.W*YoS>(pF3+rk!BnJ@U@G]&J^5[gdkSa5c^-t,-H[H6#88BDtk@;Ta8r;aT3B<fNjH1#k,`'1^'*F^j(%@#NM<[+iZZo
%a@Kg*0o"_"mRa#9;GeK4[,SSeN:.%QOFCYfHW_M0n_JOiqDi>NV;Yc*]:Qe9O2$&dQ5U.]+KFu1G/S^!2L(W_#,mj2@7N%G2IdX&
%qe:@2V!G6#ah4EI['at0g%(Ld@d6G4``&j:k(f2`X"I+7KcMBk-?',FfW"?K<_p(a16^67R,;HjNT*A"DF2j2s%p948YKdi>!pXD
%fcq^?;>I?BDH)fu_>;Qk^M;XQ.0+B.8RcnDX<3l=>i)$CnB7]XJA5hp;?O\U18&RA<<n>;"4eampMVg8=9one!1p+3(J&hZ<rDk=
%F.<!X3!RYRPc@5:#,nF<JKdT1!Mr,0`N)._KV8-5**-4$"'Cda:h\6Rk,FGB:S^NC?l+R1\!-8b!*Z'+a]jW"5I)440ar\G`;+gW
%'*7ca1)FseYitQe(-s(d1@,q#WCC=c&&2dX2I9O,$Rer$)B&$68dp`@:mYjIikVpCGs(DB8:Nf3LUt4uJH#cLX[Zi)/=`t,es6hE
%]lPj+VOJB#Jk'8`I7BR1AMo"GWpp)_R4aD7(-AMTO2-3rBRAh`g(o)JpQKS9MDS:"R&aIEBS^3hmXl_mfB87FZE-b0)3?:EO=G";
%QS/e9)A)e]W>B4!U\ojFG#J;ScZCnd6r!`\%Qot52b'tPEIfB*M#jq.nl[MsL>Q98HJ"E77XCh?8U(m(TsG>M,DJaYWYZ,u&:C=B
%h:5+59qqkWII[V"WL4]D`<E7YX]I*aNfc_EeX+Us!>AQK=N*5s/glTt0(^XE#lFu0#*NQ-J>/K3(LmW'=-4mOl^522T`gi"*`J40
%bbQ&_1"IJk.]c>m1*T')5]Vr7"UePZ,..Kb%$M+W:fSN)^SDe/J86?-L<:A>bRp#(<7_?B9oc,<VtBu%0flOYZ\aHXY%D7A9iH^e
%7,^R3VMH(EmR/:V1AWHUi#Y8T6=k!TJco1%^f&djWe$9lmQl/&cC3'r%t`=3hP/:/%0^,c*lm7Ze":^e814m$aXp')&3:b6*j8pl
%O9NY1;P7YNShuTGi+h,'DPR=+6l+Ij@`n-aq34;;'I+m3\nYDC'0pTf<u!Erj`+B*8jHZ(k"E,;T::FDS*2rPaI9sbeV1pi6Ro+J
%j]:Q1@.=5gP-'h&*"Aa5<42Po`R3S!J&.&1-QS,01SJ/[]SB$o@pOV^#Xj9,Ot>XV0Uo!a)/OAK/FXSmdTFYkDpoE=5p,JJW1#O_
%aL0I+a`.L(I_W#-9UM8M2PU<Z(WS6[V(_:"<H,A1!_#ee;q2kD]5G1?/Zd*VmsBK\#rHsCLSPY(`EQb.N!'>/[H&%Ilr&5*0Gk)f
%[L@9o3"Ibi'%_hk)o+]q4NS6lWuPiecDs]]-BXb?fnG'?C1&]NWPCBaEWM3;C.cD)HsD0SiJ3i5!"aZRVMb$q5Z^Z]o(oUG-N<+V
%GVr5\iPGf9TrDf%At`hCUtTT"E[$tV2#pNG:`s_@@mX,LH)UBYH=*dSLJ;tqAIlSc`s[KB4\rpF06d][D3%&bMq;eWIp(nghJY0)
%5-ek/]Nt5s%bMh,U<UL[#`EOSlk]<M<d3<Xo.R]8[L%@19Lb,JVgYX=s86liSN`57*\pO#2@5hMhk\>[2>nRL7@]?0](a1(hdfT$
%m;:E8hQ"aUf-FP7KOlc1>sM1O]TjaRLmk_`djRX.(MR?A10s#SVsG%7TJS=qN/5J7g(_CU$uNg=`*W"9ZJLGC%c;pcfL^62$jPiA
%]5h!Z-R<H6cmC"Fd;#b]>25@e@4@3=Yf5oOS5"*CGTO6I+S\'bjb?l+:+2n9VJa-\Hrf!H*c+kZI_gmNWt/0g88k_a:3+Gn;qUQc
%<ZK+K,\.E3!i7@Y#FqX*C?,]@4(YL?BLXN/_GdCqN;,9g8;UM(`5EiT"d1qSjqRA-dST*#Qu[G*D*CAP[5sj.3(hi8O;t!K#mU3S
%AsEX)RRi$]B[6m9Y3TA'!Jn_6Nen/gaOPqt(5k=(n3LP/Gpp7Y,mg=/YN0((8Y0k(&>P>h9dn[?5VIT[.W9XuB2D!.jm+U((1kZh
%8(UbJJ/lbX_Kc<g[+K=o796>k6ZE5?YJ;]9q5E=n/EIkN#7q;GLs?^K%4PTp@Es0\f"pNdlueSbO$dLfbs4Su+]3Ks6m3>PLV"03
%NfWqfK&%Jr;O%ce4hB2jggl=$*+E8"fomkJ"L,O=I5?9Q9/GQ8%d)R+'4e(E6fN<X9deAUQPPCC3>_bU^Oj1j()n';/<<X/Rm^QO
%Ri7=q5#rXk"1$IC!LFm7M3(=:8H!bC]j@!N?tc6SngS&m5]pp:0%sZsaIP`j"S!-@g-'&J<#B;Fm#/+QCD+LN>Ic^mM/M`2id$%Q
%cJsa50i%o?fj*<n@mr@f6G*neSlT<nF19EGfeba>aE8't!Z"g8IXk$KVK`2=!NUFJJf"X"#VC2a[Rin=>K[1dilI>sGj\I/E6*/2
%IPQ?qgbf3_g`fL0%+$!UN+TA5N/fN!<2)n)N6d4Ql0DhUJ>7BD&2BqT#HA*$Z%e7[d"7F6l<)80M@;6hNb\<DAl0BT[$>c.;K7'i
%-uSk26^X0VGAauQmA;_G]orugYnC1%\+?=o2Q',jh->%8[PKR@8KVVXZ5!9:NA2PF[6?nlDkR3X>fBRA7InJJjJkkb8FX=&$6L=t
%@8h_WiF(eP_DsD:[E1*jY6bBII9f*0MD*ZE#D5e19P/H3X5u'UJs:I=[$j_$5b@E):sGfoq:!APs$B^+2EA;k/a3ZN,T:b6CjI3R
%Vq.&)1k&@ZBG4$R%WK#\?Cjk*_6Q-?3m.SuE/?jY[B1LB"[_+P]oaKd'@*Fn2AumO[e+?#\qE&]en7*OO^@KWnCq@#6JEpph$LCY
%S:CL]-fb&q>G1ZXrprARm>jL1h7#WJhuE>HJ,#N5ne](=F@9\E6duVnC&6q,F^%0)A5hK:kGMg>[W2b9Nt`b:FD//"nsQY.m2"/e
%qmEluF,uZ%naGSA=BZ;PhiSUK+[sM/\s5;u"*T(hl[OTlr6[QdSaG0]PqaNbRjQM[qs>5"N?Z&k.DFD(LZ6Ic&+50^s$cCUGHo(l
%<Pp)uQ)X)(Cc:#Vc4s\"g.e;)^Mkkf7*iua#DXNTduTO.V/JTUmIk.l^<I;CX&3fY>23gt=F#HaJE#,A<53O;&AI$3Of5u74:!YY
%+!'sLDa3.HHF9iuLhhOI]ME;h/jm<P/Nb`pokIm?6$T?c]QtZhG('m7q6S-$g:%U\GJ.8rD+g't`J/ufFaD?7D-gl)!?B#ghm-YH
%DoZHN?V\2&eNQ#.=2'*%\+<e\U6lSnj+F<7Z)CuQLA3beY2MVgdJE?/\]34dh;Z6rM+J]`UO#VPZ,MlG"$`&drSULWq=_Y\52GK]
%Ek=ujHbUS*l+2.A.FABUil\_@me4&^9!5g$qYsQ"O6A]eJPYa>Zl7u@d[(IS`Kb?`h!Jl5]NY*#j]ppgO(6Pq__HdHrp6o"p?dM0
%I;*7DB$]i)"]IB:Ne).(4s.aC'Xd_o=Btas_>S7)pR1EfASEj!@O@UTj#67f#1J@Jau'Z9mh]nDjIk5[H,#Am$q<o9e5:X9bZDOW
%FK[??:=mb&T(d[SWU%,W-5(hY+!'\!Rm,`qCEjb+*JcJ([<THH+D?GbO%Da6[L\Dob."#2osIeM)XV(;I<9Na])*?/%ubtR%/P%c
%inCjPme>tBPOqT2=h6\TTb]^R*OCMUM@Y`d[;R/Bn,Hn@@Yh5K;o&<[5?=u8:b9BWiN[JDhCnUbRoU224!c%RW#^`4rS^(J7NJ1n
%5999*Da3.Ddu=jd%C\gt9^h!DF^B9H/]XBu#KM/'jO9[62FLu[AHklWgbPkg:aM39*BObakDtZ!d^Pk;p9e$4PDq=#i2'-qLWO$k
%]rn=6WIOnL>l462rP#]SDLFX8KgYR^a3)%Y+3#:(jJ-4)mFqm?qq=5&EnAOfnJV:FN'a;[hBUqV:IjEU[h%mADt_M"IfK28s7RQ6
%oQLh<fDf6YHn<hHp0oZ=6.$3rZh!9!hq,KShi>[8[8st)meLO$s7X8l0*bW$C=9%u8unr*cI1k#Wps319[pZNmGIiY[->J9Oq>qJ
%Nk3V,7iil$:]R([[*t0@@MW)rL"jP_J,G#AUR>(T5X_T^73C@,FcGoE.KXLA*K`Yk0B\W4;p`i!ZY$YI#SIDq=-lN&!lia-/qecf
%JA>tYpq&=RIn0nN#XL$F5qUH9i0j_[a10:%L2sbC#e\bXXH&7(j(kq'<EU(M?\s/Wg8%qac+<QX)$g>RNcY_AGW]1!iRcJ,Eb]`O
%!7;cA[&X4db]7p%'UYSkY4c=FL^C&*4K1I7FWG=2ies2HAS(u@Sh1PS7)9p@_%Hp<0A9ZSJ<0pKpB2)nX>tO3JN(DD>ZhGLr$74e
%A*e9d6C80K?:]W%Bso9j`LPNkEuZT&&4<>kAZ)gUP7<$BFTJ>"U`VGRa[k^T2_5K]G;(9K.35(8!5@*O6ic`jrXICQ^^s$gg7+I/
%J.M&,/#]=G43^kq]1C>V>s`aW(KHqq[1sUW/rkM.Bee($9\U./027sUbaJX^!l1#lAZ1s434Ka4C=0P7@7hr?MJ,RV"?MZu&%oLW
%n74u@cbS:->CpqCjpJL#aI,"6rJeYIR1_IE%&e8>3sVAH(!)aPXs&pR;@XW9L=h;JW^gAIgmH3i;H.6"6RI4SUqBq>[5=$g$rLAp
%&N-e)!1PS3"qG0>Q<o`b.=c(3g;s@'IC-e]A,s)ZaSBA4Pj"<f68?*1=\Z6h5;ZK>Afnl<dLNZ/&6PQW:BRB4_T5aulrN'Og36IX
%%KWHd,r2.BQqm.1OGjcW'1t4k<Bl==biJI0h\\%*\MLie^i^+V=l,1\ejQ@Q'flJ.FA;6U%j*9T&P-k7%GTMMO;<BKfkI1X$mnuA
%P0HX-`k8`V&1Io\:MQi-(f*^lqk&]MTZPhAOZFK;_b;^fW3-0J%GB2?:V\'[JSaWo&s),s?1)K#pgm*$G`4,+q95`]J-uDSFL<kX
%'cW!kTh5V\,/L<(Q=n%0_89>8!Vp"LS(PTIP5u<jK(<)JMN1"<!hm\/mTq0_E(AP-Uq/`lm-:Z7'8;@mYN-b&T^tK0k&Ea8b-DZV
%H\#Ei1>9gqCnsLV-j/Gm!Ycbs2R)o,BUdD)2Q"E#rna,hDGnDHOuT^gM)_\P'o7(2_%iIZ9Lsd'XXZN_$#T/se"%$.NB%8M$d(HY
%Xm@KE4js8l[40'uNXJf-U=9>$KHV)KVk[:d9OUWhp=!/UV2X!,;Y4]qHCK=K?k`Sf.H0W!bO`NiP`$hPk#'j=S2DCH6G^Tt<BoO9
%ReP::+8>(i,o1,&c_PJ\GpF2GdX=k*>&Y4C"HD\/Y@ThCp;T-gWUe<Q:()@0l8P<$EkY"8)MN;TZH1)]aK8uqgRos:#2K;FS]pRW
%D9f&UC-:'G'4m:![G+m&2Tjf3Of1I'`+0]uMkcQ9^B-4U\u3:ZVkej;Se&gcV7(?W3!kmr^,V<'CgFN?R41l:MbJaD+VB;32Ir2:
%V#lM`X?T5X!^/W7MWKtfb?ho58jaADRWTN_`I_l2QT(3YUW0sbQm"6m4:Irtf\_4h6fV)e)T<Ke4)ZuQ-:1rG7+NNgZip+('bdnK
%QuddXJ?>eC:mp'pD:$<52l'8U8aFiFO5<lZ"p2uqo]fj):<7(i/EZBQ6.qM?!@Ep92OKBWB2e@]Eh97eH64^I'uQW=JdnoE.Q<F)
%7`cI)EBmtRe'.U"T!)iuBk#-j<t"JoCRej[U+/"\CYnaZ\Mn(NRJ97/'`eNgEc8\VL5=BcOnD(B1FLq_cV9EK#aS'ml>akl+fC['
%8S3$rWTqMM$l0<$&d)PJiZ\)C5[-Tm$N@tfS&_id@dDD1"58r3CtC'P`]]D3-\lH8?JF$S&aLcH)7;4Cg5/Sj#):C!(-=*HZk1$G
%T_[S(H/BlE\&ngD[6%BhdQ]'%,ZnaG31P;,#6gbKg4"4Nah;V&s'_`>`Zg001'9^JM&\$Om#PfM,2:kjAkKRjQJem%JgG9_g&oo1
%Q*17l&2U_./W>+A#>KKjOfD4lUfK#*j?6X-"pFNd)Y-j!jCQ^<XFi-o$9WhTK'Yl_nsn9DWo>Bu6!4]0.++3*o^S*kf44VbJNd55
%&lP3iHSP%VgqE77Q-PXs_#Y)l6ESH#aQ*LEgdFnk+dU$$)9^iY1bAKr+@ko(o/MTV>rG69?$^ZRekK*MMqE?MS8Fmo3[-pIQHG_t
%.M'IF^XAp);?AKL7t5SLm[od2p<>?#S#R`d.Wp2j:I2k5ns(=MmWf/#DULtggVY,0<*BSbc^qFm+?2clp[*=(5VoVmIhS@!6F7-;
%]9l:]XP*,W%^[\gR\>fPJTao50gZt*e76Q,epoG2Zlt*s2kZJ%U%FOO=Sk7)Pm!oi(TF'k+8[K]%cW(*KhH.V,[c]U20.[bA*(R>
%!0u"(6n:X"#j*[3eG1j[7dk.s^@rp6f;N2U)QcE_IGm3qX;W@LJ\Quj1VInGP"`+'dSUg-9FRp.ZIT17bmB9[=iDN(N<HP?&o1Dl
%cL`>9_Q2dX;3)#p\M]6iEYF-_*e$rII&lq7m_e[iln)Tk_sI2<MBQ"'$_4pPp_eWNVJcX4E4Q9YIP-uj(EmUl]>oXf?rp>9R1k_<
%'a)Yo?gQd7BCl:9\9AL$^e<?ahFO176b@``:u,&@X?OOAbC]9D"O-^9%TW[bL&D-p1C;D660qcCbtl&V-tT;+2;^UR^;0@g$Vh@9
%#s]'GIL2oEQi=6`'q.LrfpPqV]kB6g=R/<iqH7XSCbEr4G%kUNJ<EY?*GW%3/]S,k%,"d""#,.N4=mSO>73heWKIRb1stl-UZW%!
%"JGQb[s^'.@T/t[-J8mma5YYr9AEOCL2\i0gd';jSJYQ>SLdY!p\W<'liX\X7SX9GHOh+kDU%:=0lG?-n-ELU+=5"Ck>;<`[Mf&Y
%K;P8-5ED4AVTL]*CjOu/9KH[;Z?_LB1klA&WPUl[OTH(OLc&\8TN8E*'!-'sjjErRH0c&bJiH4rU(+FSL'T<$T#M"GP#,s8_h3.2
%mapZ)U-X2G**lPJ0fG*tWpP`R,c"[&(?;,[;`.#J,%dd/M*V.jH60OA%:d)f#fd(b4S5X\p6OCX3:Y!44JdNngCfJCA17]WnSX:^
%UqMmTH7EqWMe$al8miKr3[BnnB2^ek'iS.s<[4``j/O?jVbp*9Y]mYHXj*^=MFu%6LYG4W"A+[WKj?),aV=^@?G46j/`LcYgY_U3
%,;$jt(8YG.1CkF4'cHYe9J#)IIXhD=,1eG%eu++^'9[Lr9.%^P67pg+/!1('+'LW8:.[Cp<RR,94.KECP^92-.TSmkGN*$uHo4-)
%RF.b_-#+!qJM`7uMnZ]?fAE:Dc<V+6a:jHq78dr,(L*%4!c:I8ngq!u;g:K^[M-j@#%\G$f)!Le1?aEo<=Kju.a;$.*Q,;'pjNVh
%_<VJkO:%9s>0RdHK>SCUES+FSP+UDM;o74,CES>@2)d6Lqikd\BL*]!+?a%=pYZ,A?iuSW.=GRkOq\^c,eX(/#Z!"3>!#NAl04\l
%;U4&Y+&+S+:`g!MMua&87pXNT&KRL)"XdK_=RQ*%>i5^1HZ%T8(&G<(&@s))(Af]?rmn;=<[5Nr%9o]$Y"uqReGIaul"X',/'N8W
%[*$S+2eSn+q`_-=!:%-S--15k;bM.o@8m<KStP^]:O.F[aokFuTt5)7_9bgp_>W>4:tW$6$N1h,$tE,U&uCT"6ia_iZN<[6l9a!Y
%L1,Wa+KKbo'?8aV<IJM^4hJi2g=Te<N'S[.[e/F6=`-Rd'[pW<(<jC38mnJ2,Aofd_"s@-4>e+YTs]OW4<%=0Ad%61IA47VV6ei=
%S9MdB2Fii:B4e:4b:6*Rj6Se27'"$+GB+I3s#.4OncqoEr3H,p;[6$Z12ikT1`>pSF0\?uh:DJ@"-h/q.*=7n3+0ic%R`(?S7I?1
%"#VnWOqj3a,Hhq%&pP1tOYf5--HkgX;YY$DO0(Q_:<oqu'!3?HOE^*.XDC>%*9nUm,"[])*N;@:Do?\)[Knifll&H_4[^Nd:NW57
%@R-:io;)H%!'2bAN^19%ito*!c,*22BAt.5D(m(#K@2d(GRt0-KkEd#'^u-B^;;%Ha%2*_8P0dC=GJYH.+P=-qGJNA;^dj_4I0tE
%WDnKaK)1Cr^0$AhksAqrCB'Ct)O[mkFHgQ5nJ0]'&G9?>.Lr3Y&2p5B*Q8Y'2B7?>,8J%-A/3]b-DKK_(!1*nDm=KG/It.?3C6VL
%]5D8m=>ca&2_L-%3(:[(+;$'5D.Y1m1QV2Q1),kFr[C,6[qemZQrT+M8*6A`.^$WuP%HQ)KM=M-%m,REc/W?,cpS^Up*@nd%ko<l
%>$WIgfp@X5Hlus[VtJckFqf]RLO4eB._*<nJRL35V4`>rS<EK@*WR#Qb]NBVas7t%Lr'eaK<coMm"OY,d]Oh6MWp0'J@dDZY*Fpb
%oVqHDUg4%K3m&$_2ng.HSBPamT8q5%L&!;lKc(:dE\\aKE57Ip"q?<k)_AY)E2k[t-I<\jF`b23>TMo&7a;$C4_1)qeqNe7\KEu@
%%M!:.m?Ge#[u`hNc-_YHEN$+_*]qN=K)B@]?tY*X?BTFV+SnWs;sDd^l[Dj2#oolWnu%8c_*VU.9$>$V)i<qG0\n3pYWa]Q8DOa)
%q1Z\R,L%p%JRo`..Td@<ja4(3Z,/9iP_Vs=?_`sWXc5#>;7Z@01`L"mVMmTWk9+;f?jd0<Q#moK(*]6s;@D)gO;7(i3HD(:,c8V,
%&2FTO%jH),XDc;+CFS;Ncu#m"GQrJ(focnS0kq>[A!'k<I\Frr+rBB<S?CXp'IkQ:)K';_GhM4Qjq]ke'Ss(hOd_aWcm\;3YDOqZ
%/N6*98SX#/ggd_X-"[8/cP8kU:G(rUFkPg:,\K]s\9EX9<e`UF_mBc0+gZ3'(Zt'[[PNt(;T,Dn\OP/oe5bZj?tS8Yabt>#r/=ci
%R86Ubf#9#UE/<S,f86"+7OY?-+:P.(JD^=cqB/gQ_A#DhjPB,B=L+5kX2(KhUd08AUh,'PRfb4?g&<B=BM3WRCI<u2-oh76[[V@j
%*j<?34@J2eI_Ej#,ZhkMIKV2h"<=;IDb'U*Qm1<c:scVN<6WHE7Z;oCa\X)BAij_@9%noEpsQGk=_Gl?4?bd]JOOec\gWAPhHka=
%%[upDa!9_K,-[#GM1kKaneF]dE(9=2Y9If<D$RMSG)[hc.9cHf"+\cDQD`a2U]JOf2E\O&L?c=l/gn!EqpWC&*ABG4\9-3>ast8l
%E]CCs<%RWW0='3@EcnY'A6+KJH$1$LO;g"=Fc2q@R?9bGp&tb<NjCAmU^eUp2?prN$3RFa3s4LRErJo#]uG=\VWkX5&duO[KO\_l
%)b1A,oOq`ZnVmAsHhuue;L-I;%=p`q=*JOQAXB]O^)qu*WG0mI6kQ`oXk--B&#lu-V3ecH-Lt]cNESdA$rBT(Ka^rQ!5=qGQ"G.H
%GUeR3qan2e5O?.,g@AVoi&\g)CUA;//k>fX;"uk,F*Kn<#D`B-R,>j\Cc^2_L<"j'onge#OeH?h^I+j:m*uP]B*)-:P<uME[pkVX
%ETW91__<:/i!q5(BUS[O5a;qX1R-^]S2/nsk@+Ko`Z[ojH3;>Gm*[*K,48F\I)i[g#Va06pl,;/@i.'p9"]lc-ca1"?S7EX_r"Z2
%IRKSIe=;`qhAP4.KK>`;S=/s4XWF,QZfu6GUtJ[%4eQDGW>&c^Lc+5A@Ef&0%/2'Si+ZSoc&bgNr:(7UbM5o/.jWt_=Zc;*M.
%+Vh&>7cOD4cBu'o3A>)AC&7n$EEL"K2s:[pafJ%+cIA8YrB-jbPh](XS5=_b_*($S#t(*iY3?'lT!Z]4Cnb%dm+5bLZt%si&h0;V
%k#"'SfpP=YN?,>2O")Kp3O=Obl0`0s4aJ$d7nb(F&N!QL`tUT)XI)8,5ajKW&4^*n*b'99(6RtOb^+qY8`tdUM^,Z8a]>qR[Tf`J
%&)sunC(6*SiS(F4nI!i.TFdf#^d>1?44q<Mru/=@kT>%;0P(@^#H^115o]Sh/j2_K"8@R=#^JH5p/aX[F\mQTmf3#g0$k]tX<5M*
%;Pr)3!qB@#OBaa!P(5b.,ihVC9mFG2SMf2@B_+Dq^S[9K/p(M"[anbpr?sIu)FkBG/7RCPYsV6pHa!X0B8SQ,<`32:F[@CA0=6+5
%,:3@p=Si'g:]KpFJ+kmOnOre4q"^m5Kh#(W00kaB<:CF1p6SS*@R&\reZ'C)3[F8L%l+4o0DsbTmD=4Hp;>BM,t1_.[KU$4o&If]
%TZ@2jX@hm[VD%[n7"_IL!_<P'ehe1!$pLSp_F"85DCW@;o$,;SFN:a]EY[V:?eSPl!BM?T+MsiD(c*csq2"X`VX%`3hE9sYd0Ok.
%5J!/74;Ru'S84VO/aGQI*hUjRm=*a/VV]Y>GV*<tEF+:0R&P(P*LjdO?/L3X51m_U]:RcWK`Fg7k468HG0U1Xc,\*c^adG&p$:@I
%pN_3(3-'E(VYgCY(57!ol[A*0mX!dLoBP_q<kAUCZ.ig!9s.uDGJn2j)`P0':JZD>rlMWbfBM&=-AY1%cV@i+\DR8;n?ob&!M&l4
%H/6MY@qt)fnbG5#J,A>@XY#\[("MbP#t&9iM5]9%s0#=l5O%hgnE9c<kp0]ciu":W50cmGkqLE0T=6/*f3Gd.Xn-F9"nrrU(u<'&
%mM:6E\6W>;DR\b_\&i:<].1C;h7Cbd7<@l8+u)O/D)r(9_g.^],E8%`?dFi%\*9Pqj#W5,VUV3/9@0s3[r0Y<m`4q7AN]99"[*mc
%4j%V&[%F5:n9O\MbY&fJWc-@;rH`sSBQl/VgnmG^)rLPdVkMi-)$AJig8E9^D*#USXg_`QIiA1T_t3HbQl>dGI(kX"CHDC]h187>
%#UX1M\>'*E`rL,JQM5s,KfEG3[q!PCq-'C\(,aHc,&-QoMaYV>mF]ead,gt'F,lN`o>I]eT'jX)'LD,-D=MoKFtEN]M\7FeBB15I
%'5R-\3/!*"W+7`7ft'>Sqel;qQs)0!>/4K"mSEM`UY`^#;EpG>Q0UOW7]&^RrH:N:593WmgrgH=q<iJ'on.^AqrQ9Wk'>>ufSG;R
%oai:iO.1KCLg7u`ch"R=Tg\aWHFgJ/Lg8!3LJ<54aR(-kDt**:EZGNJLANYU54@?ZamWJP_`I[clg:8'He7Xjg,X?VNpT,Qs,QBI
%\F/PK)#*4i>/[IZcWKVhqc"i!n+2>XE:Wg$LQFBIQ8Ua5TC2@;#<dD<aj21&J-[@Y"Rp!2G??F2!GEj4N@_-`;j:0H]6=!!S64\)
%[eA=u>Vc_;[S>uO9VG<S3@P_HBe+<$VVk/&\)0EW;)!PBa&(_#P."s8jBo=2P)QG'0bF%%NY0q_a1A+%ZSXPEa_cRoWsJ&u>N<bl
%>tm3/;;\IDor_3Z1+>YX[74g(A'q^uX`C%AOkI].`;^C$7t`S[\r*u/@9(>9C,L^,_5A[OcA<MgbSr\2YIpH)^tOHe=E/kR"sGMd
%)-Cdb1'f/sqsIGj5u!_1E./A]@*.;fa:=pFE(FCeT\>gc4SB6bVV=qj+mas3>io/oFZAM]b4sJ_''B.;s#ASaaBG)+lHrP?(OB`(
%/.X((D`jBAMS5r>!aZ![FY*pNV+L45(;Nt=+)=[,'#u#_U>>I/qgeG_"(Gq/+@1i83GPsP@&A%^9,Cn:U8i6ZQnL]lTPdB*<`'2,
%ZN,4\c@A0t_@4-fLg#1bXSc3D3kQaukhsj@[uZC5)LXk34W\(ZAu+!`_*Nd*>c)JQke?L(*omarq_2Fk^XnI^r;RcYA<<^,0RHRq
%,(cc@Ma?pVP2;uO%'oc\3(HrO4cPJI'rI'a;:de,-\iSc!SA)O"rk?/5kX?&Iah2N!W5K;?I=p(&B%a-o\J%W#I-IW/5NgH8?EJn
%?FchM=W+0-Qn(W2@_jbI0J3sOKbtL.$i9M'40QKjM)YTT#+k;99k%o]R#5BB8il$n*(eR/ALipoSka/A*-5-S8jdn:>ai.M_,u:l
%%#YJ\\mg5ii(HQ841_pYD#e*f(>fBBHej@ZhmJ(C/RGfKP4#,IAYp=<jl`9Q_-2gk!$k7<hiQo*B+ZD@]mF*r6U*^jW1)p;fE%r<
%@qBZt!Ng@;*%WYP'i=?W("qZhQsCq(@%Im!"umqa1+8MLV*mf$Z/&At;IgIbGg,>-ND?Rs/g,)Z=hn/(;Cd%Xc>.6<g$i8]+2ds_
%7tZRkQJ+#_O2f2&KZpZJN>'I12nj3KJ9$0@(M;uD3-2LG@XT$GF7#Q("NV%#f(3l%A*I=Z[rVKs;&-c4RI/s"ck"ss9t:UC"u'9^
%UYsMO>[0l_1(`04Mm>KJZTq/W>HqCh6T*ULN;%9G>p"88I.1S\Ss'W$"V6II*\UK#M.6s\VurktNk;ojG53R(N)[$M@_md0hF5`1
%obW8@DH_;#0F??jXU:.%)JKJ!1c['ZNg6CH^)^uG!^tc8#mYeDi9t%-Au9/QQ3h1lW\^h\h*sSEB`NqJ&>_hbFke(Wc-QIWJIPlI
%=klS&b%$)"+&X<#R9E"*'"?5iN8fu*J[TkEj.\r'Nrh!;((Ki#8F&Yqnol%V-pV<jCQf?bZ^^6IM*)$E,N)7>4W_D;6P'^HfRQ>@
%U'/0LqdA+/Ci!-BMIUT]YTaYQPZ25&30q'QHE8f+`/pJ,/Ei>(Pcq([!!'9AGQu1qZXmBGTZ_ou#7u=>RGMPu']:@UhJ5h*o'D<,
%oUcuJ6M(2eJ'VNud(3R41?n[M;^'`qNg3&e&"*euS5^&s_:7gM>l*mb!HN0")j3\D7PLQq#2![2T1fUhnqn`p'q@al?m-hfP`;B0
%&G<Fhf3GI;2GtH6-!V^[!5SY(n.u*9PgNH1UF$i7mWcTEg6N'Ye%+b#ViHhqmeBbUpEX9=mUY+*0I)d'@:6kpE%74L,ZMXtlOruJ
%YKm9%W"SGsFf2mlr7Qo*;;5uEHQPt6iYX^5)!Fme$/ak2:`p^p"*"b-P$im'UZL6GGCFC-)>`.&Sr?Oh*oIlO3cI^l[b,Gj,H6SX
%2kia]p"LsiN+;dfC\[d.SMU"h3eoh3h3?-fBUp`MiSbBE]%E]ra=Q[Y5*'e<6d$$2d'_`+.5-7VCd9kN'\#jHN-cae8@Yg&)CRc$
%#k*?'!p#SUL>uhJ?2G%Oj80f`YCY"*[m3(h9N=[fDUlpV"DQS8c"J$N4nOT,2MR9\euQX,7iYEle^l>`fV`P-7W>Vs9E@4;IXi!M
%`7u7pKToqgBf&GR])6=JlTCC1)F*(j*lhm^KgL;4nZD&0!Gk"eltIhgHf#j,+o#J)K"U&0&-5*.0U#b!>tdB+h_m+5OE-U7/.?]M
%Q-99r??uf$eFmS7`.r7k-$m\=??Tg[FVHFU9lnI0KkgbnTCDCG?u.g<L(S"1"I=l$*\Ar$Nan<Pll9u%Fq:]2h(A'B_WWt''`"nr
%bN_MO@h]rbg3G<oQai)oU3[4YJDcOEVDr`8e?KOEL$u=6=?_CPM=HH;=BFYpE\0Fsn/%(IU%$=UE+sLTVkfMlTt^d!'eFri!,m%%
%N!p]+l=H98?su@`V;"#Kn#h_SXe#]RPJ,^[VMSLt)@>0Ih@0H@?@8!j.8kGCR1/QlB<S<M!u$K*4V&!2TR2hXL(D9PlM5!7a\N;d
%UtA^3$V;L1:_jF*o.0QNVh]U-`r_=dZ>I^4JiC+/_D\Ki8b:$E9oDYT&ZJH\WId*-CJra!FR$<5&@6p<LrI@[kU[V3i2?dI5BZ.+
%/,HrY$>_b:(kf,t1)d2CYkkj2l[V:gQXb]5kZW_e*&m#i7<#uTU`cmUjDr4Xq$bI@7dS`9SV/ggUu".1=.IksEU)K8T)O5=H^A#2
%P3"ao$gJgS,!['N&H;A?8dPs<O\uPgR&rbD&;25RZ%8tlfOP<epV#1r4?W<tH$CjK-3AI2h<bq)*p2VIk%;f&Tn:j*.gQGfX003C
%V_f+27:3(a`R/jrp*=S.*UC<0>Tu"Ih=V0u[r,]A_<i+]IE*D`fCtTs40iFYj5V%.QF#=o=]V!#W?_+2VL=YBo6#>J2qo+6gKns#
%3GR1'QF+Z_]ToqfI&2M+f_!tl0#_-G/)Bd-Y.+aHl,L(/]oZ,p[rM]=VTN+DCT6lrl+0jiHq0IJ2l\uX+q@VEn#18R8!Vu-G@6Be
%;<@D/.duYNWH*?\b$-EG;s""=.\H1.o(e:q[l:<lDbDibH+m/;]W&A?q6n4OhTjAV>cKpDW,gSRD6,`in#5f)UWV?>fMoDr;<;(P
%03)oYW:KaRPrHDQ8ZOsYkuP7Q!O,7#S]02;Je%$EdU7nK/3N^^+K,.3qo*^0=OIsf2cY_#&/'is%6J+a:`@rZlV!3KF$+XpH@`HO
%)QWkl9l6#/nT@K)RbrDjgD45ac,qsbOcH.3%H"?(^[nt:/Q-#)m^ZWd=AhlJFicDpX>dS;b3HLt]^@_el^[[cWHT;>moZjsk$]8(
%?)ZF>fp<(uIV68Ge*]6-aY.29h66Qqh>0%\$9uWH70/_3V*eD"$rjeheR6EO5YgU@)E3q/_,-2SE7^S-f@qcEH!E.[()4E!Ch$%D
%Ip3)j%L[FV;RN=fU11Mu,c,tG&#CK$j>@S]BqEWhg<5ZK2*2tE[V=7eNcoV^kcWalZdWgGF'+VZN=QIXD]2f]ak([,=h'JbCLbn5
%;<i;=ERX@)Rb[)4G4-r`0"G4sIBE!3#1MJACM6o'?1PU<HHjKQ^WW?GC[EHI^bdUWh4h1D*jiU/<=M*qg@!Q%>LIrdVNXZdhhgY.
%_^56DOgV)GO64)AYn%S^11l1k!=<5*q*lWNM\6("XV4="T3.PC6d?eN,u'V!E>ns"qMO^F8hE-V"-X^8ZSe]cjWoY/eMuKh%W,Oj
%;cHt.Ya]*SF&JWi-f]=lO8$GP5e0Uo<J'`L.9o8:J]DkJZX$N`VY#YbgT"tL^2"DFHfCU7dE(T`StJn1,2+bnV$jk/+M28!;^cu!
%];lf0+4Wi2#oiff%TAKo]24rL:&n9lXF4#=(KU<@2'[/1X:&h2!g?.45U-@nqn/VSK7OP0(nN6JQP="DlV#G`U[Y1Umc;n\Ro5;W
%"]Un&_O0rj,WNVQ!7->N(1Q.E(n3elYWhusm)#/;3XO"f1Fm1U$dNF=Mb=Vp_CblF6*UA'iA"Q&0nb:,8?.&]#+,:\.qs'l_'Rs6
%.-:4\RkJCJVtr&UKl+E;]$,DJ<icocr=BUW-D_3,,KH7C,1L)&KiZ/r?)S.4d5T]fJ-6+iE!2.W$'mTf;pF5473pj$g\g'"TiN7/
%Dr?u`qd:HUbX:!0/<]AZJ/.'Q=<1B5XIor1$R%]E#<#jqcV'3CT`s)O3kKq`E#f56P6c<16?<on%'#8MQ)XD[,,T!4J'Ja9X-"`>
%2]66lSEp[\/USrtrin4tlrSt4EYl&@@u-(p276lGBCE7\kZ"TX3d$oA+O#KT?raea,`pYT>DB4"Q'!Fi!3>uWFq>Y3-m8Mb:T^21
%5@OIFJ0#sLJ=5=-)%[XnHRs&<IW/;n=PSCgWbBYHMA[:=.[Our*ei,mo8KaYGINA4^u0:c9+!_25QQ\RP&=D=F`gI]5#me*^hE3V
%LU`fCNKFQYO/YDKX%c9L'0?LZQlg&I2jRp]0d&mp0kdfT*KS=:M^6hQ,\KEo#Wjs+kS-j-@.m>IZeK<1Q?G8)(m\i#'2FW,T?P](
%*=Z.kMO,ebdjb"sR3i,.$PSDQU:&PgdDgNl.?n*02d(2.p5&"@Z\.0]Q!l%@d7=bFgW@$sqe@0K,2J-\KFNMu!`P(s_k%IY<]t@o
%A_9^</h&->Tur1$j#r[$9qoc94jI@"e?4VO4d3tM6:OBa$2.V7<T)"E$%Sp6`Ih,)/5(%s>$Or/rC]U!_<@)&V=HQ'n`hoOUh@<o
%j028'_14Qn'^24Q$%=UF5*`[q_oc5M7(+t0*sJZab5ALJ:cZHu=A@E1^cD:BEibd7G"nugRWV<W_JMBeO/5C;hJlC^SMJFS^^OFg
%SD"eE9#/89n.!pKM>85S&>sb9!#r7B&9V#IAjK3g[YI,;ifG"++(Zl)!JdJpCT#nH9e$oO[=Rj5*A=d1[*T/'?bdt@JXg0o.5#[3
%IuL*S%*UdpH-::BCeHZI/ZXPkY=OUKVeijGS:"fk=rqi:3SBhVjAmn>Gallf8)A7TV^j>/jafP],Y=pH%EV5b(Un79'G9IT\](g-
%1i1h^A(Y<_e8e0=bd<MZ2RS)6SO-a#\&QB^4ag^N\n&s[_Q:f?b%hV1bnDB!Qu&R0YdtulnrYg+_K>6/q..X"QVk_HG^t?ur=!Lb
%Om4A7oJ2L>(rN6qnOghL)=Pt<askAs&iCUVT6Fs=W3S\=0N%E%6G*\Q8qI;X;dE59=P7^R]";^IX"L!KJ:l%C@Tt;Dq8)MC@G^/<
%<B++/j3LFYP]StJ4X(aI!aE<XdOH4g$X]IB+E69QFuPVD7T%oTNZ[gRnJfD;iK"]E6if@T!s)oKp*JlN-dR-.p)4Ik##p3qc4L^h
%krYgkED)s#?j^(#mq*`H]g;tklm%P"bE?e31q0iC]%:U:QgG'%]b$,lE-UE1?1jG@3oOfj/N5^nra@<CDWe5L>sO>N+FFfA$,9Jc
%dcpD_+LC3/$XSO]5D9\78q*_f3W6"VaaDY+9N\%.jcZ;T4@PlO="^Y[-kXkBD1]TsN6i%1AfT",L'4sOrL%=f3h\o>+<Ki<X[@jF
%<\L(c:8&W2jk+O0p0Iq;,%j\<Y9ni=ljZ<TSmZL31OT21PsQpMUL<8VY%8$VW0HCj*]VnDf$)9&LbcuM*P8#j&J(LdWH!NQfK^k/
%7MA>pXoXM0iF%,)@'4=g?CJ+"edbiaVLC>BhU5<5#+W0P.U8Ln%*tHN/^u3Jo?\0QaRhTk0-='QA^)fEj@3,q!pWqH(+P,f.6;MY
%aOc.,-,hTk.mo\r_XhEW#on^bqL`H.I"?t31%NftlN3^kBAcJ,?rK/YRV?Wn6!)Rs"V_d"/i-=B1X1S5`o,C@j:"""7(MP"2drng
%/`ANEdtAHE*UDhCJqF'=*I(dN6`"?UY/#B1[>)tGGbo$=7CAg_$Z$u5F6X[HpnY$ZVYY"E5(N;hQY*iK+j!43SK;?297b;DcJ!83
%(2t(&#s++2N??1D'78&tJl%(J]Sjd"=USjV&=Z&9MgSc;#01/a$](Q`o^+6F^8/?b4jaiF6B'-1FKG1'2uo<f@aP?m@&07aS1`&-
%G3j/W:q>Ad`<;H_q\o;Y]CSddpkXd#(5EB#(UFN2J"Tes_kr5!j%J$oltQYI(N@N>J4ph*bd(-&#p[(ed&F\g,e4E4Zm6VOqCq(&
%&/MGgfV)>3I'9F'#O*Gji!mW$1_)CKg*Ln_7"/T\_;ob\W&V8P55Xlg+cDEq<W5mi*Q'1o)RQdb?:0lPbfF9-r2NEN<>>V>EAALJ
%-`,+Kj?t6_%*K1-@YJ7$(:4oiAVIDGKOsrRXY]Ru=lVGTXQ!OZ>p;4]=:/8bS;%n+_XFg>5CEMe9Gu@A6j4UbHW]G]M6FdH?<7i!
%=>ds3:P-a!R[sY-:!-6kJui80qrG=*)VIRa5h4g+%d[+*3&lOQ.:%(]`3/ZDf?_JFH;9j:XtI3%*:W_W'Uf,2"RY*V5k3Zg%h%Qr
%qD'Kr9SE""-_KjK6BiEm/F^$+=D+OS@W;R0/TOOAc;`'M%n"GB-m@1-&#P"4/Z-J"e7bC'4(St(\;Tl%_`L9J8mpga&jHtq#@&,-
%Rj:oaPW0[+[S0ZEq4)V;E"+="MCL$C]1J9uIS6Bt'rYQa1N'`Q)!i$I[iChAjTgYp8fr5sVh4-g3t0%8(."bCJ`ara3f:XZbe/bb
%3t./NhM[U#Pmql9!S;.5a1j']fgDi(3'iEFOYqO4;L?Y"%0PchTjYW^>$NPooa6L"+#jrGq'M4;;i5:?C*Se#bluPtcf;(0@>q=e
%cN=t^(HWo?R[#]'1rZgIq9"@EZV-.\?=]p&-J(OO\kJ\4*ACoS:A-Kj0r:o&OW!+7(#,tiJ8:<O2NlW"D2F,OlD2rserj=a?/-M8
%F)(7_7n#Mgks%2I34b%=A&Y(C`9O3FCh&T-Lih04`9IE1-$7c(,1c];TgNhQ'!4u77&b@0=GLkY-4bCU@Yun>WNBQ>ZU4$s;qWT*
%a+pg>L)&nR"=%07Zq1[`r1PRH,:js&&oj.ISu=hfejoR'DPYh@r8(N6q)Y+?aLb%Z))pgjerW!nYif;RY6>0#FcIUS]CUR<4((Lj
%`&&bTc&jm+S0pglT0s*2_ndTQ&&oAe?[^1mF>ESmTZggbMnm]a[<FU]p9BnbG7-q^Rm-b6UoYLa41g'hN16n?@EHLI^DPgl?%CS`
%:E?d)l<6;\`P\R'fG/_B<Rm>^b!Qt9`=:]%Zn)nC*%R"O+30<RP6'?Uq+Zkk/VNCS>#hj_>]8iDNnf8V8Xd93]FWQmAH/P&q*Vc1
%>f2@3@+^9AK9d?_'pN\.[k",#PDkF?80un_HO>pa\@CG_[cHJ/.K`rV<[Sbr]7:2NYII3^!#E'4qsoo%iX%Gr=n+e!]]f_kac8?V
%<#%:F,a@?Ml&`H4Aj5a$0JW\+in:-AI^U2Pdmc51#In+XG;tgK_dgc#fB4>OB9EC-DMprYMr+L81e3#bq_3".!+?/i!$@&$WTN7Y
%nWI)CA>i0cds8qGr-/dW@3^$\-\Ef2=r#8KU>'Oiqghm]+,<3/S*1Vf$8me)%T,B#C1_]Zbf3!P)_&C!99,%USS\hX4c@d3eGSl^
%Tl.tgamqPohd5!3=Y?o=1;2"V>Ykp#KchL@!m>O;5io%gK-c5!$(&QFG9Z>5XD3!Y]I',CGiHd.L-e6ZWZ)GbUs[-N`:P3hOlCUC
%F:\i@:iF>8"Ch(KR3q</qm]S<LKH>gWBt5k2<hqQOj\TV)=U48Ib<EO9i;0t3u1=.gK)n%j4QsPc5gQ'+7dg(R)9_1M)R%QbR)CW
%kX7G\&WY[*dA_.95$G+kN32gclspd,V[9qHq^7CI5FCgDWA0G<&YkaLUTO3Jg")1RFM\3'&N#HFb<_LU5X7;DOVG7([.9<\AX:32
%'m^F%88MhU<g@,lcF5f_$k[!\XT8m93d0-&Z(E'DIcDJM!LW0=g`MEPE;CfAmO@i=hLOQpc@7UJ`Hp(fMFbK0=*hML%\=&%^Fu;H
%MRcD9D/c3=PErC&Ic0H\)\pr8Fa5SfE%4=NijXQ;.5H0f6HQ^"Kff>)o`(_P:I[AskKnu.W$Ep:1K";c`8Y,F7QE\%,)G<&RXWg^
%g4?oVg9j?aTpaR!ZT6T,Hh_h_miWXO'-MP\MOPQ)Jh%,I@n]*f2b6<BlSWt//Q<\+?$OEoars?Y66unK3eUNVm<Kq=kUE&FheZ?)
%`B(g:H70OAKl@U$X:n?an5^Y7gu.P"r>A<=o_6_[NgYaj@h&Cb_j(:7Gt$P^40CLnGfNf]`K$RtmRd&U<XL-+P2+]fBagQrk3ba:
%#2WQ(\69M"EDp0"E#K5@P\4'Ep`[?qSuoATdfOf<[:q@4ME,/^WJa6]-:2cX"Wr?<a<\bO0uZ%>Pa&*97-$JMn/F8;I`F93mrMZ*
%RpJ+(HQ&=08dkuM)B"D44$!0"4Zl?jf^-mHTQc#tq$n"._]323BtD^Q7,bDE0-_7"`F+YmB)3[)$ThZi(F&,ud7l`DB^bXnGciWm
%Z@/=HQacK9/6=Xr2Z<Vr.U_.U,Z^(YkVCIH)&;Yli0qKZDH%i[n=0/ZHq;af@%+>6@-Z_/ID&uT,']Id6k;P52,jW*`*0`Q%XVlr
%.Zp3^JNHI:cZ45u+Xa,7@qO[3S)kXQH+'#7@cKfE#Zs.C,5@X9fAX='/D:+E2l@@Xm0^I>;oXM#k`3iK]Y=!IcJU5]#s3&kQ7M)b
%o<JI=gC0KpRZ985DbhhN:E2;^9H9hE6UXPfbi!iY,[;+K>Thc0-6r-"TLGAq8Ub?@0pUOMBq2IqKtoHQ.^;f4Pm@\*-4>H1h/MCa
%WppZG=X8Eu2'u4*H<-='W>n*N,/'!=*$Q3PmS(hLf<@DuDYbR$FdD"b9.'6!_1Ll)S626k*XGts-5k1L9Tk+1BrfEH[%]8aU+=o5
%6(UZf1iiBh5FBQbh0rp:VP7)J'cG@^AS;HHmp$-rBQ:c?L_g(SR.%imj8S5?QQl[=#XpBNg'74/37_j-JX0kA.L>-rRbdG3Kh9JC
%+[>;SKL*cG*e]+K\kQ>;$I%r!A.pu]aef";_[kZ1!^MO"6**tiFC\I9G]F*9aj0Hd3KXH;.hLI).aG@X5ITFMV-D^]6eh2H3hj6`
%1iF?J]m@;^@LI[WNt9fUl&-I!j^S=1_Xr%nj<;6\OCFC=P-]1B3UF,'88pboi]cF"/K+Z+`H5N,qk!:pWb8!Aj'dd9YM8qZg#en0
%b:?'>XqEMLbmFVI<(/Yg'gbU1m8V^RQKa#e>l`-sh4><h?C2_N3D9_,(2Y8%buMR(>o:lAGFL['g!J9[WaM?t=m`*M$or%H?=C>J
%RjVYm@%tI2FB*\TTD'8$#EiF+78"!,:^id=Jd3@[57%?c?]\/OE(=%r2hiE9K46G-Zmm6.Q'29aj*VIS[tVGma:a&cd@pF3NqLeJ
%BHAq\h1-R,!U*j6P6qCb*"gUET_A)%04GdJ!OCH##S)<HEHSC.P01Wk[#9$]EbRjM3JB+464R/6@+Jk]Wb72VMABfj<>4H_^;_#R
%@?"%p>o(b'bp\tLX/njKS0IZ65h,:@,S$m;qs0!9h*:?c4A_A_f_]8e%bYKR2.`Vi6jHpel:3n(LO47Jl>Xf\A`S=(5dAHl9qJSI
%WAD#1QP.2RW;Sdmc5GRDXVqGP#Nt*RS5-bp?q"CS4YWd0TD%j8H^5?)gfQq.'>raepd#=E9X4UtikNe/i?[ueqa\P+F\!F+[M_tf
%P\3SL=e8&N?3Pj3Os"mX_s/SUaA[k(Y,nm9[#C%<mZ=$0:B/eKqFMkA7S:75^D7T!:b\ch8CjEk_uj.D]0s>N[]1i$N?\teQ_aB9
%E+@.d"a-.I_0`f$*#BSdPt11a+iTm@+;=7I.G978,eRVnY,`WjP*A+Kn5#[c#n(TqEJi'Rf$LVu38B##ioe&>!`\I<&sgl$]4R1:
%&S"Lp7?hsDE_Z&MaWiq,-H7Hr7LMd<1hm4a$-A0hA9\-&7FH#hf:\1MQWAh#K-E_r[P9#Kd(q//Y;iHB^-K9cL^F.G!TK'a_9ViR
%GqW;NHG_uX9I4pWSj3XSmYiZ25tQbl>pIk\_"W,f!7Tb\;/`a@Z6ZELCHPi4,`]IQVTcVL^/]Cur!eZrjBCiUr^RRpP,PqIP:^``
%=IP=j'"3`bq[o(S9qg<i:/4s:I8Zs-pI:H]%Lare]O=tn(]Zt.n2lfr<-'s'm:SEOr*I@:T&fYZ`.Z??\iDk:Gu@09#lF[/N?#`%
%e?F#-ZXD![Gdf&I$l7BmU^W-3JAC)"MB6"AoXoMB"=g*L9gQdVE$(t<OQT/`ktSh08>KP(4oc%an6cj*Q3H6GKIgoe(`B`+aaf-j
%>onesp==d)<r)_ROaN6BFR:G>!U38cO/EPFJfq@r*%\,9F1"J)'@4l$!1JcB/B4,.:Df$W*lq^urLO(S>("2DR"Z"e-AW>*$NP[,
%%LRdZOge?;<4WEFAYi[8MZqoV=ue,YgI7^`KPqMa4rRuV_ZaqZr('g$Vm80t8&L"m?5Nh;&+PGh:HD5s\ccBtjnN$1]Jq4p?)/#W
%/V"E6%k1J]J/G2O@6#cg9C?D(&6*X!%*dpK?)J</BJnU-5YSjtV*dAZ#1]CDl&9^A_k>+B\n=\^HC%NW9#rf%!:^]kOk$4BT9QG<
%d69!NDXGM[;oQV7bXip:':-`Z$F>kd'V'5(-OT[32QE6`pfWV!Xb.uNSg\5[BOQ_8(on-Z"bu@S]$Au6.l@l4d;K%'o8S6RXcUpN
%mi`H"H3-"%;KZ>q\LQahKKbhX<O972h!Y#ZV<#gcDb*Jd,pB=6fecE<\MF/_0QcZ;V'npd2mO.D,)E@ac))*?BXb!M-)Z,Kai5F]
%EEVod9UIPdB"nPheVM2NY=.Mg0MmapP""I",e!lc?r=%LWGEKIbpJ\aRl`\04CjBF].EM[K"Wk8"N/X?f$r'F6NNVH!kUbkYa;(s
%*%N+c;L-BXo5C').efoZ^8bMc=n]&UC_6h7<J:e$%C<B0E@i<'?j"b_3!q<DJ<5Wu^JX3]S7.<u$Dqt><B\LO9puDF"ns_GI[\Ad
%R5QNr-IIMJ#f)OH3iRfSW.Ic%T>&S=MpD'=ihG69Mn,\SGhO$[j:pMuRA+XD<HeE-Qpk!50VE_s0gB>E'Bp*47nse3>$%)5+rEb.
%jd<''Gc1-n4KMql.QWm?r.*\X.=Ob*d)f-@Kg6Q._!FFg&s.>1#@0,ErAi9r:5)9sA0Y5,Sdr<Tf\BkUnL$2J!b''FW/WXO.9gt>
%5mJL41_k/8r2`?4mYe&ZVZu2oMdr3Fc]s%-T:e_E,\g5Ra>d:S0%\WU;,WY%'kF>iP6&CJoibA^aqc$bK\e'R[<TK//@ODONC)Pt
%gtAbP`_ib'pqbV<m,#0oOAo_XPo6D)QRMXb9MMuI+OaG8`]9`DZg"L2F"jRD2!*:1!^os%5h4]o],2g'N*.T!p-!oL_N[Y-qnXs7
%rQ)%&,%VX8CC#iPd3gZ*I$`N+[,X?@Z@pbZR\iI*UT-^D1q\_=R9gK^36tTuc;pW`i?l]T`;-)O#dTOYpn<`[`!h!4.PCg2M=I+(
%rG3PR+6X"#"OIb3arepb\7=Uk]Y5-iRDp/qc,=];4kGs]P1_8;qYs,5ER9IJ?tpa!@dr8(Rqm'GDep>MYb"T_W[m@0S1f=]Hn'Kb
%<Cr]g!k(ND+JMGKH8=jn=:MJPd!,gJ/QF6OA6;h;fh9CH%!p(OS!"dSWsX7sBOr7EB15Dp"Ek2F%l'PO0q=:iW!rYXg82Y=,Jj`,
%%:<o%$3lBN$-oY[7/8/72Bk8D,Uh#[pe<`,\J82I5i.'<Kc`p1d]ofY*nph4^*DV/S))6<l9]X>h?Q;o=-U-@BG'jgOts1U(:gN/
%EM%,9!5&r0AMB4`1,p-*,7`1$-fbuc&a,Sbehlo@e*fP;B1(-nNRFqfLh$<j-/su-#*-R,c;[eK=_B])+>m]QSCipd<igFu&GhW&
%VV/:=9=l(4+3Meo5L-W6*t5WQX`@J4ZIF4\$fFK&i=K4+\.k)nKnshlrfamF],>"<#`[9OWX>cm+uM?d@.\tNj#VjAP*a>(lfsCC
%45]\(OdDqY^PEM@Uh750+dgFQ.&N&J,#nT36a],*]E56=0qSI@.A.9(GL+:C_u.)pPgM"'B82iOVYu1YJ^hX!lba<[]&Aj_g_:nK
%(kl^h3f`Sm%jlK60#lXT_)GqEX7lp:4';_0m'W&$FnO:*#21hd6eU"5"7s^1j0$O(]Q)-<q@h3]Z;"pXL14'Mg<BU+c@n).:gl4b
%/pYVa+aL!$j0>W-:VtL`"^%3"HTg[`'Tn[HJ"G7npD=[JjLc3WRlq0iVf8VkZEVr$(Z$F8"icI"$5hdMN"-n2G/t^S1/quu-8_=K
%k#I1o$j3'1g-dNEFkVK]k&6,A8!P)g_C;CK8/K'9%W+2'a>[dDpG3G_n"i8TmGViC\k?%-]Tn1VNGsCcWkMpL"T!gmCb(F*_6NC>
%rs_pdWDS4)VKV@"(o*Z\Z[R,kmRkbgOBaE(aLR`Y<+MH&nR+;2+*=ME2VSaBT=TSg1X/[;:BMf:1-H8YXFLDg.eBPEIbARl_2W>W
%ee\+*ftH]Kg>.J?jDb<W*A7KXja!\eB_t@&-LdIo<mfD;!k5s]jt!XWGRr#6QhO),8SW9fnJg4:U`HQ-n4#,oWOY8W.k$6+L\)Qh
%Z(>K>U(rD(-as-l%l(\LR9a]%;<XF>cH5nf&h3?uCFd@*,2W1$!V-jmZgfMe:Mj,$qWV8A!X#'o#pt9q2oG`NWG:M6-LO6Aoq0=P
%:%^/PU_^\P2dD(YA^8aspR'A&0rAI+TeukX%a=G6*5Cp+'OeSUK?eGS2sG"tAkAE399k/XSb;Lfa-oVG*N*qN:^?o^#"Fh_n#OZs
%b#ln`,VW.q8<`bB-HUV;9(uGp!Ld%[X%<a3cYN(ufDZWb#&#QkOu+dVg_RpgCJ7/,OU`b>g0!JC-0oFfaFIfa5;Z@MF]RmioKe9o
%OF:@b;t+9P?]J-?YRUpKVkK;9:Jn[)K:`*r%NpJ"MF.TTYnZGc<2F3TGnkGN,,bjMctMF^."lZHA(:)aJ)HImO_EGSk-7:*^n7il
%7Bh\0:_bUu]X]M*P"rG,5Il)B_D>Xl@"Q92@@(U4oF2kU!LO2HW'#D^*uEGGgfB.\NCcfHAXbS%qr_mCXZhLT88qG;@Ue6n"Km!E
%&*\*ugh`O'fe2SFF.dQ4/SE4EF^("u-i[+Dc)5!aoI/M20jrnR&pDnB[]CDF9emI4RI1(A+*gT::$5Kiedro)Y[#bXCfIl1%$euf
%QQ$!lIb'Gh.lL?cd^/GZLgWErQZH1aIi)XcGE`G'=dfUkPM*VY!qW.Zn]0/4DeI#>@NZ.4[FJ.@-N&cDiFg;B&VfnoFmcUs;*YMO
%e8GJPku1H>Di-uF;$XM^#E*oE"UPq1!r!]BI<CDO2/V]E,LuBE0o-E_.0<`J3]"^^9!^`tC2*'PD48rFeI>DO=7/3[Mp]d$qKjWP
%7,i+V_j)IsP;r-Q,#RQ!?VK"U"""<@6:>H-CI-sF&O:rm7?cIn^H32PYW@R5aE=4H*Gm>6:+b7JQr2q[/I(>jYu1n2^!F\UZThCL
%Djoh<Y+>]ncTc"=Gs#ua5Fc`s4gjp(K1bhO,0TKY:G0u>6\.Hu0]S_9OJ@BQB0E[!^]I)'mMcJ?7JZ929JfbO<%U!pN+!;>DPc&9
%WmT6^4j9Z&j<o&Ean81$48(QJC)c"!i'0os'0X+cYGRh-/7mIu,e)UY$Y+_F%3\20V/RjkYPt<]V>"QZ"_O,,nKPW>76uD9#;['t
%4\a(fiHHeA8S-)<<=kKre[sgk5gX>q+nt'Bq7IDBQ_du\Ma5\N:mh7J0,Ffd&3gc==p#TeLeUiUZY,1WJRZ@G-WVUHAkoG9/^H'C
%0_5[Hf*``#o'5`EP)Et5aQUn^.<_S8I)g=``1]m#`YcW@]EqY=ofZi`)9gO5/],q1R^m/M/I@IMRVA-Z-0FJNDct1(X9)::9JRmO
%8-Q3Kk]EBagiiL=11%;tD$:IG`h$>Y-k?2p;aC/>1Z26m1f*N!Fr0U%3>7,I94-e:0\A/A.APl3M5@I3@lOATm`Kl4'7k%9OSo0p
%dC,</FK&>cj#^m)bbL+8VLuXp,@4IPLe)ZX`'[Y5^d&!5OYN-E"[FXZ%Nb>%Z&Uu2@3IWf:<i4b;J2j*6Zt"Ln+OK"+r5Sm;@3Iq
%CLhac+a\5?kU8Z'ck#L+S^fp53Vd>s2Jj*%;s8t6:T9!uc>iK@"or&rSG19W,3fT6!-ss68R7)To),a<Has&SH0HImNTq=IU0h1D
%8+_)Nc$PYpLe!e-!b=Mh4W9BTXD5'@Fha:oU]4qM?T$FPGcSf<>,[JrgY-.5Wi2Br^GC.7!([9?6VhL'R(E;I(!ptQdS2W]btQ!5
%35WP)jq9?0ds.=4(E&s9TU708DLU(!-tSjHAo?erhS<8M2!('Pf#GilY/@5Th+4kFSsl$/GU,=01rD#&U4J[pODt\/&B<E+RVoXb
%fJGRjK#;D:rJV"WF5CH+`e($?J233IY'Gep<u3rAmVPL\du39!UbEEU0"Z%j)b$?^E4G<U62)90CLW234VlFZ`9=u$esu3i'!!FE
%_r!jt7rh*j2gCR6SqWQ\Isc_X!qM9JGcq_C7TTSDS<)2EK_`5t#A,%[5\1mEk')Hl1fJC16U^k`6+W-]rpn@(]Z>JN31M\k%$^S"
%j@p-sf1!R_E"YUap-&\"kL!4eO^2Z#Y#C%hqfapo[X]@6p\XO,Md2nI1Bi?S?s0g/IFeRg3pH?4I%$U'M[Zf2$l%\URt<$U@r-S`
%=E`(m"!j*-B)tTTDBIcb!X$p3md?GI>i1L8pX@lGcqjg`C7H5nD)t#n]1f7Clht,5q,9XrO-VDMTUmX"fZ3Je50W%5OK$&(@i+eT
%'c3fHegm,dakuno^1dUiqCW3mZ3&0Kj<h2U"3<Yfs3I>/Z7]bi0+W'U=Z/YrFn^["E-SVR`o"cP!`),C@SO<d5hlqc1,!&h_@.K*
%g%a+ONPlqHR)c''?aY]X2r-o$"M+oD/4_?f+_AbZrpB+)KP:A]nXoF%5Q;Olrknd3@r$4S8?3(>`B]Smr:/k@JO?SG0+-'@8:T9q
%X'gn,?-e`2/_ih*C[W&,koF*"=u5NNdaV+7.\_[<r@=h:p%Co+:sRJ<7VMu*m1BB\],i/ThGK'&le(a;.MUN0gXA6sA=spcJ^FQp
%M_9Nd\iWJM20o+FAhbC48"QAar+DCS;nT$H=cVpD@1["(N)"YPRnfD>mj8+e!q-omkp8PJ92u+02C%+%47F/1B2lDP(ld?>185<?
%(=l&kXj?$?mIoIKiY"f2AeT;:-V!/W:FL9?\mHc+FHo6+oVg?k@DH-a+#`QARnn9'>N9EU*8drnh7b_NhP"E@%"#'Na]SBa\i33o
%G;CpA$jI"(0Pkj2=U7EIZB$FCj_fa#D7;Z2ABHf6(S!Mnhk.X@:Dk5f1`,u7hed$dU.PIbEo"Mi=q@K,O0CS04gTSd[]HMerOs5G
%L%hMDn^>&ZL[LEie!ngU1%f]ec^CT1a#>R^e.s*6=GZl^^T`_/EQ<=\=Mh'6meao)(]OeW1(4Oe.pThJnQkQAUQkPIW!UiTJu9Yu
%/^R)NfWE7=^YcWAeA&%TDU2LirDjBaH`;s5UrRos$h.!,:Dua-8%\sbM[htD.j%?)Se%)\7"sLHbIj.!6XA5qX@YjZpH9jUS>,u/
%XIGq'<=4dMjP\G*D11Ddao-@<T%E&58O12j1ZEi_U/aY"<5i:<=.;jS"Esc$G]ZX6Ff+eF6-?CRr$M$2E<'OmdfaG^pO:B^_1t;s
%5\X<Q_JgKS9q>[+MGU)$<6S/=g7%/O*5W>D4I.fV3#bU/#hUFZb.s_pm$PB\;9,T??L@@XW@VTO\Vj<O]H*M?f$8BF!beU\]=n/C
%_XTGJ1,D[_C:#g,ap:@)QV-=CLAIX>A-"L-f+#sqp&7rul1ZPU"D]Bcb-+'C;;<,frlB>2\2!JFdnm9eF2Hpp1fhR!ZR2YeBi1*C
%c#9("ZWh5@<QO:a5g"&J<-$lUk@]6?G4D?Z,@YJf7[(#'1_JJ\`;;,u+h_5OQ2`mSZgSf2opO+)0MB:ndgob]1.P!LC-1?F+="<2
%OBR68D;A%+,P.?Pd\>@8/sZt[@Z5.k:n1>O;JJa`o=21moX29(;&%sj;AZ#cleOgS@WHh%i@"sdSW3qa5)BF_Fq0BZ?@f>*=Cqke
%>V3T6n065n`PT>HJ7>cOrTQb&@,`iGGDP]]3qI^67:YF?Aos4Y+9o2q3Rud56'H6aAq9,B#?IFgpnAYM3p>T1c-S0^)j7+!&anT5
%J[t!aY]oga6!h#Q&iCL37M^$.A"9&p[c)n]7iiT=;'%1tjVF=YZ%j<]eh3OOQ:d#1Sn".6Y][,+'\<6g'NWUi3YiO%D`/rmJX@T]
%HnHK>r;$@+lmV%f$(iM:-!V:rjD"Rgm'tc!+A52&h4b`[p'rOWDjkknEG)55%m+9!:.hfdnmP_6g/$[%ODU&`@Ae)C[P7Tb0[nQQ
%GQ=@hZhYat55D;*`V06*+'I$.eq?AkjV$(jKHH;!^u0_G(I/r[//Si<N$<\9$kt-`![1Kn;GojCbTS@]%NNXU%(B[PA-mJX-5q0J
%4tW^D7SRn-4:BV"4I`/'KR&@oD8s#;BXY5QOsMTG,CGismf\(j#?\r&;M+:E(XS)+2T=Z$FaQ_!;*i'5)IoP<76uS3e\T/]L@/`,
%jir7'L_V*RO4D@fN-4YpXOo-`a6m_\^U&HL,cPg6U1"$.`io[BqkPuSnoh4P(k^4+T;1fJoe.tL-e4\=O/a^b7?8o+iRMu`J+#/h
%=Edp3#4MaRp$e;umuC)eE&TYMgffk_U!*_V/_d-;9^i3BW[ZUo'#8FZAXR.pn<Z)KZRD^OS*HlW`#)/a`j.)%77o_M.P4@1:WD$8
%U'91u\+SdEk+S6inF$?nlUaOH32,qZP!\9V64/"PZ`!e]V+!`+KfV2c@1&0pPJ$F9,q:3q-6gC5W`TIAs5!*`[]_pKD9n;d!;2J1
%9$1(5X6+%YJ<eg<NP,g3mAI0^:N,mApV%:m5BYfaU1p\b'*6U]UP"s?^SQoi#jl=K8&1_8TnbNcIQ8+X/sUI&,1k:MFrr+kF;O2n
%iINs!N$0K:#>K+cXoQ3[lOK5(JQ?5@#;DYRXbZ^CZJ'u,5un^(`9jPI-&uRoP5qZQ-m:ha+mjeaZ]gMs;Y4dJo_H.V/*3Vke>q`G
%<PrCi840")PRL_<[@)tV`Pt;f6tEI,agmLPT/n35YPFX5@D!<\ne'CI*b4#9RGWfqg2-*0mDG.6^@'mKKg^m$+-'.a$83ouOI?(O
%mgoL&7J5083K0j-IHd2AYf`R>,!Nd(a/:I@=^VEQCmT4)"TJH])oiTf4,8.3l]Y(<dJc_H"#YAIZT3W#C9d;n`;T/ucl]IK7R07[
%_"]u#8KI(7]bY&(&.VPljC9`&E&VW*LH9b+pk@/n_`<=d*JV%jah]1nE;:#rLqE6`8T+dpO;;9ZrB4Ks'T6G6$eM=B0mtUIPYo/t
%**(hqp0!7=!lWaOO0[M])'R8YA];P0-#aP!g*<mZ6A^oCa$oK2=l>V!%JB7+%<4__%H%9jit$-ZfSMfA1><.aVuW.U@<9k!TCiuN
%3I'=Jbr5\g#>aP`&;gQ3cKOX3D`s/r:$,YP/lubG7Q@S>GdftH83,c\]QscS(N`WD('#>G"T+?..)o,AlW2,eFsNWL!QUDl7-1`V
%g6=ESe5.Hi*=h18,eeP;UF)(i>O@j.b2O'%,T!5c5f'Rp(f"bp?dGK)L1!kaX[)S7`(EH7j^Q)Z:S)@EfI$bYBK/R127u7!I5W/(
%P\I).KQn>!JW/3Nc,Ze@k);9fY"DQT2CJ$m-I+_?F/.5BAW>(u`nH;#X\FCiQh(H:/@e]T9B,'/W!?^=J%qdR)8Gg#";6;Rnuuo"
%A?dimPJLGRs!'"KT^AF"j!CL&<BjrH05C083XF8^($Ts@mgg-173g5+,K$+LpehjlQX[>jrB'"sM^YqDpi<^B,#iP]oI$-48nJ.b
%K6+^+BnpkS/2ae4\Vd'UrJ.=`%>?q^;8[d.6A\>#ii>O[E@(1F4XO$7<qJ2*>E^%;%$;i4Cm^SW2ESX$b%ld7/FbJ627u/PU6IJc
%p+nM"<*k\e>u9p!6G9_;D$7]4(7@5EWh\&GEOpdH``IX!.5C)S,m9f8]F#(D4$>B[Lg[U4ACD)1NMV<2]"!=pZKf>Z?lJ?lDI<+8
%4C!Z(!Dn\$mG4!l8bm@CBulGBf&=,m_3/!ElpFQ-I;Olm%SeliV52C8-Vj>u<*@]1I4'<m<Gdd69f'O[OipL]Hl8PM_r&_JF"de5
%A/N>o>Bur<[=M6cOq^'.Ie2aC&/l"f1IDhEjltl6g.&_MS(W1#[;'GcU4u*c8?M)')]];m`*eG24G5l0nEhnSjr8OEQ`n,rl+@KR
%U5@G'Qm6F]9njSek2:r,Z=)Lj0QFZV.Q,$sR%e/+ee2iW6q^Eo%jd?,nE[<:h`pf:A+$M%c"tp6fC9RaK4H\gP"4=rh-$:F;5SoX
%U?Q4G&![c,itdgIeXtr:,tW]aAkDu0e3"a\;n%TE,gmS8T.r=6n0FFkm<)cG`-)_Bi9\PHptJrg@#Rtq!gMNOd%jbo'-CCj/.U(p
%*pVSI6mG`2L)Mfu'Dq7',!#WX2E^2=##>KjY/N[@#%L8tSmM*m^iFI.8Jg)PdkunZD#['u\8Dcm6U890qVIn(ZZ^P75*WJuH4CuG
%"$kn&/M'4<qCM'B0m)X'*'a+!FPWEj;*;O0I+V[#CFVMkA.ANY6.sAb1ZO;.s,!Lg>mCcP_Ak#M,Ablt_h7i%m_O[2<N!fLO$a@o
%CVY%,(X_!+a/@O8c!3KApiJ@#iH4q^;"HpDYfjNY;\p#hpaW1M-jHKu*nkA^Et`(&C4V&!Ldn+A+_\73,V+jhd86ll";lo!8#NT^
%<@'CK%7554pa*=`4[nf#.F5"c0.NN$Pb>*X_H#t$5+2#U8EcS9*!)+QLZr8S+87UjWnB@BjqqJ+@V,H$-"bT%WBSa+id@`K`W%]u
%3Q$HLaU.U6/@\X%e`(b4PJG:L%P%4FeSOc3;N2MH8glVcJML0Yc&bMFePQ"J6Dc+&D*r_aV7XpjcH?>WB5.`W6+efaD=W%BVOGTF
%6[uj@<m:)"r?s`&<>(Xs=Qf\>+.clsOV$>mgaa$`Ud3b8U5Fb1T#*,WaOiMi1PNa4/ZH6:]2r6@'o1K(=,FWnQN@9fLEtR)*e.E(
%oaVupnVfkY;*k6X=A8Wtd`UT_W)jU7",=npTc=7$n5K.VI$,fWgoE#;_*U8m,3:"XE"^BJ+F![^^H#;RcY>b28j^os)"X?UX*3>'
%&kR4Q2&Q?7^<B/@]QS]01\Wb@a1]7Jqh]-lU.Q*BilS3aAHk(>p@!)$GCDYJ!GWK'E+gD$@\=j!W^8+k3&./M2G.Vlkdh*I0r91e
%^_QW^7gsP<+jR:C<W'b_pEBLo']4Od).#a$iXnOo.RmTbS:L9Ncls,Mi"'[!W,b83fKkI-nWOTgpibHqkMNoncD2$h$I0MVC&p*_
%LDj&pP'.9lM_8@df_$EO@Ma&G4Z"fP3BiGbAhip7%JpVr7@m5bm",?],3SSg30X4-MQPDBaq!UfDR1[SAd"W:a[h%61+,oC[1YiA
%;eilMMhZ5_,#"nhaQ/9C`-%@EYjXsU6fSV5Ha75IH3q>1gGebYD$57f%Z6]O[Gj;kl`+kR>t<"Tf0'sol#Bok!A"s7`V]-g+CA>0
%Vs]8kY+`9l8)@%d$h'4=92;C>d])LR>pX2+,456tFrFgVJ!;;FWWGKZ'nQNM7Cta%?8S`K(6D'gon4;'Ee`<XO$ZZL;]/hnaI,P"
%g1DE.8P289:ntghhnIq6l.'*]mSKq!CB$\@i-,\d1mJ2_pnD\>3Rs@dg^R5S!ip_I`Uu=U,hG?pA0%m%i?5`-_hO=3T63;d/TkKF
%=`2.R?.QE+2P4[+L[&JlBZd.C1[9P'3Jk9Q\#Vr4ckL\(La0<,afNihG*+*L`CU\0;p^'i8KP!Sq`TP2(hjG&=Y4B]#7;?G"e'o1
%J=YDZfd5mm=;XO_p&$06fD;&/B)8W]nUB)W#U_,'J>iC&H-HOD@gpCa:^D_0Tk^N^[5+SZ&e!)l=8oM:/O:<eV"!`C-\;#n^h8''
%TFSO:R^s&9,7hfC?V*oXb0?pSlUjsWPpH27CfT+dAa<Wn$/+`H`'"9uVleZV9-Esi=A2o;'e]LS`BaBa"q2i\L5Q(bnp=I@LhO+!
%ORn9]Yi7/LC#:bXoPI2aE;i\GEN1"K,hnp(W(L'B07P^7De=mk'5^ha0nH6`FBJUgq`rj%S0qrG3.Jl9X+=-+l![;BVh^[%;+./S
%73NgA;C.Dc!N>>SB:01V*B4DMY-&&g#m_=&$G%e$B9S>J\tLk-m3.I83XO0uM\*Fg4`cDk$ftic9J0;Ua=g<ahQ\sr<:Q$3Y0,&(
%r@DEVoj<4W3<ej=>XdKnFEj7Jf)jQ#NH(P*hE9\q@PrAmQgMC>L)lAWq4`f'>@u?.``Qej7],0qFdo`m.PBdrbB'N>/L?^ng0ki?
%77J3s&@1).:DHH`L(Rh]?o=/KTsi@q0*f3]*a5I$#TFZWWQ70*3/N"jFSl33UEOb@oQJ?>hn8nG[b]8;'@c+7mB](X'X#s<ZfF<)
%MRa`QJuV-L-n9,!5NBe-Q_7SppDURCe]WY,7D%(da8pZ185c&5=B$>,:i^T#a=hI=l*W['$4k/IBW%)MFfcN^B^YAiGB7h8'F<d`
%;6EAAi".&sU;G!I"b]rghQ/<@EXhR:(O_H@mMN^)%NtZSg#@fk<7Xo8&`MYN\S)'BQ6qdZ_6Lqe0&;2Vb(+uUNW=k8_`M9X\gp<m
%C8LU(Lu(=+QXL$71B'14fHKJU8]/][5.$6=ijh$KkE29pq"@b^f0oVV*^<BPG)/]^qf_ksb3TP/b]=KF204<nR@:+jZYAR!qq\ES
%,,nMg0blnbSLZ>8Y6)'](_]7nR;+/"eN\<WU7Q%5<WB8!jE[haWrQ"tBO8&@&U_<mE7$6WRr+SUaeUPX>8H-R,r\W]d$/9797!t;
%=5$o#gZ2g_5>Q0K5)k.Y6s_d:&FnhE?>p,?_G0kKZpo/T8gq`"'jn4:,n$-BBb>,adFePL,Dd.dkuKp1Vlh.11m(=Lf>HT..k2EX
%Ls/4KN$Y_V3Ff@DX[_m7XfFlu<=Dh?BX4"'n%r4-P07u'[?,&mCj/%j8@3E+&lq:U\b/<$f;=B$:mGnt27ABN5dmV5`%'UYQ^N"[
%Q4G\*Z9ujNVrEo(s8#^\SUF/A:Vhs%,]3@QV<I=kD>UujB3"+8lr$B3R$*caS(n:d6^dWmgTaRcCAjle7M_n"RCNSp;qXQoMutps
%8FSKVZ.b<I&rV2>jM7Hfe_KadIk,$saWmMJ:mZs?7tb(hl:8rOJb6`Je]Gq&i`r'Ano'-K6=Z-_S1`\nFRLSThX<YH%Orm]=O"kr
%EOc.3O2EYDA)Ijt-CE%s_\g9_0BGf\4>iD`fMFo-Dl>D;2RA&"\Gd8;Z`a25aMe-L""AG8qJ`OJV<&DshID3A_P\l'5Nhc\gg,Ck
%oNaFd+4jW-bB;XOT"Eji)?da'D`.JW)Qq&k<0KJN(8ItsRbrDjgQ:qhVR]6a%)D])0tn#5R($l1pr.*?#/+jX$U?g-)?_DRC)#l;
%c%#"YHa9ZYNHYFtEdb;T8,#pS@Q)$VOBsACaa^U-lSY$-d=NpP>@UTn]=n'uos=PB\V.1630YhUnl_)^.dBHT9m<Z_VVFm"\5fi0
%>/Y0Vns=$B3aJcqD9T#T%p--JD#/>.;ud+mXG7T-b/iK@:<7t,4MSmOgdf#HaqiZOb9+.AWOqH/R-b^55Ge(i8%lTP?IM*IQ0?7D
%=7Q2,0@?hcYtPhHBBJ]KATAkF^DCtd3.%gSN;'is/&<1+@pg3t^\\a)qU<Q@BHuW6r-'_PHTd;Z[AM+ZC7!lU^&Jd5ps3#QJ)>CP
%*)gh\;=fmqAP*:?M:jn-QX+FRUb:b2d@[:U6$KZ[<BdQF.[YD46L3FH%fbqO`bb(ZP.^3!A)j;hc#p]-YKJhRTOGdPrm3O6J+VRb
%&k:"[+^;D>hdhJ-8">(Jb&/0I,n0-g"R^(nQN&;u@e%Z8ZCtUr\iobPH69.i6Xsmb<b!bCIVgRI=1pI7@jn<oXicC87;Yu%]@sr[
%>cB;]Zu$/?T3J)D.l]K8pta8c[)V];fllR;5L7d#=+dqkdpP?pGil*D)KXe]C[:en/R4F:OhTI);]9jtA&nH#CTOW'pA8Q?>V4iR
%?13rX_:0N6XZ$\QXjs=,=B]&'S^u`m,Y'[MH!94hGb`d-96)+(Tbb7;iDo%efeB4+)Q'$5NV]Ng*ib\6HSX?Q_7\C&S#7]q\(*0c
%`bV&5h=YZ"n2kU5TkFWA#PD=YeRhZbIRCJE7dWib>Li:^)iP#iEgDbdSU(0B/G'0S?ZXJ%g^gnKk:blm!S:M))V&Ngg6KP1@k=pL
%7`(<6YhlHNle?l38oZR$.E*`,5TB(8^"eHQjP@60WEF,qG&8m0!8$5(*bs`D3GPX&QZZ)>h`UA-Vs^0R<3t$,-'0g^q\]/d'n(L0
%H=cPpW")3:Z`CM;V3fI)o]R$9q!NT=Cjr%#A4H[T&s*i0s&F"MQA`-nLKFp;]+&VK6adD=]:F@LI<]R'YRe]iQ[eQ/UI+R2+anLH
%"D/k]L!4='09S73HJ8IX,j)c9R<aXNSKa[IGq&Ka;r.&R:K$pge[l$^Vo;R#=mQM*Qj,4D9@HWdl2J0THL?r$2<L&I[V:^m'C'E<
%`B<T>mI338rFBK=a2H!cL!H6oDVLVt[2tn7^d]6$s6+WG8gQghka96U9&"^JmEr?9ra^3dJ1lEWm=F=>3dm/R1gf,!)=ncknP!Wu
%(hC3o$4eC-=$80c*`2WV`g:n@]/pQgf5\]oiJKLOAahUaV9A.8gr>f[V:Fb7.@3[LQD!-bnFk3>FqB`fA,?9i&!"GKE`=11YP:BT
%\g_.<`)EA;LSg=m]"NDo07+\4kX^9)cP86TQepKqP%OI^[teE(AWMU?5NCPc:/L)>>O4_2ATNcXfXC4oh8ZV`*:6)eV.D.4=p#q"
%/RG2rhIMll<[`==`P+gp.fZfrXjPrX(0\9J[VkR.k$>jPgo_Sg/*>)>>I&!&R;.3:(;n8nNk3J\?A3ZkM_Kk8J882U4GpXDk`GI&
%o=M![Z`^uV*kIVJTqg4mn!!(1(j>It#qptE],0uLQU2`dn9m+AnVl:o^JXjjpU`VtU9?C.b`-4fs(K+*S$P::,sqVBoKe;:A]3['
%[8R@ogXj$;maKc#[!_mUQBg9]:s8A#WMD_(qG_(YSj)i@Ej*aRBpnk!^@-,![KURjmF&I4k%&?I=0sO\S&N4hkPK`sK`9I-fsXa?
%lJ!3bq\FUN]M?t2Vehi9d=(TU'Q2-2f5poXiVTJ=D]PIiF_bidX$,AeK"9`L"VbDna^%?KiB$jSb8+`Nr_s7u[Rrm4bsmsUG.gOl
%-/Z8h0DS._DF_UC5qBG1%c?`$k9,`;K-fu.3T%!O`pUO'rQ8knZ(4ccI=""--G*%5[UlE(DJ\;OApPP6ne#?fqfc8gn_EHAe+`1;
%-Ku*I>0jl@qt:4SrRAApXs&<gWD5B>\gsEPFqZ95/H4D)Oj]HA^UfdW1e-m3*e)c5CsSq,]/U1#C=9YL]ns9(TsjSU[SLDJ`4>8g
%LFL<a[L20"(9sUnpE0;0?Ip_CM0;,VE2E(gIE?stD_#$j5IYQWP0o1,L!<mof+M.Ek.H+fnTDIY'Jm)m6.9>qHB#2?buS3:FmKJ[
%(>*5kDA!6T,_#cu^Md@uY.qLcb8qIngfd*[rE\4pQL*&4D\KaA?M-ZPFg!-NQZ1E>F;pg)9C;ThmXAHCakOa9`VC)XUQ=;^fGj>#
%l^CJKQI+PDgIOu&TAG"^a7O"srP6As;fi<(<!9B:6YSHe.W+^!a52Ae1h5Eoq[r7=h.m84rQ3tL)IS.>bV,2l,h<?#dIX38kdLiE
%3.'#&J0;*@kH%D6]611#5;/Zh(^68aGA[=oXfrgL@\`DRmDA5_G4<lWp+\Z!qqoDe"Vms$IU3`H0q2psg&6+rZFd8`]9:WQNKn_E
%=391'hLWHAn@jUOpU\A\_K_tsg5FTlV!$Jr(1ZYLf6(X4FZdc((,UU]Cm]5-)np*HPp?JFk'.;m-22e3[JSgiF&NIOD(JE+9_<b>
%UJ5m^48h$3>\-).WD-C(^>o$;0>mF[e\?AJ`j'YV4%s(-MC-0sY"*@H";V[%H_1mt!QX=\k0u6WYgj4Z9.QjQIAm3-\"VaKhkbLC
%j7Vs2!'!FNgDAsq0!V34oL2,`gigU\=[fcJkpS#Lrg1)Qh6pa9U\"Jc*Od=qB4_<uP,pr9G]pdZ@!b=?Hq*J&'8!#IH;tA:Mgp6t
%`*$nY^e-j#<E1!u/3#99e7/\Ve:rRW3Q!7FK*77&<-<F5,ndp3`=o2t6aN4Khjc@81tNVg]nnqj<lK<or7RudfkfSB1q4%B^(=Q,
%2cmSKVB7'MR>=&ThgUb3>j+g[CT]DBr/Rtl6Ck:0e<3KOn6q"n@WIgPq(1oF"5bE)UTc#6Qt1lW#aicRFd`ST+UfBNkGQ+fDOX/i
%Za6j%^OP*U3,Zm0\96A7LCRbI"CFEd@Wei,VZP(<=`r9<\\20Q9G@Vs;cYLp8L"#oTo+1;)j]P#ddbqP(#uf?@Nkm_J]Q5^9],:/
%g+6Dcs#!G;ZM7h+<h*=+r;H4nUJ*EgYK?06U&qTt"Am>:?I`61U1/+X'&.PPq%#_dAVR-clBQIlm)kP[*:#RZV\%AQoeJDg$p+j1
%LQc`jmB]tj5bs67RlMD+3f0C2CPA:/KPBiSIK-`WQeslF.Y,f&'tm*aX0NV%`Dk4d,RG"f+`s$WYL[7;aao57d,baXOe/mZ*<$u`
%D[D;$rNV\&]mGQU"ELR0G<cj))shTZnhfgM*hmtLTQ=b]p:T8\8!<`%eMd[!*pLg2O:)T.TVtCLC,>712'(p,0JPb^SYZLj[B(i*
%KoK$;&]>geR8]M;2Q#uaZ>sBqMVX7%OUP2JmS.N,#.^tp=b#)SVU/Rp>^%Qbd<=3ArPLNB!@H'$'q_4-H-An$Jt&D2&$"5--.kq?
%k`QS5'GgrWX&)dXEjh37Q^'u+!'C`pN?#e8J(59*A/]t+5cTSdX6D"T8WNRJAk+F!=C18VZWbo?m7DuNi/.[*25u6%B=X$`DEV=0
%;E3h?MFBOn:S7BeNB50$8,KT">K7V@8s#`g_#n#8U@O0.&;D<[I&^gS_-%urb^*IeU;YBt.FXllmaO`L+NXk47!OOlKBTrK'saqD
%o7FQ?;aV'mo`]jY1`D,h#FVPec8%S3h9/ja,SHO=,ch]jbL@:=faQg#_/.`i,YW&*(/:AEmkEM',t4cr+V,>QBr-m2DPgdmd_hqA
%js;Hs9-7?fe\/$p@EGR>TcZTQqp26*LH5UT9S#4/W6"/do00,.j-:WuDY@jM.auI!i3j75AYN=+o1b!%HLq]/!.i:L'M?$c^KKI5
%I,)R*$GWN/n=6X7aMDHuYUn_rLI;ff<*$o\VcS;op,5p$]5EkjNEd/b":VZr,EKRQWnuNq/G"'6E/GHs':0;,j,;p)l",=P82L39
%2L^%"p]mW4!U`*'m[@CV%/Va^?I4iqnD\6`Hb)K_3<GN551GN*3:_E$pC24&p6lihWQ#s2,CPi[?:@EL"N07F`J#LEU4&d46lbGG
%o4abS9FJCW,/&&">/;am;@aeoIi*TI\"Q'Fkp7=P[pZB!)3/I]A#h5+QaJc87P1SE[85@B?h!Hb6sg>sFj\_Z<t]EDP!X][oMMhk
%onn4(a>T^9LDJ>$gWfGur_KV_Y"$l1(l@*NK-8C')B'W"%cgYRFGpWYe"O+ukM*\QGP]eI/f_)56;uqGR@kNt!f5pe_:Ffs?2[C:
%"#nmS#f9;#0U$gk?CV4>m0d:b=s:[gcF2B9c>"OO'/)1L<HQb-ra?r-[NRCd[e%@Y1f_Hqg32:&rbs`6X1mlm6k*u5XKfQ&$^Gh:
%X4AAu2YcNKoBd>WIJ4*_(16H`&LK1$o2`64q5SId'`t_kp*%-"gp6Z`$u9'&\?8&$5a:9/[O9':DNu#h$/:&SF'Z3Q&=jl7D`6I$
%dF3<SU4ZAK^Dd_pL(2_gp'nb@`XH1_Z#5/fPEEVb?0?+rW-AeH@7OI_L%!W)?ag^bJS75k^L+2[eEq^f#=ae9?15gHoF:"#hpJm$
%L>ZduJPFsukIsq2TrB^&D_'.:EnR)^,eo_(iJf\+4S/G6euo3OGG:AM]5*A5KI@5\``*&R-!q6U4iL0Dh/>nli,T8<G;nf8#@b#+
%?$XdsXoJNM7M3cX599G$5sr9(K%=aCV$Z[/E2u=.cSB`RTqbkI,+2L;nho"%<spbEEYFXC2r2L7kA6!hDB*fQn)oGYC&?DI1?>o'
%&Q>fTr&Y`sq"aa^r"2WQgN3rZO5+YP_/D]4AXeRH$sqUk:#H@T61j<W#%Pn\Y6NYGS$DHi[p@/)A6(9^pq1"C?)S`TZcq[GkG
%rM`j>ep3#*YGnJLU2(^6`g1dLMcuB,]oBS\-!8NB^M7Umdo^)ubOlnGIX<O[gR2-rF^=V@h4Df5&Pjp!c,U%PBZ"lIat`at`\'94
%GQ.;MIUDW%Jp_!3L9+Bjqu3SVSM?%5YB=SlD+2E7cVH#e2e5L9^"r+#4KfI/Ji5B*S"?hmqp\5dg,??e_4%M]qae1Nj*1&pgJr*(
%T2bWGoniFt%5!\)QIU,K>C<:7\ZJt^2A""h+.$5e<GufVH*!ihaa(Vl[nlVmJlP*RG#)R_%_C!(c(n%88fu+,QT]HrC6#(FR^"6\
%['h+odeD!94?YLWr^XV8R=q\2SBBaNRqRK971TE1cqYi!qW$@d[WMjGajEUM.C(bMg'?$a/$#L7\3IW3-?6igENaN]7Jj7iAAR:G
%AC=$\,r_EI8;tqkKc1QUE7gkRhK$:_ZV\]rg!'P$c-8PpVDHRbU#$me;JgA3V[6*+[0L+\:R+L[2_l[83^d:q^OFFEHXZTANF-G3
%XOOJ&2UWqOg\K;35Nr"Ark!<m(aaL@+c&ME+O-qX^o$rO$cN^)ITM2dS>^n;VY2.^Jfh\WcRD;ldC9No+%&/l,W/YSO5:_/B*K.H
%#%j8sS\u$'8%:VH?Al>^Ee03Y_.n=C<kS4NN1s_j>`&5]6\<EeE1^[V9tSt[=s\J?C%_"q]$t`79]fs!bg[&D)fe5Ng&B?KJE->=
%1pG"UA0?b9^P!94.eB5qD*&[BfW?*B&)m,<Da]J/a^ld?>Beki)LDe]`W`1(FunnGe7QAJFo*.[mJ$1u`?<iD-Is"*&T>G@CTMd6
%\n^:C\k".#RH`[OoR-UTimuf_A:+6<UdBT7D*j`g>DVf2%J&_hJ_h3GF/8;`Bn>ehaRahjY'%S0QT+YC45`3M3HeBehW!'/b.:SJ
%FZW-:$PUJ#(qG0ENTlXN!_rQ?\)9RH`4P<K)tm:d"b5g2e/RNSFS5NRhXK4)'<rNrgjP#bY2A-=SSu9:fnl_5'EHD`!r\)Ga)tP$
%s'6s&s7Fs$b`$\ZlT.BTlW.K)hBd*J+AJtV!3Qeuep+l<qqUtR]M4(^h_f=N&`PUm7Q7D48p1-[RZTRX0P:oNcJR51(en<-D;E5'
%<kKch;p,@KlUK+KZ;"d%1[jYsVM:G`p+ndOOuHCq'h%BUQ!1Bbl=`Wn*q$T[QQEFY:7]JqR"J=*<4?d?b"?.RdcG7tI+R8m!5TnY
%>GNnJ*Uh=.?WEA$Wi+![[>`gnB'jIta^Y6iIX;";fD8nI[%=e3QtU/qQ-Nleges&!F=I1!'RYU,RLckMa&t^BpS=+Yl^"e)95?/>
%$WFc&(K(VC"Io<6WVIGMR]#V%N<Ii-]NVI1`\k3F'uOeR(A2q8_rKkPk1XNTf/E^^$bZikT"CJBg\ZE'&V)3^Us[gYMtWfGq0Cch
%@MS,"gFHk@4;NT7XOJg-inYXZK'IPJK"<H3l`9AXPlG$.d^d4DBaYO"*8d@OQ;75sEelOBANpX,bI]jpm3lo,g'i59Kg]0^S+g='
%/*HKclEi([dZ8#im96&]Gil:8Ba#ndBgQXD@$+Q$>s61>[OU^0dgb-S]0k]1#pddlgO+^HG/qe3huEDI'pi3T`PuGl=50*ej1a31
%(u+^4kGPQOqHMSD`%h],s.O5&\4SiQ_9$\hk8F'>]BPH]kfr^G^LT.S\ScSD&0>>T6?EU)lY5"&i;/PQf>uSblU+.KV<l500jREu
%mWIFLDX[(G?!'D)6]_&GeY4=8\nF3XA)e?GCN>NPQFX/>&M`MmgKJ:umd7uFY5TKW#)-<'_WJLVIN4fc+^0H&4joaZ\`s,+VgqFV
%r1W;uUiJn?[6N8Cf8668',#_Vg.VE=o8t=>=$8T"V&!Rs6lW<kY>=<iS=?a"_X:kqrO1=55!AP51W2GAl>DFa>Z>3pH,Eu$TL0Gt
%_nh"c0>STJ-E6aCPq>tSlqR0o:sLtqH4>.3.s><'7^Rn5f`VqbJ%B%q$3:CDl'd/%p2[>s8OF?<G$H0e+VoM09#3HE%MLDUkQcBi
%#Ol-/?HASD8j_U!QudIbe*[T77""lMP3uj`1*IpbWuq#tM!1O]NB"I$d`B`I$DVjI>6`gRE@=*$8b*QF:sEnEeHD`PefuG@c;1Jd
%ne;]EaEZX^;0iBIA)mqooQ0@#HLmR-[ADrtD.`0`'%UiXqln,@-ZV')"E>&R"CZG]UHg%[285c19OVH#Eeg,$%^BK)1Q/?*'dXb$
%_N6F/J:A,^JDsYkR\Iu"MDu,hT.^7(&&J)D40#i#:JV6;0f&r6!30R:jPuIPOfA'@S*S0/H>A<f1V6@[&M+SQ=D1nF%hA'r\N8)N
%W7nf'NnROCl2E#\9m!q+DFI>&goB*-4;JMdL`hi#]h^9`F9Mk33Q_HV-hS%D&$l9HeotbZEG4,RP?dcK=1)36Yfs8dQjllmRTQ"@
%QA7MlN.l5B-Q<NMVB_[OYZm"L^8^*G3`THTg!V.g1d)ec(,_WflaH\H<d4>^8IV*=PeW`J,k^+5:l#BAGKrs;RWp`@X(6^^o'';+
%+-bMUp!dQ&V_]0g#ouO1Y`Y$M:72qCd_#?6<d1;;C]i,=A;3s@JOsJ.VO@]*kt0D"$k"rKhTk?(jK;K/!+jVO557jEom*q,W$ZuK
%$q,TY;BPQn#n>0YaPgaSR)DQFOjH4Y#DHD$KoK3f9+`@(+#/$=RQA3ilmeDi.6<#Cam(a1UHYo0RqNMi7'2AV"kX\T^A*[8l)NF,
%,eD8mP'q)F#gOJ8fcdUBlXT'Vo]WN)FGUE:1>,NT46GQUK>_NAC/4F&0R7um9T[F7$4^plb`Fn-5j*EqH1=jro:CrSJ/1>unUgk2
%_;A8hNJO$9MEV[0Wk0r+H;WL*pm]2j5We6lTGp\dql!<PTGgii!HG32W,#@!!8A"OJ>([%igim2o=Q!Y5%NNTTI/t@6,W9?AXEsL
%PV`=P]/u=t<^$)CUPK-ohi:TBA.POuP<n]g[OR6C]/>-)*USSI/V:DjW5<0@p*iDE,oqsGfg-(1`_qGbPCC7kBs%KsYAdS84%3'A
%Lq]9BQ_IL;&HD0^r*ElfA_V.S;7+g-*lnA4TH&Y%K1u.f\,rY[_b@tu"BTn,o8Q.,q[N4[g9Qg6\q/p=Rh.uFH4?HcG-A]!L?Q'I
%1J(SMn.:2)!:>U7!*7+48fkGC]dNH']eQL4U]i-*<A_c<B%E$'+/c]API"*_1'>Q&]+gV'd/g7^km;h3j>J*@a^D#@:POJ<6aZYb
%o(tuFMb:11"8-CI9hu.-DC^UHDMj7X*6oBkW>%2;6,r!R][.IrD3CVc.tb&,jqW.EjQB[,PiP;C^Vf&]9>MV).6$3E\JYk$?f5CF
%TcCRr.NAJ1mGG;H0cLTNH4QYGl.]O&)'l]K/P.6Fp:7F\5VA$R?uHBGJsbAtEYX\0"H*V6NiK3E&.gOS:&XAH+l->V`/B3a'2g8X
%=`LOj5n8&`N=Y\gPR]H#!sf#k%XG7530@$RU(=-^*q0)tFG62Jra]tcA@#(H$c8ot'7d4W2fFgQnXVJZZ(MIA9Eh*+@HU$K>4!66
%;ZrL^nNB=/h1`[8Qak(`+Y#G,QPn0aKn>],`K[+rWjk5JMtFMil*q0;.m((Bf&nK..6PIb$9/)-^D`RDL'n^(M.UZSm8_*Kr)N_j
%&l+MHYcbVmb/fU]T.j6Gf^%KcU::i06]gMa/$<mPA,#4dr\h<=r!.%QJ:#'q-dFW^TQ+GfQ30,N;&s()AfFl<DQf8E-X%GdY*pG9
%+T)]ab\eMn?)!Fs84[ZV42b2P2`<G/*5S\r&quIcoI@l"@lJ2i][\1"M7:WI(j*)oL_H7(1^.b;(/rF1oG0+hVuR<bpGppjYQ+OR
%!PB"9>\R^_r2pQC\Lh\0PQh7^':s:YqeF.kE=V1L_Er0JC$N^J!69p^^&`[o8_0)gE%4$S.N.M2"M$dS]<EN]bk,?_18if<F?=a:
%Amn)&Po"#l+0?sXeqXdYipBa69ba/.BSpX>CFBN':>'K4TdTn-j7h'*;QRa1Y2uS#I&Lfj'Sj]o?k4tB$;96S0N3'6kWk9d)A72o
%7nB"4*0G&!fRa0*P/[)i;tXUlF\lP=]_dQYl%p4mhOt!''(=a$EMt;3'E?^.3Gn$qrn(ML[\o(ZAtE<,E#3U4RW]PY'gQKu:FHSi
%;q1B[%Com:%`0VJTD35e`G+I;Jsm,[3E9o(/1BZG'\Rt23_+5QPF=9p3T0=u9akb`aa(%lK^>OqIufB'e?afM3_F=]?64P2c+$r#
%U8g38h1nlLZ(XUnmFsB>6T)DXYW]sF'j1XTG#`mL6fM7P=@1Ee=5N83V:oF?^Wg$MkO95=LA$_Zq(=ma]R#@-;4&oeDAM"F_%e$3
%WSTI1$k/ZP.4aR.QU0:1f/BZ^(t&ZK:YC\]J=AYlDVEc'J>DQ=T*rn8LX#pf50X"=\P-#/AZ$lqkHJ^6IuAn+aY:\M-!`m)QN<DJ
%]8g=c5;+>QKI%LV\rbV<7If+G#!t,-rHRq1nff%34hm[mQTg`tD;qZo`5b%=TH9E#CY1iCS*#If!`I$dTBGL9Ad__(BNKqXA&3HM
%fkUgc$tgusiG#C,4emu(nP2?lTSj%KgM(,S;^J6.Glm1"N7KrKA-"[`+9O_n=\se"j5@rc+UU=8"rIA&6o,cLJfX4_M9NC"E-+I&
%<+n,rcnP37VC(%U2'E;=;aW8cVnOYjT&!>(-fC:C"Zt7NL[48.`s3K4XHH.+9Uo.FE)W!^_%c5fj1P*c@WDJ&BUF!\8_r#nm"1%1
%6A.dEQ>\SLd>;AuOHA:Nc'*=T=a0L8;oA]XaR=GD6Z6t'ARLBlY@]+F@$QLF\6.W9s+pY,N`q(<2bgpS'jSuN(C*9h:2de]>PQD(
%ON1'h)N3_ur1`!tCmrCsFEZljP=TR.#/eW`_c#[?UCV^_H9/+R07ncEl:L0B--hsug_<8UO!sC")ZdEogK5T_n2hWX3n>i/`6E@F
%$%882(D$'$lBUOtY<tp8*O+\0m_[Wg+j4KtqkeWb%hac[%sI6uq&DW8TqdHUS2HcJlI6l7M8^&4CS:2Zq+[;[T#^%j*/ko:Pi%9b
%m$USkk_p&Y\i4.p'$)5Zq`:/Q%F[q929RrLZmq9-eW;9jPEiEM)C3M.)Vr+O=Et6>N5jBB`,t*2:\;*U!DPA9EU<AUbU+?144)%:
%U59se.O@S2U%]&Rm*kG9V.s&c>$#E5_1.N2R4BQ/?k$tR3dDDO?*p@!>HTm.f?IV`G,%e:V2X`:6sgQ[eT"&NMEiD5X/^C?a%-?N
%^Fn,P3U#BaD^_\0SYl=OlVT<hC`s3nTJmo!8?=a^6epbrL".-#iiG@j@o?+%GgTfrPERE\;(loMTR7CXG\dt0>(e'!\;4]m=efT#
%AGH4ZIT_=4bme.6-QWOV-K]N@]1lnVWh5mT)A>D(CB<u7";W+#Tl;R3!M%eoDG%be@Y]NiEHl]BMpJsP60*fC!;G'7o,lSZ5%'%W
%nnsL:jCr>uGs![?0Dj;CNCC1s&YHseYI_d\P-]+34mPZAj3ZFT0[Me8lW12\(jd!s?K.5@c/Me+KbEX!R$,Yt(aS4]n.Wpj/-`:K
%0Z%g(mU?]NROWG:[@cua?Hnfj[Ck?u"n_,?'2eHG1;Xt?E[@\=j4tO&[ck0R%r\N=9hok'>u,c\m9uW#b?EgU0)LCpFWq"<9FB%l
%+\=07aG5?t8HIHT0t`pMj;SRpHL-0hY"*o5`(uiqh/\$O>q^?E"jMNe1&oEM(IX#$^RS0uHlFjcRjh-<O0J[_U0n\MM'^;^,!P+0
%!aIT_o/pCgRlS-iG(L1^W&I,""JBj)klV7?hS.AFk,?CqMf5jt@W5t.+,G=@os5$C)o!7*FScJ_DE+-ei=+<=#\j($/57$]V;,[(
%!M1#F)B)!f4qH-bY(;C:DAs2hB>9;%-sF0>.(^5(6]WL@*%]TOS/4&7PE=]D$r&.dlN4^7[e^.`+I^)(je\P[o%M+[\ETNrl.?,4
%MN8TAYrMI&ot0Os*5<r)-<(+o$"]DFWOlaXV,r2"]/!*HY@R)9&TG`\Ts9D_MT,Wnh'`$0<T5@_L>2u[(/heN>c^U(i[=:X=98O#
%!"/h>$Y:>/>?e[)qNPWL]]KB>;7b`KRs5n#>qlO#4`FB1p5lda4lP960/Gt4.W,AEfHERa2S=_t+5bhh!>pr<gJf_NAD)OJAYT$_
%hI8&Zrd0tb\ZkMm7EV?o0G@P>2A.XbNCLl@^i[PdTpmhCYR4NZ/$)QKioF5h001Z'IB*5MG-o>efmT*$7M@Z"A)Z!$VLT\*iXO9(
%W_+g?nflfCp"RaEpV-_O(RZPsR)ker#AdF=L[Dt*3Z.DM,KI0Q;&,r4=_/AdUAZQ.gP8l)S@<43qNH>2WW3.r.kjp\^Fbk"LLP8J
%ggMH<53ZJ3,k]QaV$]UJgmGq'(\Is1@2@p/oG9Nr(&$=,m/O$="#p=bJ19pk+FM]s`:?`ITpKXPhd!)`2*kigNCuDgEEJrFm:a_g
%XP[$R6MmC*Ylj."SOt$A'&ho,=$omJ#BN8m2&%LXm9#;*><GR?7E'-3MG#l)^jRtQecVOGfj,Z"3gdJW@L;@aLWMnE!_G'e[&aa_
%[BZ_2:eRQ#lfOdE^P`0]qql@<<Hc>S['E96@pFq2)ll@R9/.<!ic@k+W_b=(gdEs]@lMQj8LbgS%-6!l9Z@*a.W1Gb-Y8`FS([<P
%PDmAfE)Hb`h"0X;1o&*qIBBd5ATZ`,<_cHF`e*@Id/1AB5in'ik,u6T&Ra?R/JjG`S,Iee>DE@5GFU#?:=nAmPm&YSeoT0^0Vt\P
%Z8ljCk(?9=NQjngZbNiLCY/NZ('j8?\c,Xbj_]VW)ikE03%d2r2,DrgL^_7HX2dQ5IE74`p`sci[pKdCGmA'[!Lq[Mf<=GFY(mpt
%If%X'e850_:pZXk:eXI?>ke!]5BP/_>n]mqGr*2iI:[b39L6@Oh7i,B++7Ca6H:CGON+,a7^.OBBKIeZOmEDkP0>ig#sUeCENEsN
%gCgNqCL!8Fp\C[>f=UHCmkUWl4$7r?Wt><#)LUGE8DR<f?RtMIV1!J&fZ.%eK&bN6h*4R70/r3Y/V*/9=$-:h'DNNsrDE+dL629\
%6CX^',?"XlH>qC02'Rg2nZXI`fW(#C4S0EZ6c1K?>SN@YEpJ?r"OZ6ko*-q63&gn@^p4@g$&6$+gu%S>i!o*[]+17X#aR1UD13a;
%&G-_!^0+a=JH?$59(g"*dKUXo<=>SU'KT0/JI26TY9Xs3:2+Je2C?%A0Im2HRlk(%eO?;tP5T:;g=;H$3!$gU5b_h_1Xj41Mj_fL
%^5KBKJieo?!AOVr?+W015DeC-#ZFWu%"!R\kGQ[Qh">XIo:ao<EoE]PU8VlO8L><r4H/!qQ)u8Kbqh6nEm+OdS3D3U*JolCU;N/=
%Ih$2.B?Y+?i1,*\C+3oOTqajm;7Mf5YS4)kGN#.lI]Q/$a*ss<!g3lhKau.+i8[NMYD'iVaG[YQ;C8q_VNXd"j%PKX!:^^\4%H6>
%TplYh9f_GKLC-/fLl%].V:qdhLHK9.;Zp=)bb/E\L+-SD[E52Fl88Yu5c?rB"L8J0[i=[)#h77Eedsg!M:Pt26J^O1b+oad(9j0j
%"V9ndj7"=O(Ce3[d-A[gQO-R3X;u:\<AK7]HsK.0P'^L,*h\Q^J.k)RPNgXd&"<feWC^dj#!jGW1Sih5UQ8n9KTo^lJLr+C"l:Wp
%PVIqg6(X)q0i.jKJ2uU1g!5k_#'uEVC//2;YSt)eb6*?H*!X]\9J/Pdj5XB%Mjk95#dH+SKMrCP>`f#(lGc0Gm<__mjZt?9GNd*J
%ee$X"'`&DNLrKjb1D86j@A1tSR0$9a)%DktE&IAj$sYM^>0WlU#U9FIcENhSoo+i?eH&cmA6Qo[9PJ-kT!@r2K<Rsl:7`oVq1"UJ
%bIM%.j[&EXN)`?teAR)s?Yl!@^&hG(1R$QO,D6sE5Ead):qTa"SI!Vq4TQCeF=^$VL3"+sW_Tr5`g1C"%qJ271/?9qFdag$d!"=j
%i3XqscK%U94T?kh-DD_%8F=9;6mW>kA2m6u@6&LfI&*!4>9aV7OKrXg1;G1)P&juh4U_g0/Kc<Rs+>iTmd"_JLbo,Q6nq7@'&J/E
%_=^DVrfl'CY^=)X5lbgi*[CNZRn.d0#<0]U3J59gD2+Mfh;u2k7\U08kfX7%ScZsOL;[[ak>_mbDRY6%bB.Tq-5/fjN!@s09.jXd
%4)DU2C^hWn+hL=!)tj<"kqD#N@%K[HBJfP&H/Vtin"HoMLuACu'O$H?N!*Da,5kn._T%u\0b_?9j?##!2XfJ9GIWY?c4"Xm?f'1e
%Qd,S5M3ZrsaoF;m[\+hpq+G1$:9$jH`4ugLS.J<oI>C%0U-];_[HlQJE_hY$o+idLb>=V,'2gRmP(B'sM-*Q;`3b?POELb+.Z>@q
%O^D'V0_XVQ#JF4Dd$9%E/.N$OE(+0SZS`u8a=XVjP9hrkK@4b"V$FIO>S_="_#o4rl:*Wr&9.F6)dAbb6YHbFcklf+,YAZ?%P=.W
%S/8(S0?kXOVVA<Po(IE:<?0QmO]Z3=I_bDA,*hIr6uNl3^#UeaagBaW]a;SH3pjR$1]C?9#gSk5UCmod\tM$e\@A"C_C@]:YCVmZ
%/u,\dmmlP17r,0K(CXL5d!R`s[2I-,T#>cFOWNQLprU+>l.A<TLW4S/%CmUP?L.<o:DM6]b4lAn<*A<9eRNb#D-g`<\uAb6/`%1S
%Bb'fa[:@LkD(7"4U9Wji^"t<Rr;qY-T*/'D?`n=>95N5G++Daf]meQE],=k?&TCPeddqg!B(C,WCe:MYQl_`MPlp5ckVjUZa"G?,
%=\cr^gXfV5pV(5lB)(#MpJ`AeRs!35GV$Sn]&/\U^:$ig;k"n?7=aC0^2j:E>h^Sq0/HEFg"Qs!?p3EiegP\mHKYCa.4$uLO5CU+
%rUu/1b_<Ibf=eM%SV9^A)EULd`>/bd!>YO+\,#F^BNQUJeof1h`H/f,rQH&eJ!E5#8qk_c&.$P(G](]"',o+PhA=mL4=!p#b8a@#
%^4i3U]I"U`Xa)]UmgC_M>G__=<)G[Nl5cGL>-QV$:Z(u1<Lc*^!3m@D`m@X,H(/h"iNQkCF"ePG^Lf.]ndm9A;6:(Z,Feo3:B2lV
%k_#B=7S!`9%&Q9I!Bc]pq5]22n_@jiZn#?cZ5h8r&uE3*.mR+&*FSI#PVj)u7X^0oYQ>GEAVXj3[^nS.1D=LKWXbTiW]1KM9IHs`
%e^ZU`Xr5T!(A6apb*/k8*p;ZP$K>8i!:J*_Tu4NSOE+O\L+cTc;p,m6[hQ!oPhSZVPAh%/o[^U`SaFkahda!)Th9_$P:F5ZegQfl
%@Do4&?U6aVD0hN'+1apL1mP@V)'JNE)Q&]JeW.#tqO=%7U&%0s5N!0aK.$*Vc.89$Y>+[j?hQ_Ug$-[A0E%>nDWVN%p::V2O+,]Q
%GS/8i>hs42>5O298Pj:1jEC40$2+8**+Y-gSRm*@\*&6O"cs:24@n)EFqKG5#XT`(\9qSg540CaY\0mA)>^Qk?!W!4d[0nLNEtgo
%5)$#q-TI6ckP^>__JumWA_P[?41e%5HP-AS#T>8Oo(EqS*toL0_OMe-s'7O6OQ\YWSEa.Dbe!gShTS4o!WhJ7qF-NslRZ1X+:.j!
%(K-fG+46^c(mCZ!Ofu?JVZc[G_hM>,(00#g%P$h/3*$>gf;)AW^PUEMf0,_+?oSYq!I'pg,^gG0_2Doe\H43d=2/]P0fJtjUEa&$
%&=r/FfjL*hE2i^gEf5P:)-u>U-d0WR@[%>KJgP^)l>m+&S<nPfs%B3(N19\J9R`/\,SK*(Zo:`oaZ2-Fi'#qd3='cUZA&3kVj(2l
%8Q5b189$=1Yqh2eN:.76&'m2@@0,gUJUo:_^=iinQD_!F"V4,^H/jmQ.VP9NIQcNR^><*^1mQ9=pO3`R9GL;WMG`#Z:uSR5^c"o9
%<c$";aI-a/G_eO5446-<%6b9g[9uduMY+e;!PED%.MR#TQtM^jV#9Ik3aSNlb!mj+PL=_ofg?P$;fi(P:LMJ&J*!)8n15tmPmY3q
%>81u:,)VE#GUA9di'!1IVPk+@F$1L!LCla*[03V<RYX12WpR@!E,DJq5Cg-pm+R@!4=It?hZI#:PH[T;ZtW:cO&T6e`2YNcB'rkO
%D=Dk]WWjU#b.mCSJPsuqQrMCM7LB7)!fagaWPdt"H%sEK3>HVRjoc7G.;B"30Z3&R/I`Gbn!!<.0Jr&sZ0ke%CQfO(SI[D9d7`-B
%.c9Tho<6f#2-A%#h<(oNK(e`V.\j,Q]1OIefCbr?<Yo\8e&Z&"f?p0=\&i]8Ji7;"m0hJQ[0W=7IggNE_C#'-$L0#4?oHgQ@CJt9
%/lpaNPAjls8.;Fr"Bpa!fA4M*4%UkCn?`$Pm`7aQ"Q42$<PVEOQ!8GgL,jCp5gf:8=%4Xp=^pAmfLEo^?Y.22*A<\%Aco`q`o`;P
%Sn/+d][C.K\a;!(=ZBlXUo'DIG9E<L2YP)396f+*\mjWO]Bh6NI;j3"kQ;05J9^pTrT0aQi,hJo43sq.%$pkUc=#;7GP/3._YJM8
%'6:,/TtVuO\e[*4m^S1[``#P=d=jM'@0*ZW0)*\lkAq.HVq5&T3E0OH.51T'SkZub$K`g'j)siV5QDe^3DNRbdigu:#['C<b=BbI
%:p-BraZ3i<=cnSp%MM"]SH[0tY/1'Yq)U`oD%#u,c;W@^)R8XnjjTaq5-,>U'a2M%WK2[5jZ2A`'$W=igmbR3Do<-T"u3DLM7a>H
%oM_;Cbl@Qm3J7;(X9Nsj+@R!iApA$nFXNO]f:8@ZQWd,O&tUekgJh467A4ghAr>a8LWV1,:)$QBgh,Nagmsp9+G*OD!tfYbPQ!&H
%3uJsYW*<JhAoo,ELBYKQG5=+uDM^UsI!VCBO6bkbJH%'2%so9)hPn5n?[]d_/-KO%2S$m$&1IcXaX=!JgJ)LA1O!:6-9"@?9sB6Z
%Aa>`!^ZZKU:'CL*CQ<to#tA$AUG/09"JMDQZb^\Z_H@lJQ`7Xh=._W&B9g+lABAO2:?*E9WcCf/EhfilP6/^*NosR?W"naZ`FFeV
%=G2\s/OJ#.-a\lBR]4Igf#AL\!FD*FdU!#4pO7C-fm,[JOhPWB7'*F)B/R)ih7@DJK2Kt\M95^A\,I7IBtA%6k@QM)mu5!=oN'_0
%ldH<,Ap9I):N']hm6#<)m[ZBTY4c]+G9]>uM,.7"$t@LfNZLf>!u:]RR*k;=\#74ngcN^Woe6@AQ[e]^s0qQkrq5`0oC)\M5Q&FV
%rr)<\h=1;+rS.A8pODr3J+rh)r8$iAorn?e_uK"?s6JS@^Aj*urp>3U^R=pWs6B(Qnc/Q+EM%a[f>%@bT>1EnhgA&rig8]S^O5tB
%5Q$RLrpfN.Ru[JtO!"E!j+%!aO.lUDWIF\&TDl%oG^T?,>l3u>q5\hg"+,j3P,%dK07WZIlW?1(YL,#4d>%je6&#DCJ,eBXp"-tU
%V>cN_hCKf)(d?RPe_j;(3NBQ%gA<nS!3-6[C?-N%-T0PuJi\o1Pqj8,R.@a?QsMn2I8/=f<^;;:%R5hfk&l<VQJR\]XRs.0>KsmJ
%9V]<76#[>)ck89F]qb"bW$B"[lo'V@eo\"P!g56$m]lZQgPU58FUJ=DD\I48&kR>\DGVo>S.liWnh<-rn@jTr@h"q!mgqNVJiN&,
%0u*pX%\R/)qbcnsDaO><%TdmU*Y^9cJ^\h#S*&c>o=:_'6.]:&N.nBLH"P[k6MS,IA#H^]&-M#5N,Ik]R,Y@q-K8IqbGTP!m.2n1
%`HO:]ro,FVWJXPh7.\plj7FD`!]mjfe%,Ms*hM;%Ulr)1KgIY4MAbi22u&(QVNN;nNNriTrl'qff'1N%%u'T4XOB,Qk>JVE4I_YT
%aF;_#S.r8s`FFiG;Y;,DF^-S-ku>3+ERQpq/Q+eOm&Bg`Qii9`@+7KbT@ZIn%aDn0F\Uq,ok$FgVm[qXY-0u#;":495dY0)KU.rr
%+9eZucOf'q3-P.%B)4AE>25e';Nr:>o'i'K#:&uIGjtX/23^UW%JCC7M&g+([A_p0TZAF]GZ3=PNfprSqhB\?J1E('*[G;FXGVH$
%8tpeeEShDk_@tB/?cEYoHcgacrK@f-a)G<&!uu!U]Q4PUrpb#Vs4ZkCfAQ6Wo$p39>!#`Bq;&s;;OHeA#*9nNf9.9)KA^M'+D6A2
%`f`BN25^+bE!L_nq\E]WeDU!0A6dR@_dFi$VAX.c*H739_GIaFKBJ14UfQKoNn4+7j>W)<W:^Y(:"9S+^hAr0^;M72Y\/!n*l-X0
%dt>VD'QA.OmL*V5IIIepNUC$#1\!3$aCC17i/j]obCU1nK8(]JpnRQIh>-$Je`.cnb4*$J7?0ia-?&6*KV6cO@rLrX2_HReWE0p/
%7"+b<R+'M<icuT8qM6<^H1(o'UN$2b6f7SKUm6@-`5D+W5gk77k_k3,P!.i?*i!icr_F$0-.BL#N<^)n5.)(T]8<]<jO%BJA$FZJ
%&.n%kh`.<)@OssIU\b6HDYUMl[1kbDKDBn-0^XMY^+%*N&PipSf-Uo2`\i#<0RrT9Z+Hq$K.#Wm8Y]_=0W:u6T[rXD=QT0_BjEC3
%CH8(.QC5]7M:m"Rfr-h_i"lL,)tJ@NVGf`f^)<qM&Lcc1H'U!QU>V"-'o!g5*1&Eag7?38Zl9o/Nf\l&=eX0U6,@8$_qK*-+YhtZ
%0b`p-?@CdB$S(K2COqhk(RW-0C03Z55>Np5hdR!'Z5=I3;e_63"<BO=a*gD*Na^??ln=)ZT"=k)<EmYO\^C1+7(;qFLAWUAF*%qY
%\ctgM*X!&HZR:?-F\+]N]DHc#^1cLKX*3,#1`F<M2MscaS=V\MTA_0MA`YLAG^Ke`^3eb`f)s]SJM)@cs4$Yo)'17.R2W.QT5fYX
%r:Ji_0:UJS@4Q^J1@[M^cP4A:TP4iF]--;-%c9'++'J>n:j`M&E;V6i:%Sd6KM?f>YNpn'5&>tas2MMFmO#7UoJ$CcjJrkPi\4GA
%CadsUBK:COgsb<#e/W)G+-FtZ>N7jX=n&X&7gPa?>ks$d80HaH:juWW-DAfaeF;][p)"d%P%P9([ia6@^DFHD0q-[Y8Y.8,<*7GW
%ViOn=+ceF]kN@Jl@INE&m?GeF0J38rGGVY`OIpfdb!(t1<T0GDcaddFfR\hL2^.W8!Q'hT)u-(bGSg3qKO'lE7_l.H@*/&ZE7]^N
%H5K,hAbrr^K;sRp"EoS2/X(6:Wm?PpH;!0/?r\Rfh6rp*Q[1e;;WgupA+5`+QIHLKJ)?K^B?7o<3hDQn<YWd,@(`FI'Ckj-e;.5b
%[&q.i'>hs_O*=4egs[<YQu(JXHu0h2E79<X<sX"Z3YimDAF0[:M1cM620)mpNThd)9/Btb(P?m,1"\AEKUMjBc5KUfaW&AJZGY!Q
%;i,d"miZ>1U(#D!c4_&d3UL)*&qU]Th&>@n;D)h4hBO^FfO/C)c`?hmH%rc:(>%+oXi(!`i(+Z6bAYsQm'TR+eq^Yo[0A</Vp<0Z
%5B$#!CKls,LODJe6bNaJ$(k,P0D6')j9HXYYT]cU&r%Pd%S<&mFphu-6dX_;7Dp#fF76M[M3?'M7X(C:2-8(nH&^"'&[A5frR2C;
%..e`I%aJntC$:[8D26K[fqM!V&dMk#Yo_ZZ_/&!=:-d*E"jIcD4Pl?5q+pJ_`o-<7)M"6B__Y]+8TW&074oJ3&?$9;rRZ2FJled>
%O9o?dIKb$o*J^kM:E"qhSp"CFnE[m'-6ZV?m^+"2XjB>trOP_U^rdT*3-IN>,8O9?MSh8Q&k(+HVE'VOhqhb13MI0Vaj,T)VDi>q
%#W!Cg1+TlZUiK]72;qT/?cAo"2*sP,p:=;DaO!2_c6(b<#b:nsMpL]\q,90:7Mqh"gNsPCcX["WW5#<IRDGl_kuF^]JLGm,ilkK7
%-64i_-RjRXEM^qW9)<d46FiNbn&Jt"_7SJrb(\C:cj)?rCY"MYI:+1fm"I+*mq?*PMOilK_SUFQg#f4,;os8tZ=/+5f*r7=6&_if
%7HQF\'2*dYXf\KK1T/+.@pjFtY!QV#SXBr*EV%.KI!c]Y7W4Q?rV:%!q-D)$$6OgFlVQ?2K5JbjA;]1[Y`0[4!u5bi#Y-C8gKV)5
%*O)t/6Rc/5d>1lC68md^]9?Q(j6>bi$L%LILg0#5s7?Ib0;NN4`Ad;8-6/jD#hl55*`^dpCC"G=\SuU,SeP%X6dN$nhkqNlVo3kY
%?hTBbjH+A@%-Mhjl$o5^G^nc&EEfsM!c"D`rlV.db0M`14gm*C6`u*>I#R)0h=T@.;>4gOQn7>p$Cd<F(tTK`(=mt0o]WJgphsGk
%XpCB:H_;nq;tS_[A('C>hU(#2F)bB"FPp<*L\@d<NV@LO>na[dS6Qq6#Mb!k?a=aGm])b\SM/aMfnNhf]HC8-k$O`J3t8`>_Qo_E
%Z=aFb(-lN5Rl6@(07.Yc5eXujZ>'L.!Ng;S-=0P$80)[>LG%\hGH_*oZ?E<oW$A]H=K%7ljtV.&+emoT<RCp&#WB!%UOdf_3nD@-
%H1>e/*Wn&_*E?>niFPT`0?nQbXNgjMS&SBYIs4Bd_@Ykd+a!3)(T7G6I<%eP1^G"iZY*ZN=E*K8l#;m=ZOSH"8p@#MZ_^Lk4L\cP
%a/&O<oA4R/0C7R2H]JY&0?4dddWt?LFIl3l_@ibuQ`S;!ftkf-T`P!r4uDc.#Bj;KeXq?65Q;\sM`AKY`_\FGfK7$p.M.9!>;t*F
%A?u>se>FLD%1VM4QNJs]&''7W.iM\2?JZ)dPaefj#Bc>i>$1XZRiCiG]F1<']GJk#=pQE>=s$LX:OK_`obHm/7ju3_hh!fh4eSm8
%NAn8T@&_OkoZN5Y&G?D#HHHPLI73_P*XlLelD$0Wb2CSr'EPOuEgJIi<(h)k)JuTaYR8(](5U3P<gltDWJ4H3Go62T0M-<ceBk8+
%!R7CT#-,n+*5k<eqlC.4FOO'#ghWM[[&JBg(g6@2Z@T.*VYT]G!F5ls#_=[0oG'3ZQs(>a.#Yq;VRGfuQQY(s^?@inO&#tt0ih/)
%'rdM>H@lCZW)Ba-$T;o[TO<l?]/ef/>%3>u?O.6XL^#[D*\F1;IDF^cYnae5NcV1"3nWVkZKsCJ+!.dF;ta[`nlX+k&L)l^m67(L
%)]2dF"ODH1e>f.=)7Dg@KHo>1>@gSXK*c6NN)i#AS5UG<c"FOj//4@-*U]\$8EIZM5Q)Q@;<6*ef(NR[]&JlqP@O/+JnN>IBo9qk
%,)c=cU%E&a;u!`;q-jm8_T5ju_:V%IqpF[I#%41KcECFX]elF,$Z7A&(r:O'&YMm9BC'A<SiO/>5ED;X^,726E(J_,SoB:"GscNt
%]L**'[Crs:"?-CDOo'nIBXkmK.;SeDO3RO?nN1N>7=UbY.;Y]l;k+\kIS?A`HrL+ln7![M_d/RifD?Qt*'ack&nS[>+ZH!>!%$9C
%QNeX;a(oHY6I=M/QsahDn'H:m(*o?IX\fpJa`G(A@DY`I@>JaOO2%nBH4aQk;d&#IZkj6@F96;,5YJ0bp[c(7(G@U]G9Z5s>8`WK
%MIG6^*VYP&.%!HXfAY['cPA';'97Ylh5:2NqK:/%=q\Kbo7Wgl1p9sbA-(K7c,uf$Qp(<M63RI>@=6,a>9USn$dl20_+&4<n5BS;
%PQVi@LTX@)=A55D`Ecsq[;&&GN[kdSY3j*B*H+m9k<QE/46L;m2GcmCC@Y\S$tJP7Jee=&YL7WPeP*m&kL??=IZ2[BE7i_t+_'PH
%5X"Q)<BFLRi6,`Vrc8T0Qm;2$>+eJ#QCE`i*6Y&"7O-$FT-7IuD0Ce%`gD1rIt-9,`kn\SqF"^F.j/Jh+$e(Zb2+8<r<)(:KFMc#
%If$G,mi)+t`T>)L#G3'Z*4HN5=E,CZKW&Jeel-H)qQVKPi>_#[d(p5eIX4.9HD3nk[E&GqLR<X?L`t!Q;M]1-_HnkRG;`9,UULN`
%]Y/b7-6sZAKmES$:4#bO9GBj4oo-22:ajOj6aP?<R/f?2R$]!"P0Fb\Vf48sq<@hpTSc-T5FS\4G=jSRd(Vhki-uF1,qI]@GW!#n
%k;sSQECCLd#9a(G-*g]]Fau:2/mL@_h"H,N(u@e>FRdI""E\JgA*WaDC$`Gqr1+;<rh[6C60k!]H/'Ie4ZHaEe2"W?)p$:kad.to
%4b,,i1a/OD_!B(E3N*'%oMFke<>k>r`Ou&UQqg:Ub]p^9Y'1QR6ns)a-4E6m3EE^XaDJ[:+mV3.Lgo2L42i-U&GD(YI-SOlD1Med
%m,l@I(.c:Iql"o>)PXc^fp,D"Lk]0uL#';/BM*0sEj0OV@HnISEGU/]\"])3Z(htF1TY-aI2(@0Ai_W3ksTq?LX1Po0KXJ32?4a(
%q)Fg`KWWo-!=ChH8("BFE=_[U/i;l[,G\u9::-@qNpECSoZQtpl'317!#.`:^sCKFh?dQTb#Q[0.)\IK?&fT$&*g'HYW/fq6Y/(d
%]=AeVpT&+N(+5c.,uT'="*iEj&8T#MKEII>-nOCi>m>sF/nD0E=>@9j?6udQ8jN07hpmkp9*NC6;n`rqZKU]Pon0_=q7@d2:jta@
%-i<aSeXu6u\?Y#KX*/H&4"OVfM\I*A"7j'u-9;?Z/IK&X2Gk$GL7Dn.5/$A^(#l1<W6%\4Tl/R\/MTM.@[ZVd6%na[G');![sP:=
%#(*&U-29*,i$q+:qm6A+f4?2=Y`<ATLK96\1KYS:+N4snhBf$`TFh$$kVMp7@qucRqABu4p.+BI\0!lN]?q-0@*bp1BnNkHc#eB#
%GY'cH8Su?#5:Wob[*6#k2M/Q#"AK5D6Pss-T#uahS'O7-#E=ap97=IlEBB.!2+Ys5X&"3@q=UfhJgK2ac`a74R0/o8!cUSYTSYVr
%=LuDO'MjB@'+13-/Y4PX81Z7^pS2%WqW5?AM5mUf`J+!a>5UiEOQ.JSK[@8b@cLM3J.#[Lj7N;NAuW;V\!TE49?k_FpB&_YEId>Q
%/u\=Id*?Ad!#7FY&rP/0%7cJ9&`0i`QZ.[U8Y8(`Xe$%b7Z1nTGcN<b15.E#Sh^jH7Z.)YZ;kJuZfa`Vg0FcYeol_=[VT(#PKomZ
%,'*2`YsTU#4@4U4-_4^[)k%=_`"<+bhq:8cBU:,MD]mVlkH]"5F/CVuCV9!Nr<":G#lb^Do"7?&6KVSg8<>:['r!L<\@ZA:+Q)^)
%Wh^bt1L\%;I@U&_K9eIm2&YgscCmNYPX0(BU7l;BY\tcW?2[ar$]I5V]--$f5p1WP.k]2-"ss-""'!,AVLC`)+SOKE5DATSWJ<Jo
%gmi8n0H.43hU/Ku"8J/ZMr>4\.pSY8XK6)N2=mtS%i&C0Vn%L@d!d<2`35_ZU#G'>O9**P:(EF]/T:sT3-1s]Y_huIGl`?Fb5/J'
%['Bg)84-<K`Q0abZ2ID,$\aNIQo$PMSq6;%c8$rCNN26$`>Lfp]H!R#B:#3SOr9Wt#W%Yn#d?%P5j7eta9h$bM(rj'$J;#&?Ici%
%X.O]W;?[84p@6C$'d2jf`lT5fK\8K$@51MIm<`$jp2SB-&i5bLi:WWgS<AT]RO;/_?Psae*:VH`?6)K!5X"T;mhB\X<anCdIP0@<
%_M$Jas!$_sHq+8LgCbHXRR\qABb0/4:hXuM+%"$:WI_^eZ/p/=]1!g`o-^&N9fo$J'(#$0/^b+6TOE"'_;E]Dkjkc%(9i)XXAJs_
%#iA.=_>i#9mi$9t.3mV'*-B+VdSNDsdIK`9k94s$-kg3Hpr<P]HAGW&3*b86/6j"B!:[6N$Z/'/Zc`R:h&^QfiFQss$n^B":Z/^-
%+be4-$a+jnoD0<6&mVp_L%@OX2>Y.E:r],24gGS=p_]]s3@[,/+>!WhMZ=C]KX+8#*5G9.$%)[TO]O4Wrr*Kp.fnq]l[XsX&PkKG
%kA1]MGDr3<@CqZAiaQ._ZWr-i<`P.t>[J`8nnd6hJ(E)TLg)0i3ao'.bA-J:@3#ZC_^O14-ikbt8P]Y?9M?<L9agK_]L\Poi*4"0
%)KBUhbP(=)^i%ZD:$H+LIO+4,_We]5BAhH0]c#38$f&W-2W[s0\3'/aGsQORYBX$&Sk`M/G7#P&-g?&6?;!++4lnJeL14^&KM&=M
%jTq7c@qaJSAf"-o)0[(WFgC<[SK.5j_^VR)b1SW^g2JNJ1bUM=M9R%[X1J?r16ja^TM8Z^WtBOhIm0_D9(mB>=I*4HRqdK<QR*"N
%Z,/j>hmJ01!Z]r0"Q?7JimiDX"njKJ2V:c6@(0iD;R-ES++p=G!4+R'*J19VZA&cRKo]=J+q5^"+u\4E^7SWP5\AL\:\mMK&X3da
%[H3LkDbqmm0h2r6<2'T(i[NcB-#*i<HEMCGn9B2@_H2K8JmQ0E.p4a"8?iYD`n@DG)K"(B37&*V[eU)2H+41+8c,S8;n)?HZ=a9:
%?l?9nFmuaJHDu/(4G6C(>$&Ygnj7;@@tujAK8T2XjKK25kQRPem]q:UN_Tipbs#Q$M'4I_E.n=_@mW.b/P(\A%7^(dQn&DX$=l-X
%>?j@i]_)9L?RIpb7M`iO1se=25\I/)E?KUYE);A00qqu!Hbb$k&QOodBN`Q9>7VeBLN"GDKq]X9J;)AEIBDI2>uft:=:=bGri.`b
%)JCmTWAX+>/TM&-VlL'c!o-q[&sHSE+_Jcl>dQRuf95IsBX^fhnX@.-QYZN_2;:se\qC)dYo[;2N%=.6Rn&%M>!q#:-*,L\/%?D(
%j4pV).`l*,B:6>iKq4LT4TqI_-c(.]q@IIN9+tm"eMc:j3t&rG/*k6@87'NPaJ^+idY8TI\FBspqd$&jNh@3u+ld4q$Ma"7q[\E"
%Gb"K?"Q?cF<Ec1j*oggCIQEYYAX0ag6u6L?C)61ga(qo1a/Z#Z!k7[-\eBb;,K.!LYsd2g@Kui*U6aSXET-<(KIZ;'8JE@I_g5KC
%Z^Wt+^:a"8c%HKamD@Ia/m-'E7c[m(pY:&S(o*uOEX>uq-Q#qf%q/L"l'1uXim$5kmY46rfU1X'$6ef<1Be;/d@i[T2C=*j;8Jc1
%"K4_(?B-<JTBQhMUC.qP2ru/\(<AR=V"AGk]-HV<L2^f-4B3kaa$+uHb!Z>$%n)[3P.LQo+q'?L'nc]jIY/FjnfphEgqQ`'li]0h
%c<r&0#.T'e"d"MbqW"K8eudKF$!d4FG>A[$<14W/#@2`$2F#=?+@`dhV^qNUc=qS2^L1UiS^pF64G&),oAk%u';$85_M+!f-@?;.
%?ZH*/K]\oBA\DT\5pPK?QW!K\l3\cG$%d.H")['>/>m:(MkI?J:f-sAOoHFc3u?>WLBA1+`D[H/B8GN5lG$<s*j,^rX<G]T?A2X"
%eW9SQ"sihV(QLm*AgB^TO?9[>4cOXN5Qf<%a.[C$S%(O+VOFS'/WaFF(g+a/guqiULetH<oL$&XQIRjBY%5N9h@;-X;TPruG]t<F
%:YIIj_rMPK!I&N`4WYmNVOi3%(*s38lg4r(&mi0%/-p>uT_RO6Rj$8boKe9Fp27D6+2T03W\Zb]#Tj9fHGt8/hq;"WA,?2@<#n'1
%@KkDa_a:CjB"5>RB&'8[Ff\U_A!e8O6mH\^/[@IW%I^4Yc=A]'a3:.Z0\GF,i>d#\<YK)/imC.$StK_RAcm2@4A=cTj;$`F%B4cc
%1aYeE.TffY_QHW&m^RCi6EL;2C^[igD1p9(h1\jrTKWo!0gZ:gTXcEpIa:BF`+],spNX\j25s__-;k:S`>c`7k>2>ff:0jS774A)
%#TK"](?u%WSQj8V:elAjk,(fLetgj,qWS`3l5"n4$j!RGfWlIsm]B.(Gp9UTN#8,O#QXIE<9kG`@gG.)k^%$@P:8AZY;_9`1cUO8
%KRfeCr_Ts?F\b>+:91bWC-XAE&dcoMh!7-_?Y-I+l4\^eCJL".5_1JKR)9NgKRX7ZC(9)b.u+jM+rK`7,cg8\%CcOH3'Vru6P8,t
%FM3D<`c!PR3b&`JeY>:%1f?0qYQG;"*Xq`0Y2h:gH(p.b3RBc@5H:aVb!Xp,1l/gRkmtB3c[k'\+_1R51NsQ`5IR\nIGsiT91XRP
%k'HBik\lKLM$>N?YX$DhZCQ*['k';-eO]+JMF,ut.F`up=eR:1)IZRgDL,E@,Qfj8%ajTHajCT5#N=$q%U?o\!c)h6P#9ncp+1T=
%LW@`bd6qF\mb>.GK,FdHZ!7TU2lY#3P5F@)VR\?<`mR;aYf17B_qQ%<**0QZ?e1[^]baHo5KUj/==cl0bu;t\G=R>'!qUGS5`+i+
%1gik'TNbo=,%TfBR_LB`20)lu1n[/@F8VL!Po3VYqc2p8XTC)-&UT<JD_"&W0n7.3@?Z]h"rYYJ?6LgfRsV(94ZMb;>06.dK)@0k
%N<@VA3h:LIZ#Xs*m;!8^j4ANnJjSki:lT"%rk**BF<.1I#&tH9+UW.9qr!feCgE]==1sD,;f*c\)+q\@L7e"OjFgC0AWgn_f47'm
%/Tu=jNcf5pM4eVk_N9W`;_9ms'[5kL^$=I-dm0lpp(k;ST))'HAHSor$'AD*+V,WUej(P.2j:+W1EFhr6`J4b$Z#(\Sm0Rk*!XMD
%GOfciB*IhL+Uh\QI'G,&nnf\tg&_qG4hLTh4`Ji<;n95%c/79`\LJOX.2691G)L&kQA.9"XQ2^P.5R1Mbml0XNi@sXFGjIR''GuA
%."_](0al%&pkFk[:d0_W6cu6HMDLNu.gV=`boqaWE-]g(lf9'0b#t-CLI=%)W"]bkI^eEk'"RJS/Uf6#*CkW)Z+LDoSc[R?c/V;^
%=QV<@(foW?b!C4n6H5S";(Y)U'h=QLCb9*$+D$j+h?)d?qp*V\/,>%;O$WFC^>'\3eISk@lC[qBTo#%1].\I.lK!peQkl2,U@u76
%YB^#[Gq.Z71C148Prt)%.%N7p?oXU\4o"n>Y8V@RM8`&1;*)lEKs00`q/OF?"*gH8!(:d6WgN7><LV%GOqPHf(8F;0l>_?21kYVL
%p2cD99k3J7i3ID[nQR:)H+-ILlTU_pfcru3kgqal59gEfWW0R#5m%MS:KAc8'@n8iAf$S>O<V71E2hq)C^/8Wb"<-,](_2[(J',X
%-;u'g%pK7bo*WNm'.LkEP$mnr^'Z\'FCPZt$N<09)]\'e6JBrI;FDpC04l3%.5F@-c&DjI'9gqK0G3&m9\M+V>@J=dj!/Es3n?_'
%_MCNV;JlU$>V*dVX3Y`Mnj:35&-XeV5=sjkXppT3fu-6.@EYH+J_hNH3L0c%_'>8sIStF8c979">)Fm++9i=$?eeRjXrargT=Qq`
%OdSr)3`I]4HnEf!N(OEe;G/j`%6VMENgF<49SL(=ZEd4nfF'IRY1_jj*HA4X1/^q1`ZX3VqUjd48*%<3FhSfRT0Ui=phV3mqn%*I
%2E@jV\e8Srqm5@>lEI:Z)tP?9%p*X5mH+lp[>TS[[Ac_kgoJLPYj\m5P7+QjF1[RaLZ0ed=sM!6O8H"&_44T4`Zu^um<dtrcDj6L
%SPuQ*$feUfArUd\jLcB[8d.84^#WFmKGG7)R_@79c=RJhq53YB"2X@e'9@GL>'J)8=tFk-.6suj.Lm%P'LufJbRr/$&DFI$REEl\
%I0f6lGB[crmq5WaII6#hA\ru6c+0".bg[RKqjJHn>>,<eqbig5ZGG/N(FZejHtsfm/9"60GP/f`C8fEf,6Q+ja+:0n\d67aM$sd%
%_8nuL9JQ"DTN?Io<'<M!)'&^^qCn]M3GEpAL%'IUY+1,1[&=Konm/<tI9'FE`9q-S`U=U:,4>LGX>(;$O5!1[YnLiRlgii!=?A`7
%A[.Rr*OUDMN<S47+$GNW%*Pu4b6B?m)oN-Zg_A;"+WNU?$D;#iL'[UjZ,_%>,V(Ln.I0>FLn3,.$)M%k`h9b]%4K82AMp,"+Gi:4
%iU_-p?>X\u1,[oHY/:Gs7Zq8seeUs+HmO?uU7_)2Ghrok"b906a=TSU%34JT/B&7.#fphli<74G+LClI9Iudp#CL.\-*;+\FlTdC
%%NG!"+8')F?.=S=D4(sRd=He.Mi"I\kgt"7^t"L`&t#3L5%Ff<i+?N+$n!Cl1L!smcrPZAA/Hq`D'#=%M2U_X_,p<L<+iKtR5!8]
%9dlO@M-%S82Slu_6=rA?9F&GZ[-/1h+,B;-*AZk+1A%@l#:AfMn""Qm%1q<]75WBpQoL[fdDB*(4p.4!_lEEn9Yt^"-?5#5'9Y==
%HZmTD#!um']LI(@k\!CcR?``PRgVLrCX7$R']j/nX7CdtO2]ZT%uDL^Yc[CkP:c65d-)g[bs7PqB]'jC=VQ3R*=6/>ehU986<$De
%=h6",a+7m!_^ApPEcOhJCVRPXSq>TXW1dttpH]O8X5>/f:u<)<bFfRb$I3$ll]s.*m#LgtGL^hg)#m*u+&*1`fOI,Ge7=ciH-U[a
%"#`CSM^/aGgieO/^p7Wf!$$ThE=cXE&>3*MMGdgq>fI%_ML^dhf;2I0/+rBVpAi1kQ\q]W_a>p(%jOj367(%LFg3)q70;8e)k^)%
%"4?iPLXntM]51@q+3a0jm<[GGI"HXdAak6'eh(,s54p#,DQ#<H?hp$f0VYii"qli3"d9P;Z'`GOc0O`%+q8^MU,^6Zk'_mU3/h\Y
%3mOm@L$q]hN#)R5s.][prA%8)n@S0$2iS6!^%Z:$==#22kfT+45,!GUr^Af9Oc]G]EslH7KE,r;^Hcj5O_o\)j>GS,SnK+?*ORs)
%L3hh5#,*M^eKL3OVpYl/P0,s/A%%T[2!/dV31Q-kR.rHUkZ5ohreh4Tl+V]-FX%$:FFD5f=cmA;%03AWe@\=1m,<JRW<#l&nae#l
%3LE'np+![^>sR=S&MEYe?Nc.,"SH6_,D+D1Ff&u:R.i'p@_0q5h4seQ-V"0OHUE\'T.)AaRGNN)m*d$AmFn@g$o.L*A5Ym8^dNqE
%9cq),YR:uGCM4'Q#E&1a%)[c3jt*o!'?g.tiL)DE:&5![jPRQ^5SC*lKTnA.i^RjRaPr_WTij<25b0`ck7S.'3Uc2^l.$#A\>_$c
%dDjQd6`k\2aJXTs`&R&Z`$<tsWk>RO5P1$@Q(srUM-`FDIBC*8.QcQ-4*K9.j>\:mcFCCQ0J=*R(12eB_I_#Y_[jh(S-C#Q##?Zs
%T7(&&^ejV`h>c3R&AgR9dtXtGN@lS6cRdnh>&H\a:atmFr&s:7'>X3f8h!PnkJ&4DJTsfr.[iQ?:6e9-AO=@d]\9b_jhqpC(A*e4
%R*W$Y)CU^``s,-ZT)uq.*FQ8jTrkQ&qbX.Z\X;m`:qZ"r@b</r3_2#iB,2_oX@XG[4g<]r7,Ql)J'ZnZ'H^P<[*cQ;?_Tqj%;UET
%0r0eOp,rkFU-.B5+\5bSGh*`'3cm/)Q3pCP2A6.&F\Tdf]c)r,_FobGaR,ANN(ss!@&NX)o[4sKCuE)Ag_59l?@5"3pGLnPkU"c%
%;UA&`0VZGnkp<W9>=>8A]`pKo$#g;-'+[M<H$EtHMdjOO4*;()BJ"\*<@9.a:'dF[hG&m%`ZZV?a((ljs1,<L,2Lg!i)gKZZ$fVa
%E3#IC^_&hC!UEhTf<kl[KmCU-!bE0XVb,1^16:*O6mQlFp*OTiNoAK)=_Pc"nEP*1S@FU_Pkg?#B^IY'#*54H,%\H<BfW[(-FjD<
%2%p!X0B*sDpKBJ2(WWt"^ab&6n[+uY2"K5`D&O`=`L'5+6ef[@ck.,(5.,Lip3OK$;loiCZ`k;ric/'?U;h.Z$Pu^fBM&RRTcbTJ
%8Jn"i^i4VkE-tAp(Za?[qL!AT_K2t->`<Mic1DQZAt-2V;9Y<I1TaeK4R+kcAU22B_7:^h,(pOloOl!)gOf#\L+Am_;0TsN3!^o2
%k?O>sD":6G*:=%OQt#bL#R#GqQAN&R3U^)DNHH.EB@&B\etr,:c'j-!!IMtn#GqB(YXjoL7iCc+>gV>^"K:(GB0E<fmPkm.4c5qZ
%FcKpJHkiYXKt%5ePuO'g"rD_#ipCPe3o+tW,,C?*,+UY],a$P@TLar<VQk$FZin]=`>Y'Za-Anb"&h_7F^NF'j9b*O5%Cs[lJS<V
%:;c+-)(S':V]?IuM?;<O9Lm@f`G_O[S)3E6NRA+P'Zr[!U?,/e)VM$!N/:uOL=u;*Bp)d50#6$M7WqoEZbf9a(joh:J;YYE-fSB"
%X;@?FQSCM*?A&JJs)DgpR)>ik#4^`JC*0oU3u(MRZF-dC6]<OT"T&*0=Y?VjNWn@t(Hk"uem!i&LlRLX;1tKX7\a#bc68b)*Pket
%T=]sV1[^4Idh5aPj3bZ\hCb]aY6c^'6StBnf)'TiKlDpuPPLgpZ]H,_%BQRl=X:>H2NqV)KWn'#(\GP26RL,tZ6S&3<h;EV$2_Ci
%.TlojZE_gue52s\^/`elL5g"dpK`#JnQrKVU$Y91YV!haMs.!S<"^?m<Fof;4Ll1i[i`;ce.S2$Ag8uuT@jaObLVB,6c59"'_A1'
%hRWtK5(#W1U\9sh?`hKW8BSr.Xd!oMnuh4T8Q1jI_ELMD!M/<<a.AuZPTibfmBYqk&iG)Qi^HJu/drmqS_:K3G1oZ',%Jqu<FJG8
%KA(C3H@YH:rk*,p.6MkuKLF[nF0RV_>%2L6dm.;*jdP0@_8%PuINbkeDt@gUVBa'j1It<CV`-o>/@!0rJfXicQIG,AdQ,l6g+=dU
%Gp7SeK1@/<Gi@=i$2H41?c@4n!rh,<rjR!E)PV&d.oKe<3]ZLFoH5_m,qQ$Z[O`Jim$S(JqlDggVZ]i>E7+Ks+@'d^dP9^G!80UQ
%$A[T[<pm17N/L/3LU[D-:788tWTPGC@;IYrbaGBcX=d>4+&#%0IPA_kWLu'cBLrm\-5=\j<7GW[>Yl41p$3Y5E%2)f:R>jRmXuG/
%BMfu#@lE6MCZUEs\d+b?:SO<=HtS`(a8q,,+g[R-`ESR\RE`Lf@VVpKkU;gS0%eV="OE3J[O"dffg30ob#/Q&Ka<#uXISFhY:L<&
%JKI\CW,@n!.,g55UNiEpeJo3CpLd?MeZJErX4#Zg=?_dRh7#-erMFJ`FJ((\GJPk>g0!LL(2UDni#$Q$(bN4Wpc<$*-`MQ;Z[Q@U
%&L<(7colK0PId"PP6.?I"u3<_'[]1'Hfe%WCU^HcW8Ipl"@]`R&;JI@f%PR[B\$Na[8UC,J3Ig`Fg)r<Ub6pi;E3>sG^PRj2V'0Z
%#a0e6JU%E:(n[r%%V6m+oJM9X_:?q-B+0+W`skF2C^>\3on7R=_Vp\)`KTsq%,`"k0IG"Sfe8V6\i$-8?t"l&=B-qa3ML?4Wt=>i
%#O5d+Wp>nS!LKDh:fLd)FAAA>/+o"7U9o4PR2V7+:De_,!mF#Cg.f5un7nW_2i%bB/>6!7/.-)%+B(sVU.3CbQjC!I'GYB_MT!)5
%bef<<e]%Y0T(RX,dH-.oI<W(J;5hhp:p'YTnj?eoeuI60*,0-brP=tM0K;7tMBb$Yno\e#&=*g>s5Q\&Q.$IQXJfV9Kbs)N`\^7=
%)VGh4arbg(QYMA]6AQ5UX+s,"95ge$)/(IT+JOE4KfP:T]I"paAt^j#<WZC;I%'/m*?'-SSh5TI%dHSr.2t'K`QH@Q'b/4i)JB96
%pjC)FbQuI[K>4K\=)FmV=Q[Tkgi0lk6]%-^(gn4JQfNt:L[Zuk-b*?<JbuEAFXb]Kna0qYkePk]`:fOC<L:HKm-!J,"PLIeE(CZM
%YW\ni'AVPX.J6.77kmmf]tBp+=*DN]EUM;m"]+TU27e$#/aO8mkc.SnWcB^4$p"BM>bI>#/rX#>XAB13],%PWqn;P0acC!T:cVA(
%S5M#-gco?Wc!8+[bg33$;+O?m&E!'nT92nOW4cnJ8p19N6-Q[/KJuojbrd-[PeLQ,1f/!gRJ:?L);Z@gkZSc?8f$B=5?ebC9G)Yr
%V4Aq^F2`/E)g)NK%NaVa@uF3edT*+6e<2Lok5F[8Cjc91,mgl]B.'ffYF1:rPuHd,Z$cS7MT>XLEoKqrqk>UbL4!P2Sp7]-=Qk`"
%>/;b`dU`S#PU;q%+E:E/8R/ioK8UkU-Ie$`BeYhg%OTt#Ma_.lE,QJ](G9M2"!*-/LR?Gr&ge_OehAJN$:\3f6=^6;q[XhW'1W/)
%6r7Hp>uc\1.m83-H%]p*^%.s/a)%_Y7Ai=O3VQPi:\45_2d3OEEH,6=8W.uR=<!(35(l#@,T?:(gn?d!YIJOcQW&U'j1S`)oT"P#
%p8Sr@Vu.BDL[qXUbN>XmDDO:tHPJq=lt&LX*?SCo/c6'LbgJm.T7R=k7PW@9=E5RQ=BT0._^\)C@9LYCMm?,%^(T:1*']*%kqKPq
%>\HR[6b/<OV24?D"EacPVE,.`!#oE_EQ=&QjYd>;\0E!M+=;';W%*#5=8&llSJPkq0e&%4MJXc<R!,834-M3uCV(i($^E5hVBhk"
%$e`*a^1p-a\RrSu9^A!/gjVF)Igr+`(G[)@M.\bc;*3;N?1\=p%)5;t]?P'hQ15AAo;a>o+WaILWt834[EVC$UW8%?`"QG@2u.,f
%eItqcPCT*@'=4`^('@JM4g:Xm\Cd9&\MLI^C?puRT>Z4R)"usD5?J\kiB1]qMq,dPXDE*8bSP1g%cMLYWqSjgZsTZt9"Gr6H7U4%
%bd:'<J#ZYEYJP/4,H/ehU<73m&2)f`$CX\+0l+&eHZs+1eq.shEl!sL]F,Tm%4l[;fL<g98`&A;RCXQsE3XN\Zg=&dUl<Ss\;k^Y
%,;/Z/EusJnLbXieMcm2M`bt&#cBoDQeZ\j:Aj*[flqlU#c"\AjZeMpHXU_^[V(9(EY48B4X14P^KQ#BTTgjbe_T5E]J;[tg27a3e
%HoJ0@):I\K"AM4M6*IY[e`s/^'%:JXf>e)<ne)[gI@+bmPbU^t_u->jQB*7^&t)=/[u]/B00Op'bSg;6(Cb5),7pfGFb=rH"?*)1
%O!qrFRg)L.,faAn(XkDN4AE9[U3[6?H?51bRq(bT1hCC\Wt*@$L6Bjn./JHcc%>jio99BW8rZs3\`Z^ID!"K`N&t`nXI/laZ7Mes
%Z1XG7"TO6'HddR]>a$ctA):Cj.7VQk?JHFM&N>>6o/\$A1E];UOY\4OaA+J<Z;*DH$_rdqbuoAG-'F&OI9eUnoT5*\3<d[K1?L*?
%@TJ=FoY=KW-]*M!<7X@H#k3LCbJZ)>oY1.J%a6'F^hJ2kl^G7ZdZl^8[iO?+DhXHu._KJ`>d=j?WI:+89eisIo?Q(9-nFppN^l%n
%i%@3EZ'&XpGS3qF#8g_LW=\]_f+l*bS_la"#@V'nF9dn;>qE^ib%4Q_C#i=B-eJ,q2k?P.;FKucn+-icA"s:Mpbpr)Y<$N4f)@_G
%`N+CN<d'AV4]o!ooeB'IF_;pc;Z]E;="P3IFKMa?)eX[Pg!^@<(+d@qh'gjtU.D-dX1ERFabqA6/MHGENZq2:hj3l^%ZSK6EspOC
%9fQ;FXU?mt%;9KU8+=%DenMNaA]Dfk!F,k%$nonG[P7nM:`#7)gD;7<kZ1%bmPYM)*MX1(b?=NOgL]@2@psmK%7>AC-s3hL[ZpUS
%Vg"hAfNkAdb&,SF7<sd?>6hr0ZB$N^*2cXB52C+k_]iSCqq?1nT0d_e]'CRShn,BTnV"9n0o/Xo;=saMWo=Io0FZ1b0&nEs,p2)R
%X=WOuW*n&l1>c5+k@H?^`gX#Od</GO@M#ihX-E9;Hd#%tUR4h_2u<_+\3cjZhqMi/kUfG&oI\-j=fa=Db95:,L)e"!Y5j?7"8\Ga
%`o<bGK5FQV[s7I[4'%e)O'EY:?5+F'E0H-u^/^R:71#\Xi(+[9@TK!,l"1((_g\e2EI0NaNLU.b24no!h/")9RkY$jFt>E*2W;99
%5%_$8pmaTFfM$J7GHA5"<^P$Q5HGXr/t:&IGg<(ES%W$".lFC"\e`Gf$t14\6JPaH'@T"=I*l-#79*4S`9MW$G:OaPBpJ)3g.^iu
%ckq!43_Or&XDQi%-)D@]iU'9l9!NCXK:@jWrVl0;gf4sP[1:-+O]/'aZ3,Wb=9BcLgK(L%\@?UCB;fEKZ8l2.jn:GMYjUY%K/df+
%P/m'n<?[SI`G6`Rb@o':B&`k:d(Ta/X*EbAmAR>T[MT']P8]>V_/CAbRL%WB:+$-@41&d1$(7Kn8<`X$'(KfH[;PDB^HNNs_k,1G
%mWOYK@LS>An>^`r[grMY/`2`)J$QomR0;i?HYm&a#o5a2]FYeQUVCTFKVCp+:s<@'?S['o=H"r-oK(^U%'V4D`VeYb>J]R>%lihq
%oCD3FZpUg]F^M/+]0I6%miY.h&_7W%=4u4>VDL5*ULjS&\8D@0mF5[GU;S;`gGf6q[rc=2XrY5B$q*HH-(15MStfSbJK;d^NqLYq
%8'?J-MTr2T^ijSpTCMY@XBPYY!Jqp2_SB"upf*O@@Gu7bG:Kq^10FCe"b\<Eqc#eSJO[\3.hKR:o'/nZSM6]_r-1<OZ/bSL+jQTQ
%EN2dTDE\26D31J@")8MZ$sFMD"86T[kESi?\-%\8qm2q`PMK`Dg8G4a_bFO3i([02]l%&/WWB+3N!.PFO.Sadb'OcCgCHaCP-a/Y
%etMiRng;j=b9D;i`9uCfM62qIDd=2oCDSP!>NILXE6eP<]+TfnVt.R+`!3_i*(1S3l$&Oij^Am)J['Q9.DMtrh/BW-2BajoMYaPK
%2:W'b3nUHFU.T$"/gIbfKYZBsU(dL%jW/#qOs7c_#*Ia_!=JI7o(5+0E,-TdTO^I6dV9?lg2[U(hS\8p3rH@NCQiFIF_2?=LcrVV
%<'!S3600)^r&lR-mr74)aL',XjV?J=%@NKc'<:Rbf:1h`*)D0L4nDZ)DSffMWiYK=lR-g#ZLmS56errl1sK19Yu`qUf#K$]igFFi
%Z0K6f#M="HRW-X)nf7H:ZB4O44H])Gi0<'aA[)9e<F=\MFs.=GF_P!Em\suXi4FFT.?5Xg1,(YbE@ZiZRAlYGWct/FVVTk#0Y`OV
%Si>8b%2_^jT$uC4V<Z%HDJq'1pd(N2Z&50#M#aEuAK@jE+]Lm$^Hj>*!&4VZr9lEs7mZBuEH_SbD<h8gD!@*DBWcHrF,c3d`%;m6
%0fH7</R,L.d%G+-;%#%1Fq+JemotnP=`;-\@/5sohrcNQelF(93/&RQB#[d]__W6JP>T1i,NE%aS6R^9)RiZ&/Gf$J]LH?eg*V5#
%k-3<j3;WJB/@^otCo,TSnG%XL0Z8rfp'.mVOm);C(Q$X/"\WYP_-,uT)RNp&r#VUEs.*)%IaLD(-GsF22+YEpDrI-PT^,U/?\fM8
%';AigU5a%/-P@($Q(^AWf0FrAa-,!GWle#rS-]R_n>i`kmZ`!QHRc?ZY=i[k[X\Q0H!i,L:,Xeo%dTekb++\[576qcDVJ]"EWEK4
%>ELP;;$lRY-!SIC:a]P)N.r2:7,q]"31\OACoS\E$l9r0rGsJL\W$01*Do2hR,:MD2/+UoP*5l>O!h8HM>O2gnS0q>M:6T8QD,`#
%6410J&E]a`h&IB+WelWDUJr7(M]ZpjN[B(A.6j0Ni75nV^iLJ'@dc9<'McSTTu08;EusbC9iZUtkg#dm<1R-a=Zf3Y_Qmj2j%6g1
%/G?scJd9+K=Or6JSb[,?Ht.erEE)EWGHsU=6[&0s%NW$VMe2:q?p._c;/BY(k[=D4?s6D!G*<\V@F?BcQbS<^c4?m.)QhE0h`GZt
%\r'gj.o8&*g'PrqiE7:irBSO'X=!i>Uh(Gt'rhH(83[b@<U$f"\p0bmNI3_99VrBXEFY"P!nVS+0]XGP*%_YY>j7/+LG:G^R;!(>
%>V9A-RDrY$,c;#S1ZfD_@)YogR>qP)cM7joP/E0"?_?cAI=iAQ_tfPlFtu&D:Qbo6YW[^g6"Ano9,b*d>n8;Bhm%o)>I6pcS;ZtD
%oCid/'os!.CI6gT-%\og67FX!#/RGmJqm^NhNf&G,E_WNQeomFlsgXab3Zd!Q?UEr1JcDU&W"XBZC]j]H0[A*DQc?#n=K:rA:qiU
%PH$2C+l?oF!-^mb%i]A`@bG0i,kPu3ZJ'O-<U/ecHrUp2+X>oGLjtqCZ":oJ8D7JW8DW?PR:='L%<)@q/K/IIap0TiakEE'SEP`!
%4'd7YUh+.le52Bsdm=ea?NaiX=,cd3/mOKt@:MkOZAP%]23iK`s*dH?"?L]TU,.]8%qRC;>b"m95\n%aQLI(#'[IM_.4-b?<)%ET
%@MQU.HJPJ+[U+;>9)EF*4S6PiS`6dZ^oZ:umK0O$$OgI@E1dO]T>__>H;\PCC@^ENX^<O"mZ+*^@n\m2Gs"i)lDA"lUSoN.?/JP"
%:1]aohKG`[24C)*'CX'phF52623:pNC8`bA.:fHSlZcME@r53ge&d!#UBZY$O1RT^QSrKk7U]kRHA=taU1e$:pt&%<-ap)2M,@K:
%MJ$(+A"9p<-KpS?/LlR`^^>I=3T-k2D,u>4`EV'G4"M/WPo8A<8*TC^@[ZQfR5Q\k+gWe#[h'tj,70nq<*j\eplslI*/ijA=Cd\3
%2g?7](.b@$rnAVaD<H?\VaeV-hdoNe:a>prDY^MVR`/#87PKJ$0789*mb>.Tf2^&JF/@_BL5`^g;SC/sC*([`g3HF7-.s-k"s69F
%8#KZ&:e94/F3"F/A1;n!!W=VeNG)dr:QnlLVp;&tpR%rmMPK+#.RW6aG'GG%BuIrF*"So:<0lktNPq2V!Z2NTe=E/AV?g+;V$C.K
%\fi6h\RXuGdoiuNj`cNKpL99862nVFO:\B/X6QgH+E?<?Yr"f.9J\FtI4mShS>WRSdZg&/360-H:hYI-MXoT?h\5?i#pHTbS'q:*
%TR?76g2;!<]4n,$b=^0e#*=]t6?`lI4f-C6eKNs$o;4rmb07H3J2bq<`dF,>H%rFHRh=CfM$q3>!:Tsa7=G"hK@etg\G5,=Gl7<,
%@MLYre'<V;L-)5;/U=0)T6NiGnh1booO_Zn=_JdpVGe$)arhQL;.j6T9$\)\\G0$#ALWOX$8%9WD244[2-+fg&;_EhZk*oF\-;.8
%-V\$M)#=M6*$a<3i)t"ZfGA(m!uX%D*nor>Y"^a`4^8Nd&9D(K3"dB&a[Aq1r-Nqan-k7@AUZuZ,W4?`Lj>Pk9mL"R(.ZROC,1e@
%'`=Fm)B2b[jAR\P*gL@uX%3IgVL%lj3J&g:Z!qC2;:rBRR0tsL*@rZ<%j@N*`Rl`\&4cF,QGNh/JFaL9nKER`_E'Qtkrk(V7nUK]
%QrWgF&C9&ra:\*7is;e^#qRn%%GuZ0QjCI&G]V?I:<%p430LDV.Xup<Jqah\(;rDk!")Bdf<nqM4C:lf93:80AM"[t[A4nGQ1uT]
%hAV][9T^4*V$t[+?$:t'0SF"MR;JEILT0"P#7tZBNp5olb%JcK7!!qs_-R;#_Mm[e)`WQgd?+>Y@gM0_C&e:BY+-,W5D07g:neiR
%k"5?JG)Lnn(^AZa%,<^ISr2iFBs;hFZh`t0Z\m@g<S>G>>=oj8q'lYGe^^;Q(hAo8Z$*N`=Xh@D6<5n?`O_n'p?jkK"3bd*(Stij
%iYi\,s/9)]F$nWMf,0n<MFV]0RM;a(ETblR]WE?72Z):O1WpY@J"V@W\3sK2bXS;3;Co@0l63\$(R:`f!#r,R;B@SK(3FQ.e@U%n
%@@o?\mY%;S01r1nfcn;(es3:G&0/L1]BYEfpgb8P=!1Nplac\E:LS<TogpIHCk">!"J4#W]bi<$EBt9c+YV'TaiJ_@@A)"j@6Mlj
%Yq>MV0i=?Em.pSk:RI:!aL>.]Hc(Ml3e'i+EHqtO)6<#+,RrD;S/sL\g<&e'&LM"T^F?H[0#tCg3Bi+*2=Q,O'i\,]I\5hJne?KA
%RsB]3hiNM6=<1Y<bbE[WdQ(nj-+6GcFe.`#>P)@%-2N\!1M%T,Vj#fK0!2@[$Re:<>MIcdB26/1Rr*K.>Zq#cnYQqI;B9Sd-"L!&
%?kmGbl+g\a4hCrj-(*=(?o1!B_,!$m,SbR28$NQ4i.q#/![ABOCeqp<h]E*sJ1\cN+eOn!"9Z!iS8ljq%rN3Pg/)2MPjX?]`:+kC
%6oMTFkQM$S9W/6ZWO?R$!2Y27m'b%50jdU^;u%>9mZoc,W:%hGEcIglRW+oCMMD;knlH.JY$-.k=bY6"EO`JV$?+BIDNeWC5/;Va
%kNQ7n#S&"DPNISWBQ[:)hr0+]n^E7Z9S_T_<l\aK6nbm2m]ZcS_@E*?fVrS*Z$%/S5aseF<lF;I/6q+^]s:q,JkdM(D6s[hD5s!n
%"dTDt\cuc&$u@]%f7n$0*2efo`51nNfh_o7`N&?l+<tVQeuW)ea:5a]#jOCR_H,bC6q09VXN$o7P<>Cjo0Qd;e=D"b+&/"^&,b'W
%-5uL69g&2bIWeO]I<49#=LlV>>D^-RB$hKa1tgBt\>=j"I"]dV-HpbU)TH28FDaKOEoW$lX^4gl*GU=]iJ_WaZeNSIR*#nP<I?oe
%/DBK!M,k<8ipU"NdBG&ZHjW/iSnM+PjR"oOFrFR1X(K6T]/#shS7JR??7UWdNLS^]gff/<ZBCYt3%]HVTRn(A;>R`ZKdS$f>UqYq
%YT?ZN%?ED.F[Zu,Q!<><Y"]?FPs9i`aP`>?bFk_%8u01hp3Es,lW,(c#^$s#:*K5?Wrq8KWZip_btJ?-(BAr-M^%$)0S8=_cTR(Y
%_l,J.3'=k>+YO_,4G<4659-!0#"Z*U'F_1cj_kHfST%]:TCg=[IR.UnKVcc]ZkSk#dU4.YR-2Z:h0-rIpW/BUb`I.La#YTfF]LQ3
%)7DHS0_g"+.S.%MjI,_biNg\M)/QSpN3j!TWVo0Sd3@VJ>t*+D62?$::=)e`NZR#h;?0K6;VnjlQm>-4WC=jM/0]aW<U@/MrNN!-
%XB4F%S/e"s&BVmqZ+.ns'p2Rii(:"%e'"i8Z*mTC9I*fr7`JPEfX%BFOe&'k%oML=lZ\larrQW>Qll@/)Rt.0'$V2MbG:P":_f+!
%)aYbGqF,_iA$Bn-SfE_8am#g[C!XYmD?Z=o*k;kmC_nYIqE)*(WN[=s"I<._r%;#<C007tCKGhl<A29<0QPhjq([O+-X@*KPI^`;
%FR@MS\6s&*^I$6L+*"nh:8T:JL851P41FY@(Aq%W5i1km7I%EOg/t+&:^G1uerK1.72s_8pnMQ=,_7<2@Uo'pJ+i)D)o:8E>ZWcP
%\<lL>:/6@KYT//Da)EX>SfF:KdKO9#Oj-9nE>He"'s_/1<SGCEph[OiVJUAN+Og3.ia_F%:#8^5E:`a$_PLV*\Z^hQE$sSiNVfc*
%#p\*3&2oGlquhK9U8.(i.&Yrp*c-SC4m<M0*684BpauEd43%__ZWWH?NN5/CZI[H#&O^sW4';bs2fCSb7&gZ$#c#mL?+H"HWc[M6
%?0,"2&.?La%&6Pm+F7,+oc5$VJej%XeeJMN#$[ATa#!lKriqJ=79>d<S#?Y_33l?DoI^FR5"3m[/rFh)W(Ki3^S=(oEC/?bW1C2r
%#5j45#0a^#R/TEULDLe:JpK&-+B]=lcH)DS",5I4`lhU%M`sujXej-/aUg@LWR'@E98T+7PTq3aJh@Je]>=HVJIs?^+f#YE!,q^3
%4mI%7"S=9LLMOkG'raBs;r>1+&[uBT"kq03XgABLhdhJM$0eT.BhI9'=-)R<@)Daml:B_FaoSgkF+*N#Y&W@T%l?O4q@hPg6;oYM
%#ZJ$t<]Ho;jbWA3k80GO++NY0EU>I5_ZJtaq>X'#fIDun]Jtq+X3oe7b3P-t7-.p^27kL1DDuX)YI^`J9U57S4Z:srOM]%tjV[L,
%pRc"N'YY70J0,@in?L6@)u+#lYk+eJGXgkF5ChB4"2Kq7n4h-=P"tlcCRe)U3$C:p6AR"1OpbM'Y*Pe9WQZf$Vd7@e<i*3M<at%W
%gQi;U6M,qde<rD76@U6D\1$c30GTi6<iN42.2H]fI(In3d-VZO&J3:`Gc+ZnhZTpJ9_DOfC@oljSu]gP4d@pZ]tCA<>XG^%](#U_
%DAfJ7YC=O5Via5\U2Bg@mgt[gX5+ahD,KD(@7at6J.JYcG*n,Ulj?-oN.iHM.X`/ak8lmHaSW8p9RgNt]"h-;?-H&CW)=T6IH0MC
%eF3rFRX\Lm(38WUTAK:=?KB$-+\t4XDChb";\4'rs3Mr1LCrSeCC^4=NWtkd[ckoW9-IAXM\NI-jhe^?47CD+Ji'jFNt-oI2;600
%P$;%PGq.cb?'4_@"oXpAZ\XqgDP0$:r%nOhL76Q*4HY\'6n0>7*ZSTD,40>$:jcNSXsgrrDAs6eN[kn[X2IO?V4;Wm)"&Q0d(`Rh
%,`nqa/H=c"K6$NZ.NjB\*H`Opi_p'f9hb-B6kQgl-D#fV+J4('E=p,>"WZ<Nq5T2/`mUo"1&;[XYH5P$TV$Fae"jL4`,PXUXAhUg
%Wi'Bk8ao\YWA(dZIE^KKidl'W]>U6%X9MFZ]]Y<gWQ0Sa$X2edeRRb8,r+XEg[rM-kM%>:$/12h:K\jtg=;."A6)ec`47Au_*B_M
%D`,utGjZDqC`/D**r<iSh*Qlkq.co\D,6&iT[5._g]eZUQdE,O(Ph%(N)6oLg!GEVHsC<1Heet>^'.h8YmZ&`orl?,)E@nP9&Q:g
%Pa_l3RG?`g,ltgt2+US&j)ZGXTl>pl(d'F8j$%Ze:f*9KI]8=NTR'6!fc`W6Ve33!>.KN.\-MaKi`WcFRtq'6@jMI`eg7J.I<E$E
%gZu<DO\;MrFtd^Hdt:ejXi=mlbL6]DlI<kRRkDC%(E\(]^f'1<.GagT"-,mZD*h$CB%K^-UK06iDCRIRO$G,#\1:8^*0:nKO<VU]
%SMY+P9<9N2W<<1RSn/dt=3k"6@[u^a:JQAX7$;rA9b@]Ph6[1EN;`'JHfu^O+L4(H_feRp8#-]qpraG**6p+=#XaRgkZ@A?ab6--
%I5H6MbagWGkeL[8c@K4]OT9+_SCTt9]M7=j^:9"Nc#?'V_Cp;+PGTL?0RoK!oQGnYT[+rKAG]Q(eQ#qo[4`Df.M)2dBFfE@'kgXd
%7c*+XlDSj0">)MYJANd_Z9^7-[S\AP,o"I-Gur/5W'1cX=(0l1BGdaC9]);&J"nEZ;Y(jm&M>4bT>,oKp=/Xp`%8"%P`aNm"e2RT
%EC*Ym(S4O(#t4,4VI(VM()!I=;<d_l[rE&_!9T-5Z_$3N1D/"F*eaj;[c=4Ihd/84VE*H\>I1IaDV=WL27JFulNR2!/hHWpZ5ToJ
%I)BS9ru6G?O$U_kl=HZ?;LErn&'`0.X/\5_3@"+PM=okYLdXXN&dA+8A[?$IOB'Z9I$.(9lC$K^?[pk5Qg/?k:3<tnNkT6S2l9rZ
%P>>jYeJ::_s8$#DMNg8)T=(uO0MD7)pOHPU'M\/.*cP'/J^W?SIY3lmCO8Inhd/52VV-Lsgm459UcBAZ!?N#VSs:%^:A*3aYP\lG
%p:GXuBY5&/*DH[ej\op1c@\_1JYJ#Sg7XRrf_DU=W!Wok4Fb-aZqh-Pe=uA:nBpJsao]C5D!sJ5bfe:(Msd"pC9rdS.gn$Y&I#rG
%Y^_7CLqo5m#g7G'S-Jq0?>:EG5q"]$?i#hOh_aF10VK+!)u%<M#M?A/IBf7Q4>Z2#L"c0RVpEah6071HBrO#@;k?,Z`!;'XBNde+
%S5o6[ZT;5#4_/Q+/@'a7!FVP3HP2Z361V?tniOi?<k>I10_Vk`_bBDjR2"8dEL:qs'SUTd8erlgkgR_hWu'sqoLIbfrH17N4fpOp
%Q;h3XS3FF*l0Ct%T7LKtLR=aM)$nb(;I>rolXmk%R/kOQU54s$hO\k?Q[OhP]^,[>U**Unb9e)NNCeQ7=;'^:$e&>g3p0s@aIaF1
%I%.1B4l(7Pc&sf6a7-<TP0'386TrTK7odkME1FDhD=aSR7@c`8cVGbBAJT`,AE&K:7pnY!7J&thnsr,lK$ktBa5/_r8]W%Pabe5s
%.FC2<[=cC%pY9&%a4s4:N7(]@a3i]#/,$8mTr-(_<ELT]^teEDqlH_;Q&.G8"9L_@[j'kQI!Q(!C3L]$hmngVi`0/@B5'!Z_7Pa/
%;)3'!iSs2pFd\`sL0b[Z:li.`br#>RO_ci*<IKdZ@HLH_@g\;N)^'7^YYr]A*%>8,6PpEK(]kJ3S-r^:s"Y9MR1h;)T7oR6`-5H5
%(Y^dM-jRD8,&C"Nd%PFNL<s4-Z)$X.2Q8Opn>4HfNIS"H-:H\A(!^Ik4A3em9?Dj`:ot^R1nbcQ]"$WEOej4uJhi/ap#C41<5K@a
%4#f-Yp"pFPUk<Dao&+eQT[TE%*\nn@'jF%p+6G[AC`oZmicMA/h/TjWZNXb,\Z[g*[:Coc@%6-u]Q&G;2Hl]P,jEhG1:1Sk's;n5
%EO7BNJW94s\cX"jF^H;f>[@_]5(C96cBSt\O4)/rZS_4;1p3M=Xpf_%o_SWDRS[eC@B@jo!D:YV.s*leU'1!aG4/lHc0,12%+dfk
%T6<`sCP%Ja=#-N9C[-:3`R<ANcCM&"2erU``i49!_>tI;.MITa.mCqT'uXl^("l2g;-EL2KMittDI!F4R8RMR--meQKrb=*6t=o+
%2&4a9)Y7cQL^a@^7j2[uq)f7=>of5^+-L/h2<eLC>,GH(/r"mD_6LSE#jFr1=^@H\:r?a[g/SEh!4fA9GS>u91*LkLWrh)8q,mr-
%Q%NJ$mH2AK;'XT.<Ng_b"/P"YP-W9B.qF`ubD1\eDd9!$B0Dr,b6eI%lcA(U.k:uh?%kU]O*$X!('%rXTkTM;0JGI:$cHouC?F)-
%(CL>u-<.BF9ghn'4H%_*\i!KoYFH8W<WU;1H-S73lK,UL)\n*,dJKa]!8[&<*dm-jg$.(aPKU*`(bnU4ZoJjV^3LCj=dJ(m>/XXi
%pWL:\M>mm;7AQ6h]iEFe0?t-hUZIV"61)?$2P:FToBNkh%YZnZ#*]b(O;1,;Y%roN^Y)IO3f^;W$U9;S/9tED2U$_E*-"6,@b&DT
%LHiZ4F!,Ncr,5"j<I^>3mCB]*q$&79rDI?6?U87N#t-ZV<aaQRJR&$9B)h]XG2o]Z`PsZdr[r^@T=X]$h;uJ\UX0eRbNc%!ns(CB
%L9i(mk3#3ord2.*4YMQd03Kc*,fN,H,h<.S<n$2Nki_'+^L4;;ar8W36qhJQA0eKF^]3Z4.=uJ&6Ii>[]c0D,:14eHndA44J"PK2
%=)[7P(K,i^Z^mAsC-[R$/U(fYNS!b1XRA@KKdlTW^7t]iV37?l4-Rb1)q\ub;\.0N:7IrK6d;ko4:?/X"]<[9+PH:s[ds9*H#rud
%eVXFoD?nICB0uC8UMP7AFD^:HmeNR/l,;V86u73%Palf'h\'ff^:-#]g/ifh4@+m:F5<c]#\.]oBDa9E1VCs55n!H%<nRfWh1#@)
%=XEbYF,5rL]9Cb*c28-:20Kd"1_WrdS]$oC?a<lYlX7()7UT:OJON0*:h4a]UT0"pm]L)<F)c<<_L<B'@=ruNT<]LeS.tMj&q9?]
%(>)YrO-Gm!]$#kt`["]q7ClU"h9hs8BK$PTI!R-G+73bi5`O;*YnS-tXTe9=DPs&FJ=V;)4'aYTem\`0'>DE?);c)18fS!5cH81@
%_B82E$ml:cqJ&s&\!aL%#56VK7SJ]@U6hA<^bW4>kqRf".)_\=ZpOlN.%UQNKcLaleJ4*ZLTfFN1#Umkl=hVd@rm/;AJ,rm2a_DR
%_)qA@O4W2trNL(BfF)9C,6?%9Z;@6/KqRu!cLG.FJ3j&FYRBM4iXH>_kEP9>6GNSa\aR\Y#NoW)/P$7"9j%RTLGa?.rMjLap#D.C
%"u`N:]=*ZbJ`eC0qp`<Mgkg+#Y^?@'I^(2_e"*`o8W@nKY@qr.nF0fmHb*$Jc]+IG5;g@0affia42f!C^aEj%,30<V;0H"^l##Cl
%l?%,X^o8+JgJF:ZilI"eS6UE6;J4XCfW50(mOi>*R%Bd1T?W%SFK%C7?TNC/"fYSJKK'C=30Q_cGR.H*.uAQJq/tTFO&+f[IRL34
%0*X,]QuLHQTH1O*IuNQdFT8O.jMeM*'<EG>alKB7o+"^ee7:QXTSXmB`OU=uCt7695fOuFD_IUB.k>E'3RKD.YLP8884Q7J,sJ6-
%S:]FtMO1lcRas*Lei4iEKF&#uGUJ.RN;IZ,W$-^kiUJR9?tA+;->@m*&9P=i:0e,JZ?ZLD8.M'.l:b8;1//HCH3g!4iJbH!9Oa>P
%1e&er5BB[J2JXFE8(K/KGUmpLd"/'W$Js6l8(5C&e]=_$`1Q[923tJjcA9lu^^11efPWOhSc(J0?_87@$KZ?Og:4?k$Ei6.PNQQ*
%pT>YdkU_h0H#6BBWjqqeZJ^J?EL-1im!fI_0]j:sV2G*HGl_kq1r]nZl5aomNY6uk`0k4T(R1.NMBI[i60Q-/%5$.DohC$-;*_(N
%q0qT/HaX[E2X@UgXhJG6A`T]"b\tM>#'plI].1nPWbhI<Q%4b_So51417#k[=s#Lkb6f^b5Bfda7L+mLoDR:uQ,O]_FPF2,b<K\o
%+.BhHAfhL&+q.2YQm"iNkI%L.OWL1miWC=CjZZ,Fk/'=7C7P:L4lGQ8r,jF+B#MD^/70mS8Ilt-dT]IUo<6'DZD4SkG;Kj6:`lj$
%Gm0^O*'O%HlKDVI/^mU4L,M(G%C<s9(uch=Z0)e3n6CVVD1'_\hNgqt8?6)S!(tOlF`Kqa&qg6':Sa_=&?/Zf6i?TCN/i1ai]hI%
%d]4Ge3*lF61:r:hB'+RkC3aUjKH]mt*XX3t5Xj;K[j]!\%N)@,0?sPr8L\8'`/;ElkQ<rL9UL)g'*%UQms`tTs2A@Er-/1q(Ou9_
%J,MU5J+qk#i?/']O+7/Ds3L`,pOE%g5Q:0`+oIgZr:g6hLC`CZpt[%knGDs0r.gncrQCh]c[Yoghr"CQTDnc`Du)KoSG^-OpR`LV
%q&^].pqIlEs7g[4q1&8:J,_a]ci7D!r`fDqnd>pnhdunLhkX\Rq!E\nU-ZWe_%pA!Y+Pa1HhBW''YRE5IfJq\XRs_C0W2/(/RH\c
%9a2n'l"ZB^g`V>^-:eq=@nK.U4hlpEg/IaZ#I]NrAJBL^<'_^jbJfrqW&C//9Z4E]1A3bMj<PZu80$U4\ui$`_e%@d3SV_h/[_Tp
%72!9uGF(#`-D,q$,6\bKOiu.*lATADkrY/$C"-(:1Jf?7LG70i+lg^(HFcIu$Qo(`#EG9lWRAFX?G/]gOK`1RS'<p8?'4PO<C_'^
%OW`7;*kI$uXF]qtYd#\VDOCr]lG;`=Vj?#D#*Z`T:&GI:DO-u7W/Y6&&Xf!YioDn8Aqi<9h-+*(@b!`b5Zh-,^5[0IXlY*<>0TL^
%2KfI%A?Q1bi#<2D.aWJZ<U\fg#$ISad#E`H=T?j[)o,[L<I;k\r@s0lZ?3_UO>&k11dJG3aE1BGKERi+`/%UlkQ2?R%Fc-,Um+F.
%T,o"HS]S\U5`p(eL?MPS?p.W5V4'4`C^VBoPLVq$Z@Q10)K6O##a&HSg3I>Z1L(A9m.I/RZ:9TanRY\>8k5H#VutNiWg%<BRKdYb
%E>=3JRE9kH?*n8k4]WMYVVm_`(tp7-&ISu;XHs<N^/)/X9r+IaAk40kSWh!HNk8\n5Z\P>_:pcH:`)*S`!k2[(s"%-`^S6O8VXq[
%EbHgnJ'#1K])7)u1s>ZnPDBfRN`rr!?B.-]%58T2^10j3<?W:(Pse,c264gKLbbJokU^bPU"D9>Re\YUO*iXZ-pZf4+e-!XUr9,_
%GGqd_<Se=aPXFTanDq]KF<ISu*q7paE'8r";g.T&[or)NT!aB198eV]6T%-_8r#A]lbL-T!?7Ri]*6\/?G_X;=p$d[E9X&)?M232
%;(d7t_e2h^X>A$>^'q1tqY8MMS-LTJ@(qrP!`*neRmg3]:HWo\hWf<T7n$tj46h`.Kd``05j-%K#b7=2-lR!>?qn1)M0MJSZaPLE
%:hi]bLguqZ8/Z$tNk,C96Y/lng0$t@SWr51``bI?-b5u+@5PHf5MTi9e6!WY3Mek&N4E:B<ZNH^)Ma@$9SCEP0j&9X+r*I;U=rN5
%[kiap($BT6(BFigk1str=lgljF-BSG.``kU*gO@]`)<@P?egafRL3j%S@r,^_]Dj1-Bn&PDlaM5[pk"L3/"1Z8L&c(Uk>'^/$"cY
%(]kAW-J$\/2D>&*UP,hP#FJ+rD'%17p<9%**2nt"gO0`OTJUgmos7Wfc&Vs3fi)FOXT,MV_"5IC1$6HY_(4$'m^[&&*?Z7[G.&Cq
%.P*r=d*<>lYlkWC'r(N1Cue?c)0T=$GYAhR\V1i4Ra?@UBlU2J'.#>rdEJkGjd6<,Kr0Z?GoR3cd#G,u19o+4WTg1N#,N=;"lE-7
%,dq:k#HA*2i((;l6PVBu]h.<?J6B49s1sS&!'FGMJScl1e^&H7K(i(a.NVm:f.UQlR.(4lbH4DU&QLA(e56]a,d01]&QM,l?rH!4
%]<E)FVa&WcLNj'K@Fba*,j2ieU[l&OQmO9cZq,Z[;RLRX\[;l/3nT4u2\E9.Ff^q9>qMdX1CQ6%e\2&"4.sprWVPps21(8,]#O+B
%+UB`Yl4M7(\*Brj#?-<Hk*DDtdtM)G5aF+_^H#8-!gQaEZ4A+Xht'hccCe'CW[['S&;giEKiYZ3e$7c&g(]1*1Rd4>As-XS&i$hg
%Fd4?WpFSXZ5e*KhbW!QJYa12q0U&pccc83.<+ZR:PK0C%7u."kPI:Wj/dpjGL:,o^@Q6S$Qi#ti4'`LfO8$p9r>*K%G7dhX\TDj"
%KEIlZ3sLi>.XLk:Ia6bOs2t-`efDc3>W<+Zndf"VOjRp&*C:,bFkfQLO$!oR+f7Q?!lGo:LCWaJ(!`IkI3]&G:&1/YVeX2K]$0nQ
%>TI.]d9fg_Ho$fOSSF^^T3'MK+aHA(_23b2D3@S$XpuhG;>^d^j84`5_F^V[WWnV9^"$<E6%!@Gif4=i6ASFVe_K(CMd06F7XfZ:
%OHeb'p_=IH<#s><h9iBFl'$#;2b:=16n7VtK.+=\D!g37a2E*+OeCi>#SH`K0fRRAZmrMR2RBf;'=@mu.5t3+-Xf9YQmiR'aj&13
%I<"Q*PMAA-8jk[Q#UUNOE.Z+Rk_Uk71P-^a`Mh2E$Om4&Af`MCa4YpG"\^UrSEZOd9+pHm>)O3]G2Z8jaXN39#XUnbnPtOogtJ7f
%RkU30H/Leu1JZ>nm')H4!+0_[190sN0h_E]kkb_UN`29MF9('qAWZMm2OkhS#L9?\'6aBKe!iD+nEN*YMm<N]1G$m^&^.ErbBR:e
%=pg.rD=N5E.$?1SPg]J;NZ*"!%Um[iXUH>'g>(HoF.G!k:5L##1Z*Ga(Hbn)-h\Z'ieYe^22lM(S@>=K!`uYb\;?UV\:57)SBM4[
%JC<+ukEto^=Xs.Bh!"kAS^QQm"&QX>`lufu9A,$F2Bm^_kjljLfS&")%8=bb/Pd_@Z-sP":-@.PXTF,jV3lNr(Y?4ndie"<*5%$:
%`6=O2b0W]>mQoIE,`fgK`o^['.c;Y'Q&Qs"19SD.#[LN,Xai64)qq-)W_V>CI]-p6U-R:=Yu%qZ]h7[h'29>_cTXF2J1O],C1/#L
%.eTcX#bMhP&:)ZMkij7/GWGi:_9OG]p4hA3G,Tq`?H8;u/IgN=$4rR`nk9>FbiJ)Y3(_l\Mbd'[a^M_0Bc!6Zl#^#;<S-KUhe5ZT
%[$\"9]Y/4Dm=7nM2)R)g\5/D=rnaKh;N];!PD'WCEe8\LQ:tS<DOfbHIs_""2aK[+JD2,'@4_%IF\+IGLb;-1Nrl-A7`([kP.DIi
%O=6Z6RTa8>1I_6"\HC`CQ_f_6S>l?*$J[2NeZBbBk09\r@*TO@-W@rX$Yk2hRlB>rr&r.DOu17XpO=2@qlbpCNDHgbs3bQuO5(L0
%M%>Z8^O>3:r:WE=%),r:Pj3/I$h;c'L!BV^cV>DAdBgmmGoSppV.uU(a1ehnqM.)ud+Am/+42rE_D[<iH1>/qP0r@D;0D50E*\G,
%+[PTuChcgkXJ]IR/S<.o$"5ofX=1,XV/fLEP*N_Lf;_Zl,=dtYAj\t)T+f^ND*+EHlD91(I\u93TfLNaYZ-SRHBR$<9"B;J&,:`Q
%Ut5"qoW$UlX,/9'DPCa]XHh*aeH0^G1g1oqVo^,!o%Q<V?fWkFnn5<RhM:b3F<0BE.\q`>r7V\ZSfW_/<+-q\mFWF<??C]m:kP#,
%;u*,f<_">1@o<'>/Y@pJ4Dr1-+*ZbE5ttR.WRB'KU.;4PoFDlXXR\QV.Zps(Zjg9(MeU6ZE@5K,iSHJsc";^1!HXp:2=];OZ[6?A
%e%t<cXYsooY0JhC,]A8>jHVh`f](K[(1)',N*?EnIit[Wc3oCCd6UN_Dc8r,$V=l,4Wi[N)@<<j6]VQb^")I$FAh$4Ydd_LYcNVS
%3Yhm71miKfA>1@g]E[RZKWH/=qqCn\_O7g\4l.)?73/OJ\r"XX7JFNQ)uVLMSX9th[42L"KaHXI/+!RkO+;$[b=Z;qK-Km6is$<C
%P4*+R.J!YUApUK209^LGF<#S&2emGn&[s:)@EubcQM[4^oW6D\,#(9h=sb5Zs2/0Snm+Pjd"fG0EXUTr)k$<e2i^W@XW\G$GIF:7
%h#8TYVpe,`=#"q&paJs:RC%aH)mk30X/_Eg?m$B7EQJoI&>O]jMNgNCN8U\Gg/J/(j(A/A&(m6pQ81]/0(D6EMpqme1?2%Ld)WF/
%0noK9e^^G_>E0Uhgc9SU_6O8j\MS9O<_78OFdOmFW<PeOq2-6;9mG0R*O`S["_YA.bRm4gYX]hp5X8Lc<`mehFMttk7DAnd8X<]i
%[m3k'_"jZ2KnDticABPa,HVFNVL3Q;DTG^^bFlbJM3*h`,Gl\0D7IWFI<1`rl&eIt6qu$*g@QP)@Hm_ur,G/'\YZ5[?CSa[d8WBO
%R,O.Gdk:OEDYP+&HL4`FK!`aJV*!O:Y\WmR'9Ra:JW).s),0`I,hWs(@F50r"h5%pl?(=+(:a%:ElgHLEBp>WnU-of+X0RkGJtXK
%]],?9P:2:%M#^44meC31^J'JE9]6#Y^pA0I,ibTd0U3L\S5DRjVDF#0_0Fq$A\KDbp_t'Na;?XY<@t=EUq-f_@fXaG6&VJD/?%6j
%#oe_mdk\^?()bgg@ImBscVb3Fo5UWE_5]<BNh$q8rpc#ZfR8Z1B!#!E":hqONbWPUe7Ht:UN>9sHmNC%LoSuuLIC^Eq)1Q6n,koG
%5g?AXEn6aq.C,U-N\g^</D?'a?C9.Un+Ik_`kX'A2Usben!DSX6)bt/gf0S^A'$0(,`VJLbhlM?dV7c=M`p5YY04b&_pL4uSLgat
%EMFN]r,_D::@DY,0n[D]nD#l3Wle!j[Hpj1H@1/VDk;_9^%Wi/2$_Jn2A!LC5p18\)Im3$)/$=7)0D<gN*f'<eY/-@c[([+KR#5d
%g74)a#9$-s2%gcSo6A!r+Ae8nXW=_is4+m]f73b>5Q.($rpcn9rXXMRr?)'gci<B"oG?C9)`tNos75?&rP/?rO8o-5J,f+Ir6=-s
%ooC2EIfHnWiD74tBE.Pcs5rk4J+r^[)6aR<VXusJ<FM&8L<aD)+G?f,W;"Q7Q0F*^,0rlEUF3+9BLdrD#[2<3TqE6\),\Ud&`.MM
%dDjq,-_CRc<b2jd4Fb.b2*ufc4*W'Hd"uU+f>$5-/*rCb>/PrJ^@]Ed`"S*D7?TYZ<m5@(H3;VHZtC?\KEQJJB.tLB<[QUA`Hff=
%RrAi`bNAkaiFO-baf7gH6.%H-&05Dl+Vd9K@g0t.)b/X#Vd9t[cDi9'l).J)a'lSG.9XT0j_6Ib_Ob<-":i@GZHapVSplkW#0Ntm
%+NSnk'8<&jiQ#jnbHZ`bA]g]>P.\N>dUmrf`KCjtanE^^6A4)_rV'_1/%ZI.cpi\7GT:_0Li\eI*N%<E!\1YQGE4--mi*Y)5c$IS
%2\:5!au-K;?;D7E[h.fLd=[Y9;V[186;48A_P4jF>p-&O-QQhZJoLr@FhoO7hbFQMa^,aoKuI>;ee[>=apAc;F[F*orO"4G^S:lm
%k^74U2;4XCr'LZs_7MJ>hICL5XTOOQgT_]tNT\i(C_O.Y13tW-n%!e#9h:c+KI*qEF6Gmk.ZB$4oru@QSdbsf$(:e`]T.HAUBp/i
%3U#soKo7u@UG)S?1/_]AgR-%F4I^eS=Ra@#JbK(Qcln-5Cc\",rP!%*`p(X3?T[\LYZH`b8eQ_oiC*cGC_#:o>JqXF&#L"t)A^ri
%'^)Ee3B"`1-7"Z@fEga;+\%6>9078I>2305,h214^\`W"WB(MAX6H9#WOpW]A\;5i9hs\A$MEHbit9+#BY,%(S/$7L)di5NBfp8/
%0h?1m[F:7cT7l1/.dpd*84**>&4neEni-BN>SI@s$<H<&K_:O>Cd'MEhs^V/"e.(4D%<@cY)YuGO$5q+)2gdApY@D&LY?:Eh'mn6
%/+FPr!-\^&Le\d/"$)(gSnhlDr'1@d1Jh2n,+tn<Bj@f%P76Oeol*%e2\'p;51,l7X#3(.`2o.:E$OPibUmpsO<5;XW8K#ZE^-9d
%M[/kZA6&Q)LRHo8MiTWic4Hm`h*?UZPOKO:nEOHo[-4pW9Nu%W4ePqt$q@Ol#rd7W_`b:OD!*+QG4TUJ#4"9hrr]jo6=rJ"^LD%r
%@'FU7UJZYEVoa6CN9^u=2?T2'q'7MPs2\hCVa.p7BOH+dpX-3[^P+m[&gre>e4@d%-e'bC;"2i^WA;Vf),(_bcEC+?BT47dj4D5>
%ndqd%/QN,KDObSGHk0%4q:UL\hd#-H6G#@b/AjN84XaWI_%!K5X/?7$]5Z_JF=8^=.ZoGQ7l*05$bUq.i)<[m;J2Xk]$,!V[)kgH
%4kg[$)oX5o1?#)%ef_#\X!m#F0KZK[0IDj)LX&2,fFrG:*scl5,QO9<5=M)^)?FsIR$a[o.@'Ggf#eM:_EAVb:2.QqOFm"LZKF&P
%p3dO?0.4De"2"iPLiDT>F[O%"/m6gDAlc>oJpm^,j)0J\Rum[Uh^ESaj[A<1Ji.LPcOQ0H^SPl1eWnQB6LCAk+$HhE[9GcEC,!LH
%N;"oefsn6D6Sb4)l5uaSk(%.bNa$;+14\]0RR7oOT]!is]T1qk#+<5>E-bS!1l2NEfcaXsN3r[mo__2RbKh/-"E8SuBsa<oL`9)W
%+`\W>,#@Q6k=I$F-S6B7M@g^r;;42<$Rtp9*MgI#.=Hu7e'AQTmg]C`rp^L`NSc5Lr&Np;09/$<7Hf_VNK'UgmZBN=,=h'^^3u5,
%X<jh:mj>a[WsrWS52*7iE],U(s74g]_u=+?)rn6fe,Sr?!>]?t]\Q.t]=hfGk1)Q3T&Li$dtAh32BR]+.2VhX'LK9r6F_V:f#8]"
%N!?kB54GQpcgqriMuC5kQ_8\EYm3[&lu;A(%Q!ufkc?3d5N$<u`%t6P)#l@>i6c%U'0O8f^9%TYa2R^kO@!ahb`H[jS5FE_ll$cR
%.>6@ClQL-]l#G\XN,8.7&DC,'h\K`_nb^B!5<\;p@0h3lUS%D_)idXLW-lhO*#P,bof+p??!-J&Ldta_F.kDHL9QECio8GK+?b]b
%/PH@WAud"8n=._8F'ciN1J^-rI4!6ZE:nn2MK)$CnsN5=C"kgpFaOu$lAZ[Qm90-teifo<)lhgf:KS*p(T-tR@-uW(3!j0#o.=BY
%UH6T!YQ+W4A3CID`NsPl*u?X-[a$?]:#'=7X*/INE>V_64VkYGid4r3q#C3>/DFS/l#%YqU(-(dI$Zm,&;8"=P//K7KV$`Y6KWVt
%[J"!NF7DU9@q0`h5:u5-Scn`u[U9o,0YCmJp)'6VK9,FDll=*3cM;>qqs7@aR7I)26nB%10qed0k)*467]U^(PlY=g0;Dh1/M?`P
%bMFan+hGm=/$Yp`_\]Q4C!9ba.ln6PBlWT,eC3RY:b7hD_`C,$H&,NI#):d_"[e(j`Ip<3#`HN$@T8FSlJhF7S9/`s1\De^Bh&W`
%\;Q:OeR^r.\dP99K?eXG(^[P1ju!D%iu7d=QKJ[,"89XT]');4'PFb-@pE'ZW-QICci3IrJ+&Gec[5.t2dfAdk8GGOfefi`@n;SK
%!M+7NbIsZV-P:Nq8*!qMfXhO.D"`VlgIRh?UP]<\J8)nE`9;f$*t9KEm>`Y1nSH$eB1`)JicCU.[Ts_)/KZUkRuSki5.c&)"^2MO
%LTp?Fg9%fU?]Ol!3g[Ph@iS<'e\r&_#NP-(6UU'g^(;o>mYe:7]40Ef'Qj\$*BB9___^=p"_<](1]o2%J^#7#Y&;3UEGN6<BK=]F
%G85/6q72b"\;B`j%"?*hHp#]mKXUh!LpPkPkePe1kJ^[D*1p=EdgnB)YT#\TQ6^,V>[70AiX&ds(Ud0t]Q6=t#1mR)rA9%7hd0p1
%JIl]V&8ne/ci?%b><!@fUui#;QKm"tq<Tdj_%:p0!uLC^n?'X=5K#-U/b*YI>)))'H1PT]5ZeHV&Aj#6'&kP6g3RopDW,\j>Gk;#
%EL@ZZ0QTB=A0ZbM(A,''dt=WRMk&)VmGKE-[1)*-#+qH[?.fd^:M[,8f;I=V1I4bW:!UusA=S^,rVDg@O#@OH\ZkgZ#(j&/KsN=Z
%.2X(1]GDNc)9]6kHS"qF>j1XqHDMs%cPA.9]G_%@bkEF]U'FtV("jr/Y!#!$_ljkBdPBU908$-D0>ht8j4(A`5Ik+iTuZr^T%rrL
%RMUsLKYrB#[j+**g^G?J2H_ke8JuLLSQkFc)VA*11qkE6T9c5/nF]X@h1Yt.@RceYoY;<:fn85TE1mMD6g/W7/p&3Me7*j?Z#Q%L
%[0pE@.dsf%KOrJ&1KFUfnf8ffU(rf8FD?",4"iKN']S;aSiO)4@C.SE<hUOm^*n*b%/T[*!tXci_p,o]j'>d7<!_7>nX9]0:n2qL
%03c\d"qu<"`H[dS-N=k-D@>T:_W,Sa`ZLLk]WEk*MO-\D:G9o]`4;nBeYQn+lr<;:H"pToWOA2(R"s/`^Xg7[[kWt-#1LhPMqc4;
%m#RdQGk>R:?bcV0?XJ94QQs;.?/`FT(kX!lqXnM-O4#gB=*uH:>IiAu7VHnd`A>D3n9"tB9\7IEI9Hcg\mR]RY.t#$X+g=haaUM-
%Xkg^qQY>+f"8H\IcTRgbS9,g>'A+\F(m$YY1X!'2lcdG_npk\=\>,M3n/$c&;Y7U&b@cA%4!I:/6::XjZ/#N6r"'bS:5eT+EW17d
%IF1*D5e9(2_lDn=EUYr,@;!n#Z)qSdb+8;6'C\%!VpH?Kh[COBLDo-gjWtmn#^uOF+KcJ5O,/<J5)XN4X?ic4jmD!e9(>h5&*]rk
%M&s^Lh2hme0&.Q"r!F[QW.s;!4@:n2.kHHJ2N.!_%5>b27%B_ZDmCdKJ,AG\@pJfqOTLjDpj9Em7pf*+;d!Jc:PaS20ok-LWAhM0
%;6Qi-$N?b;6?aZ#k?ABKr'T7LLYCIM[.52G'Ma=e,NomP:r=fI?<WPI[CcoX(or.3gc/&j8o&X9i%F/(Y;no(Td#d:_64[WM\j>*
%fjQJBYYrFqNlFA)*PBWuX=&>0U#<;:=-YeHY.#+Z<(ip]3abS@^g,3UfRjpYkH`H]`roRaM]9I47,f^L3.o0GWYhS+dBX_((aKd4
%"hij7J4XLm[epE:c6bA_=QtYi]f#qWPbnYZ?@dUnC2Tr<bG<0(A2A><<dc\q6W1sfo+\]R).c>)M^f0ObXtA8Ea6I0:ran^]FoV7
%i?+MJVTQg+V]VZdIR/un=r4@W#HkB\CqM8=$OXA4%FuNcJF9^3m#_[h#'pQSq4qt\Ks5`H?$=!hUKto5]+??jNsiTQRjY94QT!AF
%-],tW;pB=%[2@OA)pYeQFZ(@2_8U84BG,_u<lq,co@=hnBe(`%'ADjEj/4Q&rM%gqHLS5L0>Hi7(nbV;9KE(ITOPc8=Qqs?*kK^:
%`UE<pd4j6E[t?C,pT4nifO95\=.#iY0u56B"&flM%3l2pUqXD6O^i?>XtHl^C-D#*%8?$[-ls!f7MN:m""pI^]d'U!"-_g2P6Z8b
%.hVX4W+quJ)I*P[/OqkNBQeSQ4uR&dMVu-db\l9YMpp;\>S((EI>mOMi`V?%a0SSUNk<mNn]Y>Zn)HDQq3u_HpDL+O#&ZKY\/d,T
%C-]Aa1()-AY<4:as-n:Lm&W"`$Z%J@2Z7$aFB+PN6b=Ms\.h"\mf@O'&+5n+/*Ah_%!KW>f"l+Np9^#hA#,fH*%M$m&*l;MNu:!3
%5CLE#nac^SiV<q(Yh/o5E4A347h(0n?'RjurYc@Q58)0;*J<m"rU^Kf@`C9Xi7VS?L(0WDAK>2u"MRTAr:H$UK6nZ!?g^(!Tm',,
%4&@sukZs!p9Q(Lh$)(T%0'ps(9T$W:8Niio3''bQC_4#\>ne^m-EIC=csfM6lR-$:\46eJ.X/#F6*(ZY.#TfoK?`(()%E[_dC=FI
%B!^l-qQLBl'VUG?XEM?nq@)a:IW+F=5H0JLI0cn0-%<0=m:u"W=YjPk-JXaKq@FSP<!]70_*_1SG5WRhW"eL5&Viq:^D_Q;7YG\R
%j*ifhBG4QuL7^n_LWs?r6mQ$YRKXiU)\%J7iNgh`7ll'=1q*@3jNF04M=&L,hs)@pW%&.+5(nV5]kN>j_cOhH49[QLWU4]J%jrUq
%QaIfYOtQ+5K[=i=N[L6rq[hAX=R'AJSL2S0=,V'Y["s>o<NKuLAuC24`l/5Rg9Yd%cdj:g-sH:*_IW.%>-I)*&/qT"3m]&c,G'<#
%pNFP\#+b@ZqNJ(r4bUiE=S7"G*;Q?n0I@cjG]mN5*&Lkn#uB]?$d$=Mqe@-'%*T8l?!H;IerXJ@LO\1(@dg9#*ifsL'i=F6+Lr-W
%&43eq<u&2B*]#n?4:OQ2),<oTn-P]%i=h5ecG+/,dcq5g@qc@+6)\'/"e8k#X(r7K5l;2i.e1Ia@S%[0'lF(Wnn).c?")+P9d@Wg
%l=i:3S-97QMjkfTh+K;<]]$lr4*&Lf%(D>[2O\!0%="Ds`BERsl&<T$3%Ul#\Id=r2b3$+JDj$93ugS<Z#<(p`/"c;W>!H4G5#Bt
%5/\\IDhABE1f3FlmTjfk'8G\e1@d^6)-`uX^c[?rA$deY_?QMS/VL7r8\(Kfll<bmNq/&[7)7P-f'eUc]pBg%p8Y^8)Y!,-a0l'r
%UOfs0#/Rp)=)FJh*_p)Fc40)K#Q0!02EJ-C0J4)1nc(u3]<0em,["S`E;nh/#c*6@q#0d9^!VJN((u37%?1q<WR;5V5.%n8o_4ed
%2MQLY29g=\Q)>0^jj(/h'f3_E06S4C=@NBd2=#>Lk;"JX2(jfcW4?]99>,A8RbLnQ1\.m>EL+VN+3W;3I3"-JB#^+HO*]Zu:-#kg
%V>,2CqW<6C(_e^iaI/0EG[YOYKjB.3!34%MF).OjWYl7P+;<W+68\-elbnrZL7gEa[]4%1YA:c7,V6&ie)nZ(\2E^$o)RZe6bQQ\
%$IDj!2(S?i!SgBu<dsfd=/MGN<g?_*[I/eJ;**+RcQXH6#hTJ6F;Sh/W?R(g]\#0^=Lau=@tN)gj)B*U_Hos=g9=TXq(W2$S:d/:
%2mqj9S-1DgfS%9W,<Zu8L[T:Bj-k47olb]f;%ol3IMPsM:%jFf#jD_F/hW1(^e7u@J[,Puj-Zr4#t5(e2B=gn0COO*Me1E:.(6lj
%6;5>-)dbmPR!+*o+3EAU(_!Z-;b'Y/#Gug#e3T&T2gbdVF:0Z03ig;RC93p.R_q%m2!;n1JdYOH/"AE`(!$k@qI;*DH?uuNYM[,.
%>U"Lr-q>;Z+A';P-24jRm;U%=9TB-_UL';seaZ7Tb#I:CocmQB8u2)P/NsQK*L(U/[RFOZnKIJ-QCO(OTVQZ+V2"oR9J<3)HSLZD
%%s=5H?22U16$l\.c5sU'*nPdC\jCj=dJ.J;<`0eUcI*ee>rs(]df$X)KSV0e^u6N@LA<<;Z,KdaXT'ie?"q!KrOsS"8YVUqi9"kh
%;9s_C>^9PDT>+[`ENn:Q4%$N9K_s#*Dn>:F_2``m*Q+F)giMNS3S_g<>sCLqDJ)O_lGNp,E0c3UhW9D!:Xegg]q!L/H%%dL6SBU'
%-n_+3`CgM#R_\[.pdplR3AG`h<%0[u:!JXOG?)_a)D-$6o4%3\a;0Z<qd9*;h%D+CYmn^r._Dp(&rhL\@@De%?!BB8c>[P/\++FT
%^Dm`MK-WEs0#uH&-jpNub5iJ%VW"e,3MJ1Iq>8!XE=tTn,'5sL0BN)f=u67ZU`_&-R]5N]]-RJ7,i&=o&,+VaO8Jb-FWuK;jtaWE
%R2AZOBPtkK+C6Xd!$hhN/n*!N":E#B0X/+m@:?qeL3?uB(l!uXE#FD(@DEe9[b!2m%%5#k3XisETKN_Pj%R67Bb7'V/uaX\D%S*S
%Y/ubZE>#-N_K=!GaAc%r*Qb@!iZ2b:86(K/<o"k]h5Yu)1?1&-BTHapN`Hs\nqI_u;2s9/IVo&?P.QltTbt+Q_.j+-\2t3g32q2_
%'8gR>]:7lV/?;"C]hV#eNSAo;'!e@jh";B=Z>V#B:fEQn($K)PW_LP+8u3@K,K=ZS*GRN0d1p.=aF#ggra_9"$J1GbC\%agfhuZ"
%@n23^"r9G%^n5l^P4hSnF_X9*]n*Q,.I&C?`1I)LVTb4'eIM+I[]Ld"_c1%1/8.a$%c\MLBGr.'7NTQY(^)Q'_Mj.\TCE!#F6J6e
%?8]IjbmC.F<i0t(ad/n?KEaVk&Dle2PNOksJf''QdcP8PNjUMJSMug,ZQ&8ob7=F+,1DVhZDu&YHPr`F(Sma#1!,QE)>m5e1Pn=(
%cVs)mL8ju(/gS7:+4IJ4:D':*>b8"^BSg,P_/n]BL*E,helcm\$-.ndjk+IR5A"\+M1(A-79l_B9hkai>-T"tDT6EL$AB\2(U(eJ
%<"0nlegaW?K/alM-/Sn_:+E10f=Gr@1tpaE76&$r[EXOMm%!o-Af_sJH,3#_^k4=noh%rWgC<Z7[N-/gpI]Luf[!Fe=WfQ%9nP"o
%qek.7rnaN2Zp1ut:7c4T^hWUS4hRU!Pttpf8&Uoj&:7<Ml@bQ;P__1+#Qi%1)`DXf0Ib4.nRKc7<m?H#cT9N:*AF[aiG5D^5dDPp
%k#T.2_YRHjO,e<;6<b2iE9V0]*Fsd&gYWgo,ilkq`q_B9+>(P+cL>RWg$WT1#527/492>mAR%5=<2QH$PpN^,GC^LW/LF>)`ps[p
%98&kZ[4#Boe>DkAm>1D.>TSQh,?qhd7Xp#Tf-0p>bb-#m,(K"A3XpPW5pg)!R'4^Y\Z=OO1(,'(<f0g#V,Nln"3X4YIh_gD6Ddk+
%#JsCl-(2i">Q"qMi\d/5S-=T)+:5e9E^,G:n:t#aaY44TR)+3_lD,S*7VCcj\;iIb?p)1(CY/P!K4EOPR0D;r;?mRu<IkNlY_a4/
%B/^=7^`Yd<q!p<4"c/dobauN`q%i6?Si>cgCF.7Q-W0QeOKiQ-mZ3*]_JY_L7]?KO.iHO1'M5Z_YfC-e`!RomcJI&*+p&/A'r/el
%_$9gcE]+)$:jE/f\(L.bUF85?E[P>W"!gc_'W^(0Y3\ir-nHB=8YJmk]68H#2'3CKi[9iV15SoNkP35\nLLn.?usHG6,o*MHkqNm
%^-F+MT'/rf*4VA4V:bj^.?\V=)!P+DLFHIX-;\\/CO(4?E2o3Lq$[G)gDKs:R&mc"JJOGIIH%,@h&k,P/<(L;dnh<!=IXr;dFhE3
%G&FG_&.#j+)_a]rblm-pAU-t.^VLtfFY]O2Rf^@YJ<?.;AuT.]=uJ:FAMfala-M&lJ9@8WNuDQ.&DXAPX$qK\MRm7Jh03m$$,ibo
%H0kh6J7:[j_@V3[@[N_u_lOOPJ75@oR#(O>Q&I>2^,U(K0)c1%YubFZ0."qcK=*P:/cN2h^]Ku0s)$[o`7U%`"og4VBJ4Y"c8EfT
%7tdbD"@U,R<d*k(ZA@h0\--RH$\Oh`!BdD74#?'\56pc>p?/GV967Qg=Ht_`kRQcH`I;Q>.1WZ6P/hQg<9h)Q?p0OuiXe:F.F*q7
%P54m9;m]6_.*c=;![[5im7?T+>!Fo2fadQM9b,V<lcjU'#*aiH0q:P`UU2f3Z&TE*QCbf(@2(H%OpC<k"b;-5'`,[slPu_#04j$p
%C5.V\hH!\pk[5dX'A6%]Zg&!1N4Om&8E7^(^d&@d3fjf_.1/Pkn6ep]i'D9L^u$.W403(Y)2CR(CgQC7R.EBL"`k,;ZpcfD23l[I
%*/d"]m4Ha)dpM#U2IGT\WPWXW&S([c54!tH'TIs]%Q*`S1H;[MpeE7))681<J_$f8e/)(/j<Zu('Yfa)R#kdDiUNS-!PUha\W&Fs
%=CN$Pj1mJ`,U-JO"KJ#i<2ag#-5,!6\pp4S\1dG-OWV8;OYCBpmBm$c^h/iLAoi#W5c`%l[9\!d?j5MeB'ee[$IsZ6]:[/63=VRk
%+@D1UGoHhO":CUc#fZIJGlu>O_8YYt<HN:nP%>Sl5aiFjd^TjNKjQ+eA(._$.jP@\AU-TJ`kH@2LD>t`H7a2o)rePGA>W'*@l,#g
%:?^I0:?iJmBe@&B9)c2PSs2FqE+kL$DYZ(B+uoe4(s[$0_SAcM@bOMa.c8.,^_5=2c9qD8-7[CR9Na*LXS[)n@$MediTP#c^htjN
%^U(RXBq-rhG<A0.O3,AQC3&&VU1M+c\H7_n.,$`[NUo[X3GkH,U\$mb6+:L6igH(m`7Sf+r,.)f3Lrnh5WpJiWIj<Of[9kbe:E=/
%q@t]tX+LK*K?Z-o,@R![UeF>uBDCD5msu4f9Jo(%lrs2fg!Ui/@2jCmnAM[7oV?=[1Kdi.'6D;i9:9CBE/kKJBi`=]3hj:mW*QjU
%K:_>]!dE+GK)C>hJsH\.itEM(pNC(^c<fd];/3`,G3sQP;i]5L\8S2>P*9U7FJG@"]g.6=Ps['M#9\O##A7#^;,/i9%N0]-ogk=(
%&]FcFkk)kNb3H(6ia$@kY-n,>U)e4n<215^p`["DVlt1>$cu6)FA0:-$qs.alrCJfJK;'1?N&i68;rnH#7rlB2`DOoTj\$49G8<8
%r-e+2!N@oEWh^4mM<l8)6hA-m7OBqBn1kTuQYh&*F/*l[)RV5Z??d5^+%/_9A8ND]bN>4k=9/2E@q**S,9C<IY)7(TA2:iaB\P@;
%+%rbANQ,-5=nh2Cf),m\Yk!lWS*a[J/[g]a`a5S?<3<AeU/J4-,V4.J9aVA>Dj3Aak;EH"JWfk]<33WKQ'HgK)#@&qRNcZe<''cX
%Xs/\309i_J[V!7;%!Js?:lGCNm,O:Q%2#h&QYMroP4&(-$^Zt=oj_@a0$^Q\3OXE'gVmMhm@e1-7=sTDoY@cV^>31ZYqK]^nqjCT
%3p2o4D4!A<D>2<[P=j&,A3Q\neU.i#`>Y_eg6F+u<lh4QOS:RffIh2s_X/+2).G/7djU3t"bHREJMBh]n]/FCPVk3(Dt"Z?c>4lt
%$ECnsC7-d/G+@\/:ITGo@kY=rWsn36c[5o4mM$(2Rs*kKER5ZWLj6nKR$)$%FsX`JI7q;<C+l^36/78TZ6,.N1]A"*&b360+D\tT
%p^pgeeO!rWETWm1Zu1aLl.iT-IoLKuT;,CE/EWJV$#\@)(1r5#FaHQ$=n]Y6"Lbmo0$>3LrB.$(N?]*b#mAkD,'aO4iAN<u"F+WN
%,!f\e66ZDDU%K[&5oF'D]/"@LSk5#!GesI/*NS!lCk4FjS#Xa!]\@L)!c5Y^/Z@lJ*3\(`p'$fG(S#EtV_`9L_8+GbW`tFt`b8;Q
%c7qRs!h8]k?E!'k@bX7[efs4,A`QC(]ehN`5oP*pO4"0W8'/!2be2\<BI2?!;NXWr.CpiZF`5hu`M`qcH`E:g;(R;:nZG;L\_#I#
%X_b3+mfPe9'GEHk@Ks/>5]`eaVTEV@L_b7KiQAB:1iU0s@[iQokt:(FQ;1JlSFdkkQH$k8k*+&VPdF_=J(iIMOdLeTWkHo2+@CrY
%K'p1'1'1W$Y`H@X`L%:9Q'Z9Nm^p!jm/`30A[DT!.YstMaI>JT7QSbU&tuh+fq0X?5;d<kHQeUu`obu*e$A]@[b,T<=;e&6h*?q=
%85X<'*+lEQ2JpV;'jTfmOJlM]bSU3k,AqVe@PQ8hWj\uQkWVO8HB>eWYGe8("pfopPO&LH6K*`NRROWJc!h<5g0@2U'r,TaIj!8O
%L:Wc,TOcJ!DT$fKgu?URlQMoF\HI4#.WkT^on,D?J%Vp%qrA!cmM&8@n]!r=7>MF=Bq"1I?$XF4]2+XK@$hh.SaBrBOlZ^GG**Q9
%XfD.##okHW%bkU/"uO_V,[dG+;tpP,Jl#=Z`+U_gFL%;bAoD6AAu69Plg_\kDsE^Ee"UY7!WsU[E44so<M-M5qNTVAME;?P9n=4]
%`VMm!OjX91O"$rD+d`.Qp2[0.8%ha@a@%U'q5Mef!uD_0FYS/F+O']0);FSBF[uIh9V:jD[2UIYY'Z:%/gs.2?FHN@$B,bRMiDO9
%JaO'QZ\N0[L;T)HG^AJ^%iG1R>!-\!&F^28jG@!E`EG$se6hMmYf`_u_DeNegI)eH40$8[\&[GS("6mn9-#CfrG?,F8'Ok@PHmf$
%,7:uH>."@3naC8I*7P!T`(K+uH2*BX/'J1>OJ%06.HXbs<6_QZVi;hC\1%:[OFl+)jf0mkm*Hd`e<XkX++OokmI^j4Jb/hu9a7)'
%PjHSR<UXH+C+g`C@(+@DEAH[KR4TL17c^!1@1DA02A'.KWHKV/5dD+>?^4/?BglK"8:f#gZ:0b,hsa:pIMeh`JU<rAJ&""g)_B*+
%B=sLY2Z*A)=@R/\?ml2sAPuCVH*KF%3aC5/pF[uMOg6n/"RFEe?M;mM+[;9ZS->gqG/hT9c`,P)^+A&=1"N-t9lHrd./*np6m?9e
%7Z%dh3!$3$6r?f&$bV/WZCZ)@cr_gZm*uA]A\kMN`M<hm"kZfYic5=3;s6!$.,LV"T<%(P>eii8W9sD>+?.,ODD$m'X^EGr]dGMa
%`=rOO!hc(l-B0D_8a`"g2HI*0l['n#FJo5[bWN*$p%uZZI9K\//0FOO):eg4F='4YJMocYBBn*iVhP=A8*Q-l!4<Sf=KAjn[5chL
%mQqXN%-!D1["I:d\2>$,H&,9cR^`CGPQE]DGW8pWW]*cILlL@;N,,!bXItsfE(qUuBKkO=h[D/,LTi`T:f>54?'JEp$AuX$!/]sn
%dSG%=mX%D]\>1!>8Up53,jj@]))W0("#kbS*?.rp%Vugh$r8&^;jsB'*5MS*XF0>agQItVXQ"RQ+IsgDMIFocXtMIKXFuK9V5GR\
%[1)u8/Z8EnD=J#J:ne71b337;.Y##fIM7A5.#b*gRH&AqKp<oG-C:r7c-<jN"tf[J,igd/\%Ig/Rq;1[<*c"fY5@:u[?.[-cm8Z9
%b!Y_I:o4mq\jJ_af3'>2Bk>.a=_,TSRa`:`_lteCOu*u(l%M]M"jUSniqTl"/B\$^Grn6ZH3/d5JVnP=[\-_8`bs-0p6)=JeH!/)
%F=?OZQD%72phWbed'T:uTNPaQbiUl7&I"8n`Y+YJ]oc#(.MNtt]'IdL_,p1mL,K\i(6R+P+_T0On(&p9f$#_tMIg6!D-^s;8d3h<
%WZ+#i0L$C\epL_^MH@2QK/i$fkXM`dh-<Z,24>[=gg&H)N"9/X2Q-DuH&u?Pi&F`']p5+O_&;<]Y^2oYeM/bQ<.o?!WjKP'qB4cn
%1.b5<e(=Q.1BKr;@)t,4LbIXG(]PZg%S;PQ7#VTI'5#)k&OKo_)N%21eQ14gg4Gl,noN$2gL<uE/T!.W#7uZQRi3l]:BtH=<4dbW
%29.`feGDcI$j(jqaF_ts3f!\+121YWnltZl2Q^D@""B^PJ<,m-^UhsUD22)dV41E$[B*\WJO7b?RY2UDW(JYcP_9:OINJpIL4kd>
%24,Ms5dbBuGUtM`M"s/M+k!n]XGE[hd2Z+B/5OSD*Zh.?QIYBAfWERFkRS?u'-fVVrL6Q\H)FWLZ3Y8U$AtR>6NDqXe?<'V-TJA_
%*)N&jOq,3VPl$"d32.#fR0Ng8jDhup#aVkhB6.o0]oPXqTU_IlHc^h/Cn[48TbBC[6o`Q!guH>6@hBS-Kh!LJ$B?>EOFb1a@$9c'
%j+'7MJM'W6*.J@aTu/5<GMlrPM/I96_/bo!-VojEW5"a5(r1Qga0:(kfn9Y\T\[a\3oE-WAp#fJV#H^*+ptn:,O!0G_;6-N<&jni
%B.e4L>"4Ghp"A)'rDnnCln1q.faSi5UgkDe:QFfD1l+5MQ)SihV+;1?q0NPE[Y\D,`P$$@6!u;d@IF#'I4#u>W&`>CRXP?i7hc3^
%"#_@8FSEO?el%S[<\0aSp^%mj$Dd]2Y$jGu<U/[X?J>hH"EZV",>\O&B+mkA$kD3h>3EuP"]%?%6WRQp,b()4PCXRVND7\p!@Q9>
%i8bF#Fh?P);Nr,QFhB!9e@1;_5b10D"_&0=j9)(kTiM]"IcJg/M[7PbKag>-'na"7o>04Rm0:JVDfu3miq1hCQ94ri+FI@E<6bQC
%h^t,W_\ZAuhM7pT/3&tD!"h[5+dRMAM0s:1Q2*^#>C*)*7EL7j-"-pV;jg(u3D.;J_WdKRO4k/][]q:LBnd)_BKkHFq5nL3Zc0>N
%Unn0Hpp.MgK"^'+H$)B5VT5d&0-Q)k3mr!m=]_*QVb//:S*Y9C`1,1\U[nLEGhg^\aq?G83&t3S7mUXefP16gZ\DLF:pY^];IW?i
%N!AI-XCF,-AS;QUehUCo`0\"UP^V[6P4"ij6:_n;P67<)^l*[bCJ'$<9)bS&!=+a(&`nZ+AZ^gWdEL?sn07T1*_;aAg\7:Uj/C)X
%Ch8_85LFAq%<HD_!;1Et`,=Y'=flFI.;G(J<S'1%bVdI01S;U(B0Q8OMgB690>&J3>ku`%FQe>s*iZI`'V_pZd.brs"cXnX,B]Q:
%?=4]oLS1n]3)3D&_k.d%E&`SW*mN(Sg+@!S8amc[R869:(8h2uOGZ5VEarR9Ai'U*g?^0]V4K%Go7YI,".Qtp"s6?^6]@QE/M5KK
%#TWb=hb=#jld*#EgP=lmALk"^,aaG73\+2raVe"C0BN6@>0XPu?G/%0<uERIO$jZrLM,XuVL"R"+?Wqq</T(Wr[4U+R_n=P@WbHm
%3@DQ"38N[YcRCeT']88@^:*/@bd\>"dcKsjOc6]JJ2i-Mf2T^l!2V&g6rIeE.-uip^U$bV-G`8HCRM=tVoWj&&UC+YXVJZ%P>!c:
%,2[8<"V+[*,?ZHn%\<m",Gg+^!Slo4iKgJi<4`flA^r2`9IID!gC9J;>6ui>WK/7',3mI4W.<+YbokD;^n*F\3YZ1^_+/$k"E%5n
%+;eHqf#,2MNX(mMI;GEOoe`%k@!gQ4@kgb-^=ZmT5=<QK'\1[[j[[q,i?HCl$bfKQ?K7#0:esQsCSK%3HM"#;^/BiiTRDL5[qhfI
%Q)#/'CBCY.e.nI^iS'PZ%/ni<8[/n41YJA#i9XIuDQqCHHk#GgWud<ic,4(pX-_R/!sZ?]e^1g<7)5b@F9isZnuW#gY:>\;@jB9o
%nhaLqSZ#TT]OO"UTWO(MKOpPsnXKq0*@?<nCrgbsCLb=_M?sjQ'bqX>:8iVe,)HE\g,a0eA;"$n_QOgX7M$g?'8("J0fl7*A0?k"
%/STU^E3!d6MK9,HYR#ARa^%AHXFk.7f"XJha)(td"f8j'4:i8h9U)iS'T4[]M[=uJ#=BRGc#Nt*0nP'0)/i.6$X]f1)4B,ROlTWW
%P^@IGUiq[oY7'-O9mZVW\K*C+"?4qrZ?3Z-9]&3p=&Ge?!Mk1fG!C'CnK^FC##h/"EBP^?5ibJ6"B30:oM4dUmVJ:mS'17295nkh
%Ya8s7/1dE:>M;QPl]<g'!%?MIia`4DCDk9"4=Un3,fsYP@"CqVs+6>`(](K[mUo2L.2<-R%gAgRdlLd+Eja%PlU2Xj5GMW[d(cZF
%pEh*`(,*pkVTR&lTji,PbdorfZ>/=JC-CiL0o%0p8>cX.h5'2'q5BJtM;%SK'\+[J*t!>4q(`?$HO>(Ppi/24)r?*`Rglf>5DE_(
%b`5S>RYjIG;447Wi$95Y-/V5b#1cbq`F$To/WA/'V;Wr57A?dDAIN*"GYm0Q'<]h\(QL$P#,6c,OdkoGOG/ue!R@E-7].M0d:">h
%k@/pj%LkElou_1.E:#2n`!m7(cF+bnp=Fq;/+QTR2MqpH]>P_oho3SLl6[/ghp;+cS_k]C(Y_Jkr,!>;KaC\S-3orOG>Y/QUJ4#h
%[hr3LA?.++BjjOBo2Dth)nlI?*HLNq("8%J2p4N2L/SA_Y(<kBkmFfuhQ&V@L+/8g".Dt=^p#KZX=H"E6rldsGk>`=!--^%LiEqV
%X`A<@8V>DFZm@BCJapmCZ(6Tu3Vh7_'Pl:_ci?6TnZQs,1h&:#E=*,W@;S%X9/[,=crBK8CmE#iO$mt!I[<AD4>/.m'3Z`qP!/>>
%oUht0bk-])n2bCd],>TL`-*UKP`[LL6ns"Z:)qt.Kb:cq2Ybn>,ASV;cTd84Q/spV"=BPk+sZJCJ[n<Oek].6R7bO\8;5]dYm!i(
%>HEOLfqe$D;Sfef^DSCi@uqs=g5dF$nT@7rjUA:c-FJ]fcW"j*e(`eo;jiT3ip7iJ)1`ST$K6Vr.>fU!a*oOKapDtb!Q@"(<ZY]S
%h+.nDPPP(_A=h<GOYuEb`bo7WX:#R`XN#k(d`Ge/?YKS5gR+@fZS`YH)<qJRfSW8[ku0kLaE,>sr2"rX$;F$+j"nsbE.ltQ@A\8n
%J)F,EBpYu!P>;\/:$F"e8D`TGjMkc<Z*t6t`-q.c+9FU.lEED4q0L^s^=B2H@Kbr"3d'H-\-pr7&WQ8%p^>c++ce>:*/=C0R)sS]
%4baBeO@slX?%s?DONi&ZIKh(FOA1%2Sq\fHOO&77^'6^QOAU@9hhFh\JCAl(s+X5+J5L]&+,<POOOJU95=\uCOB$^=@#&RcOOkLo
%^dGh\bUefHkTO=3_JG9(n0).&@b/RFr0X[;@J5I+!23jeTIb'4+:.WI6=kdG"X-i=#dkDM3Xi9*6_s,].RA`f&[Au:/4:(b<Wq\'
%(F>#:2'^W&\8$#ra``@6*]G[4:cII00QL#8$'\(LNK[HS,udVG'NQhi/>6rS,k,j%JpCFW$.WU)8i35V9rMuOdD?34F$bSOM]0o1
%\L5o%$2&fml(CRVkc.)d-l7RU7oqjL83/3H=M!]NL"]8i)G_/,W)u&0e<mi2;2*_(TutnS&M$i,$?`d0RTtu&=/b_5d0'jM_ZH[>
%M^mCK_(=(s]BGuC)JYu"g-qD]<,i<=hQGROJW=!23#@M%`B&19in[TT03$@-2"rX!Hl"BL5kXT?&/_DRL:W!RNP\630[r7uBI&=Y
%MNRJh7A]OOkSS&!L,tG5:!$4[1/t7^<@pT:bDTD5W2gdcE*h$T0?Tl;#&((S)JY2M.\mm"dYk\NW.Q![VM=B9Takihfc$m&L,uOT
%c.Gj"2A2aD2/>R-gK4dVU7*#Nm"S]V(Z!q?"H>h@=GkfqK(2`%2gFu8@\S)s4F+cUc%V9-5h\s78P1)>@;4Ub\lJYHfrL!$U;*ST
%ra!ui^WZVf^\ju1FPh?dT.l%jOcWjh@A:D5<WZmVK`uO+bf&;*LkQN5F[B\9a8u\d6Qrr&_F'209*)Nd_Li1U;^&d<_Scda>9UcI
%_?Gj2@j/VR_F9ArCE^I[_M,Vkk!Ff.`5W1QHSNS0_?Z$uK-A;)b!ulMM`6r3`/'AoP9J+)A7U#W<nWtX03-K-\#7*]\8b,.ronWi
%l@mD"nm4\<m$19a12d8TmY/t+;1Crnn:aYci?#b=PV8!X$i;rY8V_]YOEhjeZnHgp$hl_nM+<6iOF&%2e1Z4COS^*)j=cJgOF85"
%oHQj*NVssa"@S[[Z2R"e<,b\l\0rI&=pZ!NKi!CF<,8ul4+o'pTjGZ+>N2AE&L^[be1GQ1(nkP2XKN4NEJ1>4Tu'<u"qp0T>VnoZ
%4d&XPjJ$Z-$)3*q.2S87:m!&eDRl^Y"F;bqDTkOZ-ISXqQ"t7U2h;lBW1.kYfEq4q!p-#cb"j,c'IX2l<JCQDU/8JcU2q#`,),;R
%(SrFWMstSO.M\_V;HV'W]Gi??:H48s&AV1+^p&]^7lCS%G*8l$0"e8dm<Je[/k6gRJ9Yd:f0T;,X4l&lR4?^j$MCP'AZUfA<iEHL
%;<A3C]L'<8M`+\9,5//u(+PNe)J680fgQc1e5-PGeo'2XTo*'Mp_KmIKfX5jc+/`r?)V:X;8!>Pnj4qAMsaoEd2/hY?'P@5Ohadf
%n=i$i;(2qH$mY/W:a[tu</ed4M`^Ti9eMc1q"Y+7Q>^f*p=GRhdcCi`MH$J+$U;)q=a/uM;!%7R%eHEbGuNCTof*'@c;<[[<!9n5
%LPAErOX00k^%>Uo1fQlVWi&<QX7(qITlt4Qnp8]9%CK\5S_8oFm7k:f?0O8s`4bBt?F4kX<SiXcmmZV&e-5h(*uq9hLO-nDG&aI%
%*"!ls[?EtGj\V!udV]P;SjPs1X*XE]_r3&'mjBQ)`/<#f:ndmuL*WUXW[%jA5;3(OFBVd:MTK2_'qf#?8OUWqa1Z6m?ot#pYsIWi
%qAG3)=,Hr5B?tT1oO5!cNQ`na&D4o\):a(S;9U=@X[$k#38,@)TJ2d2<a4.XWCMH,6f$Gj<G,iSa%)pO`(2&@G3IgEe"Q`pS4t,!
%,r:>G$M=q$BYgW5eldM@Gmu%=Q88+lP*8$f)B[BKM=Hhc^kCo/P?PL#0O)o&J07=S7]]<>@%FSZi*^;K"ptY!k^YL?_Q'60c%%J&
%KM]rjd1YBPOHj+4NiZtH'@/^O?iC0j7(X35?pnVMFUcj1OR>0_WMM#bNbMJ!DhHP;)&1l1dE7uKM*[8_f:Xe9,=dh\&<</k+)SrX
%Wj&d)A;O[-\meR397F<PD0@Wp>*^pa2din0Tq.m.ko'c.0[JRn6'c[@old,@m*fe.AqCi(K4\LMVB!F3r@EV>eOCUU$0b11dd(0D
%j[nrIA=a`c6mYJGi86\_jMa<n(>rF47)DO\P\MX;%*."%p[ANj/?5G(>Z<aFg/:K]Pf;o5>A8j`gImaJPIi&=],-(LBFP$]X7M.A
%lP["P9L=G(,['Y)HpuKh;.%UDc%b_IcJYoL]PT03_Soc/""Q$_O,=5o5K-g7\?fAd<&88plM;F_;iKX`3!6k]#N_u]aY0bZ$,Sc>
%-<\R`@2M,E]h/g]rda.)Z6s,f!(b;ibodm$fo4&oduU/)mQV8J1&G9>#]@b3:;$Z?de.!BdO@('[0R@@EWAV#mSYB-q7M;ZVZ--H
%OT\mDLuA%\[2Mh5NR!jm04)<Y[LY'pf7DO_80]"5deH`8XtM#m(NSX*9F`)6TZlPt$7sB5.hnd)N<G(Qm>X_G;/$QK0W5h%b/u$B
%1p?YI3Nq%:iaY!E6d3!T,X7Dan`4UL1bu3'@;.,tT7>/!+31BlO(XKB>$RUb.u6SrQh2(dAYC6@=>PI($(AuZ=PAEb?$##2A-XJ>
%]Q@>*(bVmgfo:%sT@bm!`es_CA"-YIqNQ9iCFrtfG-aR4A^#L29HLk,9'15>&>W^IOM])9kk&;?j%4+$;e?RHQsi+qN0?Xhc8]r%
%0e-Z!BN+KKm*ddM>b]0urj&*`LW7c241>>Z6hZaiqVF9XD)+nj#<oT)bsm>Y]<t-6AMK7/Y_aKK&aD=KCgcJN#TR_P-Q,r'!5WF)
%dB0DF8WqoWP*uZjCH;od`CuiPln%U)LbJ1a&/>p6W.j@$7Z=cTE$eAJMUPO8,\Fm:+E]bWYOuJU$fVW2``:,?(G"G>;ESHTSEnUS
%)I]mB!N^H868;1a>Kc?mfd-nr>40pPij,El\:i=m/XaNfaUNF&EoZXUFu@p/=8\.^W2I)X%?@9g!9U6&NqdVJR2Z\n6h:E>g<q@;
%o3h(mh3`pT3S$=c8hIC&o\';^8L7UhQcr2)ZaQLsm/^'`]j",db9>K:2G9qtO[-+HfuBpfFoX&$O<B_@DWnoIB$]QumYSN^^l>cm
%MG_UE/sL.FVip842[=[9?>a_)m62q3ZO)e[9<$FO=D/6fThHrWK'BAhr->=A#l<Wd3n-*DK/=54ScTiJ[_?l;-R<Cd<BrLL:&,ep
%\9'Z7P_FNa+T2d_8RmRh>`s4V6#<a>Vr&e1]%a]D%*bN#F@,P@0E2.h5`8U1#MAs)fSRP[?BrM6giP\!/?QGbGZ,TmZ9;]pd-44L
%^pi3NJ#B#SS0D[o,dY/JRr*`D$jl:8raYCCV&k.1L5iCN=#k]0jLZ:UWCR&q&buIPAn?+3h3aRQ0rNmdg(US82`Pa^L]WhTi3nE^
%@6(1YApOmZ[",cFE>['!S8b/B+g*T5?Ig-r;`^Dl9>Fu/@PJLCKL`EhFN;<.!7:D:7ORiD2SJhsr;L7k+D"]l_GWAH-d5Q/lJ.+o
%9XBqLUaM]N2eWuE6I7sh#'(CmP(fQ"g-G9c37iZtAZ*hQC9UTR9N^/(bTK/J,\^OTDR:HI@Y8?jA?K0UY>%eG*[ltnrfg&Db#jTn
%/uT7cipSP(5"u9A#b??>"OGUT4V]T25sd<emjm'h5$4#s9p3r':_TC[FR5kraZ&FC;Mq"i0Nf`bcNQ.^0]+7_G?t="d5pL'@>^1>
%Zes:+1VZ57g"BQ.*BdBOPa&Rg40tle>01#7KpKoG.nL8R`m!EOOCB9j=kaXhL01p5WF01lAn(kF9%eJS0F<k9<`J,?[H%QN\;nBN
%ro8F(X"\Mt4^Fud-HfPJ!uGXN;)ST$#Ua/7;/\qB-_fY^TJ90R'_$7UT84(-eSR;O1GZGOND./-&?kFH.Y1,KK4,#q2F6$FlW011
%bJ62q\Jkf?pkjN7`j]<>-CWb+q?($qIUHR)rE.;3:Mk;Ugped=gg#T]PKTs>Ck<(Y'j__EM/2mjZal__2?hSBq"Ltg`6g>dZp%K`
%Q2sk[Dr38$d0(!`/[oINgckA+YiDhJS'Hf)=W38DW72"b&M(-ejB?6@'fHFuZ.2Q'$R44<Oet4Ql:X,'FgsJ_'HcZnLQP0E,0psK
%5#OgUcCS4ZiO-qg)cI>K'iUA&[H'MG<Dagf<AZS\](!-2nb8fV=/f=6N+"QiP="%,?mZ@?WB=L.(4\.O0ac)FY\EHBo@AJsh(-ks
%iOLX`[]::;ocRt_6Es<L=S1g>P[Nf2cYPPeb"]m:BkIB4Z.O=T9QER&fF<^,'6Yr[Xjk/u)orYtXX-RW:4hQG]/%I*4r/fG)hEu(
%.`95;!K3+<OX4DMIu6MWB[usT)XHUD^WE>+%Gk)b,O*`\VDXNY%A[>a,-di7Cb._rOf?#bg4nUrThoVTWZ0+L?DMm#ZG*"4n3no'
%9ia6<+218\LU+pn!:iQ0q')m[8h`bUc(VLc/-:53N4t*@LGI@LXdXa/I0TS*/Gh!KDq2*#2kXQF)BSR-["6HM:RZ.o8Q,hoa+t=T
%<REoRO/*Vs777^b"iY/(R)jN&]Hr%;"X4)G]Ve?gXHN\6O5)(XfG#?WrQ*.=U+Tmn8G_E]NOjVo%C0b_DG(e5&K[8MP>YTZaP2lc
%,.UMf3,=N/eC9Wlks4hD*<AKohhNm&kI%j<>;neKj%u\?[r)8=An5BM2=6jq%)A-mLk%=&0dH;<\oYNmUo]Fm'630'Z8/1J2lkV(
%"5QonBhU4TGcO;TKGnrpGm!7R8l.nG?T#.NbK!ncm\WH`YUF$p;Q_mHk02"R=f,78>sfWi&c7.-r%+iBg4DH#TmUVP,tLG)Z/Ok;
%JpRFs_,o?]bH1l'nB!dn2Fnb?@)LVQC/CJSZ/J898=A-J%5_O2";m']<(E'F^ZNq\S6MAO]4CJaXC%>:]]KjE]]1;*).k[g3U`7[
%V'[jhd"gqX'(MQVcXi;X"kbOUS,b!:3'Nd$,RB7jS!n@ks$AGG%X`;f1,6(hQRL@a_eKLmSrOAZITWg*ZGC5E\PV$SI[9D1X]-hb
%ff@:f?8l"]fo4#*M31u^QV;"YoaLGef3BeFQ'mnJV/FMoA1[9_n#PApWE>!"@l5aQj:gZen4uojUV(@4SYNbQM:<1iRGOUp_9rAY
%NoK7oJb,?Y.5ud?X/N`B5(PXRO__cU'JoLe3K[:kg<iTBH\LZHVuLkJ(%mD%&Q>XaMUijrU>!?JH7!=0YnuYeWWfitI\<,QTt7r2
%gR*@"j#1YW)I5?hX12aEn%H6rSU`1elRu*)2P[<F$7['!AOm/t&L)uc83fmA.1dk+HYDpU/DZgU6$jLb7Z>-!l*XPU07uB%q0"A!
%>8f4!Xk9tQRV5Zrf<qG3lFLFpdE8[<i0,6f`DtM^@KBiA,C"pTRB>#m1T;J$$*@kj\Ga$f<a^.5!MCGUh\oG!)U7g`bRB:T8g1fY
%1)9l+Dl!3nKghPB4es,U#[h<<R.A"pE!I"tD;T!aHO>%Se==$%[5t.*=H5Me$\/+F;og:'X;aJFW]/(WNC%u5R\1.UOU/nX-mLj6
%Rb]"kAGH9Th6t-b9FIsLjsKmp4-?orMj%L1<@TJ_9K&;Lkfu"Siu0XIgq`aQD-6+o+.V)Tf7Lgh7\CCdBapi7._qM1OLkj9afF;7
%$cjjJdP//hB/ZQDD/KHtdiSM%PhP*Rb7d,VUF^G-g2Q"00j5JdmV5sfR/upo1MX%';lNZR5WO]3X%<UVW(mp*J5fL;p5U5l)Jc`Y
%dIJ8F&>[fqTs$$k9pj(rWdZ;H!A^=O)CH8(9:>V2dfC",P9<o+'+#c&-G^rd>fdGsB)K#$_eu-r^X*C$5c8Rg(f)5gJ1B)oW!TTt
%F&V=/BFI?qD$VQ7L]i.l%o@HjbSmLQC*`ucM'I#6;8X3S8ECY$0#(^/41;-!*%e*_,B\L&1#-.V'PL[/96:e4A9^=FTilhHB`rm]
%,0UM;PF-%sZahVr4KB58Ehsa`%#,d<G(WKA*uT]*bRV^OWq'?8(]Z6i'PU\W'$sFW)]RDQM+AbboH`EVMue`>WH7JuTPD>dG'I.(
%BK*.\W3I297cQ!WoL\h/2h3^9JBkJUj=s`,EZh!t<5P#S[uW52!GL"\XF^R1ikPIp+VG&eQi<5uI(W+,?L-n.Lp"]fQ)`")V$99C
%%3:u%<h7`@[;M!\7O^I.OO*A3*s'cqg4%*DPuoqQ\?-hBk!dFs(cU9MiWAQ8aMo!^fP+YB]cQg>;\6MN(KVi'90rmGip;>Y;<1&t
%cIU5l$QZa8ZhNStL@/Pjd!n<5Ik_t*J`[R,;oOnodu@^1oKT2'*)*K\hlbE^S?UnJp('jaAX[6%k7l*,_\7+!!5qrAq218!1W$d*
%!-t[bKn0cR=fg8UbM%2^o\UJSkAStk*c;@(>K@=m+ZRW%6QbV>#Y(.,eGmJG9";\\fVl?u-hW\A.Iui6(qr?+SfN5_bX7Z"q%I?s
%5A1:QD(RC!\JFO<MCGT[l]F#c?C5VH?B.u2mEQHgALdK__`'K-iSs;Hl"lTeKhH\pTSJXIkr:SBp$;nUiK%2+<?;LI)^<iCU8a*%
%Z1_@HHmhE@(/CFWrS#D=QJ0:G6hi#d7he8'8Krh>BaiNHkkHQsC(n?ISF,tBh@Z^Fj+;c:E"Z5C"f^&.'5GKj[Riapq'T`(:J)>2
%[Sq16F@!PAn0BXpPj7nd_XA]\TebIY&VeHtkq<bd9/@uD@'J/(@1o5"@:`&0_@B3%"CNp%WL[*@IV^,AIR?P/&/5/rie#@0+WTrI
%NrTpccd(oZFoi5S)OAMaF(sA-U9Q0QL!D!kq/Slp+D.S.iCo%r5S-u1PoiA%X-6I*Enk/q$6Y.).PPK1:uu$uUu@RXp5@os=G@(h
%(4S+rs)pAMrc[t]6=2@tF+:S^LHG=`?2kGjJB5]We4Da.W8`TYFS_[JE%kL#S0*-4Wi3+eM7aBE1_,c3qmXl&n19SqmB>^MgF0g`
%pn'6Y_`"mi$D`iE1I[FLpe49ok4s*e5c*TCeDg#c%Z3c:&qj#c4!69*XQX+P(rR##_T(gMh)$hI\NAFJ;V0[k+P5ciUe^*ii9&b]
%_lc./o.<MD">jQNo+i[dO0m7t3-q#o\+;aG*+ikYM6Z)_CG*+:SSl2'$,\PT3aY\ZTb,c2]OQoqE9J[BTN'cI&_fPF@[/YM:oe>!
%`iM4uqgAbL"C8D/U[@Z^?Q=^WJU,-`^1/*L']]]W8N_.mo(N^<BeD_"7LQedHZoto:$,\uVQO!h1E@E+4CTS<!.>+>#)<38l/Tmn
%'K#qskMdMp+7='lZThk.)f5g3\M*?^0<Ms@VVmdFig49;;-3=uIsKE+4D]n(l^o6*=q@+.?Q6K[c/-@Hn<Xp]@Cu?>1&[r*IG"%<
%Zd>jT6mE"[M,['_3=TGob\"!0Pf7.i>P==S)*nVal-<=+"KUqr2lHs7f-[l&7=[$WOQdkNH^0RWjRt@!R'#'oFHOGT:PmSm$<aUq
%9!O8oVZpFJJ9K[H=J)#nY,'i=`ijOB0#=7?<s4CIpJXcGk'K@fC5^@hCb3]4Un!4U:5ZT'acQA`;WtEr:2r![b$=sQPY;L7V'2Tc
%G>ZZ+f0X,CTSNIVr:t]Sqq%H-`)mnERu@0u7M+r&Dk?kSb\2=#B(tA+Wf%JF458ce;g@NuGs^0_B##\P%A/+f^Z"3SR*?3!)<!hJ
%bc#n-2KOTuJiu@dF9-q>H.$P#)3#-I:f'(#,fFBn[;[u,WO=AeP?.qK)=<Q3K3&IWF2Q;1*;;XabI@Ye6S*J4)S[K?K=L4[TtNm9
%+hi6+%u"o>"?;#C/iZ#XHA[*,iFduDqY6=ZCT-S<C;>RMZ,Q9hL8TYPUukB0E8YD*+]h]8>!F"5WLRJ,kWj,m?Pf.Tm@_S,2j3U,
%&?8jl9f<)8^%^jp,2JB=mt2I:FSA?.e[J>A($]BrDI?_)GAUL<M_mdeE4DXTlli3c6ej5=>U^5.&DOlFEHH-'[uWU=/dBdQ_qY^%
%mij7E:BS/(5YG>?h,U$/@8j2ZG%Yu\J^M<A%7Il'To6d6,Rc5B,!NJiooi7:TS^K437?(M!=VH`.lD)>D/ls_I]8h@T)7$.OpNEI
%kS,^Dd7tE=r.-44Q5>YD;[0JSET-JnYj9!;6M-l(FU#H4M*>@FHe06]V90blTKl!gL%(s6kGY9EO,5-sWXQD/2PN0N\</ik^>$`\
%/q/HGE9'SsdjM)5j1/[7^I%F];fP:rMD\-&#rAk4*S$GdeIAE`[&g7]LFS6]"*Yedr992#"BgTgp-i[!/7L?^?\PMWh*;#kWhhCF
%,Y]jrD&00s2P1K.E8pTcbr%Vm8VVY\oX_HL;nXj=<ht9o>RC`mWi%Sl?`;YTR1(klrCs!iV(#]F0U5:hM4*pVO.R%Nq2Dl!+F#FS
%;_+#f<YN*<M]&p#_;\r<T#Y!(%`"Z<0_VW/-N82GGl$)9bunoBb>&4*?4a@Gr`'D+_St\]IeU4*lU+\JdH=Ul(GKHjTOr:)?l^T(
%CWkq&5qmGcD2d88hVP#'PF*fpN::(Zef9E^*<c$u-_o4XrTP=r,I8J,p2dK\U>-1$^uZRmqIr5J?P(K!KsCa<pusBrHh.nT)U$!%
%DoU*&JJn*9KKr.Tbr4r0Va_XE,5pua-Q9sF$<-t9pe$m,AS#^:`sNW&[*lFE>W1rp-c['a0)DF8.l/k(_+25FPuH`hDQ^(3IHs*\
%5bs$<-fU<BE9fduj#Ng!]+F8'(@$_9fQoOR&P!Yh%LS0%UJ?h`Th6NUk"bnMdqNkTk!R$Vi`d&3`r&ciKIqJFP1c0t7[C95:"\E8
%^LKZ.SLZ9pB2ET1M0Q9s]kHQJZ5d95m:CA@Rq)@q/?kuc%:L!E><5gn[87^l8=tc5fVs%di*<+sUPk/b(.c]0!kiHAeI8q"e$Ru`
%)L]^Y5_<Dc<EsJ!D65]/,]PZ<q#dfcPt]$o%,[JG3H_o/]MISo9`5t;q[%'4WO=<6bQf*@.<QWog,C:[5%T],%Iq,5/F^%CV$\T=
%8$\KU:N>>m78m9f>NeQPj#fW$q6\p3JP>1tB7bsH[+J0qr3X,$RId/W!l@=LIs(n1ESegK@VT4Rq3Vf)bj;^8KML(pjPfL\7u/q?
%Djg,kR#r>O/G_VLIWDWT6j.$PKXYaQjBH7=M@UF=b.sTjQRn7Agp1U&KXcnM@.Ic9H^'`a`O7%:$D9+"??IZ7*L"LPN:3sU_dOTH
%auM-(QaWDKA<tt\KVIt(b-p&5Fl6:l#\sq-lP&0>eu^Ss:ff.s=7Q<T5U(`<f(57.2!i5obg\#bTd3Vd?53cPKq_\CI+C`$/!T/,
%#^D&4?]ctn76iC<)nQB>"VPEk\[-KoZq*UP,.JDHZNVOj(V.#51gDFQG7g>Q`9BT+];t!u/<:SSl!6^O6@ljIatK(Z$RGiV0u8e;
%i'jFqPV]sC+,2P-TqGjC^).27L6@Q5q8\CmA1/oFktac@Q(b#8<W4b>ap^]r"9$J8W\Y@^]]aj";PBe[kXBkU'IjP;9eZ(8eYVN]
%l+Ys.T3,FPT(7:HdNAEqC%Ye.>E$]'mi!5":12:21![d0gB1Gm$=>36mS0C1VuN+LdVAMhC6M^2@C$mmfpJ*D]o/_h]6B\g?sVc)
%f/bPFB8N%&c'qS$p8ZF)o)LKQC\CM;mZORE[ZV#TDsOlL`b>j)(!JSKKL?Ph?t;FQe0`u-6\>fTj\/;BjQni9SM/a,rB+2D<O5DG
%R690N-E`lD``X$$pu5aVjg9bT)/-Ol,K@-r7C'O_TP:'`":]h:J7<o^>B;H^g2t_0h,i=*%n=1"=5_slJQJi)-4'[^gXWt`l(`-$
%AI/_7j6nEmSW+D>)aI1`UZITiFIekufgrd&G#jQ0#e#q@SK>_/jTF]ZOa`h%9R)3b'UZ._-=Ts'I0(r8$l:u\88O7/'\[;iOX`jk
%fNG_rM%rO?+F!u8+fb!@o(-f`f]?N^/gPK/S:GFi;+\XVftOD8VMR+1Mb,rWERrV7WEM-e@pl#qMAjlI9%VeZJYDKAQf':)_8J($
%M%s*%!pW/*e!o7qeUug-!&fe'RfP@C9+-Of.&)"P_sP!m%/+D$q.Fs]h/Vr`m*VjqdtX@U@?m4ZqcQI:(1W)2HZ:$jm!"G:gu1H]
%*3R4]$jm>OAf:e]DbCb(<!#/iE-C^8P1e/UN8Q:g)Q+VFZ[3QL>7Y&P61^=TEErEXmaPk;D(fWJe\sAY1&NT(cmdbi5W1F)+X!I=
%AgF0.CYL-s$^4/f/1Y;l,Y/%_M:%X^E!h+FI'Od[fY0-eb$0\lcr@"..RFu3L$VCe`Snd(m:t#DpW0m;PQbU%V"&<4C;sr!0*0`p
%$1k+l^=YnG!!E9mNVWAJdu`QK6O%-@/kX`]"0oe01YL94,VZpZ3LE3,eg>F:^`.oS^gi\==(bX<!JB2NgEO&'V\K&;R<gC>28&O9
%7]u&F"R)>Ob(P$<j;ZiNY#PZ"KRAJTf<msGd_I7HS$Bas--O"DEk8DiTk7Pd1;9-S`0oF=cit':PSa(4qBWKtq"KsRKUAZL"-cK.
%h0U<G!X?%>#=r2?APk^TXd[afh"ZE"]u>d9_2kB5VD0sXeK$>!i?4`W-C&D>OA=<\'!K8NGAi<_5F*.b,'4HeGPBOV[pukOpNh$D
%=IFd)kUphL8T]a1K/0MTVa=8t)%ehg?^mL5TmZLi$ZQPZX&#*eamS(&Sq8c')9P^O8\L"&bdRaNFu35Q@k;9QX\(G]SN$$RWp9]3
%e)s2?aof?ue6jBD`h6_ieMFg^EIklKnI7.#ADhG3hWae'dS6Q9rjTW@:;4tXqL>nX^AVQo_fq2tQ..$D8.6NL8s=raAte/973$/*
%2OtR$fb<WT+@MK85%<`k`uSb'!YR-D"f-]KnrJS\1a!G+7<S52Ud>2s_7[Mm+b(uHYARf(=H'0iCUq=99D?oaE2jt*_/7jS?2(O]
%CT4Ud#MOj(S.NF+#5.f(1P>eUN<h#:\a3>9o;k(siP'dfXIbpu7R@k,"aJ4^]bT3dWen?#4e#FlUf#M+F@OLhP#pn`?,!mk-8J\;
%FPR[+?2E4ZZr''Q(tl<sZl:J`TTArQ#(erb]c6Y6e3p`eU)BkE;_,tNW0QGLjm^A$iSqQrO</_n1<qoi_,Z&DALZ\^7B>]uGls%e
%[<CtQr!bakeXQ.u07+]5mGWLL24(::\LOJ=Zh^MF1b1f9.5SR30GJ!8ag"^.A%kf7<rA@Xmu*W3EjdMk2$<KW,cf#W:"^LMn)YmQ
%r+T`]mZUbc5@a9Mmp#T_-@R,L9?`eFL!sKD$Z5;CLlF7-jc>F\AM[9iT#VIGmE!UVgJm\-]lp(ke,Ue8/ZP`&cF)\9E'\V5FW+OR
%5d_,"k?qe#RF.7'LYlQ6Joli\Kc\NgC/Z^Zhj>!*nFAjl7_`r:&_+rB*2I9Ql`2+8\Em"T:U"-HVhr/t2ipuoAa$PgCoa#M6o+&B
%)36b*.R`S0@W$IL$P[Pk[t#=7FocW?f1aXfI")sW3JUAa0!HS$/lNG=2'EY17-Zt.M73)@5UJR)TQ]2]&i/OUDLg[W>^Sg\Ig7P)
%rLV(,^_/OCI"_!1>s<*b%5&=V2S#Q=(eiW+oWGna/bVS00W&]hm/RJH;r]Wm_?orp3T!\tD`cV7DjS-ig(Q.:B=u]J4*%iXkJo[e
%"\c<j=9"H2;e`tk^Xi_<fme)DHZBCKe82_2WU3>V0WE8%C<&jArC4$$X<T]V#-#Rp+N[M$`C9ib7YLI8K=O#PZV9Uh,qt2KTR+;m
%H#=+bB(bKpMi:F(I>hPg'4H:r!!%\N4FngFf;rYZmD'>o+]=k%]W3C4@0C_$)s>RU*S$oo$+,3bXF?6^f<q04[U\s0q,;m4Wp`W3
%eqab:%bi\h0MXgIJNHCOUJ*d$_K%B*;se9ln?Tb*I_mBN/h'5IhD[Y.!,mM;T.DJeh3%fGn5584ISa:<Up5IOP['k=^9KR+b@7nc
%J*MU0TutYmN$&t)bSPMUdpd,hL][tq6Pjjl"c;l3=h<O\/l8JP13GlaFm/X;=-QtSnbZuIYF$og"IBjDG_9&tNI1slDC]6/9i`#c
%mWqr]WjWs(hXY'>)4O+Jj<f:JN0&hGW_pW/.4*W%cnM3Zbp5e7>3SmpNX/M<X@a/-_N0N8P:AN!p^ruQB,7kt.Lf<lUU/NrB_P,J
%Hr9`P;>PJL)D3tQ-HZ\,!chnE%)'Lqc"gAOi/^_NF5#S\`aV).gH:'K$D'\0W)MJW^pb-sa/2Ya9NP)giB%V`9!7%sJ7:@FBSW*1
%=_'lc4@Gm]W_=>t3=lMR4LQ0HQH_r0Y\D'=m\S/F!%Qj?.DEI!lV3Fp,eh555:r^Ha2(]iM)6T26!/]:H.-UjGWN2kVWHV5^j-,X
%p%)@*\1GY[j+$[`04',J*X&0)(j<gu8eB4Z$d)3[&7h?R-iBdNnV6[NQ=KDAZ#/F->JHN/2b_^ik0e5rCebX$Z+9S?6.*1C=("M"
%Mq_IPO4]l&=KRtoFY8R[$SFc8`(8nc+sU?=qf&<4-C\F&&C:](]*-E;dO%`UAY/4C$>$Z^&5Sd2faTu(^,IEhM1dC$eeZ6ZY3<S2
%$$a8p?LWXL(,83/?4i4<`?`c&i09L^@tJa7BX%>'E1]L.>]]"X;c-%W6Ajff-,(pA"'0n7ZDFT;SY9WBO;VD`UN0pK+Y62+RG3lS
%&nijD<D%2QGl]<qC@#6!Y0_i=6\fcS,?(%bE=Z<UH`'08XPVG&P,Cl3%?8O."gmq_-3<>E,$@NtRmfcR[$]7(k<FR/!f>u(9Gu>K
%<(_5nHYofqX;fu^.,cP:WE'<fLU5-riilSJTp]mJT'afrQe$,0d1NTsdOiaJ7E^8`>V#!X5^W3"HI)[d+?*tq]dbX!iJUo%gL[SX
%9\-Ok25+Bh(;8sR,LoS&J/)R#`_e]sr3U_IYqK8SEE.+edICeOm^sT:0T#,;bPRhXf-Vo&o25XdUH4hSqL*T)_o.QNb+$m2?NU;=
%`(af\'t8;Ba<_6fnk5l^j$X:*9':4M5C+7Q6COq8a[;9o+JKg0IUppCPVsr6Em0:A8Y58PeP9cN4<,b2Le#R>B[ZUiFli&D=`L5+
%!>PprkcS#>3B)-GOQ53<:M'UT,h"91\[':07\bIT]]-RF-NDC2J@tReI*@jm@[[t<j9[/nc#/\GG(YuhBF:,ZX]"kOTHnCM\>Xr;
%KraPL5.0()8RB+PQ4(.3[,eh7Z$h3p[l@>HITJo9"5?@Q'+ep$\]U5'W<G&.b"0GIaYp3WfF8&^:5ZSjcPu"e^h?0q1gJtG*Q#DS
%YG5"P"T9NTGAbZb<YZC0EC4kr!J-/&q91OZ^)bqBWC7>O<B]:F-/S=Ij'`.bY=Rd.Xt<,#l4&(S].<jGna$;?4G#IS:_FO0U,1!H
%JG^*jFijHjGkbfUX%eV`*rZ?K<@Q6h\3=S2m3"5cq]"C.F(V;VVK5nYGoWrU7R)&%.9&tJo!bBAlCA$kFW'rVIh*<G4I-_$e^9$+
%RWJeC9$3G$:Ob!Co.%5)n:sZH"D^P.@Ab^!ESn"a(!T@[oWcFS'gR_(@,$G;j(05G`G)W.5N!A#nQQc'eg1+$)5,Jqcmih(8Fl5-
%J+&f\Kf4=Q-=<mDp$S3^GM<c+8npQm0DPqG,7+OErmK#CZL\[4VU?MGOlQM*dN?a7=0$#7A\'HshDSjcSngppW-*\3UBh(m'"f.q
%$n><L@<.up9%T8Kncg!edW$31U++,+>uif^0YpV1nWksX</6]X$28(0/4GZ`>Z/s-72&8;c-^O1q2t7fZN&[e*%uRj6Q=PA_H4pT
%%_I:"2OOe#E&1K,\Ibr4l!Eg'`lo-80Kc^fke!/*;SiEkWO<%#D@F9GF673-B#h<K.ujsDF%rsY<l%si[i9FhRu6[On`l0g%g6:Y
%\/]PM#F?hZ-[LhE'!&gE6$K^R1+8[9D<TZg[r1c^1_Ecf?4<9h4MWcn7SAK%1o#F9]g4_dl"6ngoR$ZOe<EsB([ul?/'$1ulBt#e
%#\R-4@TEq'*n<I8p(b!(8_m)Qlq*.q[dA!+A`4N_U6ha7Fa:UZK*G5mSk1`V.pI?_6*Xst(giaM?/S%'RjahML3JVQd!aBt/qnc?
%`?)F(&,WuRon'ZfGJq6K;-UMH;b97pe*a:gi'c<^3[i//8hL5VG>G"$_+\*hl"H",9LLVK3SR3C!`1aiAsZiEomj:mrdM#."4/.c
%4\e?^_8:fi6a9?Q;L9q_"g4RkoN/Ssb(ng94NCanUL)[qOJl>q/C$Fk*#7n-]CF>/hE&9jb7=OVXtZX8WU;Ou*ZT:-kRt^11'[*0
%.BBUR^GbVbbG&,+mS$K(O81^\EkB.V[62ep^M'<r]'5p*qF-DBU>-f)]Z5'^TlPOZ0d#].LYDD;Q2=)`5Ldsh<VBogr]n%ZeG-fQ
%!sj2XKO"eb*=7>c"_"$U92C5FImVe%iN4WJ&,8V9!MGtjLFFgdKqLG_0f+7Fng)oj@dqimB8Vm9RZs)b.,C6QTmDt;H7i,W0dHW`
%:FWu(G<s7ZR:UsOepc3J8(&6r;K?.E!LkllN/!3&[@<T&?VG5C6Bn1^1;K"icPUm?0L_0DaIp(Gdo*+Z])k6Fid'-nH*]_S"(39p
%a0dm,8>)1*2pokJN6P4X&h=o]Glp;dd^ASCA+fQZmc!U0Z6!*Z8U#="`[6Ye9/_RgU-9S)<JQag(\qi41)J`3WNGS:D0[VHq6^FK
%8[#pQ*gMh!BS4R*oN4g-Xk-b9%K861g?"C'lib;"%o:+&]AB'3QTML?"[hN?LF#%]V.U:s[qYaf5ZN8!FUm?Y&^L4[ao7U8Inl<k
%U_lN>E]`.'9,"YPW$i5Bb/hf.&S?JtR_^`h(ORp:B%FlI4puc#K>pnnalF-5%8?Rf"MOhg3Ip@LJGqY*5MuhNKS#S<E1n]`FG>nP
%&5XVr.`I*bEMI3#A<%&f,I]IV(9^;2?_dD;=3d20Rl]4bK`(c^;tJ7;"NpL:);8j3Jfq.rUVGZHIkON6R1;KR;<YMra=Q$/'Q;KZ
%[n6-[%f1i9;9B#=oh5lMXWH"78o<PraTep!7hkP=pm;_?k(a]ZA.%5);>g<A7MQQ=0''*qa;%Ue0(c@UPq42OK`nfFb]]bp`>#kE
%:)=Q3/gNU<Ti;r]r#JYr)J!AZl`2K\6'@dsI5njTUe\T!(Odf4(G`UqWj**s[_*R!FCFhE8Q2q%24rJsI?8Znbk8E1@f2*sH`?PA
%D+_,q?=4GF/Ok8.jCk[VbKo/XmcLOtmc'3>Sg8@FSfs/`HjCD?#Ij(<ZC)aKE_U"2b:$J-e!"2!6ck)U$$/<F@D5Q]gpa5XnA.3:
%[*j3#'e$ZWnRmn-`_8-8[cls)1ca$PD&%,qA/MZ5U\&]<cq)o3E8X8u0'9-PN3I@Pd^2gaJ0I5.3siU8Il']7N7Ujm6[!:eUCB5m
%+[>_<jF-4hL@!ic7ss88L[=)``I)/X8*oH$7t'?$^QYuk%ek\G9e+.C2,uJlnkRu:KpIGfI6V15)(Jka7gn"7"?%,AaHm05cCCQ!
%/R-'[8*t#ASR@n'hfpi5D#s^g-H=?LJcH!2Gou,@c(cRf9\'_QYj`<r''27Hfp.?nZ!g?hGglb.qbJ@79Il>FdqYSgWL2(u>PLiK
%\b7Y#@Dh^F5(4[S)s@E[MS`Fm<(N[.Vcqnj=kIKm6gR_4I2`?lYm-l)C,-ZY62&%HmBgPF(-e/uDS'SmTO&m0e>*(`Stu@!>)aQe
%g#PQefPDtnfurLE)as2b_Q("7ZUfhoi8Krd`GtNU]>OZ',:=0YD`GS<+1P",QV#b!AeWB?nhc[1f>$e(X*p2/rOC&'`e(\)3%dJ>
%!rB8&>5D3a9,59K@e1NtJME5.f[T#U:6fe5al'5lojn'g>[Y2m3!X3ETe>u._\hna6Y9lMU@^4(R";E*o<;'GR%hK:ZQR]@IDaK_
%_E94C8u!?#G3JI3&`a33T'`D<BfYEVMS/DP40tXN.*(fG)B@fAZU#>a5.a!%3_Z$0#==V6$Ch".+l;eu,lEKp;*e,+Ht#7Xr5i:G
%fjiBUKT;+Do[Q4kFt!S1]c0g9AG-UT!UL"&D]iR-gt2lKk!Hk'\F:Y.mR5.%#T+HJJu5(m%ZNs_H?BMQ5;CSQG=OB^&>G]PnOk=S
%MsP!tOEhGe%#$W-M9[X45GSNP4G&Z80H=rDO&5FmYj[ZLquu=.+@q/bMC\)Rja(<F\1aj5<M:6OL@FRT7W@BHh:GGiRgENqm&9iK
%Oo!_`oVBa1W7C"#2[ia7]Q$?ZcFJs1)MiQGF<(ll#UR0,ao#;/'3l)%,D<,9A*D`W)%k["#)s*Ye6d29G(\D!fb91p;uktoP(P9b
%opmrlB(@Z>mja9SfB4O.F+]s%!'A@]rU8O#JB)Y<I"^jJ:o?6OoF9<"hfW96X5VPOrIgSRLB:%tAnbgH+E?b-8\+0IP<;ZD<M#1W
%Q+68E?.-1)e*h0(b-q)YFj'1`)4P50!\mGKm-)R<i#eY+lGm1;2,n%ui49"!GQ\esi6"CqHAGV:+PT6tI#+-(@-]I*r"-,_62.^>
%hY'F#]/V-['4ha!U1gR?.K"Y3gmiH.#<F>eajM"JMCknn-`=#uV<"OE2Fb+m0mL!TR7ZJN\^<R5gR32fSe#Kj)jgpl0&Y-8VsZrs
%S#p[;k%9]sE>VPi:6j6uZ?>c4l@T0s4L.`<[8F92572';FKKD0oqD0-'8%g.g2=,9*7"h/Q?706M)$Vrq2tB(s.iAC40:/<r[@.=
%9P,GLS$q?X[t2Hi#5S(+J=_8DT['=C>!l$FPF4Zo_u;i(l35J1jbe(j"2<fH.]=BIM3(.*"#nlZ9[38Z*t$i#S:5X(eU4mRflHi\
%"I85lSm;g[HP'I?:u&ETMb$$_K?/'X867DIBHk'SOSi/%%R.><O3BPK"7u#]Om+JI-@A^lK47@tg"`na*VptaEn?m*gHmU]8BX$k
%4>S`,s'[qK+A7NLA2c5ZV2uQAcd-&^-%D**b3[HHV!0`miUbN"qrSpPI,Z=?X_<:R.K!'MRN)NB;0N*r`9sX`n29n9QhblQoJI:!
%"^BPi$H!-Y,B">U1r_Gp7eYmW?M[#4+2.6J%_H_F\3um)'>oU^m#SCa`(?h_-)EYmH_$3IWq<EbFT8/FpU_:T59:VE&U^?Pc#HZ]
%ZmC(:0A3nII8Ug&U^KL\!RPIWkn=>oa\-JSa87Oj*bl.@FD(j9AX=J&hV7Y#%O[TAPG7rr,smRY#(I#SEZqCL$G[%bH6KBY$3:Rn
%Jg%Af$:5.$M]oIt$A/a0P9IFk#%E=[bo#;_JV&W\d1B\(@o4n`eI^Yb!Q,,WfaqV>J`DL3h%8Xo"U'V=i;dJ;JL"U\b9>4m!_%kE
%l548aJRsTJmL\`5!JZ@PndF7N!_j26liH&C!fdeBoHE9Z!-!?kZ!IGZliJ<YRO^CLckVn"DA2_8"nE$I/7aeF/@-iKm@Cj)ZJ7'c
%\<&cgZKs3&]TBfCo)(,1^lUbt1(>n<`!_4fNTk]H6q7*rOD/uMAVLW=R-Js*Kt\3k6`0+%Po;D[,HC'`'cR`u6`07)PoDK'6a#m3
%(E@IO"1I`RR=&EtLOA882`g:>'D.LqqTlg>VNl<pp&*G/X>6?$f:.Q-YD9P67_fVb;/,LMi5`iO\iaUi1$E^F]Op+TN1Jdb94_1U
%1qh)"QlDZJ6CQ/C:n;?;D!]S;@]$m%;3"D(\91e?X^i*N?I8\grZGp"<jFg^8;riOl,X*!,8cEGGTQ3#Tdb^lQrdk6&GgTRr3&db
%"JDPNEBS(PC%Ed_\,1E<X7J,'[a`GFLBZ#B.;Z3G9Df4g`9%&3gEeg%bG46=Y7S?ZhQ02FdT[p!lq#*cfcUE-oZ-9&p*I<ZIm</i
%P$K!1q[TBpgr'V2!uEu,`l(r*Sm/>gdAN2")]D+$mUW/u^nLo(ec.ZRB3kO(R!Y]pMV*m7W%XAD?A4^+J+2+^IWZ<LMfJrCRQ#P<
%+2)'<MjFh5+_@u'F`3^ZMgSm[[=ufINZI=7/M>3INT_R\HR%a0YHQVbr868EWmP=\9g(<./Oc]k"+Epi2rIU_6JFg9H%SLqeoLS0
%0c+:mZkQ=1L:ELD')^Jq6sZXH?doPLprS%u:5gn>'<O6QU,dPkAYbW;2'=.hU'ulb)(1/&SVr]B4c+1*;li1CU$(_'$T/`_Q$igm
%JbKt:hQi9N,9,@pJs47h)J;Q5?[Jo]ffM8*$&j=Z>FD&no82MqIG$K"otG;0PbQF5pn$2>Q(_tP\IZ-L1#jtO[lcqu%#D[363R21
%Up\94$2'p%9"fIFD(98>g'9;`kS(/`jMjnk1Q)$rRe#1&Mq7`PC!j<`Zq&ocm9m>=fu&]U)-tBd6:sj:\kSh:kVDUF&-5k%mm-2i
%VNV?99%VhH2P[Ud=8-a>(nld4H9W)Oe93r)i<J/f8,s1ecpH6VFR1m8"Do,WcJKj61-M6j5g*!!G>IK7XmFNl5sQi.:#5jgr6;k9
%0$@[W6h'9#<ruAMp@E]6O:&Cmm]ofUoJY8gje`T$RRGC*%hQCALujMc7]e;)5%GImo7)d=s4E7C$]]YP]UYm%U!^>S/6Qs['Q#('
%9QaTCP[dND/^[rp3IL?T)/imJMI?rLXB&XWS+FH8K\Dg!i(8q63:RfDq1r8tZLBN+rNXF.R^Q@uEKUm^=srF(nA+"-D^bcuGr=+#
%C]M&)9McXTq/5$b.=t*u'*kq4TmErK'*Pp%IQl+=1I3ob"TeuS-t%.?f:#`^i1qb-E&]eu\PSkM'XA*7n,APOq_#q0ao*jJ(Q/.H
%"T_!\^d)N$;YIhhaFdsuAV#Mm.9q&T!Y&1N\E%RSKK&;88EK>8&M_^dqmM:hTFje,>f8HciJg[0,EhZ.8:SQ5+ebRMS+m8-5e<@F
%B4@[bD^T*]*Xg&);3:;`!V0i6@!Nt0<LpbGNI[atQ]:(7k<ur2gJ/OW`Vlh,_S3O2*)%b#EtOfH"_g<fRZ#Ba.#E!WcO#;KVC1B7
%Mph#ZIZ3'tU?P52junrWdrbFS=Z+QU$C.><W`#Ml<N&n4b?@=9=J8XD79(j;i/4nQ0"P@%bR]^^!U_8EDrW?Gi`T;WL37M5JL!N!
%>gf^U4"j?Fd##ogd=Tdj"hpqJ5cU=edj;plGrh'2@cVRn`]IWNR9b*M6i87@N0O4_/#<RM)3I'#m,jHG70fY>p;W>3[gRGcba#g+
%p3,J.rIGgd*f67]cB2glQ-sq/?Y.&?$*d<C/.a.TcR?F\k!)^_$/"no&-$!hZiB`dn)=hL0`V/*mLW\ChDBV1n6s5d$M5pEG1tiL
%8D$[!PV!1E:+c\:l#+:I`_?@QHLnF2+Ar]V;#Z,--X\ot@(i\!YFJ,DI9-Jsjg!3D]6b?%oq[sCeTcNt/d!P"ZSR<_#MQ'2g2=kM
%\q3shQaU7f(1CW-YtO,^O=;,GC.%^^FK4>rQMAnZ/UgNI*S.VbK["_j#Q:'-`eOjuRunWV"'m+h`aK`S9XhbQ-q'dsLWY./SJs^N
%n"&Xo3-B5RQZR76qVh6"0b-AI:K?Y*4no09=d;@Y=Zf[kZF!!3EB5$)Jm=gHh$q9=^L)_]H*i9lhqHR/jJaOj&N[(qkmRRdJ7a4N
%D6R"+=H/"Dd2.-5BqP)k"cV\WfOcr_Hrg;#S!/K41&%D^q]qbV(9&209Jn.\/X5F`5sK#c$5`:CZab@[6LBCpT1ntl1D5ht%mX0^
%$tp<F_1rk)8<P>Sd&AY-6=C:F7X0Pp82(4m?k>a8Eo@5PQ&sO%3A@Jr_4?,D1R^[H](\4'Ve1$Jn[JmSK[M!*N(>?WEY0[UFA,$C
%PD_Cm.&:kq>m]RpY'L\BZp^iYnYTCXkD7X#bq:J6KJP?MZ^:K9=UX2g$!5dK4fVY"lg*#oHMPb[*Nk*(eH@BRP1',K(jt=+_4>K#
%n3_@>PgC]1!T`36$R4#Y#Se]SC(rtWd]g:HV%IIp1c9*QqUUPs#86IL],DfV>cRElIo_np)..q*S9aeqliu"*n%*#CjKYfXRKP'!
%dXQ8.]H'/o)0Isc/n\O98mY9BpX;&`Vf-3oI/JbK6Kh@$r^Z1O"CB?FiGcM\>?57NGnA8gE-?q0J\QC=^,-Z:Rh:EmMrP;fkc/$?
%^UuohJR)p-Wj2Yt;K9mk[RAeW&M:nC-nV%(@7Gru`.UO<I95r<p]M_kaq4a"h1.DF)<&;#j6"V]5J'n@=O$u1nAB4#8k:7@V.1Ga
%:;^"[IDO;J-e=mon1u:ND@BEgjJ+F'Vl^[3q[mg)a:Qg0(3$;0ALXD1iD2JphV[\k\*GGqj)lBsAl:*fB!:Udn>*lI/[qD[8+A@k
%Dr9]L.HD/"Q,KsT(C?=&/g\qG\Os)&p2>4&?2i^PU?&B]'6eC3<@A:uJ@icCk?HdC]e[P4+Q6lDh%j8*1o"V%0)=8a&FUiP;t[Bn
%qVP>9R>);-]Y_l,8=<GGHXOAGUd!f@gCVJ*I/H=R,1=,[j=r"OJgqXJlY3qfK#eBugZB\='M9$E7#WaM7oX.N:s,,RA>PQ00D.5T
%J'Jr,^&gK,#!H0SJ"pfp-#C'.->%VoLpa[*Vb"/lM(R\FO3e<OCJ-YYmm@g9cbuan)TL=<Mupcp(.1X=M1glM8K[a^TEcdp".eEO
%;:%`6Z&cL.e4hbL;O<8pW5;[ObdXWp9.9BE$Gp&d@h;]kUMt2rOZ&Gp@A@sQ[XV4>+)eBRf[+H<T:4QuNXHA9DHD-!3o3`KfotJ2
%DdY2dMKIZ'/blK`UQ[+WlFEkiKF0trjmoj'cp&ujRXYOl@0,h-`l=7A0[7GcOA45R^H-1T\W\Yaj\sa4X9D1*GsAI>XFqB\h@Ii&
%^N>OP*@/7[<A_tEF)2M;Udsq8(S"g==_J9o<d*jM?M;e7ENIkF#_C,Jg<4nNilPh_j=;:/Ei^f&mgl.UFF4(20t7`Z,s]aG\-=.a
%dHH7*Wde;Ld`\U/SBl+8g%WJls$C)ZI<g6MH3ZK+OlFhY*U9LI'l$KLoVp^!;Rl"p$T(u/dA"DD&)gh-mQ,8Je=U`,$/j0LCQcgP
%Lta<$m!h(L]N<8lR;OeMFAXXMj&Yo1$7&]XgG`9j:d4V'[2[9ZL'#)OfP`/H*(pQEjG*9$2QFkO1M._GAaPsa\)sOcMUpeoH=^8<
%-"rkka1efGjjMXT_\79EEd]`^9uM^s$mP=qS)K`NYZG.aAU&eoa^#8T)lkU^^%S66XD*OT9oVuu\paasC%TH=]c]+`bH"cte;PEu
%EHI#F)g(7?T&cSEH6F!NS.G6UO5JPZQ&S.e<CQX0>9L5HEj;/76uQp4&?3t>VP]]/>0%rj8M22e)6/A/'U(^[q?f)8'o!V;8ZbCO
%7?Hf3njqQl)/^_^>km+DCo$a:C-A'(e'U4*S$-VqNp2d#YKKp,^t?30<)e=NYDEdQ=PPah=>B_M6)$C(>J8=)G5<2A:]Y/M$j[H<
%C@pW\s-?s:r\EYCd,d)=R3f%93sDGjnQYZI5#_mpqi0CH2(k]2Z&a"LclVH_8Qm/!O'"C)j/T?tMXcA:4`P9!YQsbYR4B5-8.dA:
%c?b]-ZG4.2V[hH`LFo]n,>YcLPjIG0_PE2!W"=O.R,1)ieVcgap:M2e^I0u)#4V372`th0*qgemoIZ,-S;4f)htj59htPCFWNL4l
%+/mo7X((cqMKV)O]aau:Eh1clc!"p\,!-r\4J]Sg24FicVLuC/96Tu\kr2/9BRmTuG5t\O;;@2f?l3Y44<en/m@%\)[>:2L(N;(d
%JPM,kO0CETB"D>$([2,l:"9S$7?PR4Z5ZaR,?uaEC<^M/HfHXkeRRs4aje=Z?lK9%;S4rG&8&B+:hcqG?U9]=rfhImV^dI!LC0+k
%0nKM.:QXc.iC<eokh3!>TdsMaBBW-[c/D\=n"No,Q"Z>i<k]$ejkB4,hk&cPcl@JSo,:O":M;K^G9De#;e"WQ`'7Z>ou9@1nipF!
%r(fV#^V`9q$^j^o@2Y'W#])ifm48VV"dPOg9s7:I@=:__F:A^:\NoE;mAH9k;`E9pH.ACA1"&>894l\mGT!dI[:D2:DC1*:4IB1I
%"ri^%TU;NP:,C)nVXP?X]AsG#c=WE6W\KAjguM@#@TK'#:Xqug;lk'#"%Yb2FlNosl#]>A3ZF:kBq"gqDYU.Ppkfu'0#P@;2I;-Z
%jo_-A>^<qIMq2bgW^#[eJ4&0eham;\bq"bJ*S^@D@5Vl]V2oK?nb0R-Ju1,;U'[O+_PNSpd.c_O+m@?K.-s&1p*dNE1MT+N:mb3o
%V8H2ucOn^&b'_KMXr]HWf-/B70%=`+F_NOcB(Q]:M;R9_Dp?$\@1F3074lJ2mDn3eARSND9*;Q*=^'HYmF$S<CtBF\G.TS^$QI*>
%XlZ_MMBK;=-:*5KPLhPo-g"Rkq*ma]Zn'*$!VY(d_@Nb0ZDs+V,0&5FE8"3!Dn<>Z*nHi0^I!LMjtPGWIBf,7M_SVZ,rs%IJ5HKc
%VNr9*FQd.k&YsYGR5F1?&S!gp=[6n%pB/f9(mrNB^QoIZeAgpKNFi[Tg0GWTrV=_/hD%>5b\c!`.-snIp,$e-3Q[bc8tkV^W$=&O
%8T0F>&=jd"GV>HA&0Dl9M>nntm3;\M&XrVN#K-N"g4*/pVEY4bo=ak@7QUS?g@$[I%<)*VpAB<?J+m1D?+fU_PQ&nCs*oOIJ,\uI
%n\!e\iP54Js5!P/rnG3ej1kPRs7u]j5Q@X2peUqSTDmkXc1l5Wl2UOnrqaV3?iRaQrq.?ss61VT=6o</s5*aEf5:Q4l[Ss5IsI$T
%r(m/P5G-oLJ,P`6qdoUW^UN,#LYr-Ls-eE:8%JJGetfs+AYF[XULDr=l0$N[Xhsi(r8"u=J+crlN;rE,HOPCoIsBhR)G6&T$b&Ah
%Pbi!-T*D\urgQksIg1,lq>(LAb411(,*b!Og3l+_fp_YB`Ccmi@8=gIP$^UaJ<pl-I1*d'h,e/X-(_F'n.5G%2;!XGRmB%,JW5"&
%GI93))KDUL>omb,0BWqnMdoHLg,(.C)mnm+:cb2ujm^4dMU-QTWY.85Ein@"%[?sokI])*g[bX3TPNp,g=-1Aa=m\AU17u82(:^a
%Gj)u*o39;H=thoc1WjY+\nGT$1PSC`:ur?XZraD($1BdOUSHu&nJiLT4IL=j^!B]X!ua;<%tCr@oB$=B_n.r?#J#::EhNM!(A]fj
%Z+F!r^44F:%D?:%Vra-/gM_(Z`$6n(^BOuc2>]bJ>faf^KkN8G.&k563.5./%N`L9>-^U5'u4/d+9-etp3ZQ7*1fam+0YZs)&e;$
%Ia.]WQGm&U0E$e6Z^*g:&t</#AEjNuAt.N8:]f-$kl1=q`85(f+Q4`8=q?gNS@6*K,h-Ae/D'Q\\>$fUm=Ec!n[M=6X;,a3-M@i!
%:_iS8(!Ap:]0GgjflH[n#,,,>re$E.nAjAip;c'Z$S"YVB%).8QWpu+ZZh2(?lUD`(j\sR'\u:":b>of^RP_MpJ08IpEt<5b*Z"o
%48haW*KReAF*7*+HZ0:92bf]''(V0[h6rXEo^cYbMcGYjpA?cCota._`EB-U/gPB,#/tBcCjO^T>nN?MANas\4(i)]H!umd._PQj
%<eqC0r';6I/]0Et.jK]CraHjAnNSd(:.9,LdQD@ajeJn"DMQL29Z4:V>GH0tV0eD.,A,(XLl9\h*#f:Rm0W8qU1Kq_(?N&b67a3'
%iF?Q#n0cGqE6=us2C6AUHndP-huS\$Y=Y[KZK$/P4C]"BJ:,g4/]NaBnh+cG1]<SGYn4o7Qh(?65M"&@(F'I4HH7sQ/p23#YZJ_S
%BlsIK@E+EW`k\"k@YS9BScXadKkRl7pGjJ,2LCGjp]kpq\b"eg6ao^Idj1>^0q&i,DW0NsFM@DP3*u1As1O1`P)Z(p9gBKJDV>Oj
%WHUJ&2EGoSC(J.so8Wj>h(?"7RPg6>Plg;B`PdYOan1s3NN8.DA?g0m(4Go.+9(??@rc]!CuK#O%r<WA;.4HC8s>:sb?Q!I#UPr=
%KXn0jGT&Drs+<<_ZdL8=C<RF)_=mIob]VFU.:Yg^;7*<SVCWqTTBYLg,;;sHIn,eKlI%>\\;PUcJMgF*k^5PZU?%'9JFGM(S=Nti
%q-'j7mRl^]q'G>$MA_p70r'CM`lt@?N09kl]U0PL`#u02X=u#cLN3`r<OXq6\[%^$_!IO&pEA[?I&@E6Kr8!G/W84dGA8gtk-*-*
%nc_[M;1gu`Z'AlMTP2$>mFo!YS1jkYd[Z`:h;(q35A*p'^+IZJV_HZICH65EVp/b!/\/=e%>N1?FNm\WhV)bY562j#,(ot5Ql;B-
%c,H#<a&(2s.b;o9Qf"Ouc2D5*_A`pT4L7O+Dngdn.oi`uKspQg>3:.]L%=iEYI?tHi+BkLnq5lG`V8ZWO7DW#loA$LZ7`eHP+=dN
%:=TS_HGbNS`Egh#qdk.lh#4L3s1f)jn5a%tarA"+m/<<&Ad$lQ\R<Ab0SW8X1AtCoj.7-bcT:<O3=a""DHEZEOf=>0)Vlo/4B/M+
%db"+P[&TTBpBY!sCNj:4EGA+=h8rGQeKCP"KpfMS&k[jJSh&Ccf*P.6X@sF.'tsE8-Q"k>Qa%'N/./?`5-)NK4hXso8][W-lm9$W
%6FP)ACIPWSl"_*$`EcDW)$uZ#8:bf?rAe*05kbL"RK^C5F\1c\G6AXWrYk'<>6Md*LZT8YF51QmMLU\A'C+=UDnGBd%!mS9UZp9L
%P-7Ie(2_FIQZ%)%8i+#ccI64,(QbLAD7YqQWAcg&Mi1=enp$Cl6&HMiX&XeCE:\UCiZi9qh;Yg7N/ZgiJ#l_-eGTTT2o%3.)g$rU
%ko6ik:iW*M;=m3!+IHoaeVRY%P@"\;/iCLQcR*/?^XnX2RN'RN&`p3`.BQcm.GDk&CNra>ct&5d+-FCFM7)"F6fnr[4XiNL)m3hC
%m'O/pX8?^')]H?WZAa7TPc@_2rcHXU$j])</"i/).l9$#k-L_3Cm,3;mkj5O0-HP#_eR!V'B[p%TM*-l.+Zna7\$=2icDOjQsCna
%m;B5T"'b>qd/.fGlq6W':/:*2,fG8D!<e[W?X$4Y!kX@*N+HZ1$Ya'&oK%27gkhI)H267g*-d>Fi=/VdO_[7EP.MnQ-&2VAqA?<q
%?%j2D#]M8]&bRJ6H[L<Rbl7+HA;fPpEa$m^c$f1lBBNU6#P3U#Z)*<X&,[@pQ/j=dph,Jd\5]l>-9p\U,M"l_>WlXfUPAl;`#pf4
%3O3%Y@FeA/7XhFcQs5PJ,Y-1P?fP:C50O?M[!Q_;eHTr6=OF9B7)1TK_)8Td3JdB8HXsn-XGi?7C(b0Qorl)Li,-gMH$cnoRM4S\
%AUh*GE+<VlM_Q$\n)FBgr[f4_Z_e=!bt(Zc,fdEkBQ]ZFQEbD7'bkpFUJ(6g$O?EEH!(&'V_tY8j(<7S2#`72C%MLk#qN_dniR+e
%MWEL1YS0XUpHe91_<>L)U[q&u@8`YU!kOXfbsni*Mq?CZJH"*`k`:*4dVESS%aIBsZ6/UXrPSdshi"g@q*/9lA5\1(B12@`7V9m@
%Mqq*O<Lem#Rs=X=n+H;O!$"V)4tnk`$M0PcUGR>049^FS'2oD$*&F^;Hg6&"NF)-j%A9#?h$_PtGfY=1q6R6>@d![NjC;_dXb?P7
%0(\-VYI!h5HkUmg4:Lgpc<(+f5'N1.QV\!)I>Mp3eRt_m"$s3I9QaNu]?p)6Y%EM>6$@Fn^e3;Z$dN'r<'8aCa.rYPFM9("/hW*s
%8!_@Qo:j>(M9K-PS?4p,Z3u>#%-:bg1-&QBnA9fhGB>-$Cr?Rh61]Dj+O>=cf?qQ6"[IaBJ//?Q!4:hJ2^iiNhLH2F0t,F6>)RW>
%%"P/ObiBei<>JPQ_:fNop*Zph$`lT>q<ZkLEf#:u8\d]S9fe%H:Nd:g,l-bEreAU5X+*W."hgc0@Z8dEB*jHZFMp.%lLrd_Vi_&0
%*G/Q1%XAtLA!5X)BWc':8FY)$$Qn=%)rAIc)$4Gr?BR7ooT_Rim(+1dkt*P[$;;5Afe"?6,p1*i96sY8[i14!?0j7jI0r2nBeek/
%Bu^\.QK(hhg-DR@^DjdFAgG[ha!crs)\d(mY%8jV%23)Bj9'X.W+a<2b&1d&D:ZK2'c2=ECgpe:aRTJ7<^qXWG'2?,>V7lQl_?X4
%Z)(]"RemL&DkOlrRpaUX&S%])8-*l#&]Bl25L'eP!^oq./T*a<?/1K3eWbNCS'e2^>keH(E#=_91uV:I*u!4qa@#f;*P.EtOX=,j
%_+PMoacm1bc))1$TN3fN^-]et!Dj!e:DdkV4kk21/p\-$0bnPt5<0,$B^FH:>h7Ccn#LieolQ%ef@0G8%alD=?PY;7b<c(RH)>Ef
%hepG=kTZW7%q<O";-fAWA3W4oj<&>cNM&Hm?AF:=eJ1iU.*$`H]r(J%&o[%=215J7E7NLs`0aXVR0FLU4$7Lnk=h-Xq#ZJW`-j4Q
%*Xp6#E')Duc]%5!ola^Ai$,jh3Cit_9r,B*@ceEI[E4IU[d716q",j9-sEmiUJMX?rDM`E!iqn/&`'OLnuokmeA<J3m=(^!a=bc4
%ED8C!&%\HTX]L0UUr85:.r9$_X#Js'kgY%so;Q0)F^Nu>X*kD,FG+?:D@cS#Di=4'@*s7n,YoNufCG.Fi6#e.2hU@HY\mAR1'&\h
%DR.M+1fY7fo,0q,HGs-W/'i/M9/91u)'R;$3+(!_Nq<"i+Q5'Ym+rsj-XQ@NrW^"+XD3HlHkBZp+WY6DX[qQm3\\/N(!dDtPCU%6
%5;p4&Y1noZ2)WsI[21AD(,'/XJ'W%8II#6Qq6"O_+g$>CF1=*>&8q2@P5q3\PR_"L5J/::Gk:C37A[P]Op:lAJXu<+RY1S1VBDEH
%.7EN#>&o7]\G%Va1_DN/"_+To=.nFsU<As%<aW!`Xnm"[_'H[1?;.&,17n57^-X/jebM2o#M$'A,BL+0E1Wujk`7]XBKUY(T<)\9
%J]#6-W:sk?"slJ;(Xmfh4R@U#(-V%N01&ZtG_>8"):WQsWJj3C:>Y+K#HF`BCjrV$m?.m0-IqXP<>If-4VahCFet]a-dQo/iND27
%H^oGlbiu<n%W>)IY#8Y&IrGrs[J_W-_D7^kq=Lk1gjQ]f@a%4N:3qV4%tI$Bj9HSkru9&t.hD@g1?OWK%Zf'a+lh.nEY*SRSa&I-
%dHCJ+p^BJu[=+hg51nV(Xat-9R]@<%M2(+;+a<u@fq)tc3\;!g7tDW4ZlE/ea]chs.m+/jdd3/$&u`\rBnY#m1"]/-bp>1nAjB>V
%;u)`C]H,Yj^C@@?]j\"%W4eJ\n;96r^(C-ffL4?>k03]&Eb%V>\2(3>e6XQ?$fQr`^9pD@%sY17K=\]Bo[r&0@;;rMZ&#%6mi?3I
%^mu;Q/FE'rP&#u&m;5^d*7>":VP@)DoGl;S"tjM*OCuP!l"Q3Big21m!J1)r^>*:bm'-:iAPtBaOYCC2oGeGrMLadF0@(FJC0q)q
%7=WRoP:m.CeOOQQZCcrVcJIP1."*um1NINr<VcBi&L,/B#=[;)qqHt?4na4L&8H5bPo&r>kV,J(LSVJkf-3%U@Q/6AURn'e_)!f4
%5)OG7Fq5T^I5=)SF#:h8P(d>iM"A5jCNsYSE6hA)Kk3-ZfU8#/^(VjE@MLM"i0\I`&0BW]29B=:/It+3(;K7Noaq16j]>T0>TV*3
%fD[2^W+0JLmCl+5Lhoq[04&-rW`Y_&qeslgWPYR1&*-k(&]?VZC;'#mV<B0WB)m<kBbKl:&5B\7^]Q!fBg&5sg<HP'cN"2<H?8sW
%4JYc8e=U'?KjLJN=S8neY;NC-OF7:NJ14:@[N>nnU"&VRO0"A-h]d<d8n_X]^.o2<X&YF7_FuN&M-lOR6aRLTiF8mXQ/'C_SIa3u
%;^liP&!^iMOSfe+V67X=k6!W[h*=#hB.aa=Y^V"<QJs37aUci/Zu3(dmc)atRFNT!X7I"dbBh1)<hmXMM_o9%0fmn(4/#a%%(gjo
%k&_(kmLf-N8IqVNjT^X`g6X0pEhurd75LNKB]dONk/kY)ZodNVINFFUTmEg<R,*JM#kA+^_.tW/.=d&r9d4jh=1rV..?f88aro_D
%eZ-k]*^D978[Q*kJ1ZDU2-+j,\ieRGnM[4.DfE/X/q!f2)CJEFdeCC8iYHd,dN=S]5D8t5,[0>hUKfnE<Dk3B1lj-NRkT7n=ae*C
%-3g)'NIJ`+R@Z#(kY8uT*"tV5D)2;;gm`K"X0ZWA+"5InmeK%*GXYfk%\MS8=aG.2]bq%_0Y>fC+ikG0a5_pDW*hRV17U[..'E72
%8(#0<m'3ZcT=p`5N$:c5>pD(U-.BLnI/dLfDqo1$@76b8R^Rnlr7_nCdG?f>Z5]:F,Cmi!VH13X4Ee<R^GuAoFW"F'gCb!do`]Yq
%D(XC@h;SD!msYIQT9S4[ci<"Vp).*skMs91H@G:_EueTapp#VERs4kH@fgEMFEoRaf/Pt#6G0g7<56]?OR1.Tj-q0''OpE@:ogqs
%'BYK2<WL*7?L7a5!Smi4SnPfLP&nCo(U'SPj)j2o"idDs/(#eG+NR?Ih#V,q7XGZrF$<NJle?jXK;'?XLbW7QK;NDMR;UhE/O*;!
%#*qP+*TE,Tiq6R-F&^<LC'ob=@+<6;"j,!<Tpb?-EB^C4H8*TghmRjk;If!8TRqsjbjo`D%%.>:^!Ip0N,*Q^6i1jqQd%@j0K:EG
%^J64R7#AQ%^YFMV;>O2TBi+&#nEP]153tS0i"$@"=g2Eq35qh.VjSDu@=qI\,C.\K>'5W[?u4_+&lEu7qOD)t0(SUnO/8tKoEN`l
%[ec"u:$/el!cn(\%o1M+E\-;Oa54E\f9'>$Jkpo@^`Q"d*eC>mb"J!]k(a(B%SoofE6C:_9MBQ$2plB1!toI4Cl*W;a`[D[Y,i'h
%5jVOX8FAH-')`tt<aJk1qeE*4;_^12Mn5Eu<dJRmgKhsGUp5MKhC.V2H[j7UPoX7fM;eanTGDaD]q]>J1qB]_e3XpSKOjfA"tk+[
%"3Pm0d"1<]pDr&B/'/%iC)A0IQ&`,XC)ElDDmO#kH^1Td:H2YBeOf8'NkJ;RAo[(!d/nYk)/2G"?0ImApI+Li90&SA^g]TG;"dfl
%,0<>MG:C.;lZSHAV'cE_VhI5DP`KO`4d[@M:dQ14,:BSDkk8fA_T.n'B<q;*9DHW.&d+B`K9f1:0"M`D3m%n3TM(h,Igd\b2aS7d
%r(E,:]@dT#dLm-jUW`6o,8b8,Vi9k8VEG-e7$G"`RYt*K#O7U8+gR=rf)0BCqG^@WG;d'dbA7J$f#b"`S>:T&3\CGCNrHgd#I=U*
%7+<!C3?]%s5[>GR]<P&$K0ol_(Rq4@O?>Nl,UTARR[Q",8-]Mj<rPc+1U*)I,/a4q!(Rcq.)X!U`+!i27H!7F=H0JNj\_4uBs*EU
%r7c:,p!d2^ibUV?U;]^QS^<ZS@RB[[EOHMO\Ro'Xr-WN<GLD4?<<4P<_(J1b+.j`@Y!G\hNlt%$M:%0Dc(0V&A-NTO^3oc3P6)NA
%\0[P4E/?Op$c\f.=BaCQ?FFu5`FC.kdBXLmM,F1/ib6V;(>Z'r`mmf/fF`aiGr\050qX4,V`;t?A+'0TjAY$jgl+(5L40YNdV4(E
%G6U#b7lmU+MGRu$A0/!_d.`pb\hJ9(,=M%S&+FnahMFNe*1H7#6P+:+7nQ$)R>?[;7F]o,njQIcnT#N/RmtTA1I/EZEQt$GV80SC
%eOBs<`!?QK6*mnd!u?#@:WE#ZZgCjIFr=9B'?O(85W`VJm6&8k.A6SiSV6-B"bd+kZVbZ/+Ml$0RO8B-,a_ao:+.eRX1Q`"KC+i&
%GXJBV%++UF2g85]TP^*&?$#<Re[[WIoFE/jT]h\UQIgD(<QVc=)>n`IY7iTm.%-r!+E1KMqFA1*"If\?-&dM%2$(Oji8$\&$qg/P
%e*u/TH:QW/<ff)]E!4AX['L`\[RXk).cqpGH.^(Ac62mOjq>t)r3qJIk_kRe\S^!Ph%GM:S'2a%fqSW2?kdNH"X?JJ7XQWfBKqoo
%8#MQuFM!L-1kHm$ohPW9oB'_`%"a[cTX$N>eAB3bcpbR79pHdI&O,3Q."rk0b$=-FDnaAhb9BFE[5f3%<7[Ar!]Hd52.5)Y*!;@:
%=F;3AG-W[4FrAQk'Mq;O&u/\-#P]PX^G=_YK.eokkq''[_7,nL%%-k#(jD8s-F=1PD&k/Q+]s"#c9#7-If1[#jp^c<X&>EcQ<N(I
%fc_b*WJU,KG,FCW4GmXEEifGNcfX"JI,&1..-au+>]3P$l#i\A`9&8s]\>GfZV<>k6mu[n)D):U6u_22a[`[-0KVLO5NNFhL]_4)
%Z!0f!+]UHU8'Bhr7+nC?l(oSM-4_p6SJ&q7,-Z?uTYfc<Wt:E6+G:8kBHX@\KlT*A6[I9D0Cr_WU0O.*5ZBWeq37!ShFj`2DACMR
%NFS:>KFjB"<K/+E["+^U/Yc\_plD`7>$?q"[_,V>/1q&A`_qtdPo;TRd^2OL2-BtO"JiJC@3F+F8BKs^29hL9@"8QL&e#$7mVkB7
%.=?Y2!&GM#>in3"4I)EEVI)$6^F`+,YY;'t\q%%6AcO-%_Xkm-nQ[pXCq:?*V`o#Z+P@n'1(n[H/+o%iPplHR.)n>`!Y9mPC72c>
%Sc^mN:sA6l$OVO;=K0F)rB?[MBE*$i*35YcN\]U:@bF2rklC,/XD.1l3P5Y9gZQt)JT>&=ma]nifJD+BjW,$6"q%ZT'Q4-n8$8VC
%LO7G@O*O&L(@#'dJ#U*@JsUsQ*bTA+dMT"'F0Ats@:@q5_7:"LMe%GM?tbqc`6j`EoP"BGH#gI,pA<3^QY6fR,fuf,c`^F0Za]:B
%Kqh6J)JOZ?[990XV4^TB0rYqO3ScO(@*'/e*]9o.=$9GsHo0uT$GNIu,e9o_V(m3lZoD]'D?[s/+o)Ta,?'4qPX=ie!N!A`.KcrO
%-gS)UK,0H1U$Qc66quYEH,^Tai$K#ScV4&#!k;lKYQ]3E4Bi(Vi]$=b$dY(@8J&nt>g1MN3[Z;,(G$$cRa2]X3J<,:VUUOh5,][6
%-'sK%_hVPA?deC_7'abOaq@BOYqoV.PZ+Ai$RgqY7m/e,kU=AM5ckYV7tdXLc%%7\MP`ngQJ3QTeDqM!3eSKPb:Oi=GHEAI*@*(i
%5[RE+6>geWdCdDrke`FcfSD3*'Snd5midg(qUM6/!3XFhZ8$V.,2G!H]UpGYMfdmP;T)^n=sc?h(4q[D1Dtb-Uesj%`C!BII8)J1
%bb'gU2>F`!8St<o)+l)NNMHU#0'[Anq[,3$5Vd`?K#&-n`O6m6Y8]U)kt;o-2O,%pltjP5?>uo'\cdB2PV<jb\qF7UP<QeuZcW&9
%]*IIW%OYR4p)(Rb+R9,pc6uNP]5!O(d[3FTTQdQ,B%8,Y5*b']bR,/.0NiEKgRTN`<AHAl`<]-kIl'qL.LQiN\-/=>/nS[R`f*n/
%WpJs/%#Mh0GQhI_]T:"<pVP'i8A>qT#,/eT4#Jm_5,er/QO4tcm,H,V7h/b#0$QJ-n*aJJ>"_"^iRu^oLp!H2-5g,9E"/P#o&^;+
%,-$IGgVj1h?Dt.cC^75t9@9>E99i%edko%BQ+_bWc,b.FJn.?<c!W+D"O#=0br_n`(5C3XRPMHEfFlgK$u]0d#CimiHNNf5:EYK2
%/N?*E)_EBi\j.<gj(uBoUpepMcUN8c"[qup1h@O>F%PT)3>^/nXI7)&W@1BG+K9$4M1(s_3?9Rn3K6'(VP#T-BkY-^Hd+cFlNC:1
%.o&\1%(!;*F3Tiq(JpjKM!@0i`-"kd&bTO)cu[Y9Crr1HHL^I&g1hLp'J#>Sn;_eYKP,d&)Rn!egB3fLeST<aZqWm;eJpIf2%_?3
%g,q-j"ee=<+[7:i=]<dgP+!TsN_us/&q<*5g0B?9TPa(nc'F).MJK8C1"g'*Ci*c`SQ*nt\Y?;^7C/f>eU\rR18@Vo@`asl41d'H
%^!qYc!mUmqd&bN_VjGDu&8J,un[3KP""`#nq[G6N!qjD74=<6GE%%HlEgd@jR3ng_W22KNFQR-h>tT=6.hcZ@6!.RY5rQ?E0id1*
%`i_WX,rC8+6=__#BXEPMBZm$UD0)76a_iR2\/5IK`/1Pi)9Zna3#*$fC,iS9l7PCD9G%qB7&NZM8n'MP!7["&-4=]K_C=WpES"64
%:m8i_]HCD&Sij"T'>=36S!(bXc]d`_&lZC>IPMjQ9.J7+"jgo#GXH*.)+I_2AHM.[`6V`9*G7a$J9YMDGWiM+Sc!uY[j:nq[iGQ'
%UqYYKeM;Rl1ehi,\nSUhBL2Lle>8:uqU4\hj4FX!*LMPEER5\V'('iPiJ5Ja=XK$.I`B_GA!k1;.3M$7jEr]U#PNP1E;Qefh3V#$
%&bsoFDdND4p?L1tX&jd63tmu;D>QPfr;JeS9,Q_c?iKlYIX?3C]/f\`rU]Yg:4E#*h`_#<c&9dAc_#^)i'3e3o#iu"O2%:cr9l;B
%?e)o^d=5$AmXI:r`Q?qcrVkgQ/cRi$rpnrR^$5Rlk1t7Z[pT."p@dM%qP0C,H@,P^g[!$a]??i)dpKJsn%QKHIW9`1MZ<[FX508G
%Ro^E8lg[OW5<,g<^NjJs2TG8W)l%1J:WMkQf5KPO^8>N8&([MFa6i!S\(>O>1Qu\"!TWQ[nb'lebMV/_rqG0Yf^BlM$mf38`ai,f
%mcX6-mE7`\hHYG(XabR^j#1N0#M`,:op`!@]5R^kFoCf7?JU"NNOLX=DW&;)Tr,S,;6TS\Qf$W3^3[+WicXqZTl'Sqk3_R(o&"=<
%^AIV=[uJ)2HF5q;=0M$Rq&:Sa4P5,\2r@ot?G*gok\7_[]7/`g[.->!(#JgQ5"r;4[Z)TcUXFYl=@W;aouR/Vp#=5EACa3lL96DA
%LYL/6gWQY4Iet8^ZCOQp]IQ&:ih77flJKAQeb+.D?@3Kr0b52m0CBAarq"[jRg5S\S$2kdjmLBsDr/3S;&fK1k.WA<'@3YI_%.0g
%?iK3YS's$N!n32_0R\"h;&RI@hqq\P5)N%g&t(XEG^^op.;iWR7u?IY1&W>(l(c1=PaFZ,&f`3p%lO?]`'b6e7\9IO`3_gel/+,M
%^4(KQn`n`XDh!Y*^Gh:)S>>]JrM/8'V"%RDM=9ag-F1rX]mfS42j`E/?-r%)''Z,4npBodJ,&/qf9[!g]FA5))]o"i>jII3@Vk4B
%n)&p;&$hiI\Hae]=O7ipnt92)qVU3%idU^ZjmMO/`U.a+Rd0*dngF*k2cm3>4F[Kpq*Ct"K1GX:Ek]GqNQls&alt?nB(1/ae,MNi
%pi/Ags$&`^_#Cj!lZKnUIs?<IZfA+Z,Of^AXrk#<>V#J0gYH,lh#>LS^:dl(q31Dl4T*a"hVN^&Z+KpSGOb1P2WFP^%s^#QIDc'W
%n))s6\pX/VA]7.$Zo@EbkB27FlLgX)8'GaQdqZf"FO^/Z&Q.E7,bAP7fV"Pgo.a'hEgQY!lHLD(Y3r.'+3CYa<32*!UJ=V!f,(nt
%Dn^XFq.;.HiU=7Jci:OO_9o?'gR%sMF>`^fpnH"B4mWW+qFGip)X(r"%pn4s%"3NL\*S=*[t"?*hQ]/V9)n&i?dOScSZO?nYMRmJ
%nWC$T[^_YoXT"pNpd_j8S;gbCEd329G;E`YU74j3b4lKePM+/*%WIX-p#Yq7f3`uRn`&\LgBoV/q#!^4GB<Z;[l;ntIsm.FCfi=H
%Li2;fFsVF8/G\;jqI1suL\p/RLFLGJ[UIM^me5YZe_:=7n%uDj6s!m.n&OO=!X*3^hWR`]86\+ST/deCa=6sJajA)r:AFKOpu3Y_
%A8GcNG?>%j^:,%aqYc?LYlEb:<kJ^q^#sf,7M9VgP5+@FOT$=HNd)diq2sZm2r[R)l,OCNkBj\'8)l$/hF;D(K0$O8U[ahSfABk@
%ln2XO^3]C_Msn+LE]fNAhIi\@"MOc4:]J=m+IbCjq`Z-`\@W\?3W%%c]CTqo?G3q_rpoXVEq]j5s&[sBaSrDFB!V0$ephLG>5Q3D
%^"SP;jPIs\HOUeZpNS15afYPd(U_XXG0\>>(b^APoH0--Yn7<8a\U_^0#<_g]oB,lraWbHGYh]`:@\?Zp\l&AIr8bfR+6O\Wh27<
%JH,D`X/hT]/)EK=Jc+ZqqYFV0biRsdCde"Aj6cTl)Z?6tr.'.b_pSKKnW[(l?_,s+S!P4R];?"E+9%b!O$rG'"'m@0+!_La:\R`;
%T3<cCG)u*nXPE5f2\5aQrquWXe`Fb>4?qSf=8.'NHi*C$&""u?ip5,ak`d1\C,R_O>eR]ErkZ/#?Et&Q,L`n`n+!8n/oDd)7(WBP
%`Oh+7()ug:q+W.l*b:Kn1'\idLC%esH6X^4acaYE\Flaj)B2iVI7`IIZ79^E@JPkg.d].""eVJ-`)`3'8T#+22TC2fK@msd4C)%!
%gPBG)=Foat[s92Z^7upk7\>[<4F%mVn"6d.`,6gNQ)F2")a=324$mcGpcl_0@OihhkQl1SZp#d+LlI3,7n8@G^'+`I(E66?4o))3
%$Gh,tUUQAns3Vf0_U/s)WuULr`9o![o;u8_Vd/hQXSq="KfJ5,H:#?BboGRfmInT4m[Gq:IV.o[WN68Yq^_TS*Y4;;r7stOW2J.,
%fZ;F3QrbhTAa)GR]OL%_2qPh$O;%,g!oG_Bg5l5.IMDUe5G_%<O%YhG&T-/FPNBIW\U4har=/5X<uY;"@nOcdJN=DlRn;JV,dot2
%2R4#e!d,bb#8=&ZgREOI4s(Mfg'H="60Zk5dUjQrV^$IJP,GFEViC0S)^%oq=c&3)4DioViI+DK)t=A^0@TPXk%aZsrG!S#EkEP;
%re?YS*/1NNOGtg7a*C$9nh`M=QS3:F9e3K"1d-n@_$m7#MfC]cWW)X2>6"1_rHJ4t0BsWS[kYGUFnt)L6up$Aj5/nM;@9-g,f0jl
%8W7XS-Ci]F;(eAU9]MKHV^H<$9K:'d3-W]b1?%kPn_N<GS)6>%\#s&N\GYLSec"%EJ+=VbJU`D,rEjK?#43dCZL/;bL,Q@IL\^[_
%6l%i!^]45oj``Yen#&o&_4BFk$@d<4OUB-):-#\PC[mW3oM&LRp>XIAC]:hf]0;nTj7Bt:)i:A:E[]f,B[d&AHrJ80POJ7bmF@\E
%?XCJ"$E:V_`qb,P1J'DhBc@_YJZa`VhlY_id)4_en+5Vm>&5PqF>`[qYOPYJ5/-3LFppig8hfQ(?I<Tol939(p;a5K?XEd&qVp=4
%>?T-F5>Z'DEq`cq>2oJ=1i;;rEFV19/:U(Ap\@oBq(S#WEZDgGd(qnL.JGg&XV`XMofA+6b(&o&N`O<OUQtBl[Ne9mjYlhkBVjM$
%kWa,=j_q<9q<%)1bNG*rUe]qu!nl"L2BpM[bNnJ`^O>Y(gWRcA?dtQjq*f_<Y5Wb=`V3Fmf9^Ei\@m:[`QdehX*YS7+.m@kXiLBV
%7u;`)0s-'3Ugl^.UO[G#OH'Cj;*at#!n)"il;#'>oDB2WjZWr;F*V'+n//#\DaXiq#/$[5s)[l(m3>L?c5W1-NVCI'0mfG7qa+E_
%D61](l+m%d]Xt-p\3o>*Hi$NcgqS51Q&gnM!q(iV@[:T5cYm,E7K,i*2YKVRa4o+%o;F7paFq,:pQKler3[/6[kXlTaPVnEq!u&?
%?0/qAO4ooG=50I\("'Igl@kKU7r?FHgN(fPllEI.[cN-;kGW5X4_e2]g6VJBBHEHGYCBsD+'^!P.Z6J-[Jd>PU=UlhCaPV9;cFUI
%O1lof":>qbRXb;5GEiJ]KZ7RRF4qT-h=Gs"->=\]A:NBiW*cPm\rCDEUjMn?U38a=g:XtQI.e_qa,p30ICZPbhYcp'lJ=J^,IuKs
%9N:P8]=feKh(]Un47VZ5#fY\W4mjbmpfgno-\UJtAa&S%MZ4!rAK*Z):OUHqocucd*SV^7I=03r6^j$LANl9dCb%k;VNpr`d`QCm
%p&$(5b1q3Y5.I<RQr<)=Qr<':Uj^9;m;9oS)cR<N-h0BOc5WIL#6[*fiL=al?Z+:ljDe8\L<!*AqY'L!L<e>IBV0eE:m&u(e9Ia>
%Y(hBI=0T6/s8=?=r8V@FX\t-K#Siu]5&Ae&p//tT?[d@lioY1"4JDeb3N[tGUE"B?K8t!!Fp_Otje0k<1nUZc1iHmf:Q^:<1A%=]
%FHhE<EmU\mhuh%d%oV8jOFFWt"l,ld&!Gf:N;`52Z2a4V`?TuRiinR8lYu_]I!b[FW5tTdBe,C_G^o6o9u'6B'1Yd4"uQF2H@,P^
%g[!$apP.-=e#hDN*k._Yjh4QRI!tP]o!c)ps8BBtKDV7k/S-(#k4[s!K<BIF2A/J.KC(&Uk2tX]D^9Zf%<WsZ5+G.%R/Z2;S]3D_
%92Bkpl!JnVoIlh&ns&n2&7i"0]H#ha?L6NR>lXfcC+GEef&M+XQ$4/Z+mrAU5DFU>*ac,iF[)^(DdWL;St>BmFq3>#<Wt_I[0>g[
%c0j=N?!TZWR9)=SEoV"1W>kX0=tXu&Z+o`47Qm\2fZJ=QNPTu*IlAAgpkU`4Q$#;<I+ZFQ*hDfZr=@q`oS7?;2A8l2e/j),g;ACG
%Qi?-@)148'3mD1SF8/VBo\n8.dl68^n`b,ZT+AE@SI9r.(I*1onR7=RZY_80qtjT6A`QYZ[MZG.r^4=M2D^0l]Ib$Xr7-5K2NBQA
%;.f\"AYr8FZEYDsl:6u*2A3b#,7.'`RE\TB3XSSOU$99o*/18bcu]tjN^D426ISC<^.4l2K0n$A@/Zu72Ep++[J(n.gY%BEb"]W@
%_#6_*Ugq4=k!E]F`IRi@n+Fp9SYcpHZ]Bsl2OH2V\(<Pt&"Ta1e"7'aNP:2/4R?prSLN@e)S^X/$K3pcL8=7k^O1HXZ26amS-jB0
%h8SgIc+AJYN+,hcoBBrd50m;V93:7)C<WgJa![b/Hp9[iR^30fDs1lJYP\?<Ub:>AXb?M6CFMH0ZJ/T?69*QP%b!n3U*$o5p8/0,
%I\*;,VRGCm55dX%L2Z-JrD:aX?0t.Kf&"E*p-sIs8'^/[\o2(Fh2(sM]O-rn^O<_^YkWk9KR]s9o8YBQ@4]tfNl$pr3c\=6rjGi7
%o2F_U4u"AfBBES$rnYi"b=?M#)ke/Hj1]kH*uXg\5O9W8nk!Mu58i1f\VV;SE&X`'rk'lX[`YOug4!H@hsG8p\W54u[o63'$.[rm
%_A>D4)Z3W:IG,Y:K3*:J6\"!.nAi"S,B)8DB(;[0CkI]?nL<3$AU;3l[[!ONi@3O(/,Y'uCb%l&hl#gCK^/r,akQKFHckc+]_eqP
%kPoLZd!P-:0gWpI&sPMg)k5cch^_FCVj?(W.sA$j5>TC"P`d-[;p*D<^UpG(*f@_d/1l>H6_jZpW:7RP&\S)DZi)5,nA@1oCQHTO
%Ee=Vd0Z?0qo`*b?0130&8PJB^DZ6Prn6gUkb[C^Y%8Gmnn"O=OJ</o/r*cA[r_kJkp1CU[6QQ`Q5MM!)nrsFXZ]/5TpC>%>">!n:
%"hF_ag.Zh/Vr$HnEOnq$Ir1IZI_LhGT*@CCDtukSA=n1m[n!Y4@q`b\auUTZddfIj%dAJS]m05HRh(Tmn$d4BmJ^URp[^,.VDf;u
%DroN\9@:\qqt$T4)rp0P1s4XAh_2*04\>Zs4@pXk,X!ZU_s'X&EmRtcp$jS]n?Wfm7^DXsA-N!2TBP0=h/6bI5:M0Po@"b:K)+Fk
%:><At#6]<h/>2*GeK,_/$(p.r[RHq]@sPDo5DeLHr71K52V+Q6f,o2g*k$!?Xji;Ss,nV])>b)*Nhie9s,`s"S!h1q77[@/c-;0]
%hHk$[<BO;%3W7suB>=<;0RWPsY?k>m&V:W=?iBudeK=+93![Bi^q[V]ld[NcLQgVFVg\',^3o\Gl^R4OgU@u+?bZO.3q\]qoN1]M
%J,.j@g\O-a3#S=,.E']o=UHJ,s-`2&VNMVk:Wc?/T<U;QrtC,u55i[D8TQW_bIdV#r'0irs1:UI4,p/Q48j[/^Z"egFoNO2B4YE?
%ZP;G?3p2(n<L2+#'jcXKos-u;QY5nHSe;g1c#LjWNRJRZSEa1R7,[to/9R?Cg20s?6u[HQQJ*pAe$G2FG>KYA:\3h#ESL&#:@bOZ
%Cm[\>XJ@Vp\E9d990P7hbUq#E<5QQq>O'PO1.5h\(P\F1!K8I!V`EAjO\VgE7KUVCH)br=l!S")C>6*HcdFd"*c,[jnk<F35gCU,
%iE9>R#0X?Cl>3;L\hui`GclCYdD7O"76XbHXME\-mnUTj*p3=20T<T%TmlC*G!(LEmDJ^8bV<T=0sAF`feQ@1"sM&;b<CSl9AM5V
%a-b#Kp,X`r7PU3&)`c5;*PoTEVe8AQY(M#HrJd"i/CmOV8No&O3M6;=gX_W"]Y%Zt<m!O5b%2%anmnPK@@BY'5o=48A#Su*L#DGO
%a,rSeQ\PO^Mp$m5^etCn.@?EIPdl@Vc=\,T^rsUXQG@fpP0@`I`m[$$)]LNj/Ch`$'DPJaEQXJt'qE0*3/t3L$D+#F\`bdWENp"N
%a9OZTI7i'VRWQ&ZN3.`CN'VWm?6EC?\e-qMrE,"E2I]GS4=3373TWi!+\'[lQuZ"We.%W][F"X8["D8C:sNrA>PM<ZFMqj4lZpUM
%I_>k876@HgAt%2KmI2[Y'<pbeW)jHG_5&;(osg;2aCpp'Ub1E[-1!5YC<(EHbP3UubG_>'W#9MbR;.4la;1IO"I<\/T!I]N)O#]X
%dC-<gN'_FEP3Pc1ZX/K7N_cM'\;^9hZIH;BSL@>^WcrUDqc>Q@?Nie7(EL=iL=2V`=e6cEa_Q[@;Yi52r@+q&?"05Q2kkJ"VKqHF
%:RsebLnVRrFh&hFn,?)Ej]NU4P(Pj\A1RHsUL*S<./<aU\^+h/E]o&uUf9G%oo-R`\-*sL'jbLD"bC1/!`fB;!2QqQi)l$TmmBim
%^d4TK0OeRXl7:7flKuu]e\."6maO*ld['3NUo832h0f$!IA=YAb;Sio_#'L5+,,G#Q'rET2qK!+"spGF"Z_k0R]"S4GW?"O&b-^6
%TY"&#PPS@U2Pa^Smn5fKAZ.iYhP0kCKtm%_Xh#iH89t0NA`=/V5-_UW\Ph0=ktkk\Vg%PD?)E+#HP0)'6QO^Cp#HnaBH_-9HWes8
%/7XhF<?H>N/'oRaZ5d/?P)qq"lN$aTnGpI3DtZ:CCChi\@&ts.0FKik"-5LmBnrdjQBtGd%_>tT.CqoiWm;Qb:F3b31u'D'dR11(
%-3dbc+jW3P;NdW6S;LXf:`l\<q_hGhcY`"6VO(p6A5iYjA^M$JF_Tt#oY/WArApr8o<G9!;!C3jTG!7",_6F5:GpDh:'\JGFKYE3
%9gf5DI"&0sUkP::,pZ-@!`iK*8eEc=UrtM/]haLK9:#H3VYX(P3HJK63KDh0Y]'j?;bXuO"B0P'UmX:eMThD<<d&-:LS,9NTubK:
%q,u[sO?e7dGQ=_'-;<33W)$,?H:p'mZ\%j\a'mJ]*uB6dWIkn:^*Ih^_b:RA9l*EVl.%56RBq2sL90I)T$*OJXZ*j'IgU3J/5ROr
%[:fefN.q"V3f(YFdKmb/;i%^r6A"MJ4#,2c];j<cb(,F3h(6_qN)crL7TR.X-%.J'=W,4NQ8V][=C9N'nqeMB+Nc=fIju&6%s+;L
%Hi'6-(p"jD56B"PjG2<--H^5a%Sp+8;r>"rOIUR,`4s;,</GBmF93JQ@_G6Y]5jJ'^jA_VZ^cY?5dRO-EIM'3;QBA?q$Ed2dkpBp
%'"pK81(U,i/(Ji3p5?*%+GV2hhG1C^\tL/M*3QA:rW!]qO#WYOjl]4t73]a9Pci:kSFj#o_?JMk4;Qe+<;/Qj-)!]^??lQ$]]]Xd
%=Hlmf",P)VnEV`,<?>CoJV`CRFKOi?36A)<qOHe5.*V_=Yj1bJEB.WV(.al#3nI79CFW3>N/*p0l@aHI)bO`c`PmCKN%;_NVH$h5
%acnq:odU>";0T@*K@80fQR:2'_XMI)/>BpH;J4K*,`[lFXB9rfdqT=-H9*F9LgjY-VE7Esd?OhbK9Ob.i+V\t-mVt!4aO#<m?]+&
%)*nqM`\`TQ8ODC!K"`XU(T$#_4s&AGqIF4:=Ga@J?M2DSp4D4*`<HrJB!e,l;9r[,!T9-flVJI>R;Ssi3Qqd7R;[=]2s]UbG3#(\
%/B%'5A)(?#&pNr1-eX8!2dt[CE15n:R?1G@E:O/a+?U[gfD54L-95q2<.LLYJOtOc_FgV;qh4H43/b+_!@4b.+>;nn/:?uDc^tu/
%V7`^"eE[2IM46,(8IDAK&JX@t(nBYF<0.EXJ0]6Zbj*X+LKrcJ5Up>k_bX9\F,HRNH4hS+Va\R_K`hst9pOq?&@7sg=ST/&e#JAA
%*#[`KRASTT(e/pRQ;I(NOBaXt@o$s>.-jc$<?EFi(ZPP]q\'4J$tDFb=\_KK/JH<K<Dob#!LK<0Ad'PCWjn),TJ(B"b!O3]F."ai
%lH@D_%f$n1huqWg:WtK=-5&hg^F+9JQiYH#5`q>\9_W2>mrQX'`Hp`Z"_+;P,P.oM<\@i)i`Wfu=Y1qVFcc9JNMGt^6W)6CWRSDK
%r)#J7M$:/<SshWLH#1NXcXskRok4ZP'85P4%d6b,ojt=#HfDK0=sAe]eZP'k\TK)G!>%5@lWd?)BIh+WP*A<V&HQ2>H8U@_TZIsP
%K*moQ$G$J#r#Z?J-AD/o%VQJO.<W=BQ,2L%9[(V/7BD83cYT1AHr>87/1u?eijXM2,3r)=M&jOH#a$!\/*"('kiS:W0k;6S.*ScS
%`.C?`iL".i8=-51dsf'`I`",L);$\sEk^j*ZaCh:3U$:AZlfYl(:t]S?(C^CA4QS6V5Xl\GXl.uHpJ#`U+A+<_a(h<QVQ%VTq3-6
%V<B0m52]/)6taMRjlej9eHAP3Z06h<</MO9U^FA(/dm;Ah(g93WhiNOK;.VC<a]&GJ>Pe=AEe=APA9"?D4-&m.\1/r-C.6gA=9>[
%=4WSEO/H2k#4%Zm+c5jP8uHfq7"n2[g#S3J'ZDkfMZcCm"F0t\1Lkg9KL6tQ:rK>7_,'"3nEP`_X:.Q0Nk,k.7?eF\<oNe=c4Rfa
%kKpXCRgXH_2"oaX0j4gmnAja?`Yl(#@]`0a`:[`##.)T%A6qWdCe:W<-EdbJ0kadI\YM1+6#KC[EAJ\_k/ZJS6dX"EN)pjJ?@A,n
%'J,/?Ne)*;:73s$5_REn;%lo*?d%1'1aIlBU?\O3XJ]#Xin@U;&S,X>IcVGLAu9&p5gg1CKd'r:Xs/h1`!`.Z;E6.`7-sZ`HUFj5
%o-3=B8pUs\PU_rKMh[\?227j,5&ol!#k\9LaB#%VcOhf3=OL;Yn\QIY&NZ(<\R0qE%VR"+/b_=q4EqUDI<-4RC_(g)%#]!uK^t2E
%4,MHj+1u;'fk_4.JP?ISMe[r[dL^P3qHWM7!7_S*,%Jqg)+(>KB*P&%.YC,n`HiEd8`/ciNHQ6JQBi$rYBLiLHLn'J1&97\:7Xop
%FHTeD0D)c3E(Mg<0Sr3.Lc7:p,nu^q<N<*9<Z6r0.T]=4;+=EXiHWX65"=>!Wm&K*i(Qa@b:j,(lgM(^7)Ns]lXE8M)!&b)epsjO
%P6D_9.>g(tL$N!:aVp-&+=i2j?k@<bp])TP<=0^f?0J7*oeP-IM)d(J33,4ic>"jRE"Z3/oF\*S-I#%D%5NH[#SJZ/=EuZYlB=1Y
%ej7cr`'qc6=<D'"h?n9.,AA<So5nj8cA#2?&_d3;_&S@"ii"dect/^Kh?qa3eB8nD%JWg58A`$DjE6[(TPI)e4]VN^`^AIW@8`dP
%"?H#Lg,d[E%AM!L8En6R'kX!%\JLH.'XiqY-&VUo(8F_XAG(X&9mA=(.L;%*W,cKc>:'sWZraM'i(]CI^mrH&jNR@?$#7aqmJ+mF
%@!ud`<?R$$*^YC%oR_rpXmJG)Dq9GXVt'E)'bH?^Z-i6sR2,rqd7BQBR9=Bgq!"sp"nZDbl*?*K/AbuJSu4T!kKbIeg2frXTh*P[
%_'I/DOq&fV>2B&OX;:220Pt!U2c@F6KUh*YOhaJm[5"R;7hK'q.ALf5&8##dTgD78gR7koL"(s"`[\GO5b1Gb]eTrXTgWauD\ei"
%7&Z[]]UCXUJV(2.">>t]+tPn`3(/labudZQWd9#hX\1t\W3*e<"Aer_&m,s].&b/BB`R`n+:3r]!g6@am6Gs&8fm9?UP"rWXMU49
%!<g7Na"g[H$<N[4JsV(S5)]O#l55@hMWUdsiN/+4980]i7-,f8^-7\L?TJ\$p!E5,*<8saBn8*-qXUS<1lXr"8%#<PaS$6,[)u7M
%c;R_2[7`0OanP*ZLfTfnQm0o-M2<[D`m4lqp;W+O*@*d>PA1B!D9B2&Y!,5g9QmiO>=]'iLmqG,%1BgH+s--TSh=fK?r3P`S/+Yu
%D$9AQAmeGd/eZL:!1]g9Cbl\8@O=5k;c"/p?6UFY`3I:!'#4=-$D`kWg5-5Y?iXi1)=aZ"(8/]O`LA@)lEqkV@6b(9!7"8$8P,LB
%(os=^M<Q#e=U7fX7@@IFVFK!b4`GKu,&9g:M!B1#4^,2Ij^aq-@],A(TY$S'3<[MVP'TfFg*4ThkmH(9.D&m#K.A090ikC>>Y0)S
%eRSRU+R4T*%gQMH$>D"bd4r^*,cs3cn9!0\j:e@5$`\5Ke1*^QjYA7/WTPQB?>974Q4E+uQ=kRdTn+Ca70V98PY!qZQutq&K5=UC
%A#<aIlh+p$_B4p:@p3iYl]\:1<Vc[+SBi\,dlrBiZ:(;G!_adTb1B.&_kcg(H8C^4P8.V>XV1RF'P)'u3?F/"FJ%r!_=:4a(dd+]
%_b`Kom-B<"X41HFLqL*Cd%)_bGhBc^qP&^:'se1OPq3U9Gc>a/&PUp)"`"rT%U;[07'E[S^!s<4r_*F4dm?MY\XI"`-FF>-&:u^t
%3FXmNhd]PSW.84\'m7G'!sY<j=`-,PD:-EI]lE58,n];U^-YH^fRKcsaXep*97#8/r%N19kGj;JWC>m]OMn&S$tt96Sp8QS=-,#?
%s*=1--U7LnQbU+[dlG)>m&Ro!ht=b`q/-)6Zb%3L?Lf0JFFB<)%WQr\d2h4_L1rcqh+UuojDZG55/cRLB4$'cs$IQE*mVJQPA\Z3
%hFuRk"8p38Mh=.5XG]UEO@ebj]ZBTY"8p5NHd;'MD8O:4jP@a[*9Q.3i>pj?AmIOT.h,cHc7_mq+68iE/e7AFZd%>#QdX,Ab[ZOB
%365`)#'#`gRWS(%2`5;tOJA7\bTX-(D-p<R:bQZO%WHu^?$X!pPV23//o/nS+\lh$_dhNRV"GmkCY4`H\us_`P%pSKVQ/eE_Rs]7
%-nJNj+4Q!R:QbZaY''%W=R3N*<h87,#L@NL_@bVga<lBraH_as36[db]%D4>'Dru.2X03$QSpDNe",3gLP+C9\;S6EgUN/o>hccD
%_joKBFrfZ##"!fiK:@tjK3[2jMg`1#S$<T%GB:)\n#;=bGe3WSh;f(O3P3CQ3Q0__#O^gdDt\iIb2l@3GC\-]<p]mr2qcW3*8fgb
%*T[&$$1e/[2j"sgEds9**pWe2+nYgO3:>c[-TLAM+?)9Ja?bi*OSSWUiRWL'JhnD-oE3n-A/#8/`(:c#\AZKE+64+`RsgB&*-ZCi
%@iT]4OD>j1E0,.2oPfn=*-ZCiK:I%'OGb*&EL;r[m)MD0EcSAoEg2b?*pY:'Qf53pEp3B#G<*n:!/ET!iZORJUEWKXRKG-'^hjPl
%p&U1p?tl8$3X=d2!R>b2)%LVX1JQ6F*U(j=/n2W?@TsF62i1$.\^4'gEkg6XIu%US+7tgDJ%0&diB<6S8D\]rF^WH)EioKpG^t,]
%ZmQ)<fEkK(Ll3;+l9-LVP7X>RB#e34j_-%$mNZ$)UmK+_gI^_O]%]gBV`W\Aom;Y@S[:Pukmf2M"5N<<L3^Aj*A6j_Y'7C,:NsO:
%`B;6?%d3E`#<^E4*9;\V(#8mcGbW,;a:1q0OTTEMG<+^**tE>3K0eMtLHOh\&=5LAVGDEYK-'h`a#s:Y!7s>q3t?;VP:d>bc]]C[
%ER9mj%W]r1G5WO24`k[oS"=_AOJ<jl`<!,fG3\L9f>A]%m]\(&4NM)0\i@K>:HEa3gR^"CP9'DOe\8qH:]><hqk!G!O9;*\_$@O?
%M(!h7';'AdJ/b,^`$(.g\5H+Fjb%=1l-=Z9D?m]C8J_UloLTipG3P3_+6:paO3Q/0qQLG73;2%U^!!qsZ[B?2+5W,-48>4EjlnCH
%d-Vh2j9Nrp!H*@ld,aB!SGrGY:B0n"lG*>o*k/mMF66>K\^MQFS::A#`Tc],0>>%\IE<@9Io0Eu;?'Sps'Pc/qHr#9r:/dkS'0Pf
%IsCkQqWcVmDf9O.r9j:<h;tbSD]cIdGETN)Na-bB^4(ESqR`6On%QL"ZIrq9),=pZ`A$QV]jK4!8t9#J4Qhi#\l#f\7+D8lS;ULM
%,!EHS^LpFqPKcXO&.tlJA3,bo[=PjgJshf90JL7,?reLj,l>5>,u;L/SgH@jf@.g-KYVn1``^&`a[T-hD8!'JFHD_q-$Ti-aKIG4
%*eVR_C^kEgk8L4q-750H*g2D*KuN9PigMX)4s`Q.cS&2/N7pQ-iY#)f5t6*]8b8a82Zd-jm_L/4"%]Cg+1580OqQIU'dYQ6&48%g
%O!mDie'c&8#FPp3nc0=WQ;QDR*lBYu`3+"=*)u;!bjdBUAlVH_C3aC"1FTjrOHc?(JU"q%>91MXc4CBgEMd3kT;4YLbT9keOTk`L
%=\g$^?qT]V2%*4#k2R$r$^6s0YU8-`lc7(Z#K%bQn2h(sAaPGLZ[@XD:K/,qQ<j]abhoWs^<#Y=iIEd&7o<*GP2>=YMHZQTcAR8t
%%4s^[RhaSL/0pE(QX&$a%k"L^=hf`*YAo+p0H75qN/YVb/5?-`@@JRtg5II7djgmQ/36`67<_tP6!`SC3`'_tnmOm$)"L7'QE4pH
%a<o:E1,pk,g]JeW%Wno`$fFUS:r,^Eo3#>q'MQBZOcRkB.:h*Em9kKC=aYF-\oC\.b`&H\Ctc.j4_,S2THq3U.m1)/1Vnu%,%4%H
%AbOtbK5=)qYh5]#?j12Jg^^1fV?+V(NMrV+`m-C$HZB*)1Rs`2<'';P8br0pZsD)_TmD<.SrGuDL8(!a)&=ne#KTb!WrnWYNehVQ
%:(Kia^j0&QhDt-\bHa8jM[FJ6Ao\9e&O]c>3ZZ2Z.\c1UC^B^[b;A4sVY5@ZENK14`F^6Af`VLBRu9>ZZ^QHp=Q^Us3/AXVrE`5M
%\WqkOXn&gPIqa!R1e`Ac;798jYm3Q7q*?200sU]Jm5:MVE]Q<QEX?@;RI2[OZj,NQ`.<"G^?1Aks/\uYVhZq,`)=ANRD[HT=(2U&
%3L`F2'p^P3D_^e*FPBu,TR_Zb*o[k)+MJR?^'U`60DQ@3[?;@C;Z$cR#Na!+neGM+H2.b?0rUF'S"Jg:d39,K]R']Tl6!lH!EJZo
%@>_]Q`ea)EZK:)`-VA"5k/E`-c40o]RRFeLkgl;?4rO.b.(fb0YL]@0r<2:-NY%-<6o$<:&n4])1B]>i"1G0(!5YM\0WU,UOJC&Y
%MM"'[BZI%l^r`U4!?Q#1MO[G%KnFeI<R.BXb]3o%=CQ_+"94HeW0Fg3Z:[$42MFU^MA@mr\@Qt1WZ'=r3`87Z1/DV(1uWde.S.c>
%!`nM=Wm7H^q_-m+6>V&UQP&6tXP4/s&IU'%ZuNsl&/`?"JOhWN:Nq+bpu!sP-gZdt03#3uH:BoG`8$25RbfZC%!I%Y(+Jk)SV!s-
%F&Z:dN[!Wh1+!81<OY-%XRJ/\q,R*^`8%?`a!<4Q]+]m0!skJfCWjO<$jr38#4i!"0^FkIFgN9-p#(dmb"5#ZW9!IkRZ*?Ih3R06
%3hKfd(",LSHGU>_`UfI]D"D&XV=rm0)0-i4WcC,!1=Z8Y`,C[1+eb@^,6>,BTpEogiFu>&;+r\'f,pt8P1a1Cd:p9f[b)$0+\%Y+
%J==90$BGR:"_KGuWttg;KaJbMP@EZT4?,fQ:,)D_b*k([#]hNS]SPIpRiO=FUk4f/"U3+I%%*4ajKa@L9!M(6X!k-<Po!5PTm:R\
%ooq^^M]!-%:<-0JJODO,d2Gj*ME(+2hG-GH(0K*bP/gQ8IarY,"X\h6Z'5j!LHDJ<?bg)^eP%/=2%kWi%EM(SZ3Q,3i^BkD'ANm0
%dViZDLkN%(5-IC;NDc(c09<_!jeVTP8AI5!+,)/E7mkD>K1V):C5!'/M^&(p?:-aWl98#AXL]+05`4&/m(%XFUi/!bilW^'^Q!d1
%/L\&0Os6_)'#Fi4W2O2^kt:N>[e`E4V$LVDY#qdIWtQK^&jf-+Mg@aLd(GS>71kZIn+cr;kWpO4\t^GjjC]HA_KT2=HIN=R?+jBk
%aR!Vs%f""C(Edm:;_W9[?(O:iB>3UC<D]SV5Vt!LGfqeb4S'FPUIsS`T@kcU.0RqtGY5pO+sgU<U4m&Y>US3m29Ct(k6]g110?/V
%PEKmKo(+,5n;OX\oU357AiYTC4OaKB=[#6R?KB5q@+@Y&+c\g:5m:5;r%q%0&sCVG^9YVn1GuM9"f@_&`@^A64X(+#n"Ru_bUk")
%/2(p6_Ysqa$j5As3#0p"`W&&_0AW^VR$'5)e<Y4d4_SXe?!hSr8G"*%QJa/er#-km^'+p".k(fThNJV]Yj(NGJpal26s84J'CQSk
%*(8`%TECk^0`DcsOF`ko0MA!MlkGRO;0591[kkIo0-Yqo&XecJ/1ttp`?AXupt.9(9SGN(N+S]V34.)I06+757@<%Q5,D,Aan6@4
%IT#ju[;<(CA.!^rl00h#d4/VLB9!$ZKBs/ZW2XW=AuN7R4.!q&BC%=fek5K4T#I3@ZT&1Kp(MbXqOi1;6+4oK>AGH[>GZX-cc?0P
%e0;iJ:(`0ofg/R?R)F>X5[j!2h;&_)8)dL*#/KfT&4dS[X:]Ymr&A2_+?Pd#+S3tN&@(CT_i(b!o<d^6YX3&cTGFj%Q)K9LZVTAm
%A=iJe*JK*>K&R>5R_#T#T1Rkm=:!B+^#)`K3-cSWT>X/ekUI+=L7gjXbVPE-377b"Un_BHk)g@c_PjH^"sVhqKe&3H$&hAt?eg!P
%i].0oUYJ5q'@;;]FZ2.'<C*j^$UsHagGX!bqUgF/"BS%!OoqKo>n>),%_loaG<4D46\B,j.3)MT28dt)fI$t2E>tQejiGi&JCeXZ
%8-$W3?m%L,YPl1P"5O5$36kG9\])+T)Ze?'=`2jWXO00610'&O,'iql(=lHg6'uZ!g"guhD6NZE*^PAJcEBOCZ4abpRd":U6.RH)
%%ZO=76Gjl4_,s6ZA.[E\82-\"*c)'+,F<pilO@MZgI`3b,C]>I9umL,*!"aAanI&)LpEPI?m.nUp_P;4COUl>i4eq.T>j*rG[;.G
%`i`\>1<Jho^g:\5CU`T%?+?#a_GL*B183Sj-j\1<Ib*"'bk1S!-?X)[K>[LVhc=se>%*9HpR=]368>;nRtYd[0lt^t?kJPM)uA6b
%-I5'N5p4no0JP+F6N!Y:L1hd:lQCMm79cu&S2#R=Tb5@#kO21B/k1]flURVV%'Pa9h>B%ka[V2VW?u!'5a,9&?ij@4UY_G9q<bKF
%6*NU$2_6`f1c5[*%p=I-Y#EDV\J\)EkLPPtUUWKZK35"T?C2W#ZfA(Q+MrIaWkf#6m8I:`4S0]Di@BZ1hpq;#*q/s6%D=&Lkshgf
%q!QaL%3&a&6eKD@jJuqFp5KcY6Ybes_:+XBUZ<B*#19E%k9k]4![F#Ce]lb,c7Z(p8R1-F(BnbBWt*(2W3p;];>Q>:!2dRaItMek
%q]g&f)_6R(rUiOmh1=u[$"Gn**AlD<lTq*pmQ(hc5u=[JIgUXSZ6"X6gH\ut#'O^P>/+34c1M/po3>4P)L/t7XnMVo^#HU7qjc*'
%/s+7m0Eps:+F6c!X.QRJG,<N+?I;7"5s(an'$$c`;_$qI,P7#e"c4t]pDP>``/6HnNfGlcY//IOSH)EZfNp_(6PQS/Iig%8l1DH)
%''hA*)>\SuP+hsIcEWB-2R\pX=P%`pHg3"O[X:i06M[-69X*XAUs^?[HSbkqkIc89juVt*VYVa#/RM_Rf8nlY!\=_"lkY]A:qC<u
%'7G)8K.3aUd[k^bF+e4+('G1$l;jRjRf'mkGuiOCVT?/^>ce*ns2"d*/VUAC(;ZF:;q)Q$[2fM9^Bb5sC!/VHANH2)lSZ1G\m,[i
%f@(VZ05\NpNE]Y?gfD3n*'qq%3e6bFI;D`ToKD,I":]N!^rJKTA`o9+@>BSNJ=+=3;/Dg_Nidrob_k.B^MAp$nGQZt/5:I\HVcA*
%2r/XsqmHsPF?@iDfD!H.m@upf8oinoNm_&XFu?g=?`<.(_;m(;`C9S+,:C-eRYG2mSNslWoWjR5TMc`[&<NW..H7`s8\QN#^.6UK
%;+#jp3,t1?KJGFH)l:=e@0[(JRPW!sQ>*2qN%0PoW:<9Gi$+JAM>#DnW[9"_Mn%`FRW+7kl;>8Z+jAN:*]Z,F+A2_JO=Pp!!2TOS
%T@<b2e?Y1d?GLi[=Na838n=6&>$;*]b1d2c$\<:0Kk_<",2b;76<.%&]9>)liZ)#A;baNIK=I/=-$PFeAE.X/Ar_RSo9L=]#;.=3
%.A1%u.\Eta&aLE`rGr_9U8W/k<LE!BZ_kr%=?mAi^E7!_Z?20>-^.$0>]\i`^cj%cN:?<(4,@?MDBG'W=Hc/*pL>&jfZt>-TQ-1\
%U<n#OdP&.9Z`tAE+K>,$P"R3pgE)5<'FcI)^=AH7-[hGX4*I@%oe<I@BiYE"$EVi23tNFffbWlOG4=g7=lal2jAV75Tu4%`.9h*f
%qPT]dlCU)J89FPuN71sCT/@u0TeJ5^o70p<j6(IKG:./?(8B)`J077@)*^Bj##HUd(+9G`SAY^^2a8\qY"T&b_uk5n_Wcsh`%j@5
%_X:qD(H%@9d+KC$fLhPoe2BjVSq-/lh`u8`@u0iZ<WfVg3(nu.-ZNcf#HdA;R3B3pAJE>@41.muOF_?)^e"S0f-!:60QF&MK7#,)
%+*bN*]ML/Xg7HN-!`NM<VJ#%YR=aM3@[+s,e]&0H1F?766VRR^L(oTKQIuu)Ru+55X[lM3i13,&blQlN%2(-=6-s?X8eh%:/-hEf
%!]#B]#T@#G,--@LoW\VZlPRb:`16_`cU2Ydf`[Hu*lI\^^'#Jk[tWY\9GN[M`1+-.q6n9H!BLogS)KLm#*9s#oq4?poUrb*\;?Je
%f%RQeV2-?q\([ZL;TE(X2oMMFLplU883+Q:;pi"C`@//VEB=Z7L[<'3ME&><R8"n,Ajh3\ZUT5Y1dn_l98]>jTiG01Y\J@:'e#!.
%Qo^<r5'D6X;A_5M9prD4NB7Pl6=o4Z,Qhur#'"qV80OgNY_T[7-ORL_?D3M6]>7@/O8BqKRc;SCUDWV"@4@!BPSh]@jjnHF0L:3B
%K8ni)qo&S$F6]q:"aNQHQmSHMQ>m+?^H:(aV&iTs.KVX(Z%;,3Y)J+-ipA!!XMg*^Z^S2Ic<<:SgjT^qE(AZ]E<<:EmiEJukKBsk
%f?Dn$^o>:F1m$q%l[XEP(oA`;JW.[(-Mb:'@U;X)KE->AE0iF6A@8)!ELDd$)GN_0<:pX<m.==l:2EV<3Tp6c$1-bAZt/QOY,5XQ
%&D>PgI9Y5;8^"3Ha<We$bdJK`m.=:g>@(niE)a;9T]@rpFIWK3:.NKnl+tf#MJjU@Tk&9kSLHkG@[:_"k0Ogl'LYkZ*Mq6[;n1)N
%eh=EUaKecj,YT+j&=$V!LfCd)2NWO!B*:hG+<#IN[:NXkF+lJ;2mc!T,)c)(%R&8b_/-2'@\+S<[^N8=P((NeSe7J:et5$?k5BO)
%"gl_b-T.8DipSL-0aSd:=suX-CkJKP$)<+WX'1:E>f'g<k(&)P&g&@eqqQCg$CJFqi"iT#1("`j,raR$JXjPl%:Tna>d(7IJnYgl
%UkENLj?($ecId2(;KhjQ,P#iA_S!@iR)18f/*A9q(f\%t&okVe0sB-<`AX1Add9@W8eEH`-d=KcTjuJ#8=qDieC]T>Z5>;k#Dc&&
%i_i2]Z+19d0]126BK+UsB!-,NB)SiMrpN;u)C\Jo*H5,%(WTHg$.9ZZSUj$4([`gU^9(;8kFOr,6,6F)Nog@A*BcHSe]a\tJ'd#;
%(E"A\Y,uEe4b6UM3p83;nHeRuhmU3'NPb#!Z$oIQ8W`-B5Ni"_a0GcY)L3An,1it"pS-L.(Y,+qD!mtiU.Lr>ADU?3,(A25C>FGf
%W`o]\Js(06E_n;7gGd_@H`AO)8#>4r[V$B&1,iEbc^BFu^1G*cKR8/tZA,,hj#YQ^V$<r@gA,%[`^\e5_**fpG<3Dp:uhI:(RF,R
%g*q)tpnVS<S0e\*T!8SBo-?@Tn<\+TT1g?YfQg(^&S<_q.q_%Z(/tA(=_+lKboP8cX<L":/*?kJ,rmNFTuRU86-/>8[V_UoGChW@
%!I?`g\DNTW+/)fHb=T!JOD()MV,G`V[Cu'?P!6\M=/)GsAS7R$l,:%s69EbmA!9i^n7_ASAAtlMbZ1&Di\TLSgGXns".Spu6,m5/
%^=2n"hbb-/>NHPPX3WEE(=I]CQI1n,]/H1u3inbS`&,l?,b-l7m=h(^.L;pSC"(3mB'7fR3q>7#8<VSkOD8j*q@02j=m1#IR%<Tl
%_4$"c#>=AJD`GP?HK\,k;W9CW2)_>ZN\""!RBl1[]S:^67=]grf/(W*4*V3<$G<6ARugpgLHB)(^(9kM^\!E#oX`4-]s(QZgX<p/
%hVEDPJ`#iMI^aCoSR1OSGcWj#p)TT>f7DKbBo;JPlG(f"5Sq[377q^E"`;tB!r&5QGA9LT_a0n]*3pIuiiE?B60g.c'nbCrS_>DM
%j)K"G5la'!O:&<@$?)5pSJk3^H!5oSA6D!($OoF>JgGHtk]9KYS:VTTV1XA)U&JQ.V"=#j]taf=Y3l^=ctmg\51<2,\hIpS='I=j
%cg&;X;/71o0JlRL#%[(ijNt^`JK=j&R,-V>W`P#u;+mU)J7/9"fJk'nW&mOLD*[[dE=to4RT"7M@J'%lB.\7<d>3I736JJ@MUSoH
%$hP"7k[jMNCh;lh>7Lh`%7()(OBLMeTU<@OB/8ae^oT(pMFh;u@,IYW3L]J-M2$DmL^'e6qbW#1M$*>bC]b>rpfdl`FTD3^?JfJO
%/-V"'+?@'[<p"F5"Jcht74!^iG]78D+D1q_6!0mC0UP*jXG8&9GD7Kr8&lA7-8$YND[Sl:)X?Ud^MBl'Kn*'sb2*h=n6(sdG4,r]
%C(aN?`n4/[!o+adKaufEfR\8JpO*gq!Fi50J;]C0j7.(\TpG$H;$QTAQp[FL\j!K,dj`%2=RFC_-&<"pN4,$ob(DU4*_o$CcD4uQ
%8BMtV8b^gi%kDh-PY$j9K:6j@IIa$CFeiVPJ]c-Vc[uu@j5A9MCG,Al/-:q8E)'JX/dETANW]Y#2gZ+.;=Ju+o`\[Y'G/@='?)#i
%r1*pIHkF7LecBgO0Sj,[;8r.X!C5mWe1u3s6#9&GeZt]M)thF,A5[!#"70n'/130>-<c"Sm+e*KYZk'Ka3/&W,QP.RdfIp*UEuU$
%eqc5:D?RmYN=(;\V>s<OYrf0\r^MG$-YjQuLa`d;(psGr3B*s)&2D?F!6/$RWd.7lTIc8:+/rHFi]FL?C;dn/29NLgF_rAj^CRkm
%1tkOU`@!oeQi2u94d4r=a_sG*UFM/cj)V1L/MGD!>>e1(]N_LE1PjJYdL?'aS<2\3+:`o9-K@(+I1J:;J(2^-aBm=V<@L]J0Yp/q
%`2FDF)-%qNM$OS!(<LK\X:Xt$#hFrtWQgSCLa%A5%*:+%+>4/Og'\]lZ150.eG<PEge3lc?TtmpU4WYGTN*&?WfA,?>)F0XCLUC_
%:8Epg0NsK:QAK@*$%SCm%T+`#fj.8AWq7O?>X\X:g4<jr@@sq.*@M_/5oW*&C=&h#*@,1Lp)imC@4.tQ'<5eDg&(\X%C;mYh5^W^
%Y7.--^q&9E9-@1n!c`qY^LRP5Rm(N7+>2@^gcgN(L^mImg7/.E*GDi:@cip0@kajd4O%'tWc^!Wo2l6%#KbL0Rl*QWbP+DC\nSPY
%etdtI#K]kR0,_CCM7lu:,R8)b?,*V%3Cu))'im:`aFn+SX-NsJWgP$H5Wa_#KYf`E$-<RKS*E8K$ZmLe!$-%TrP!mj$2usZUm:Be
%FepFk.hF"tkMflt7RV>MRU<VcA:-gga/M)N'ZWJ=+3YX>^+K#in?-JS0LW`;^.a34[2^H$"N6rE`i5ZX=2IgU;km*/<]S*DX?nmE
%8$d:(JBMBodRci)S$WG/FOj#W/,.[#>@!')Ns;B5qb/IC"[CDfQdkjf$;@[eM`G*9Ua&YC\P"BhaD&]5"1YVrCi(#Ro@AelB3`JY
%eUL=hT^p&XSAUG*T`^^ST:`2nGcc*2X-j)iX^i6K:SisOe4ahD>?Z`KVL.=0k&@25Y()A7B9_JQ#]6Gb.c[>=K9k#81bUBpp8!>_
%1m!>XHp9huG6*hIR1L01gTS'_%LdO3./S:]7iX%)b8+*lG+Oji'NVEP!XfWQq85r6k1,19I&T-"qk=olna_$!l8,Fa!!Zd[7kP-2
%ZkZCf\NmiY%N9.@^KUp`3/pRMTWA.T4q+I7J6%YErf1d7>,kl/3F09UKeddBikVFOTsA3*bF,sp-&NSi'mXQ6(X=*IM4U2/M@5Q-
%:e@WUM9DU=:e>Y"FF^g"XaA?t<>,I^`YiR":7qh:1'[kC57r-t_sBS]>iBL6.Fj^r\1C5%LoT""F?*Ug@QiZqQM%rohq!tN-7%%B
%L^lD(Eo/dM0Mi9phQX]r[33c?=.OB`(%plO^NrWbP[eka6'd8r/rX,S.c;_c]mU-4T3>%,SXP5u4s"OPcum\ndZeu]]1l00[FbP1
%C(rcp=i3.OJ995Rf-%%=k0Ah@TA-N$#20?]kYDP4M`@)r\9;i)#MU)C(CoL]V%)3o#:b`/Jbc`l?ql!n54.Q!9,_f89+cn-V%`$0
%oa9-dlMH-YJ0m,*FmoCPWml+W+K2$IBilAV\d*&kJe!Mneq&k8[SJ?^SjM$E[*B7a8p>sH(Isl4gi^t/,OOQ9Ph0i+h_CUP56ibZ
%UH>,$jM;r#Xt:-^dJG!GXhb$T+1&D.Mf*LO_Ei3Xi")!QJT';78EaH4Y:m8LS:c8(C-iNT-]jbd%AEDN*NAu3Vb]r^/)XB)t
%)mkr/62\I5i)q)QN,)C,;_:@XbKNHF4:LgfgO8CX"$P,f_)>I-7a2;,5,BA=!A:UjDVIG?kpn-4QjmsJBWR#&`f06QS6na*bFV?`
%AdI,bl][?O!k\`2^@+<fo^DMM2,;\Sb]^bMO%iO@bd4n#jZ-=*fB&NLfqDmsSYi"D(KhfeP*Fc]Q5"<U]9>*gU&buQ6-KQ!Z?on<
%ESB`Lo%HM6S^[_tZd3i*0sn,C<,Lo+O6Wh7)#_r^0KVJ5RHYMpMA!pY-[lcOKIe.Bk@Sd#&29!(fSQu*bS_];=nk-EkliS[JQRPd
%F.K\7;'b?j4eHcD9&'Y\=IS"@r1k:!q\UV5/n<S(_RM.#8Zq14V^/=,Q1C+QZnC,(I3>`0:'K#b7H``RfgXqj=[*qd)H<gpF@-M'
%<1AP4FL'L0(JCVb\J37.4<g=?q8l/b2034mhU[sHfqV`<[K!c>27jtrF>-5[bKP6$G&PXFfQVjAFW+jV!hS#T!s>$19RC'G#J7DE
%SW;HWlrJfMTGqrFfG'Q%lH"rmBW4=F(qLlgN-'4a>?N`KRrYLm#G'<TA`Zl='W85eW$r/D+EX7]"qb-]1f]NfCO^Moi^>>XJ^.Z0
%33qCpN/XZ6/;o^s/Tl$Z^+:\X#4J[\/(c;Zm5DP3.!KGf:%+$'J'QNd[4Nt9^TBj>_;o"U6+^Q#K0;<0\3#];@hEE.*:^QMC`P?)
%LGRM6blOq^3Ep+pLYB0c1dVLf79#i*U?T(5Y79hf&Bnb8[8jW!++_*`A4K`e<'&[_TG>(T2mNP=CkWJ.J[n5!kK8"q(<09!#9-N_
%^Md/fp,%A!6Oh]+'NKNqUJ_cg]D`\E_#!obb"9!X:ftM18iu_h:6L2GK-lEYZ0B9dhDY+i/%Aacs1UEuJm>"(YQC#u<UOoei(re#
%=dir!GSY6W%98D"A$$B$L[;?O5JW_U$ILk237,8LG&U@6S)[\AB4&\'QSLBuG3.I++<m0X'QLa;8I(=4@!M*%%'h2qEeY80l59@\
%OlD>=T,'-Kj:![k\[H^49iP#0/Lkm[S"p/TV64C7JfO/f?;NqILe_a@'F'I'#4,`]MG.I:(X[kQ&PXtPMeF@)EfLI"OBjOAFhI>j
%NGf1hVlj)KC\bF,@qaU+$_L<.]7@i_mUN[5?@$>kaZHkQYR+;NKR8d_]h<3@Z[8AqR87^a<D7NGTAm8Sep%dN6e-$dh3'dgokd_O
%*>g)eGW8a;d4!&^/\]jm>Gp);^,_-6d[R*$f=TSNQn;UIHYT!r]-I;iDVUeaiN1"0R_\!dTT,6%bc"5IEsBt1@C6r'#-&OWlqM9\
%El'aHKu>!]j9)b0J#")Ihh1Ca_G%DXIs-t7Nq7=M?js.*[E1o4%a9%q:m^MFP;Sk7N?8S1"\Q:5XmGlA-sbTIHb*N&\4DI824s1-
%ENb"=-iGN:")HiUB@^HYE-.jt+I5m@2$`R9jDAVb&U1jf*;FCt:q(6CmYGX_E),fcJ?sahP,VuCqZM)bZ29GY&FMTPfW]W-mSgVk
%9oq*__Ljc&4d"o!Ssh9j5s6,n.a7h"E)kSSTd,&D9,#a:V0"F**X8t"JKWZ!"\Y2sA9)eLJhEo^?3hA%TPk/*KhFhoi[ZS@iBGTl
%>t"FY=`t^ADfBl819)2gd/9EG[`iJK<u>?VNS3M\BQ.6.K\,p\Q<d6rEr`*N\5Mk6q2`.h7G^!i?]`,Zc5,G\/@>mVFkg.aX\6N"
%S>Q'(3X`2#RnuK*=dS<nVnhTOZE[6s7g5r@dZSsfr)#*(ed2;N0"Dc7</c+Q[Ul:MfqUUTCnj19_Zb]]=o:.5BF\\3oi\Y,L]q@!
%L+O9?%kdFJl[Xjt,IJ;]&M#iANQ4c0V[RW,Zom^/9'JYa+[M&[-pAnG7PId6Y@Z7mo(0b^<kZd^H?#2nc,6st*d#(>Gf?(p$)VBI
%#N#ot5aSX+(?j2SeH-9\FSV5M5g_m`f+,,/!J>mY)m/d[cP5f;DN!h#D;1Ag7;N:h])1+m_R5aH#J)@/Ydnb`Ibj.JkWQ,q5t`6M
%Fl;$Fa.Ap)>MC"KD<Sbp_B<dJllJ&Wdlq@jDZ;/&\_dE#%_><u^kd$uhAkr>i&);gY$/Cf.q71fO3d_nDp"#tM:Os;C<`47aIaj3
%<00#@m&3&Qh]kX.`T4Qkl%sZVBZ^GBD>O"(V:8F(HMq/lD%TRATZ$cR;BNJglTkgDj9mra]')??@='"X#ar<jPsLA;%F!P_"1EKc
%B=ju?lpdYNR82#T*aQk71'.tjXud.42aPt--82a$"1>H3[VZ-fW/1tqTVq\@2ULGP4if2Aq8mqjf%.\iS_B__2XJoc<N1;9]f0EX
%eo>%+m#pK+%[bdnhX`q&/[RWtT%V=cXG0$AE]LTsME^O](bHgRls$b:nGHhQ(=lU.lF@C`/Hifs^/E5@:i>u71RL/I<iq5BTYZrF
%Y-Gtu[`@phhRq>4n1n*4%2VdpN2J8s(bO-$K4.F<5c?k-YZY^FdR)jB&f*H<FN]ZJmQfkLke>Aj:q&6%3`+AndQpM8f<k!!l+oNU
%jfNKY&=QA7FkTLjme:JH5R0kTMCf:1lW(di[4N"B1^f,9b\L5o#ISd]Q\Ie9,H_b6(']>OM%544W<6@>6.`:iV>:L?+GR(/0a<C)
%%W)P*&OWn^\ss9D1ppQd^4(27o4kMtBXS<Nh?Dc!;<g#bhJ[4J<NBDWb8-ta00>@'Ic_rs=mJDgln:Ok+X)iIAQJKg9.IUdk5Zd`
%44at./>Z%P%TGm_4##+3k=RItk`W'Tf4L&_4gp-"%*q,"Y!*YPq[PY`?P%ag\$9l+5idjf^ucWh*WWtr:%fU7Kh5_\fU_XBhD3Zl
%Q#.sggbpVfieQlW/SC):,*SMoh9ru--6J=%TIh0m#J/gY!<]jt8XF@2jM^fHE\A32\pE43*_![kH4SS5T9aDnTVQnGFBkPe!&<Qh
%eR_'h8UO\k7JHCSUV,E#;KZ-B\IQnng2Cb1)$<Id2_8rCFma)3Ou>1t"-?%"'!8YR)VJT[kH[^d_KD1iE`?29PpJu+gqN1.P23O3
%UC.?O*ucej[KBe?!(3f!g\7`P!*f`]AJBluD`KgB2:q;-9T\Q_UAB1?6VUgB:"8M_aE#u&=11HcY%;d=e1KDbi-l!?.!N.)a?I&d
%`!V.KE"c(;?+4"?KQq9J))Zap3*sK,B(23]b]>Es(#8Qo[QL+p<sQ/G0R1=#K')MaF(pG89pV)4Fd8*<_j4I9\V[E5$F5gdW\@L?
%VW@r%F_Nt:3U_,=CH/9MNr)o`NbP(*LuZlj9<d$Fi:;Z3QEJ;ls-QIVk<TqKgfUsRdWu6QnK:`9qJ:sY!f*k6noN"+MP=Hj/e9"S
%=Yo]ZP^Or@-64A2%a8lm4_2_HLh^U95!L1\P"GtFcHml/N)\>PSm5IHZ^0R48mb>L>DqR-N]M5b43f/:['GA7E6+tDak6u2#?t-/
%9ClEIA<e$<;UWN61EsqQQhutFP+M,bi7bUL>d%gD>_&QlmAf4F!H>EoLl8f/FRYi<[0C"L>1Lk=%O6"r+tp!*/u*,2f]\NPqN_RX
%1iEV&c-\_/CfYGYA`*-XXX0S*EdG/>Pu_bHkEC!:3EnC6]pn14CY8'P#OQF*?EO-mcU@+*6.3si?2Dg32Rt&eaQD+e38`:8A-6+o
%/Di`-M<an.:CCF-:+?r,.9%>PDCm.^kILRuP"-0HBdfK!a6oK`NlUS`ZG_fKs3PUu$X((Dm87\l)I1RHQG[U>qiL22d"IRI>L7nG
%UW+g5a7=O$<TfcGJk%.oggoFQ4N#nj"(c"ibU!Ge@*;m-p]>!`I,8pA?>+"GUIlOI(BaJDc,dq+<MW2!V"c#S&?[;$o."MSo@oIJ
%qAV:885UPaj(?<5E+";#_/iREG6K:hnBd>`O;CTN3$_PoSu`Li7)a"#3=e.8ZK6s.(<o5nQ3EdLQo:b9[EBR`.etXan;)*YbpYh"
%4%2O6?=/g?LOW3=!8333JoddHRS(</Br8Ug`TWci^[!akY[^anXr.f;WliAJPXBrPo;"+.7P)j8UfbC.S.j=#OT)R;Rd:iGQSbPO
%akY<TDMm2?paI:g>Qq,'q3Vc(1_ZtCA\4ss"K-65/i3#9"H1c\;[UcSX)KBR+@.?End%QeK:80Pf87/K1hTS>kGbEE$]V!92h5-?
%=4-JCE3e!7>mHR)6,kgo&Wer<e\&p.oPjF@97LRA"4:o9!<jrG[D]Wpb6[cSZB)g\`8l!R[4[<3kV;l_"r$K[JomZ(kqnuKDjnIM
%l;[ljFY%\l:alMf1`-`pf7=%/hd-ZS?oQdE^tEN*<0f9)o4"N#ZDW'dq/M7Qgf<7@,gdfehX[Ee_WYOa9bqmU*1B&9/(U(XK)$`c
%\#l;4CQ=^6KL/CQ!_F.TTYW6pWp2coWE6JQBSl2]K].'WVOD>7C1W3dp;M7&7.b:%?CflDS_'VU6)usG71[?F%XWgPjWG2[2r.>r
%d.tB>2et;fE]4#ajk&C^RutR?a<9ZQ$2UWdp;_U*9t#3&<#fsd;b6L(dD/4M+,*9'Pib/"T9APrI>2bfjR9CB0D`uaBJk&GNF6:.
%lV]!!%Ea2Lfmg67IG8WHS<%EmL^n;ITIH,h+(4!3J!K9:bXontddRi.%?nNK.@X@RM9<J7JQ>p+;+]i#RKBlK>Hh3M!V(>1=*W1k
%TS!GEXbP7++>X#+#0I(Z!]9Qi`1Y<Upb=]20*BRI76EaO>$qjb'jB3THP:[A74".%Nq;1n*:>s,Q/>Ht#h1Cp@I@`30=j*4pO^1H
%4V/9.**j783JcCLeon=jg6)f.5k+FqW7--$?%K/"PgRe$XriUEcOrgI@hi.R*s'%bPD9=+]GE=,1Nl>V>4-NL"esZF;OZ;PZ5Q3:
%AEBXU&M>.Tme^]L%`\*EVEHVn@C`.cXJ071ChAp=2pAj?7\j"V@;op)5V"]jQTJA7G-3@4@*4e`*Y5B1e+Tg-#jP!"NtV%DZW'M7
%lY=CVQiY#XP)LacZ,t.qj_<.X3@MQ!p_!aMN9]rQBH'BV8&J:UFQjR+a-Ti^B[P&+I(k_-?`Vlg38=BEpH7l:jj,$eDT/glDpA[S
%mu\guW]7fW#JD-QT?u<#6P*tjYuJP[!j[&cf5$+M;@8ucn<HusO]Ake^BF(M.[V\Fkt&jBdK(J%'a`;;B\=,d`%cdC`O]SYG=n`!
%mQg@kd&5l^1XO:?bYXVQ.3,G5*W%U9F^JqgI)0Sgih1tS2biMHX-f+U'kFGb9\[CV>0KFY/_#hq-1W`noc<cU=#&IC<3A'@4c8uc
%9Wd\fB91J9hs&lJXZ/`g_,ALWe!A!&`b`>:#6deJha)mcEqM_;)KHdJA1B98c\?E;pOTE,5R2"^pmAe]F>an3/OhPA[6#$MT-KpQ
%R]bFVK%1W2+.K(q3TZb>o4h^tq&J0UN)@")aK?Et9hA.=4KLON<&f)gRG2>#P3@L<`ba3fCO?sJYa261kif(N8;_J?3AaOIU'9@G
%j4T;FZ^lQQ6_R/$(i0O[\%/YYgY/Mb2eis\)e.F>Y\AmIDE7+TU<,DrqJG-@eC+kKe@^3$CW']_&t.iRa*UX*iG6f>rpOQZa`bA+
%&ObV^N#_-I[Q=)1[9X#;@LA<k(Y#c8O]]@"Z9-/HP]/93-X[J(h3piAetX'9=K<?LcV1!>_6V,<L)Ke&8=[c"7A^73r?a"-%(bpc
%AGg+-0aBYY\$?b9'V?)?L:6EIiAe2r7n*sV"(NjI975rr(#_h9%I.Q<!l[m/Y6[Y`')&9q[G-Kl&d?'A@?q!4,Otd!$bE0+r<dCU
%"Y;]dFu3*]B]R\jP2A.1>+MXKI!EN,*Pcij,.'>:[<(rj)5M?kD'FjL9JG0udhWb;SqsFWkhpUr3Y;&7c.1]_;NPV_\0CnWZ<U$*
%/Ml-C791c<Qc<:1'f33`B067FWLHO&)?d'mmu*g3%8/sj"`@?Hf'.*nMXJn:31O%(Cg@F=IGhoif@3HhSrKs,U9kLY!)C*V<\5al
%\A%ZokC>\=o:l,!QR7SOLjVl<AKFmgrGEO3W%%N[7fD*FSZnk8DHP^5BW?CS==`3ue.>i>L"h_\RY&@1O0/*_bGPE:OArN+QECL3
%Z9.5$Q<&@O^I[JqN7Wh=3/uUT._hmjIaf_[X//QWJuMe@4Kn@LIBp55hb1guDED(i(Zt$$Zuq)K(kKDEH;Hf2)!.TMWgLT%5kgb-
%Pitfg5u*WHbE18\,sukC6#j,5Fc\F^LrO"TU#jt%$kRI5Rd56;9IIUR3-\QAGu1qa$kji!,]sNH;om?e&8Y@R\pgVA16F^1"I"Es
%`n/?$4e,C6r^!c.Q53cgfiSVUn>rUq2/'0I5tJq]B;@*bK"r7T+@232)BTG>MPSnsr4UYQ+UJ63(lQZ&CU0*@-94p"S;":d<TY^d
%6bbjs9J?m9kZ&ju/N/8JQ$dr*J"O]qraSg3Wj7GVFTolJ[@f!d9:\o<=^<dP;gf9<#r*MR<hYqj](2N=QKHsm3Y80<.S182q?&Q'
%cXQ$aIF/OH*Aikk/^]-fkcEJrd.ODn_gV`#jE#ofZT\$?U?l(8!M];!O50nifi`IE@'CqfI8*R%H]kDAX9oZA&At4l6$qHEW.E3u
%aMR_&Sa4UW&6/a=q6`^K'2KCNZYrb(o[mVkG'56U8pIlO,D!C()at.dEo?$D6a/9lWtlV-l%g'ZB%>G#MMjflZQCta:tD37STG#&
%4(k*FF)kE43Z,gJ#TRHa?s@cp?jcBabW.Rui3^:'4d\!$).?-/%/\K0nt"C?eW*XF`O`XI.hL79BV!@7c5@VaU%u*Hnk`Pub\'jC
%&NI\,lkGf[p#PJ*#3NR9<c"&4EUS!1&0oDmj<\1k<\26V;N4;OP/N_f)2p871m@ic:&-ciQV:]+DkMWH@rHircY`??h1Y1jjW9An
%X`Q0p6'tKfQkm)sj(#P!$bQX0[SW*;j'gWlYdC_pWNDoo/DCX_s$KMUWH]fHm)gGc2R`Pj\9"L$I3NjC&OCm")_j1Z9>H]!'EoL[
%2FaTpD]YR^.Jm7<,+ur^mZ6:2K-eUM+ZFt#*aTa%oHp7Q\?gfeE/JWGA.+S19Z3`8ZDq2XCP'-BTN2]]RT9bU>7_mIBFogGC//Bj
%[?%b/=Rt#:)r/S7b.3clR:2k[rjgi)(e#5IOM]8aHpS*.\\M`9FU9&BI0rif?l:Hhm\"B:=;Gt`:?^51a_"PLn<hi\%nt%OY=Epe
%W#73B2f)V.l^q#XOTC6bS$#ROHUR!e)]>k<0^3^re9_`c/dB3U@:4@eZmBKEd6V#&WCJ`gMkER:>F<t1gUs<`MtnmW=WYhI;3bd1
%,stu.EAYOi6UUj1V&B,!Fl"I=X3p4O$Bl!4$"&[bh1(^V?p_fYR*^bfW`B$m@8nb279B[eGLX6&o'6M/Kr05Ao@F7p$Aq66:Wa(b
%&,S!>pNZ.b=e31@,&QB>%,=Pp_X.&G].%4ZX"_]T&?*n&;lf1G^djBc"I'YX1fuPUs,JuI8R/JI=ZYB2@8_r7`=O9ke"RT]j(/F>
%!Ke@s4ERpUL?SS)#5HkK>>iW-BN7.Z.-'/&S@]#.\k&n]`nIXH6_m,p-(:9,EGEO9&FG(jK5klakTibKooIMt1JS:oNj^kH;#R88
%bS&EcOf>f1$d(rrVBr29]1b\"VEDXB5^[NT1Qc<J;i_A+:<+Iu%c\6b!s3DQa>:B;ZOA1DOg8DIJIIF;/EPKP@mEV'AtJ*dJZCYA
%[hWOWZtX\dQ_IZ>!-t'L%'[FQ:qd_8$nskSR^HuPD;-f&@[ZQ;aLjQPO=3iNGec!sJ--p2i*q]\M]-5aCM`tS#\qGH5a'X3_lW0@
%raY6tfO#JiFMm<CAlNIV!aGu!q9^&JhYcTrfuP"GnQ6'?IKV2T#T2=BU$`FCAsI`OJkD;g2<(:<rU3,Der<\e)*b1<oUH7,XYG'6
%e5#Dr"NG9T/HILJ1fgU6j7Z]Gd\pV%gdCh&hiSe)\ef?P[21u:F[Ik7JjCnK&nnP=K=LnPbFo5`ij-,i'&i60/G%`oGo`4ZHW"qZ
%98/]<%hJ0dK,2[@)g\7kGnq`VER@'?'bfSOTU'1CL8*Ro>;S.m;DS*Ekkq(B0n`1N,#&BpBZt2mmaY7,l6r78=E0WG7.l0ngOn&X
%-4i'3+L+opRtc]DiM^B1FX1Z5<)6'D5:1:tZc(eO3f#4OTa$6Z0Up*r/)r%Pf5`V-=VT0/S,joJ*RCa*]rMm@V>9<S["BU[K2IXc
%k_-Ou;c8)Sas,"p*&MEX*&*Rk6n#d3"ajDSGYAMnA0!(ubi^Y[8GMgP"N1dS!F+!VCQpPGD3KEU8iIEN,>:ut,mL-p+=GWr'V2!a
%K]WAq0SCX84?P-.EOK2@[uaePbV[.fO,(-a@mjS;>=ilb\0tGAlUb7L9GGJV"L/]q';@f^Y\I]D:^H3tid0-oem>NMOfRVpg)X@E
%?\;M5het6P:8DlXqNbi8c9a,PF\IeoB\VaMDZc?Q3%)uSl_@dFr=a!1VZ,0VD%X5D4(GQH^UaEfGEkIY==Y+biP^;BK?mXO(kmNP
%kB,\#b6WiTKNQ\R((KA%0j*a`O7IAuLhcBHQiuCr!C$ep2gP]pDatle8$C.kl&SE$^M6El7H[\#P8.'c*S[].TY^ASZl-ckf7A_9
%>44YPgNM_:\+^J4<kk1ggZOC$XJE?JFR*kQhH`6"-+N,.S3XUF[efH3Tp?0NCo&AY/A-n>VP9tsm2"Mm`V2Seb8HD,GmF*H5IWE:
%c<Is3PXd9mFPpT3mB2'Oe?Y-`#?K7.\^;5dEtmed%D=3K5(3?d=AaFGZDm&U0CjQ>-5V#QZ:55EG)?YPmeVEI6S81,02O1\Y%?LW
%VRUNo_@]G]j(sFWOV'iDX[;G(E7^8TRQKn%.f_XDmQPe)(b@P/KA.X151Y;[eDQiqmV@/^Y73%Ks17M=`aC[.V.@,``i.`R4%o57
%?n:X#GL/eeRsaN:Y:E)8rOR@iXk+WDHJnkM:Y%54nljFR8ti>h's/$j`sK8:\[Hso2?LXL_0h3sTlY!7m+YA15cnFPXZ9`/AR4fg
%-iLU-f$@F"oe8P\CWegZT5p==M=*q]5e83`>>YR[rn9j&??B8UOhqkF@ruo`2E]2IJnko0)@f_][Q@X0#i)Xc@Kjo$@UT60F>Oo>
%?UoI<3oTfOh$un,Xq%h:_h0P-7L.]&A+b7sE3Ru](1:s_%l!E:IOTsN:0OoW?WC)mPR1eZ7BrO'E]s2KNVc'S(Xnpu0Z9WC!NZ)#
%$k%)i+>pYD5.9+RF6u68)>fLU.t$-W)]iO5IEh+D.!BE0$W!R_CL!:WQngDT0(;^1iLCsrE)$qL4L&+5:sA[SZD2_!Gfu-4Pcj>\
%YWh3g+uJ]jIFprmF9SK6`J+mIgW?\LV.cK.4m+ZRMc=)en)?`LXsp&%V7@)+hg-i9Ea\',qiEYdPfen5JoOL<'ipZW$DS6GS)%J'
%ROre9m_d<s!\4Z>M*f-D.GHRm`_WnFZS*ANlu!*c[8'Lh"dJD=3c.FGhJno<8o#);UE/2?j"j4p7!e`gp]D'`,KXGlb.s_["i_J9
%CJ(GSjWu&W3o\s0s&%o!e=O#H`oALh&$K`Ik<\,u\1R!`2pf;Ao,q(JL/k'F"'?Zn,0/:6'>NZW7LPoh/$LE*/`q#ZcT>SB)k1O%
%g,#aQ0V9lX=.Ir)mPP=j.HEuVZU>PIW'EYa(89!KC/ACo*4-)NU85774sB<0l@%Bg/n?l2=pa\++_.arfb9a2g-s\jDT>R@E%3;:
%4$S]sgQ#krX>GpCEAj8ogEVSN=oo"S@Z^m9<K1V:%]5`Sf,<2+*Kfh$#.5tiXD!hcd"EG7[?=c<Bl^b+NSNX`H"Or&Sh]c7TNst6
%<$L9:.g]ie.Ti%!qgt@JC_t,\m?4+hPb)oM"]C&$-Z*Wm,)AfR0^@g&[3B2R/;"R#j<Ys',bH2nrto_0k6`Gu.Z5e:biPR2_Q!Wu
%%eSG9/9eS>4\>$+8J>u;bIMdMW;RA*5L-#PH@uJ$':/M8R!_%YD(X2ddtcAGg<r:9SQ_?NeaT&PP^Dk\FLulggRRmN4[3)er/UJL
%m6EX:FU8ao9j1(hERF-U<-_AXCG%&f)ci:nU'SLk9D0q8(`@cmp%P^Jf$/!3@i?g'&\h"s2H@aZ-d1q?c##"hl]<qKE\;,E`G(Le
%E)b(,--"P-9aeW^LI+Q9`5-7t3@=?@0o\8knVC?>"-!n"QW3hp\C`n[OZ/1\l-7P;'sh@>d!$k<$\qmelseKAPg#E<npSEpE0.EU
%JRjOL:5<8LJa")4F6F4s.Ik/WQ:Xdc1\_5K-UR6Ja9LLAN49j8/g\XAf.5$bINN013:q!+)^e"0)FAMN$UQu6KWcWjahiCWhe14*
%1mic8c=0OZd"mG4g+F`!3Dd0Z60E!^(*io<*R!/81.ZAfpSsb-\R9-^B-t*:1EoA1$Q37^1I\jMF+Bf4Lp"66DLkG,:7\8METu&c
%;rb[UJ]d+:)usL\$^QZ.lYdqlE7'kHQ\d5pi8a=;+3\Gk-9ogkWImu6kCD;\"mmY=<_j`_mfD+@(8I3/#X!F/SZs_-A:@dbK*Gp\
%c^Rf)ME=WL70Q19oQ_Nf<:_e?3^?#[[d`5/\'=2'N=/2\k;iZ=Vuo9HFg"?1S&s;>n(GT>(b'3u=)emb)r%U`obr2_>cj+n#'4>s
%nOPX_Ep&>*_`HC:$qpG1nNuT95-#F0W)o4)E:;T%K12_5@X9/9&4]uJA!)JMFSP"<+uUMR_t2_7"fsu-TD5os%THQ[UYjK.'Vc0.
%)3Vl^iF%m/;LVmjW`MbKT=]c\I@"3c7B%[`^X#Gk)-TXePi4&1SDRfar^c%XZodO2CfrN-$VO?`+/F+VD)'Y4jp+:k;piQR3WS#<
%FF]J&/p&8F@O-:4%;X="+'Rkp2ZhmfJgXaVBJP4*T]dVY*Sa(jE,i?E\-g?^;eRkJ/lN4:1?f&e-X.%<5-fDt/>NMT>R].d;ND[;
%0Kn>W)seChMese;o$pTN1:TjsQEoS^FT?YAVh)egs,mNn]+C@joM0*dEiobI!>R">$OMe-C%0k7ne4R#V/r^klY'^+XHB&"@O`N.
%WeG%fg>WSOZ^P4,ATKCS+aAT//B(7VO:eJMMr+8=\_p@B&t>B\eIlq;C`&,_%CNJFUDCc.VO1BT1[.$&/:eNu[KP*U<$#kJl=baF
%lbX)qF7sP,Y4\\rGWKL'JBsU.e-'1_KTr2$6EoCq":tMgn^C&]&Bci3B_'O&nn33>_Ss[Nctk!]LSqbZnW]6!g9])$8TPt]#,<m.
%";f64;@jaX0og+Q1c.f/&<OnbhBP[<L:<5.27<[O-,"ek.Jg@Rc2Z]O\.)sAd6?:4dRQ-s_MV^q&>8nc`0>S^VM"8G*]1@MBO5Z6
%'V\6/iAuLI@5if#Q0#ZlU/iaS(k/$`"8+2Q/P=$4b'A>&kRWJ06jif:W^6o&\6gT'g(kckR$>'!RYU9`X>@f!(Fq#1RAWUbTSF$?
%Y`)H4;[\4!+V@XWP]uX]@r[@M&Z,;i3KLYgaWY<Bh#l<p(3D-2D_D`8[Ubna##\)H%Pb6i/Jb85dd(!@PtUT/,bq1*7e1>>HVCq:
%,]4&lXUrrq(FVl].o4qEGGCIf1kDs'BL_@PMt<ULZ7O<I(aFhoaTFQ,&d?fK%nQXs;F93.Qko))68_S!_/`WGZie]4o>f?$U"rVl
%a:hVuhYj`!8T:)I>E$)<[a[&oG1i1M^;74Z1c^VsE3L2P(1?5]6"pC#,s<[saf$gOFB50IT]:]9Vei8D5tF-ffHTNY8qZDPXP2-6
%HJU&/`=B$R*E)r0,JP3'.(\$me2:pdg#Te6>N4.(Zal5l<e`VM[eCHE`[?l?W,j#,!-IHEmn#EoHS\j*MO$TXB5dE&*MF[#EI`\&
%gVUAk:,97)K250a#D>6HrOB[eH9IYh,C1%l#N?-/7S4mD=r!1,_k?)_*5h@#/B&S0OnJH>q:\H@/k^8aoAJ-8egrQF1,hB!LPNQg
%@dHmo=atYOrgDr1'tbD3(m%t[%.YZe3<G<ldT`BtRrs<sX'Hj^WpG$6=2U]:*.^i3P+]p,H[CZh=`ROsW2ds6/;jeD>KrfH5:hFu
%?WT.[:!ogA^Gr?"Yrh4/0#DL'X%qjC#@Bo,%td>Jd!!/N9Ej1?!,V:-aX/=pghjD<%7*UQ02no3QdeXM?YXCS7TCB_mR><Q$hpd.
%q(u=G0=XYa"O1B')#5ScWHqWJU'o47h0W`l34()(NHLkAW>"H"WaO00G9%fm?KX"W"`+1AcZa'e@7Sil171`7f_:)&BXGa9\>ZQ`
%[RS__"uF'Ye'=O8@;HIM(3Q.:1"^>&A[G[,>3ei99Q1()m^WXa`8lK6N&)LIkH6F76rclPLu*$.HIKB=4[ES-#qK%XJEW<om`[<.
%LRf4WI@Cnc]ZQMVp+(;i"treLJ"*Gai<7BiR__SD/L;_iGuuE<SY"=GS!8Q,f:i`tF1#JJaKf\aN\P8R<\CamWY8_oWmuMd7Ws#7
%U_s7j6`O`[iXruf`1/7P%LP$">mGKcQj`*).Vmml_<T1*1FiiH#+p`>^k.U^[E$1s&uE6KLDBcf-&U;WC!id!MBbsGJtXS0b`#//
%hhd8tPN,bqW^p%7&6@;@9A1?1iCY3tOmQ+B+nd"0"2_q`$J`rnij=DMTbs2LTO_2,HY@+^OuiIRBY"9rn3oNN;eh9ZPh?_6I)_gW
%84!ou!t-YqV8*;tq/MJ&p_p`Wo36!lPA"D*.)&/jEgWqA-Tu&f/es#UPO1]L/4T1%_3X$jkRs0-L1VrOBN]_s+jhJI(u(5;0Zj4!
%EU!.L'on;%(mR/rguQP]!eHP9Zb4N-4/dejOOf`/3$tDOMqIreNfI">E+r`!GCil(%3V5d^iPF?L`5U);eVChCUk2&kZQVL.+,R.
%a'_dS8m0GO4*"^pl@Y,6(RJHb?4pjK8neoaX2S4hdY:=GG9Nsq6#"caLpPcE>1HE-hfKj>IA5V'l7mXDfk5!<>HDu1MC(qQ<aUZ#
%EI!@13s<Z\O.^0aQDX"[4bB@bGPdP,')m&ZaCK1N,"WO11g79s',_*B414@<mIptU:=cZ"a0[V(^5f'*%n+Z:$p`;c"M<q#ZQ>(i
%Xr=3J1I&I1*A+/8._!jP9<U@]6DCoBH.8JT.96b6lE9Ef\nd9:;u4%hV6-dC,(>R%eg.-$/ILo@eo5M[+E.s%*l2+4bGlf&$8ra4
%_PD'5g_:!odEs*11AeaInh_u;aLBt4/[9p5LF*h]WpEEuZ*,#_&:C2,<iT6;h8pSD4Gl_D&Z@tY$oNd%VnQ,KKBHhhcnZXNg9>B&
%:gk&R+?$(!n7Y^@-ZrgK\AaTl=^8/8MkcC*>g2l:>n6EaRB;)Gnu(uMn2&p^+D[Ec/s;+HPslQ>T?8M8'KO_Q]5o7c5?'_pb]7P0
%'O:)nf=$70L$^`O>(UHiSN40DLTQSX#GU@%f7A]/#uI[bI1OC>i$:qof'[%S<l1$%R4JT7aOl`WWC0f'I6mtg[$^Lk`Oh$g!'*mU
%AKrn]W[uA%GH!/\c`Gb[\N#_Ll8e4HH>6[&!>PYXjTQ`B?>LTeoK)S2"*=HHB$c`NVJK!^,P4A[+d,@4PX+B"5<r2'.BW_7R)_r7
%s&[R=1["\_P=0G#@VmK8@#eV,ri_grCP$2`3l'/LXS+UCbZlHNM)(6<=TBmNW.klr%RF.(\kQU4(gcap;rVRq>7*5<DLDH`;t_h*
%[N*JRfGE%%E2(GX2O3`d!"FTrBXF[3k`,e>J-HqEC]TO`"7YcEmV_0)*buL92)pAe<@lJ;aEVt)_u-:Ga'F_T%D4Os'p.UC;&OdX
%FSI,?k]I83LqU\/0J8$p&&TpA@6KXANWQ(35K?a#+cMH.rP4F`7jp=S,Mg'Eka*+kPNe:)#78flHJMGtHnSZ%\lTmT?b5&jel_^Z
%j[NheJrHp6E+_Q@S+c$?J9sK;6RoHW/K0ac.kPqdDgoH4FLF;].r/(+^qtcmU1<6l!:K;Z-0VZZ<3K`&NcT[P7e;`Xa%(*G4$UCJ
%L.t`<<Y]qYhk&_)C/dXS6#L8+fE\j#hIM7rC$B'HhNkaLc+pPsfWJrGPT'p&3YoL:;slsJP251DY>#3.+RKS'D.g).`^XkgL%#S6
%pB->rM//jmaBQ*,2P%+rcUjdM^juB6)98=G4hJs71So'kTDRIt0OAOO[T@G&rK&E:"3X_D6VDY,8[mG>AYTYp+%'0:kQ-+;qQDQl
%;hfW`7=K7jR=2X#Zt3q2(?QKaIg-bB>kB!O"21L&oRDWDBD9='?l\*9;/u@4(tF99eZijOl4lT)(K-GP9\Lg.B7D7hjDOhu)pO,<
%7?rZ^Hd6UYO%H4PoXaQ1I\#s6dR;Ku8f4f4#Qd-;/'kOLgUI5_VeTTgVA?+Y/OrlO4\RkZr$cLV-%I*Am.%?VD'g75*^1]Fgik`0
%"n0[EqF@c7j(bq-\'b0bXHYFQE9*Dn?/S,:6(IDBT4u>Y=R7X6+\hs5KB0.k;->:4alMal3.%?j@13k4/8AQ&CP%>i&=R@>*d=5r
%p'U5+[s<?C)s;3/R.Nts@.6oN7ZEFGE9m80m4pQpqhU1))Zru'4bmFb7a,ZeS*%m(?.kK[:*P&g.d!.;i69-J5P'buJaEYRIT_5+
%O@R:174k&i$^2$BO+Q0mkh6,tGih+Fq>29qZ9;]-OK!40`DTs^)L7t_=r[YYDf&Y#dU5#Mr<++JHM30QKS25L*62=7*Qdhdi0!(:
%-5O2IS5GW]^P,D"ioq<<acL6>\'1)BM!-^&G:F)27SimkMsR8ApH'?ugidZY')nTIZCM0JLn,8I(16*^Q8?Tbr6+mFF[*2lCT4]9
%4dB*C=)_:CN%;4,M97=niiQc1Po@doUf\[a$u+&JnT4L(S`I7OhV4(=r.:et?)bEr`#q0o,*egt=0oD,9fTT[M$]++Tille/o@rI
%Vj>$`R1]5\m290)?P)_NFbT>uTfkHI4mJgu6Y/4RHUTm1;=$!36gT]h_-6hPcAP0o:=!F-3tO=aW&+^rf>sL;^_kdHb*.18N-N+J
%XISi8\XjI/Q?LZ/A+q8?W@u03Ssjq=4P&RZZ&@U^;(6[!A`!:robul2)]5.:cMJhAb$Zoo8BR$I(c9g_cO\@c:%3obRHaNFTET47
%jr3r0lRi^n*V<c[0j`NXjFs3IM3p<ef^=\@"]d+N0*r:GdaESXY'BDa_.fo32\>4r%#Nj)r[3/SA&M3@^i+7IkH[cRQ/;K,3S3*&
%j=[^9Qu!ii8p-^u(:U@:E>p=;^+CSWe*_UZ.bjZiejE=[Rj$C;.s76pr2Gq'YI?tD@m#T>oumYZG2@9@7q`tm3&3(8&2)!sOmG;F
%533iBl+_Y%e[qlM\2@RWpO(CJ@)`m<Yrhkmnt"CnZR\WKq_h$7/b<LOnf8)4#'<X'B<PMO$6Ftkl)9;=35mrA!!Y6a^MJ@tfR,F"
%i\La^&2AVr387W[mHC1+"@M4)pQ0B^UJ@gm93=\XPN+Q'>%)eSm[2XI>s>XG.DkL_Nl!+kg9R0R9Z9C)k)>e7m58!:grB#]fIp,7
%ppaJhp09HQ*=Ps!(=lNs7EF[5a=N7Q<(mEPc_fL<H/i(dZ.F*J*0ulf;A3mTes+)dH"OFo4#&,?k&-bc\-La16P)ZJgZBb7rAjT-
%/U^TA"UMCHS(UV%mDt^5bR&2'2>E!hFGC^mafPeh]`69a1]*K9hlZ/'b+/e9Wk)`L?#MHCZPK0@kE%Tn9rWGa[kE&=;'<YLPDqcn
%;B*nK*3f(CT-ma^h6.6!nR>4eZT(Fi$9$1S(qg=>YR@=no?)EmFo5pui\(Rn(i+aqamIC/%K>+Xa>fqs]n>pB=ka0K8ZXSLW*2Z?
%;"E!a)_I0phH[Gt:9oR*!kp>\1_uoZo/*%0T8?]ioD"2`U$@&j]bV`?mr\XNhRR)S`ooP`,PbuXKQU@q3E)WL*4:fM:cYsC./fjQ
%J^Mg#&AU+>T9;:u*5d>b.\XD2mGg[seQMmIilSK%M_e0a2rR73mbA,KIW@1BLr[9?KT'k#K:@if,&GDTnZ[fiZak^ZXE_>Q/?"=A
%&_Kc`/OW!@&!ChI!\>l'.XEcn][K5!OG@jNjBe!WN$;#3;'SP&2+:>A7F,<^;iA')Qs!j>RY/R?"K]F')$)aAm,gY+1oITa5kV;d
%qpU^:'?-5Z/]lsQ@pl#d0;75r"lpI5YWb%_cTVl@0=c(Qg!2:78E;li-ETsf[I:c`]>+G6't(O4/tJRe"*5Mi1`0OlZKN,cg3R14
%08*WS#cs0Wq1TE"UJ8RA)OZ*o(>NB%26M<H6EHtu9sOj7E%k7L)+)<>@P'66#IbkH:'a+&KM??C^`#d\nZM&hhL&3N'rV_!BC4LQ
%p\BPoUq(aiIg2[1_^o(uMsCG&p]ro<#=jl.[3]=<9Ip51'*.)S>2kQbD/#L6?"&]XP>;1?4Wo.5A_\%Y@O<V20RC*aYM0Q-Yi/6Z
%U7[eliZ`Fs:W>UDLqSuV`U'm%&^/Z#$tE!7<g&jr&(KoA)O+DCQMgIsB0QELcA&QP_$5JfN8Wm>#h(f\^l>eF!t=u3nr,U@)ghQj
%RZa:D&Q^tjRs5Y4?(0=Yp[5*;6T0Q@5fEe2ECZ8hF*aPLEE8XAL80WeJ^^uHHfojU^TY1k;Q5i`Gc'Fj)IDrPr2^<d]s@^.%9;uE
%ntH/=c6C8P#/iBd"LSG[XTo;2Y?Oa0:UcfjGg7`s^`o!eCSWYk+mb$:bVa8\7Zk=G4mC`f*(=&qj;5rK%(>T9G-I1<cQ/ejIu0-1
%.g[gWi!d6-;Ykrs!!2Y)?\2:jO5\#=PXYRm%AdBK[$rmX'W="nDE+'qJ^N5.Y.=:'#.f?@6eA:'isp&Nl11"_mWsS>qKj<("%s#)
%pe;(pE4_\(&I"L5\TP(95?+Z!A?8@o.iKL<6l5j;,jJ2-_5*O`M(/'U8&>YO.Ln4r>Ik6\"@+Er/^NF#H!i"d$0iiq%H[f6G07b:
%T$QTG@4di21\Q2mTG<$Ofi\h$\oEg4=dI!7V:brb?]g_>&^r/aehW-lNXDDE=bO3M>s4;$`/*0TralX<G;j2M;L@&#n=(IQF5ki+
%:huq65"Sm(3"'C:#9/6Aj+6sR]F>NWY*-C`HZ3T@FHam)/g7*S:m9nM5tgnO*&*Nq-Hn<3E)pL">5^qsGS\%Orrbrsa+\_Oqu+c#
%6/7?OG6f<3*[pC<`SZ[a<C"fu\X^-#91#X73m(<UH($Ng`OsqaGpW'iP,e_h`BXOPV+bsaLob=[9R(m?_;E96mfSpn,E(p!B=)7*
%qm#56>)EkB8Q[=$MD3J/*)XRZYs]=*][iOj2"0Of*`)i8+f@m2$?2Uida2uZcd6><r.G'QR^JNACcE3]f0WGGnQ`:6(ONA1DfL]H
%23<^<$u9S\8!Zq)DU)]D\:^jG;Kb0\/Qm]]D_'Q?j@+>Z0D[s8."?!Ng7VC];2+RjAXuaM+h'7Q0]RBdcEPub.b&FZM:!cr/2&<[
%_R>Y%(S7kr+:EKg[i2`GKbojpSoeVI#FTCir"i?BE.iKCBEAHO,ZB;e&?pdYmrZlM1^,=`;TgNQY%GBK7n+=j^B$@KVpt5Mpo<;Y
%'[i1^l+0O!P>4M)kJ@tV49[MhYs9<2V\<5g"=+;X]m#AcfJTt:oh<R=mIOh@C".,5DX\EZ))b@!;?XT>2KoHj<i&@A/*!Xr%lJ"o
%op^Hhc2R73V,#gWRI4TucXG&":Hu\NH7q(\L5jd*Xp]^\Ak<QgNpWBU.mOd`=QYV?We,TmipAliN#76YU<qD,[>oiXR,B=pq"k!(
%/M:eOj[Rs%K?<W1g9LqgG8b<)nFL.CO]hF>i:%)TXtHns0Hp<Tn0I[BIl!n7hd3hY*oCb"@U$!o:dDFBNmbQ4#2CE;FW?$n\skmb
%JL?>2DrKU[!IGH$D(L0ZHW@HOPdVf]O9WD9nur1XNS>O$YHT8#]"ROW&t1:m6g^!=fn4&**W,LAX]]eeGU(daM=pTk9t$3Ic_-rb
%%43P==hTe"/[W8QCBEBL;kfh-/@H&kTmb3ZeNCU+Kk*6\Ee8j"-B*kY0IVQs44iX*QB[(MLYJdg8=d2BH/bEqk]m9^XE,Zh:0]HC
%UEjlcDqe#?;MUo]ipEP3.l\ri^eY4qOAXuTUF4b:aVOCUkkS7d+!Za(CgCe-eUoXds3ZIi%"`Z87I=FcV$@dA43o+9!dM66d(bQ\
%(AtcRgq`3%L9E@]?>uc$F:dS.Q$QEGmbS`4b8oAi"Ob*I+E+63?P!3hWnt0LO]nFM^e1^MgE<0)SY<IrZEtHhm(XZN\QHN]26@=H
%Jf36b"HNZ,,QE>'.<Vn+56YBt]^5afHjXa_=JK=af\R#=o2rnTA)+A)?Uo=!T42R=U)D#b_#Rhl05V(")d<OpH<+paZ?h7[[F3C(
%TEnr2H\)qC?A4WugSWQO6,+jrI>mY8'p/s\/ljYBE!<R(5k]`t6Jb]WYXFM$J703'NYeXc\(<ZK?$*$E[r^,aMOVbp'irtn&4,U]
%7[8BtTO`VS?Nj+Sn7:H6+#)Jp63%0oabilWYm)sRdS)/!m07]e0pBkE`Xd$&2NW-U#.>ScD9MZg;QC%Oh4fFMSN%VgIP6>$_5>-i
%KQ3TbgEJ4:_"B)k$]/"O[j5go?rW2Q-VSAY(qM+<o_4#cgH.DqNCZ6"$OBW11@b=JlS>i\K!2Ae]HYqaolm_T?DMQ1[_E$WB,X5,
%P?AAbQQKtU'h=.s8GanteHA$+6I[^cmC])a=R_>)?1@UH&hqc]l7ADn1nljGW)E^@#fnR*=b>_kR43/pO[S\SOSeBM#fgh"R8teX
%=/ei(#2F:SU+JOghgtCcOe%^T!j(\27Vaj?)l2kiSlu/]0[9.4$>*P>86mFr-,:a7G0NK@Z"iTq8T08P:o"jT4XbR"8dP!l#1gsY
%a;uI?\@8SqaX\JF@=3c\V(JN%E0*Zm_pFA#!Y\H6Vc.oWLWpF#hRb)l8m79.?tF5Wnadl"V?qJT]%!pE&S?c_\NM,Zr15\dgjDNZ
%bKNfqKKZ9B//0;AI1$rN-$*0-I"J+a*nJ-*m?o)D:bYfDmtCd1pVco$KjD1.FiEAUAUNqKd]Zk#n-rVXmERnDA3sQ:Q?6>-K5X<4
%(%F^u^_Q!1$:%E:i=Qb)"]j?Jc%p?*B\Sq$._Z#`;)&7^Dt(Y'W<-*2QHU=bnCtDB?GdV-]aUXB/Pr5YfQqLD5tE9)RkmFHD9b(h
%gL2O7NO#**&K?d=[7a:-:sL)P)uZ"@k#U=,fZ%'!LPP!_1&&pfW8MGFp8U[\Z._A,"q1tmUI[I<;C/C-M?I/M%hhb94X)oT-*%)0
%TN@MA]kh;6KrGGOe4&e?"!b#%p2fX3VN6hPb9Os>TE^+`^pdg@NSX-5jaMZTEeUNHCRKcK6fa`=,RQD*r2VXA,8LBni2$#?$0ouJ
%>O\A&Tujj.I2m3[,/V4""N]**@?'9;N1.kNG7l-_?/XOlX2Vm4[L[+5A.RD%(eG:AYH56"]1!pJ\n`OE_N^ENIiWti"6!%#<eA_7
%+dh3sg7Ds=)]tZ'/mt*g8'p"bC6XE3KTk<;S>6TTKAZJ<ek]0k,o_Ac1Eq;O<2iWIo_HnnMm^"-!DBFDisoS@G7^62Q^XDC[0<Bn
%mD]LiM!-_?,E<BUJ$(@X.X@?$!-5W"iTEMl/dqYb(++TO_$B3(>$qW?<.dQ!\6f?.kGa"k-?4AL6+!HCJe:sji44u%%Z6!)8ed6p
%6`]GooH/K;d?X?4WE3fC!<+kJG%J&4]rYb5.&C.EK"QS\fM92dIYYQFkSH=\Cm;d\TK`2nT'O/fUo0#G/tAmji;B,X+?I9smdmL*
%7%bdu1:M0\9P4=j8\l"<?+Rm:h?W-nLQ95igKn;1mrJKefC/rI>CKWSf4R:LgPZ&co1%D%i2YQ/i8@raD2Hl`]Y9]a(2?3ZGIF?l
%ohk?bCY*S8UQ@E]lYTHR1t-uki3V!iXZ2TbjIouI6-5\^*j)\IUIt\B`ptXm"EBVXV#cMU:[msE!)5k>Oj;fb[kZ!<XcY\.%Up<_
%o$]G"UoK\1#<],$,=jncJ?[+CI>mYZ/]2P0A6Z(UeI?p^>\3+4:]r26%+RDGdb4K(!<;i+[Y*AE4o"lchXY(ajIB/dBPU8aC2;!I
%</_Qd3XQO>'3Q/Z<6W5H'3siYI$V'0bKjV1rYdhY[_IPlU%PTtIC@]GMgC1j]SW;p]a6+AI-\``9H[WVpTH;H\^lB7V$@14*kZ3f
%".<&&-(lPK6lb7PbE-9cmoA9X"baTR7Mo,&\eH)#gNS7A0*:>K8f^u]1pX$O;7rkYPNn<omHA)S-[jJ^N%c4RDFdJe*7s(?FY/(W
%:ej"gfo%D=qJ"G\.+@3#n#?k,3?(C:.S=lt/`GQgGMrCh<L1!Lm(Qe/DS#Z\Zg%p'd+JL^7Y`%@^[sUl*jt6u:`[`7jVRe(PTJo+
%Z,.?uEXt;]T5f8_[`hg/W6;3BiNqi\&Ii%S-IuLn_$\GF)2`97J[L;HEh*:Y;\g^d)Rphc[q7&rB7o5fmgeoER>_WogQpI(AgbED
%0cA\c>Zd_%#@"n0%=V.Uk01fqD[:;Y6[Ds3Ql1"Ag2KfA#MIAEl!N309S81161mT]d)&sZm*OWtA>`6\A"-Gn]MC.\X)52XDT.:L
%!>1Cq!q9u-6*2`T2<oCETLW(B!YC:;kP@f>Q4Ea\3ueHX]@;]@Ome@HQZ<!IQt1$VE#*_`L@iR).OI[h+:)`c/#Z"qX<O%m1CCW\
%V!np3<D%h\:b>]KF<88eKh$g$EZPpR9Y:j]S]8F!8U$KFUumUAW.?t(L=1$c;JnQ-fs,^Fnkh7*"@p4.l\[M/h-I2YTRCah+r,Se
%s6#;?-$:9%m0G=<Xls^fllSKsacAqnP0E[jH4-<UNV\F=k\Zs"!67ZTP#8E4>6-_pg+1\NP1Qh,:V'P6)aoC$^h_X_O?L+2Ro0FF
%T^V2bHe3PaBlH/3hri$>3C$3hVoDbl%%]rU"_cd1VHgMDWR]EEgujTGD7#`?;Rnmio'k`BOgYUoe5T3?/5TFO&<p=jMpB.$rq?[g
%Ci'J:W<K^OPQ7M=h"Em,IMrQ<^`^#1Q7bGV2?>@(p'k.$d<r9HP\b"WojH<.m/_A_$CIU.Og_[9>-@?@fW5Opk"@u^`;)aAoq?5R
%frY>GW6^MW\$je9#(<9GH4ds[[lmDM:V\#HOB9!Q^^)oYm+:-C"b*`M'aebaJYhP*[l,Z[UbXs_%!2q@5[uLS5ja'uT-*ZCs67E;
%chuN3l$86>%NC')ESnt2O4Aj59ojc<K*^2>Y+.eIGsjiY#Ar2r"bt*NTe[ZW]TK]='pT4rcF$*MZV6C7d!DfG'/51ZgFiO3W!%Bn
%bup)t\SDF0Eps.#!?MZbD;^:.<eoi?r-elE!u?"d`fhiGSH_P_NtNO<<9t#opaKkuU+JWgUkcqE<.3,uSoLff=&9`:J-oJ1c1MF8
%9HuARMCf08X%3&YT#t:0]*:GXCjZAOG>L+pOt>6&Q(<M:H2.1bHXqcFHL78,K;`o?,AT[dPE7[iC(*:HDP44tc[u$\gGp`%)Rr;c
%1Pp:M#9.G"3!3<;5tBdO;6kKVneJ6>6JlPIZCROUc_?M`gNZC08`%7?3k)\Hf+.R::'s8KX&IEk^du*Dnq6`98a7Ek\mdYWRCp*=
%8QcMXUWSMVN\KM@_k?`H%Enn#k#L5'cS^h8_EG,E/=AMss$OT=O)S]STuZXLiA4)rH"?C[TAZ=*^HI[FB*65%[Pb_=Pm]VopZg%7
%nuHP@#3@n\@-!!s;jM?B?Ls,T"fXopoI_P(m%eY>qRWjH(`QPr1bXfg1J54efXK(mE9]K31Eq"1GI5&&7rR=V4s(/s]aq>B:-lV[
%i(hQhYie'WcM2_"nUplZ2]P"2pbg1u46`Rr%L+nDi,T4UJHBH1a)7kR=F)$]SO'OpSN+d<ku+E"[%6Bmn`OHEhT,`XEN:4Lh^Xsr
%iLlG?2KQ:hPal39K<:4!oF=CBZSRQCfll>gE(2Ei#A<H4-b&W+@]<)_?SRkj?sX+X-(&!t&"Hoj9YI%a5:S>>*fL^l(34_bbs,.;
%4YC2V<<lj//PkZc60HB_mJ$99Ba#S\DIF<"Ej%%36'bQ06FfWm7fM2T#aU]6Y/;Y@Eh=Uc[s\39R%GARP;dA3!Eaom`eK)E*\htl
%;/=m<b3qO"'TDUs=kfkn.(jK\)N>jN,?k3s`I5%t>[sAk0]Vn&<ie(g"gKY,2$toQQuo"`EK(FZpqOTWFe9)lZW@.-5m-3`/n9]f
%!:lO]$,S:(^>=I7IN#sf<QPiW$)enEOW'-)RTS[k8RN+R)j)gD!X8Eaq$KX1gr)V7K-f/YZ4<:\5.5*:':CYdF'h2TjX-AY_%sTQ
%<p+-V)8UPD`=c<c%4mC8bc)T9V>sXg8>inK+KN,k%SQm.9"uWWRMC2QpXM]5578FB@VT4h3qDGV9ff>RXT^M2/a^\Q'c*P[XSi8h
%^a`l-j<+!/WYNHL)Zr0cYf"7%oedS6<dk\^[%-nO=X>VR$h^-VGKPP&r4T*cf^2n^()Rn1/B[$;4IU-tZBY.[6r!WK,MXj(DQ#*e
%1eJrk.@]Do`b)]n$@")/BWDOGMp%V:6uHULHYp9&@h3a%m\!r-"gDK:>g@q.U(3*q6@ha5AKc,g[MTepWq+kf%I.+!6&oe:g]s7;
%;Bt[%`R(KbA4NnMH*[u%3EnW$/`OT3]_.+M\AcZGIO;er(@/e&1)\Xg,\pA\@O,+nN2[h?G:li$)aV5_IIRc@q?5dI@C`qMX9$KG
%K,fIm0pi##<Z1*DHa&2)+W"V)o"+0g'gn4')9'R<^@VEp[fVL',"U7kFCTqpg=cZ8GQuJV_9\1WC&8*^H.:K!%GhbZ6CjF3fQIcJ
%Ia;_Y!cu5!AV#n>,46%^T;,H64)cH<due3X/[0!O^ucTc9L_\#A@;ZB<BGM/X:lu[9EE*G<JS-s9hF)M?]qR`IcL>G7c;3JZsuah
%C16^31B:D85^@BG8!d=2+4qBZ]cQD62'K/6,J3>cQ9):6bML%1Tt.L=O$3JG\HIq(a0X>A6i8qFp#QPbpJbLP=)oS.$Wu%rC/d8F
%n6T,SaclgB`Dr2SEbM0uR0?hC_7PtI%Pr\C!4.N1WT,="f9C"c'V\V0[jJ.Ub6?jKI=@+56u?FlJt"*?>gLNs?[@mb$T9RclAB]q
%[DM813AOIW#)'7IjDhOHXDH(#.1SBb.dJ4t/)28t82rli"7-Gj\p\5@q'$U,\su_GB">ucbk7.PL+$b$W[lpZE>,^XCKUNe;@?`4
%4-D6*_mr3.WqcP4Y@umYYRjq_ouZ.4SX3A%)-n,$4Y:FQ84S'6I3jPO9j(fJoM]'M&('Ga,o,eLYj%:c.R9ruX?I[Jf$'+_URs1@
%^fmKDCEV1e6&ksqmb0fM38+6kNed#d@CCO?:;X:g9pHK##Qh-&B<s#`Q&K>WEl*?^N>%HGZUfCQHHYBLoqBp;AM)$*\%nP]QF9o(
%#BM*WdS($dD6]L%7;i47,l!?[UQGV_k@H8T`%C?Zlq%Cn9l`J;o.Z!KK,1nC+jo`=/pE4_<P&8s$7ImSnB+Yn<EW6)G5)>Z>9%qZ
%A`P@J+=-6jGO:<PGu&ScZ[&D?@V0*0/S;F`<+%DgRG#FWAX@A!+RC4=n_@)8<?Ua:<[ruL5e8gU?!K,$m8gI3b=6?[>)Ai-]>8l*
%`/L%gQr--07196Z/5bJE]a%<m2D4)QNT4l(n+C"p(W]K4>KMSS_(8K==lC]KHAZE'A1_N8c"(2J2EO7,-`]2FN,AYf_>s'=k2PkV
%36ZI\1K5nJX^c$GK#o51"`s3]hi#9,68RI7V-M2Oh0@.iDo(.;i'7kg0=rbDG"l2!Nm(*I6j9[VcB1VJK8UN6W#Fkkr'BRa@$(cW
%+J'"dZM8,02'6o@A&H0![TgcaW4<TI_ANA3=#.mGI>m[0@F:I27k-GQ#0Dfm9?tGB?#@S$8c+gdGBGA^oaqAWZ3-M"Zt3!YG&%2.
%<9#utF87k.J]&EIJS=FI"3G-qQ(K..>LWZG>cO&lhP_M1VK=RaMLa,+:@_tRQ.sQ5fV;%r3NAUO)l\nN\dm/s7@)T7EKaT4;W.ZO
%3?5(]D>^Djm?p@G41CWfcau+-2065_qiA+IF)lg,rI&$A^J#pqn<>c(A_U*:FmORUDDD)[!P%p84_EeM)`L8[QTb'u2XpVH4G'OV
%.sOac==[:PoDmJGm6TUN]8j"4.Mh[a!nO+HIX[5c.fq[aU*A23[W?k`FDMh6cYs0Zc>SW!$8hgP4UXI>@CYQD&>e;(+g)(^*?]:8
%$C8[8rG]7qhclqiQHD\95]s,58eO(Majc2BC%nIF^s[OYPIEHX\6;@7g!0t)/m6rG(*:7-[utk!=N1e/BeJI9pfT[EDN_SH["D+>
%hp>:ZMMS;YSTAEcaS=g]iQ]El?.MAFFV8:gDZfU$;pa\U"Y^^?b=K[1Fc.g???@t6XLOG,OiePnKo<]CgEt6U#ENoB*iL^Z0_Wa9
%8*e55<&s,8V+1D!B?1/-,[fhU1W^0DfBM33`'RQ#Rs6EH3Uk7kG6:,XCWsX3O(tl%kMVpl7jdWU`Z?OaC(La+p$o\$FK7Q]dd1E>
%KQ0TX+J&5ZKC6o!qF/pEPEo+S4(6]>L$)jg!7_r+8DQlAbc!!/\Jh:+W?*>DVtP8"j>H1h*CMhnQe_]VBij<pNnW;Y?5qG_[W9Eh
%G3:@43!N4U7\,[7%#h3A1\ol*@6sB)@5/^IJ88%%/0BHsN8_JUF]9!T)An1M#4T39J=c#GO&.NQo_'tN"h$pH9+%VQV1<lo#"E.M
%+Fq9X3Xqm%D%RZ)PROZ.E#muaOjQ@0+u1o%kBmP#c&56):b=;35&O2WK!WtB%1L7fROs8+-ad4M5q89"L+9ucnFb2fK6;N%Qt*@p
%;TCHq>GOoG!7%>Km.\4?_B/CV#fksu%giLg]ftf9=jH[Y\n.^SBRI/V\n:;-b]g<H^_qB.DN9Z,Fu8oc?oUJ8BF:C0$9K6A(TouH
%poX</H.B4T"4iHW)&InW,NM_J!mY./no/%u,b%u?qKPA,3NWiQs"t['A'1sq/cnPFXcD>F0_"/.QoiLohF77,Ru&^hP4RcV2bt;;
%=LVRfgl2ZTmqEIiB0r(MC6$Gn'YoaR`Gh4!);C1E+6M>eYgZel:3b&p/_e;GD+6*\bP5HW'Di-q&N"aqf!T$fl'a^9),=hT)1K?]
%/Fk7OD0*RqVurQ,gH6h(Q#m.uhn7Q'4sGKp_>=5MmYSN((2B9R=GujbFs^k[Md&I8c<sZ7EX<#F+lEX,I"0]Z\!oo6=TRsL_h\S!
%>?rBP&OQ^,p^Hor!kP5ChN\-d+Kl6*K(HR6i"khs'JLc=G%38hS,YO$;1im#YQ_e!_l1mni4L]gG$Ro3aOm3mEZT4D(n8f.S-cV)
%CjFIeW1"MobnM"m0fI-f+_>I,heM347/k%BloR:Z/!2X=])C)j2iL&n&[n^Zj'ND/+`"1u.lY8&VJ4kQ@2`OX^+bV6P9Z:OI4"4G
%7Si:9;:V3-169^7[Q$r9K_^97g=mh.:K@O/kLZpPAC>o/7ZGXqfn66bk4"@\eWW\sF+q4DG]J+CVRN6?<TUuV]$2;B^6"M',=aK0
%>TuY.e`%V+:;jm<f1^9KkU&*)5E8IR:]1't<8I=l'GU2TpOcUPj>=-GG@X=_PS=1:l=&8o4gUQmpM/I.R2e3F1!!Y@qqp>U+YBoV
%Qj0/V+h9&4l;:@._!0naEtpU*\nsnA/7!@)L99N+3.*mtms;B),DRCM`o^Iks3)c6i,t2/g-H(u63/e2BR%i3S1Z@\e94gVb[R39
%#!;?GieasC'#6O%*luN6+aub.QQ0h2fj_mpa7^^B!jHH;^lF2P)*;b7NsdD#HY(f6$VsbeJ$TC,6It3!p6=BkD%Y"FHJlu9!nc6g
%_O$Z/TBXl3>[:skAF/&bUl$^gcb=KAJcG--YO*,Tq"aH#c<WA3lk_2DSl6)$()WB<A[,4DCYf6r.uNtEL+`Xm3rHGR#55,F[Ip2=
%Rkt2S`o]+2b:(XNRh]^T@7E.R.AojWBct/""QZr7S74s'gD\`\oH5$aC>M>HU]>Gb:R+Lm-cQ!_4T.3J$!m..8EnX^b\]mi@XTD&
%j/-DNk']aULnf@GL&06#c*,p6Z2%/hn*+q-ke!/LYW[L%55jH^;3\e)'*u\^j.YM7GECHP2gMQ8jN3[>'^1ACaa&h<YI?'<EFpW6
%'cQT.%f]kOGH)mGCE:/+k(/nlCA3oBTP[5+C,]@Gp<ETMJ8[\;_fE)=?1,j8A*5`7Z8@Z86OeD5Aoa*MW>gYiX#B'O=gZ/$W^!F,
%)dpVN\:k!;)DfP0ej]M;T3#L:WmcQ:`ub$K4u[hID4*cVFSu\C^1l72#lb@T*Xi,*(?XbW,-sYJhR""r<HUQarcmksFK;6pgUW^9
%/4oXal$SnoC-upS'eh_Q?s/\.lPI`CD:/dRG5f1*[h#6&9jU,FMO*QKjY$E!V9(jG^fglF.H\X`P&rjDfqtue3(T3&q0ohKHjqlF
%<Se4o/Z6(b<56+of*DWFfF4WmrQt$XIt!>1?+UQALSKE[gCEDB\4DoSR`-tmkPOQ4Pm5iY"_?CX""S9,"tHoYND^5()5bMgJ4(HU
%H#7:N#BbOJn,`dXTP7ef?.@`Vg22-?PeUN7)@76okhDtQ_=I?DWE*@uNlh-pZ3@7\9"$u&mFhUl*%!%57]:E_=oJ;uh@C`DQtp!F
%%Q![PFc/BoFTc(Z5Xi*f!O7+Fh8i9NEfi434^qhh&?pKfO8Q\Hdmqk=e"GaF9m:&2MEM@KhOQc8K9gs,0Z4'AIIr)mJ;7+K)ot`)
%_7kX]&2=]XN-ajJjc#2bF*N<ENf`^M<!k0pK0A-Yj;sTT>@9m5k!%K=`O36Ji2;N,7SuRMXo5>Ur;"#r>hKncMk]Hfk`.63qRM`q
%\uGZ[cmZ(d*])mc(aWL3J:ii^*!NQRAO=PQ;$-@]bDNK0hf^FeNZ,#.%BO-f"W4lnjPU9$Kl)0.M+YMAg^@>r61&V([]++"P-T8@
%(,8\;U=PY,H%otq[ai6`rPj@f4-;0T0/82)mA0/Y/agTmpr!a/R?koE(^E0Z42!5YS$^7SRI_0t:26R%#Sh<]TTi:HhSp2;R.[C9
%*G2ehFe+Y=?5$Y>oAc9(0kPp<]78n(H>n9r+2`Dq<LM[PR$5Vm$k4n0^,ATsn)4F"3a^HSFg]eJ-8rpbPQKKtU0@FkpACC7UR#n=
%j?A/9a''NuKY10Y/#o&9r<MTKQEC7G*;P,@o?7^^E@dE_!%u\(P&4;(a9SXg6Je!Z(EJ^0^lk.[^HTdZ:d<9BPMS&N;p)s0ks8n:
%p;6I'#0(&-9UH-aOG0uIBM3u[73r)Y]Og9AMO@n4q5Edu,o;+(+PfqYTN#g.QCZK5jO&(r6^UBC%Xt,Wi>IkRSr1a*!Z9.NO5_!q
%BVYllXH]f]%VClia$=)Gm@)d[R(R&CpD:brTJ;$39?L4oQip0"i`Lp_&[]S/][OV8oljG->o9<,iS;XTqtb!"hcIfHB\RW+GTOtM
%X9,[4aSB6?>eC,u&jGZ;L.Yce__a?5e#V-ZW1jO<K_,N)@W.FF1CpBM[c<hM/-E/@2Z_Mci>&e</cLB:=s,b6Y@4,`f*0-TX7Q';
%01u<L+0:!j+O-SpDq`5SUJi]!;;t]#A2EPJpH[Jj!!LP]&"XhKf.JXB5_e:`.r7MkcirdsFm-#:(6faKUM[J\;6GTjRhF7HO@sRr
%<j]R(j^3Y#iQ;kh!)^^d+:gk)7B]6%:(no%TsrOp">i$>WKd!nfGQ4Aegn'&jar^eOpSA^\.fL*q58@O9?15S736ZQVDH:,*/q2n
%s6%GpgOK'5_7.WGrY$t%RM88e;qnX1RFH#TNsu2]d4cUR]:[/g7NdA>^>a*+l4+>QNN2ORhIe.166!=KA&_WFY&q%a(oPQ1es;W7
%_X$=QOl_;J@",XAj?::7_5m,-B-c^n=`2kki5gVa,lblA5crd6%i2H)fbbndHHH(l8aWZa06>(KI,Xfse^E38hVdYb^*)J6AhBlP
%?%c1+"#-QVUh]GGPmQW-%<K<3#dPgDM1L>u57,B]BJ:Z:=(WeM2a[]FHQ<L"mW8=s#3W]s^rg1tm(rt0)2(0Fi:H!DI/M`K`d,e!
%FGgRH5B4t)ATLMe3qGpZO^5P0I?gOOdTgO>3Q*n(IX]4)&2>>KGUZ`V=iQ-e9hTYmg>Ekt!Xc#W2a\C'f?5S!-@ioOIFl[3%G`0`
%EZh4Xqa["-g4El">,!M-#\I9>2ZcU4PZP*:hfUmXqYkUF6p/d$*a*tMUH2Rs)/55k+!2^Y]k,5&=P]u59chm"/u=$gakQHDn01"q
%AL^7^'U73DC,0YLGY9'\@c6OLC8oj+!ahZVj]TiIio+,qAQT(G!h!d=9N,^&SYUCn0%`H%:gc%5r!1ree:7LCgP<&C$.aH3l&W$[
%jo*qWV40OU#W^aX<ORncs"EPAC[+1[r1AMqf\u=K0qJVcrE+s_ZG7c\?9Ve*M86LZRLAVPJgG9Wd"&Et(o\LG%<^ntp3]'k_Mors
%YFM._YC7",'^ul[WkL,'Gesu+N)4.mV"q5FCl1ILG5Zr_K@O7V#,aYP(*^3cTblbl3M@FEY[SPFZ`$Esr6`pt&,WhOFSQf%d4h(+
%NcRg.E>lZaB^XS)_M%D`[W)J=k#f'V#BYtaRV6)R+[!1Z03N)Ti*`ZE=tSJ+lP11K6&Mf4Z5?'hPd%N@rYcTt+)7ukbJ@LZVQ1g(
%"t5Y5%_=H90_V)b2#-ak*s[#ndiV_ccpW#Dlu_g&#-q_=a,Z_\Nr@_(l3cHd"%6#(r&.:uGd!t2'jc_/4OgK?n5X?$`>ZgYH\ks6
%HB>4%C2J9OB]TlI('FE0_1_\[9/u1Y!XrnL+A5?3_\u"a\r;4tnBNL,!meMQaKF44LmMpG;&+s<4AS9_WqqPnfV2(d+Y)I@`1Qc,
%.2CW4?QUNZ9)c"[lY(KKl8!WXl*%='J<+Ac1('ij-E35ET4!0IqWPMjOM]T$2NVG'"QVk6*+%b+m*hf.`\c5n!VF%B!:d,92o=tS
%q$u2d)H.YJ%m6VQ;$Lep0Kg9VLH4,D(:\r8Uk-X)-50Wc>`PM03PG;?jHn9Gc0N5N&4=W@;b\oE=ShI[QnJTq!N8*6G"^,oDnmpT
%WHXHff?]N/==27=N)R@'<V9?U5n.VDWd^:Kg1t;.DOsp`NM[%^Uj97/En;@[!Sl^*0U$uaK-<bdd#<;*[ii;*8q<*fbi55fEeq\3
%h%$FCki7M%#OoHtK+GF5eNDqO#u?\=-3'ek+9;H7U0(sAI'p@iS9o3,'-'foXZT$0#$ZeHf-$gL\/EBRf",cB(Ti^abV..7g\5.0
%Q3L3uC_opkY-fiXU_^IQM*@@$#?`Xn"hA@Q!<pZa$I!C)_Q#&gONXo<I1*ng3=<P.f%Ut-h,7'U+mf=,]&/#l&rZnEgJSr$Rr.bI
%+1t>FRN=5Lo)S,"2kMFi2P8E[j]EuY>>DskE[upW*d%.jc%%+LYE)NX\T?]#oJEtA5CqfpB&(#Ii(-!I#-,c@%#iB9Xr,]Pqa7uR
%PU5/S/c:%5,\.[a%HR*]Nll?IOp##>'i;^m)9LW89beMaOfk0PBe(o7_u9C9IV29:%\F0F2uPCs;(?D_?6YpQjJ:]:OLDR]e`Bdh
%]gh?qdh6lYT-%QY;Bj3+DBRP]?A_C:m!ZYn3pn8AW?.Gij@GbUp4.,JJR8&XV;1B:Y/BW_IKtaAT`eVcs&6oTYq2+WV[:FS6JEuW
%4]&B"\Gf&blP;u+()%0%H[Aa0=)L&>Uj]5-D,>I+>7ccXbs9354JG<a3/C(iY,KYpFWUs,4fC;$a[t8Rn(&TZYjQAcK)B)U7]gB/
%;Yi4(D-RFZ[tnB"7uFb*0=K__ps:4@cT%j2D#:Oh!GWr3USLSE4G*HFaFdKjSUr$ca!r/gpcrrcV+&(M\Co<'p4Wl-N9B@<KP:#G
%TJb[.iS@?b.rZ&qq>O)mQ+AZ&o\5B@S@ar9Dr8bDEUYXS[^aKS!O"eRNT+NjS'%Hpd/(>?L25@6BJYTGl)\huSY-IQ>LhJRqp!:R
%V>'YgEcRq"=f23;[e@0-.A1Ml'QA_"J%22QM7^3r#1fs<"_,JW.8%PN[uHOYIG$pKE4]\jqJaV^PlU=;%N>#&oX_UPA[lNq?q2,?
%FS`ZbbR\%<V7EQ_B15'<;4Va<^,WUcoO@&*ffRW7X(u\b`fsYb?SJQ)LlJg&$mZib1PM$?A^Gi4(3N#28klmL?<4&BbsZh,[i>"9
%+6n#bOW`b@'(rBDkX6d5E#BK*+WrYeMI@1sZ'Zo4BZAA^:9q8$@Z,r3s21UTm];+>2i<LIOkWD']n:f^h_ob%4,=FkK(6&R.$FIg
%V:\09L):S]7Z\FbE;F.Y$a9Ln!@+C3X9$9Ogd/kHdE4bc.+KQ^%ftWbkWQ^-nd>L15:(Ns#1@YA5eh8e^'Ju4[e6</\mNX:eQ'3R
%<i!$4H\EB,\k:/eSsf:QO_OH9HpRgbd&clZS/dRq<tfYC#Z/uREBIEm$o2RG"7f:hUB_ZA-WXFZ"cPEVYmqO<U\Zth$H%#(b^8jr
%=u+5VI2Wakp`<)7\)l?!f3fT$VW,paQLGNlUS+R862<u8[4IA:1=3!nWn9#u"4ijVYfNLJ\iQ<48b/-$O5GLYAm%#OMal78O9o9%
%>;7uiABEB?BMsVR9`a#lg?R[N072(3Y/0qV\QtLmGqW<@2$_kde5q`eeQ6E,6;1O8LP&]JmTU%0*VHUsZ"(/Ob%GN55IoKF)k7kI
%K"b+^oeJAGR9O%"Jc&tl.VlXTrR%qDXfN#^_5n9G`sU,(3.QU>:i0dcA]W>`B2os\e[!K3GNYtgrnS/kkGKBOKr%YKpu9Jo<+5$k
%;e-^SFf"k]#2N*Wq>$bcLpDZSHAPOuBV_d_.85Y[#\[VF:r:>V!g4/m)g1I`&$i9FJ(P^>)/%L&M@J^MY^rN';DfG?&.DdfWg,'3
%#*=q!0?mSJ=UWNUU4RYj<)B`TWAU`6Sj$nskYr;=G&u#nR<a"UM_45MrFe-F2>ArIX,"VP't@5&f=D#:=sTF+D,!9<CFd8u.Kuh`
%pl^"ub4*q-K/GFe7,:g3;UM=JD;RHkc"oIe&r'f,qlEr4>em1lNTsf9#Se:Q%SJ@rhA0Z=J$drH5^l/q<WlB?Q`AP>F(:1XDbe4Y
%73^h<A-bR.3>(!_BNlR2T-%S/*#eCj%3UuH5V=eHeKcD85UlVuMijWo!g$R'if>>*ku%<aVoQ$h8c2ir\O$FXM)bJu6M:2M'Z7om
%m.4_'=X::k+-*IIGW9T@A]:UM?UX$*d2oGB=l;&Zk_<)mW^?+=JG.mP_NL4c'M=\;eCk\ZfcqSgPp5"cXj?^LR1oMM7j#O8m<):X
%*b9(:B,X:@gA8tUDcVcm5.0LgVB0!USYNPuJ$V/f8H7mdfAY\hl`c,@0[$jMfW+u&K&,nB-JH<LYbYGkgFQZ8X-iB)oaQ.7g;[N=
%frYtJ4q(N+JIF*dp$6+@cgt[O:ADB`X;1AYV.p-maiY6g@urITkQ#%EiE)fT,SKD7b"O1R#-#T7$FZoPl:.(cTIu_`/c-/R/_2D1
%cWT>m>*iNTqB($+C8T&"cGfG.5ai`5.&@>MC"J-:]qg:b5]d%a[)Lio@YU^*9TR*i5WiFs:D4Cd"3Xq%Y94?S:]qJ7?CE3"$VL=A
%kbe<pg`_!:%/?q^0mK1&b&lJ'6l3!FSZ).&Vc;u]gcru..KZ&<$@jo1.NfJp]'KKoab6N"H!$r_QE=4d?!Du'A]q*M29dq'V($B3
%+s^/c\s.<9V^qqQ?o`M.p2_\Ioa4[Hs6@;"#qBjo:*-C@Ush]2(R/oFgSRJGWc7JC69qF<f'>pDE.'Gi18i]KWC'Rm+tXcs<RKG#
%`AT>+XA6l)XP1]fB'**Q@G$K&nU$Q8:,@.`<L/Nf4D+82Fu[OH`[)FHrs7lJd#X:VP[5539'QlIZM>72`QKK*Q!e^7XU3I"b*mD5
%<0Na*UpB!j3m&@7T9r=+#4bUkBl&I);idF560XS:Z/&DZrZ67)<\^/kc_Qj"S1RGQ\S\\Y@>AR3/hE2r)Tl]j8[Mp>O+Wj#D[[qt
%DN4cbAc2HCgZDA*RjJ:Ip,UYaX0(T`\J_k<FkQ`Sr[h"Krpb2L#Itl)];#WCKdVokm;8D-9hR.iUpVd.FfPSul^$>;CR7%Z2=Kh]
%'!q[l"^:?J9`QisdKA]lj"!C4r&(#1U=#;;n."Sc39=&sYVJd/Pp:Nj*[MbjaVBJl:$nt7;B[\fN,&?!h+gQSTjbh5\_@U?&&qPH
%mU*m#ceke,cp\lX1[TfTSaYM2C/(B,ZKVXd$k@.W:u3LsL>)GC;ni2iM<*r!o4:P6A6B/)"4Y-ocL4r;<ph3?(X,0-2=<1CTXI1t
%Usr/<G,,<M.0fOQ#4bW.*E:'_gB-t9UnBB$E=?A(egiS=I9j6sXL?B57scaL(g`M@*01bY=<2%[q:<qDk!\/daV.+nW]VM++cm[7
%<A`/#.[lB4+/KX-0!AGUC>Goi1_:s3eLW;kZ79Bcb+N?cXq]ephgC24(2L)12\<o!"=X<c]ZOa5"g$l`^fhrp3fH=U%S?s3i^oaa
%Du93CGd.Z<d!hhWY00PS=+;r=M]1GX._igHZ%ClAI1(?P`;"2uEMbd<"$&B[S#-P,4=mD93lA6K0RQj;qPkZV\^)j2n;MQUgsJS]
%B>nr$[VnIBqir*>D1@"nI:29Ih#>HAQ:gYUYJnkXgbm#AVc]3fWV^?J5O:&fpQMY/\d2ln_:n\[d<;'-J=%mi]#h?k=J&c_Oa_eu
%fLXh+:5\Si-?DUAR;<&<6^RqbCWUmJ4'Q&mf'@X-,9T/"g/8p^.Q?2C]"6@oY'YoueTH4P!n]F0hgH`30usuaq?gAM;5Ile7eYaR
%!`77+n0fDd6!JZN61c:FAL\`l.U?)*L(N!NR[Fl*e@&NZZ:cL"DQsEMb:B58Aq,O1g5_N'TWe5^5T<i5B\Qi"BLbZ88R,ZrBdG],
%VbC9a3X>hWcFCDUB_@T$@u5eO^ejOfWSTH3/qnCU$V5%Donq051?)KgB\=G<4f`!:G6nJ1EgqX!V^rCbc'5%ibq4&m=$;Gd0NGUs
%UKsbsR`6+[=kIi`"#ah>'Um$bm8<]g[I[kEf,%.oS.:CgI>t3CA`U1^"^XEN.$6ME\m\3>R'1':WjPGbq1(K3e;0sWK!@nZ,u+Tn
%DDMBjK;gZY(gpak.9&?Pc*mJ)3nW[#l#;*id_iQOV7o)f8i=oX#>["ZIdk"-kVNq7(7hXSEU%CL5Yt9?pi777Me:Z.j@Yku%WCul
%BhePOW@N*&HIXEoD<:Jpi5lA6Jk%j)9=*C/0&*SPqjE,8ASp+[6T&YKVnHY+Zb0/g7<WaGSYH5$*,$2s=h">S\TQ'u_hWB6@4RuO
%U>$EoWC19_T``W=1Cc.aq];!&,KN3'@T3C'"a;(OIh,4.k40nf7rfB3kE,g0iK-H8QjQCIjhAcu$kU-KJeV%#^-_\.T,n9s.X\7E
%%+;hm!\ur)?_Q8i!#b8+a*)B*i/.S1%GZuEJd+hbp,64B*JA4!+<B5/GIP$QN40iB3*35j&l<'\md^u5^3RB.kJu6+Hgp?2Cn9A/
%)$)(tXXG8DV<D"c5j_%`I,'@)19i\;a*Rhh+Vd2k0SCKefmeI09p>Q9"4J_.5T7XC&l2;lQ*TmZjHFCV'miC='>KUNYdqX\KRt-7
%OO7,M6pf*"SlOMnP@k_@nacqXekLgPBI#_]_0FjpU6E$N*;3Vu\"+Z5^^q[Z#m!^CW^B5/QBe_+A_(a<`h6>?;?O`M5`e-:>DYWr
%WT>gqpO[_ap!JOa64muEOiGqcDW`jW3'><bWj\(^VP#2cAeL:SJQBSB2diXe*R6dKIfQ28N<4buXh#f=Ie=%]a['GcU%D@j1"1:r
%7T8q8SOf"g=.`M[/745'^5QIGf^sW^IuAe;L#-B?j[$/0'T#&*65=oFE1oK$FVIu@>R\NqB`Z4i$:0R`k.6R,&mUS,@\DU]YEfT*
%n@hSHaX\kC1.+AMKpM'+qH@-1#-K<q#,W7?Q[-<A#G6JnTH9C^W,<cNk4<*LD$mLpMrbf4bHa)Gmo[5S<QJM7Tsk2W6RP,@jJt!^
%)8$3tU(6rWi,PieV=XL;b0A82D369r_'CQefU9Z's5m1(;28HPM@A:C`m#2<:`,$U#"C2<U*_Y^RVj9*qng\XfPch#??"a##-1=c
%W'4J&m(J"m(M3)VPMI^DO-MNUn0rT-jmmQ7WS,#9rL>FfZ+Y\^\fEP-i^0M]dPD\a(2a"DRSG2kK`HhC@:\;FSZkj4"0I44Ooi('
%;t?CXUC+3#";r%VGZtY_LXS:qFP.IHKP@lAmPrr??bo?LF"o;4I8,Yc>?HK\Q=97+h8,_b/u(8!]a%ckOMY^!86]K@Rja)'CDn7&
%?fMI_o:oI@e@:WA::\3=H**Q@dV>Ygo`F4Z?A8cC2=GLm/YcALBuF]:rA%*S[^9nI<mnhV;K`)tp?,i'8Dg0F.@'L&N=up*XCd.X
%(9>Cs2*M<nU2i8]&KWpt.O^)i!#5JSR6;sCbK)ej2^D5/0O,.n7u1EDhu=\1,usFR=q?D+V.">o!2K-(c5s5T<(je#QNa5=+3L\4
%g=!&H7Yq1d&KBNo]ZpCOLNXKLXu6;pmnmR^JKd@q,muiYlUh]1/gF9;#h3bLg,<m,);rt0)KGE;>6,E7*r9<4>7_gM(5N=8BJtr-
%c0S$j0!QE+AA#u!*7J9!i\9A&/*cB)fEbTV)(UieH?3PcJ_D&D)!'7l&8Cq+f&oPAgIsd:i9i`n^*.jmC.Lqtosuoaos+R3aa2^-
%VC[)uk%E+W-5N*I3+;t="'qD(ouUcoI08&jEFU$neGMoX?WdlR!F$)Wb*Ygi5oMhRku$#+XbO:V\O\#gWg5I-!aL!*V:rZ,0[:*`
%dO7p`B':q3)&/TDTWWnb.G!n/a0a=J9Y5ISeJ4>,+[)",gg-6=9X`>Y:,8r_D4_%03gK<6Y&9%23)b87;,'Y9BRU@>(6Srrr]p"8
%Q0XQ-Hmr&^:G(Cm"fGj6_=W;FDV+gJ<l8Ml_mHj#257hE!eoQ1"c/YSoLj1J0@(3CEO73SP]HpKFn$27YnX%kIae#B7ot'o6!i<'
%NieuOMSB>rm7+<s)m61WYH#qHhD`!WnP3"2C]O/"L>eF"Cq*6iji].f0#NZ@D?tQ\Pfpj$D0[FnO/4d=H2Y=;25u&Pqs1#"XM#D;
%:;t+ei,VP:s!5_;+\7W/*NOne`,/>3=NKR*k#gYE=EN+@@%P]@KCW#qj'(OkRC-@Y76o\.d4O4i$O4e_hR+;);Nn!TgU;%:iDI8)
%_ZJ3>Y-Ds];0[$DPs%SU5ZUVD,E"#o3f$ZZ7P<Y*!(SptH`0oC_9l\)*%IUR^WE6SRCN+S=jTkj;G"R"0H0]&*4kLBAr09$&Wgd"
%/"t&G?=(+Dp/Rc^\'3P`ZG`aYM_%=4O?7+D6*=kfJI7KVnPK8k6UZE0[ZpoA2$Qr2:^'C$5R#ukpTKplCH_#+5juO)DmK`-2d`Z#
%XgdA]iUk2pPhJ#'0'XRRi8XORZauoLJ#J+TV4,97?24iomJ6Y&Bpf\sjTp;hf!q!L-sOKgXd4N@/-ajn&DqHQ(UK+0Xib0Uh8&][
%dRg=jGP/A47UQ%>8qC+c'u9eBhgjIq]G'4B#IEj#:)45<\4ZhbEGJe:H/=0c@n54_DrY7t\1O-;5c4hal94W\]_CAn=_Ch`L:rP*
%#.50o0ib/S4sJaATIA7rbJQs;)\@Fo/rG`Plf's(Qc7ak2qI5YaL9jIEDm%R_'!AfcU"5&D3#%haf%LW['CiWR[(Mf7!)\ar)OAo
%`$q?eM+]<p!h6]acLQ>H.l7:nf#b;Q0%F7uK;F_"#`8W;4ffS!EP@*,IFn0EfQr(K:/tVe92Pq&W\f@eRV-RX+B]>+PaWbBBbf1X
%nblltL%iE4fg4ENm^j*Y,nA,"PKPjp*d!KlI4h;l;$-Ns]8YVCYd4BIlVT:m'0"CMKH=_JA=+[HWs2n^_SEjhT,qUgRpUdF%^U(j
%h>V]0q17,6YWj1H^=XoP1+r<Vk6N++I=uEL>IChMb?"]q\t(01"-WeEk(U^9h,cZ.dhIp`(U/TLU@ZbMS>9T#D)RKq^15llJp+W#
%)!o4/e`<-8eSLC#?NhG$dBhL89L?5jbo]$6%5@.JKudFtlY7Vd8us'W[k2BosA0FV4nFt7+GmGQ)YUh)_GE%PQVA'#-kEKRWD
%)0h7DO1)X;X4&Aa8@8X!2ddIm'-)AGg(lZC]L`5(E_6?YpE50ap0aNdqrJPt5W>J[<XX#J"+8=9'1Z1hL92Kf*!Xgc4bMN&<h&Ea
%i1\q?"^gm"g@du>VtR'Y\%piTBcHSahguXtZJQ!3\5_!h"kWRM$Hlj$[dgq*_'t3pCg]gf8^$6M%r#6B\1^[Hh6e3/PsD7%_+FN,
%>L+AVVseYq3`9ag[,dIq=Gb\a_i;ep_o'BpR(G;ds)=VWgs:Xl^agoP1Zk%fLrmsNoW$5E0@*GZ!M3X&Y34@2%'jG/!"GNe42;N:
%SR4KF%G\G)r0;8V-eo7+>8%?11WZ>SH44p;3Nc#=&hP<23`L"\$Drh33_sIRhghk$;3reXA%cE$R"0-/'-+[<p+jiI."unYR;K-B
%]S5'Q228)aUrh1[05&Dl_NoV\#B3\HF^>m/M8,srO)"YtY3aU#fA[B@G[XLb??JZ\YNq*LmFSq=([Qh<m1-"[P.[pi91deEDh\@o
%or5*K@O[3s-r!l%J(]"e(a;H'JE#dJ7cj-N*Ytjd!IEZ4m`JY(%O0V_+9fDpqc<"/K<L=Gn"FLqLHo52m(n+^P=-r>1+m.DBV:hR
%`\B=%hKHUqlj^IY.<0`h19ei$p]biX&P]$VK@72>`3]e6`.sTaZh9ucQ8Uc44.&n\/;mPm97rJ]@5iqDlY&k$nD73)Qu=OFC5"7?
%T$2-;6&f]K"l!uh&%(_(YJ?9K.f^pR;*Z!GAL`V[[jF7A`ZQ=*8R2bS):_9)HuGEajnft>g5lYR0i%*OS.FY#%cZj3fa?8/RG3/'
%oO"2SiKs1Mr6Ts`Jg!B(5i8p`cU5)Cpk^%SF)19/#Uk.b)V/N[=#dsg$4r<T;X8FWF2E;,;Q:Y%V$CR>Y?4Sk75_C.$D>(6`_3rY
%)6V\#6/h0I"mejj8h.X&O0NQ)U^WXXh;Y3ZADQ2!39jo]]T-KIfoBg_AacZ@aF70N6;.%1fs>VMlFR$V'^B61EX^g5/MN53(#\"0
%Lh.\.B2D@SHJ"p2f6lCm^p:O1!D)V)YE5W+RE;-jN,)9pEc,&W`]d)V_"\'nj3qPqY``+U55SX/rg^]4l*E1%>$BL;V\jVI<N-\o
%Zi:?4T%=9Un#aobLM>(kQD%Y"*!&\oJ5bNE3/5W'045I/o+mpLYE'8bL5^^YC4X\]^\WcfpYL?$\m'mjW#rC%;<rH7@LU7P+DpF`
%D^3G$#Xs*15GEYZoIGERbgWUZ5!)H!Q-<5/ohk8eDqf^cPosCVm"#STK(O];UY8do&b'QqS=3[mN?qf2YM_uE."TX.4l+jc+7^1H
%6N_9E)@H94!n.rc,3Xr"CQ'k@dA]0l2bYPhlWDE8K;i9"cI#VmDaFD8YOa[,lGV#RboM@F0\f%fFl*[&I`CO3CTr2VqW'X@04/oc
%1YN6f!P'8PV)g*\.W]j)ppkQjM9+CN=I*YA>NW!blXN?/l[E\Sk>n.,F\_-l>3Abr<ULj'j/>nc_9u73511g,P!5LQ6hU(77Q$k=
%RQ?)0/<"MCfU4JY%>OWSdE9agHWbfp/aQU"3OSh"X=jfFje'X!=&RG/!quR42n3e%(?fi1[0O8!'@b",rB?XsXJ-%g^nV*0)na*:
%&d'3%P;PgKS%1.iEa:2#^?5anfO6KT$06R(q!mqP\R.$GdILi"cIE_gH.IVUdD4kR!:C_)EEQ3("d@RCgXcN[;1$ZA0!7"-`>$/&
%%\E%"Jp/'R"FI!N<+a+,@Df7BPFE_5,JaojT7u&h^8]`u)jk2!%GpMeH"fpU4P:M+([7q&7ff`/JTPfhY^G\0Y.+?9G`EJJ0q^Fd
%B%[h=o5[QtE9]851n1>CC8BEcMrD>2@sEY6F:\'NqVn<$I>SnbO_X^_/AuDp9$<u;\u(!jHE+1%^b^A-,IgD\Cu8BXfO/pM\tpB_
%d0?bo[WY#b$8CtnLf@kInm]l./MQ\IB5N73?c.*.!1,RUOfM:k=Z!<`M\ZQeF`%f/0nN82f0E,j%fm$dZQ^Ms`IFRu<5)%=Z%6Zn
%H?TDUZc%nl>/nI[XVoq^2_Y`IHTT3Kr5Zh`9A="gLO0-(>AMZ9[>-L4:-_Id$]X0I\+SIo"\f"$_a.kliT2TpOKT&]<</QI$9guC
%*/rP]37$QQLLWCK4F?3*o*__g!2KOk\=fHGn@:6FQai;j^_MUecG7U2#)EMpK3.4*Sf[0EX8DQNT"Q:Pf^kV!\AoioZHH8E,Q7A&
%oG>u"?8B[N\U=*R4KSfO,8Xc!oQ#CI^p@*c=07&.FK;/n^akq6lMOU@]r/QQ/$)YNMZ;8cAN9ao0_$"kJCAQJ4kM!r6=%sheeu!o
%lPB8c/21?J[JT7ggW>&XYs^0:dt/kc4^pc6R]S`MiQXLE#<TL)rpsWQiGJ$+r:1'gQS3<J"4*9j\FTo&WhiC6%AFU@@.8?3EsiiK
%D%TsuV.LQr_:'7,n/cDLOF[s]jE:R0%]Wa2,U:J_A15I,i,Q]t$`OhZ/aMuuY[C)u(2Q,^31$q&LaMAIEq&ZhJ@$niU]:Hg5`BOl
%Zc0!>[L/n]B;*P.,A=\dE-;WkfX>X0gNi4mnVmT\msOhuPq`Nfka"q`QOFL@Ml<ABJ=ji>^p,9!6=$8jIA>Z!i2^b\E\8+%p1,/'
%@306*ACk7TiF1:mC/QkMCco]TM5G%'Hd$VjcU!PhVPS:Fa-Ps`-)=@\;^GJrlf#ri._fj^d(*CK]S%\&d&a069jSaZi:RF7hQi!H
%(adYIT$p4t!;Z5-<8do,TSV+I')]\/YB/T.1r)oq^JuG`Le)I-W/?h.i#b<jd;;ljAH`Pg8%>Hk<+A+n?j;3@E%S&_`$Y6c!S>$p
%;5^-X2l3.hH+O4p/=.1Wo+Ih-L8:LtfX%*&$d\_MXtX8Z)7oG*,9%[i[*oQj/%6T-aM&\6o$c@U'sBlU<r5hdHDU/_E^OVZ$!%U\
%]1l>=[:PZk@1HrPSdXrb>75Cai'IrJ6XT;gMUcbVj3unnHmc0`qt&p(NL#lE[kYDTgkQtA%*mMqDsRH1cGgs1s&Lj6Hog"_'TT_M
%pD@JB+0j6Z^_!+%:<oKpe6h#Ee6<]U1*<@O$kr(gc`bE]nPMLT.nJdHR]CmA2M!q<1)2oS5GQ+X%:o.9"s3B5i9//5p<d&5qi2MA
%l;8I&,QboKUnAZjrci.HQDfrSZe(7M9PVT=Zpq%NpDN+OhNbJ0VLbiE]q0/O9hVrbQ@VfdQYD@&38!5tD$b&%T0EU3/ZuQ/=M\!p
%/SXs6M,(^9mgot!s!:MKeuH4/#M1IQ6UlQtoI/mmU-n^2g@i+.>Ue4Rg5i%.[7d8n4:,C<P+UpB<aW1.5kUGoDQ[oM3u:!4Ag8>R
%S9UE^l4;3PU17Z5X!PE<1KU<klD$1TfjB27dm:hRl;L:H6FB5R_H33e'%11"bAn+X=)]Id`':\qBWug1(-,E*-#IG%7;>Ps-9u#%
%68m2#4beAS6U9pF&m/$`f-1i)\It>$%>_?Fi39=u+APW?M%?UPCe;_G?BR!J92L5+'_DC'EOf,u\3.MMZt`R)LFh=T)8l"Nes-,<
%ekGN3lj'SSc7-8hJ-,]+4K(Y7pf.].Giq_`-?[5!Z3irb.42o!<o8eVr1(%`Zlqk&WRPs3.m[Al3J,.-k\U^OO]AUo0Ur5;]15EU
%q/R/5CkOgP8.jKd!%HOrMdiVLqj&U:TU%;]fDZ]N99E<*r[RRj8hH?$pS(b_M8)rSX44i^*b>2],%94BEjY#I0Cr#u]Pb6]Q?cbV
%V%?d8cNc.AnspRjg(j]kg:3CJ/<'kU%8JGNJVqXiif^_QTlDXt7hWhg8eU7tW=,e*Ma8mg*6Csn*mF4@3\+*db-ikVaa(cFCn38m
%9L?_W<OSYl+BJ3:+qQ9"QnT5@XY.G-n.aTLZFC7\OVqtrqZ>GOP)(')*TV;HL"81*D7doPoI<+P^p_?]e-.+e;=>@c[L@OYH&st9
%&ulAfaZi53r<45tYY+j*_nC#.Q/On3-=1,12RmUO(bOeN3'=4qh$mrrW4YG!_ee1#]ZRsh]hK07YZg9B'WUI/KDhc#Mu"/,-khHd
%\>E[dJg?29ALOtMA8N(/[5P-e5a,ZPd[(]PX%7_i+GN7T,dk$k`=(e"4=j((oMKH?dtQE-.[X*ACd#iK:1#0Rbq9!cVUcRP0Gq;]
%.,?AP>K4)$^=rgq>7I\.b)1^t]X"Z"Q]liY@"m`#\L>t+4+FMeaa!rLY>B1Ug^<0Z?\]&MK?rLE.gE9Ao\66g)\*`hD2/4MG2%27
%V*S+B6s=G]qY<Y7A#kc,5t1fV(04=jd:N]cBi0bQW`K@2.S)hi`HH@<?<]Tl.<nc08kRRDD0?I/-,Dmp'V;W8VWskJ.t!!F:rprc
%bTbN1&[hJTA\dVKTg285kluJ'"pG^b.b4*o#-qG55<hW)21tlGbW>+(#8.U>[Te.4i>#`lPVUjbJJRFO>W>P3DQloI]f<uoa1'83
%W7Nq6Qr)&s8%UI?!\D+<idPnSWIe.PMHX<N\rmheC+o=P\upk'?ZueMjp_M!]s(M[]WUL9_a0`X?j"m$9#frV?"YF4GF&#:MgS9\
%.5!K=!am<.9FlAsoDE*HNo%m"`q).dGgDT[,5LU7J')mbc_-Y,cC*b&"7MDWJ^<k+>laWW;7O'tXaSb;kRfU7(n9@7=7^8\F1M@\
%jj?,U=kX(i\m`]aSp>hBStGiXnXS-!LA>%]dh4AM2fk*'Cc?k-K0>EDVHN\F=23o:]Yco*J?q=b$s[X)s7+N\`>igSZ:qI[ABNp[
%"<<c?.g`[$:iH_E])nb:3<m/K_)%H&7e"WP/s0pQD5`fLK4jK+b;"ql5e[;.EsdV47Ki)"!:r<f&*,RAN6e3tJ:!p^Ljg:IDUVe<
%j`%9;0gE\sb'6)@D=P="=gl)cI<=6(aS#$;B=`u`.nj]M#Me)e1OuVN'_mO\^)Re1<>]2UR30[:V"9i8`LD:K'C5`-COL;lG59Bp
%cAYkh'/?KrgbraiDDq/g`,@3W2Nk<M!N-1pHE^">B1Z<LX=\>o[H3sd9a+`-*r%JT]r\:F1mjHKJRK)9Ym7uZXNru:BHPq+N\,4"
%[NZ7\cJ]66cY;Jqg"Q-#QRU$&:epG(e?f/IgQ&K,>W;6JP6Y:7/?1n9i>3L2DgQJo5k;(d^Ma7'69BF)W9e]IPkJ6R2lI",e4JjN
%osNs7[f+O5Z)tnET'fmh-*ruR[^Y$<ZrB5UXOqi$"8T6`cBW.#Zj#5,ej,83&al92%$'teb=XhDIkMpf+po_X[k]HjirKkLpA1Q2
%Ooj8jg%K.lEP!:.l&`<3'rlUh%?*i[Bo!f=92T&i4q/Pkp7T)##@(S:"e6GLdGR,6$C'"4_)3Gt=s$X-I0C5PHr8L#ZK2mf"h0](
%dn;tCnAhc\U?sUMi3sXo#8,FuT>S4@THEOe"1r_(98H7Q&Q$rO.1A)p,+q-rZO>$OI`]_5q"<&/R;^fNYfaD?B+gcVY120G97.Gh
%m3$(D]huR_>2Q]2odG%17u]i`c'#V>K[;j\\eM:PgH@'F/HbT@aPkaW\N[IY;DHO22_=2Zp,O<_*M"BLoYK\M)#C#po[t9jg4'"a
%)4pCIn,6XL'.U4lr;&E&Nb.uRqf>`lrDPlkphe_th]F0+S;2C]J>]_HWqO!l+>iOCG=Q>hfTopI8[C0Ia#Y]2%H^Q*@&^a)@9aDJ
%*=Hi>Q^;8-Ye4i[Gig^8%(fXJejX3=f\;kA],`ErhgoRo&q588BR;bcGkT_(dr(kj"o3U[-;FAbrH4`,E8&@9T\st?7fC-KgtQ0W
%<hK_s*lo_\hFcN/LPAL6C>$U7M`?i-G0cc)C\K7(jOmGg4\76/@8sT@4qU6>^`@Xdg6;k@!4N]RalR-4;Y)I+pVUa($g,d<Id"I$
%cXR,c0!9@*rm)\dbQ%OUrZD1=J,H5EqXm)Pli6k>rh'5if5L]D"8uU,qt#=;p-52LZi<2'?Cr25I.1l])o\HBLP6+S?%Z>(5p")7
%$R'cS0O.la9*sb^Xi/I0!Bu:tcLi0@f"gUeoQn)Y@nRDB$F)f88Ae\N(bL-d+_+9_4"_0\@AJn3.=VWmNdQs!T)4@i#7=IgGZnUV
%h_;i_(@8R`C^n'c$@>9nLYEnVKO<@JmbuLIqC+C"T^rXtLP'r*B7W0^^a)l'pA7SM/O^W_f#+r.M.hBHpEm+*fcQ4f[m?M`':)/F
%n=DX'`U'0@[[".XR``s$>;pWZre$'o!>"t&2KRJZboCUuTR^[1k6aQbgiH2]Q4&,^)qIWV"C"cWR:am'K*obEduLK7K=I3$IE)XH
%%CG[A'X=,VC5Y;m(R3Jq[=Z/#O!3NMlMY=c%su0+MAZ&KTCmtT`IQf8l<MB@N.^bQ(Pi!MbeOcu?5$BFD21Lfo`K*\`bgosUOk,-
%7-l:6`cWB9@pY?LgBJkH`H82&_0#3P8r2-E?acXEXHR(Q^56p'&MUC9!_&ImPUA8$YT1<\>b.W%-dBT)h&S![E?Zdacas:JeB(BI
%gNVRqfi<lPIqso1@)Zdg;E+d1)uCL%ES__='N'?fUm['!W2&iWB&J'q*;+GH&^R@9(MrP80`$=^ra/`3P\)mOB=Vi)'K[Q[WG0Yt
%GSpU-4=`!]`?$`3ciokN[rs/M"Cl=`rrY:MN]"k+cRmdQT!;F:cNfkZq3gS?lER@mLfq'W$bY9gqg:i?oHWb*B"OF*Omq_:YZ*;5
%oQf;II'9pjL_bo8pGY!;Q&'Zg0+1HckDG5%--hAJk;clZ\RA/#!(\cg:q;niH<(\l^@Hj6#CF6rTdA%L[S"KPZF-#hrkW]d1Va;7
%'F$2e8hekaH&R=Vf5Lj]5N&fk&Bb&AbM>N%js]Od!G;snHJ=^%T/WSHCpG\dL3[MpCUZ$Zs1'-9"(mWH]8[g@hijntSJ/qnauCZ:
%iPp[<^qO:95,[&Wo\9/or4FKc*]G0j5VfC:oh?r`HtRiD]khrPAZg+1>&P3f0:WZ@nT;#.Z89R2SbX>5/5b`PFWH]0E?pis_9ajZ
%mX(.*8J09AF,[9KeK45467mP-l$FW\\narBN$=B-_Lfc)Ho$B,':q]ET"?05d)2K)S8ZhD+l^,0d^SJ=6`MV)]M33jRf`I6>rG*P
%TT66@OLrfT)jZCMZZHu;4qPBD7SC<5,2uI!fQs9-^(P_#j1J\`A.;JSgDo64fuS(eQUA\MH-U=aU5/+"'#CZsk:&L)I.*K##2c;/
%du9%I]'*oL48Q0\rg5@VaF=:XUA*UJBs3<T<$2#DN^(=NAYB@&4.?M1^q=3JQ\`E$:Ic&R+5-Kbk53mQq3QJT54EF_rS'I52`^g[
%iYr)P[p/qe]E/f;L5"P;?bm\!K+RP^'>du!KRmLh1I\rfA,'9bL9,e7,/,FWG\)hQX*jp9/H`t=Y)7e^U-oDP(dHpUi@SibpKS\F
%Da_6Hj7msb&;k^D%sc>So#aN*&cY+(nrDqPo;MHU\*PP^Gue62=X`8K#+%8R0*<^5"h`rXH-8!"E70u$[gY05\8GVtE@>9h]'(RW
%NW>D+fVYRN8HFdC`!_gj,so-#.f&8[GApt:]@%'O:l0G?-?PdpEfs6T_8qSDLa"Z2UJlKDZ[egY/k2YrD-HD(idB^0U540-q$4EV
%%:%5M,&W:JpDjdne'%c1bjl"?4!TZ@%Er@(^)l>XJ&YtbL8D.YD:(LN;fcj&:3UhgS234f8B*(4(pdIq-qk+W.`%HJ&<nb<cF'bZ
%,`ne;F--H.?4eam6kral!tuQ]Sf8pld\tk=2cqfAmFhXV;)R.[j\PgWIrO;sD^1X[4\*H,'WC&5U\2=`8/+_NHn6on(tGo*bG'Il
%n6A_?aZP;L@B3uiUWnL@DNo*/JQ;jb*+@d1P8EXJC/LHESud9LIm'p0/XYLeS30%ajhNWW7)H:i%Q;$lBDo1`(E[BG^@LTTLj;d:
%/K!(J>c.^gZImjn@ONFGLEa0Z,1^<K)r<IBX[VYCO[g#09"rWI'thU53R9MP(G?CS>D`%_/PipU=R1<$CKGZ]o\,fFc<#$lLQ0/0
%VgB-bi5<=RXR\^QI90\*)j8DZ&c!'jqHDSK3A]%DQ)Q?:jCQ$h7)scmIWM&7`qI!>=I:de^/0>X`8;2^^82T>*^GTB;#p-3;bf;.
%(<tJk1BlFB[Voumk]])^op.i7(V-i!Y(J0)cXWeHboBcBoj52Jmb'JIF1;d&/\Q,HPKQ.23)LRY@KCX^9<SKG7g1@KGA%Zb"-f07
%Y55>0bUWddQ^]0qmb:gd9mZLbcR(,8k/Q5mWOg2SBPVCpnC$W]_T*>f;na;U?2(2F!C_B7(u]<<Kq[9'7D(4tn4adUU#\RtGZ,aE
%D(1=.Z4drB%n.tTRROE,5lkn^A@sLlnPX[c,/,MUn[>769DK*UGZu`[D-<!f&gSX[D8DBR8t3JX5m\-AMl(l#?KJ!t$Uq][h"%nl
%b>8\G7%A&2^Wi0=@s=mEg^-_YC4"i@Au:M5G,IDbI_m_Flc,Y[cRoX2[,Y7_S1,uE*7l>Xf$4.T?34d"o9Mna,+*Lm?L%)X`1&5?
%DsI;6W=9Oc^8WCM[cYq0I3ORDVOGoe\jo,I,`6i4*23aLJ+U<F#l^5/8`s*JSF\WjIUDl`S)\5UM[57ABgQ*-VWl<ddR@fGrIKN%
%.jG:;1N(Mtj*G4YHd;R\IWC?2BUiAHCl15_IGhY\FsnS,F,,`\[bQd^0/j@;m`!;Mqd+."h;QTLr42m;Y`tV)0PhO0*XHYO)*ph+
%(F!*r``j@k,A?3Yd+,eo`L\52GO4/^^]n*_:?,aT,#kk44bD>pA&6l#Bh8p0#C2toB-_PAd.=D4KI=?"PX>SW)Ak$KmM(R0ZF#"n
%h,,YtrS`L7"Fp4BncrBR;$_"rZTe=Z9;k#-nr1MlQgS"D@$F/ckMZ2XpC:*QADk%SaSrEH@B88K&%:/6>Uu=#G@]Pp$IQ0t0Of0q
%CQ'#:-TL#b3D^0%1#(!*3*K@.>E5)d^*^<Nr?Crj/N+1KnXX-o/k6cV,=XX"eL_$>cdNnH5>$/qVdfqUSHo)raK<p/jO_EE[$,#1
%BhfB4BK`SZZf9jE5"@bLk27h:eD7JZ5<IOq,@U:t#um.<=9;a<F*dYu!1,4S_MDA>&<Pk#f[jrQ/d0K%Vj62KM?lm!@kM!T5Vjfq
%3/8%^A)O-T>W<&YZX./O]f+0]F(]:`YGWg%D#pdu5rXpjLh/^mgJ@bJT/#-RHB,.2>3<hjLJ4f4#e4NoF(M!2"IgRO:]1:2/39<o
%p'55I;U*"nN=#[6\f=u-?XN%D_UH'.(C2ti?<dl&(8uqra$,T^CbFV?^W:Sm2(L[N@(<2l6laDR#$rtl>`gpE,+^:b<$s>_'Z5e(
%mW[M_@c4SOm(+k;Msq78h&(V'+/&&n%fdgbHN;[X'_#$h>d2:Uf?Bg#2q\dl8Up+jlk;rBQ@j;91tD"6%MHN&2,-c&M`b5</ORGW
%h.&>Jk_@kHl%[HrK6t/a]uM0`iECN^eU6SY'1>fH=NqRc,4qUU6.u$#J._C?i#gW5'H6uRC<.;QT=hTp$3EKmf)YP<T!tJ0_.)h+
%2Kn\^K6(9c*F'E9[-i?G[*.WhS!NLgr<4:6@61P-d'$LCnb@lP-UGjWq]Ih74,AKF2l7Tt/Fkh9O,,fOfsA?.P['i!?RXM@F:j(4
%T&SXVefPCY4E5u\fiPW=Ep*n[X_>=))P6XB%G.)d35hBHR@VO#oc@"!1PaTu68g&j4oU]cc3*%6ImI^(E+8JQ'J$V:YDN2UiqMsp
%CVE?=FD'o&a9i?G$bS-Yc7t$Q6nJ'@&aQmf`d+aA(r.YIRr4K%o12-l$$0b*OI`<<K[\;aTR\fe6s[\T.Y3#F#S4`?5NJ!!&4GJb
%0_cLKO\!:tF`!sR5G.'bY8<A(D\)BO8U5I7"Qq<r\<]A+eFI5j6Nfr9%6UPmS6J0CbY1snYN27sp_C\\7R!3+l/9^nG$??0j'^%f
%bu;(t>[.NDUSuaH`6bk=oi0FD[To1GD!.Z0<@;rX-9<STe8MemagQcul.@nGbFT\HAOWsjpf*&6bb5GJ:(g6'CJIrhoEeluJQ(go
%_]Rm@f0T;.In8lo`=Q:82rL"[;%MHD;rC[!:c-mHUTSk/2%1<&qTe3\>0>3^7MWi$Jie>7!aaTe8HM#jR0I9%P!B[g;FVPfY,W\4
%qY+g>/Jh##,0%[>q.Ar<U58J+n8?]<f46m.c0ts-TTW`$,]JdCj2Q2I'big#QpjINf+r_VPkp,cdg#*:/LpHS\AT-aX'X*(^gQ`=
%ane[K4:AX_#6X9Xjq2[CK-I"s/M)^]3[T0F/>Hrqk#YVS.ZsO=Y^b&/e\2(7UNj'Q>f(pa*I+)i]nHAnXk)jX736&X$(@dG!2h^F
%bVSqH2o$^Pb!Fp<XYN!Gk7Q`*H`0H$jrY]i`lGn?_(b!hGfo,_iph:80`=%e9_Ft,)uWp5Jf,DZDmL*U4Dtb&.R\sgq5iDqT>e`n
%^V.^8i!#5ts7=JWAmUnf(`CZ<7l77g'&i@i._cC5(j+)hOg6o_0EIooIYSFlJ2K7GRP1g8qB(aZi8fd/a5WA9XA3D5:_/?^i+@mW
%>;t._UXni.(:,c2eQYEZGbNi3E/@A"AGITK@J?LeF4gG6[On<:3Yp"ul#[Za(n[t$`?7`!pc;jH0TV29_J^-Y8Er;I`5Fni=cUH0
%+j5V))'o?BXGFgm`!/NM:$]-%'Ppp-^73'!Tq]_)3Y#s$BFos+PYL@H_30pa#)eU*7n1Fa(cY<?V)cgl"fkQdK#Vtp1rM]A"rC*q
%J8in?`c5H2PN;oR&KW4WZ';4I\3\?TI$#)q((Qp[lbtdB%qj\7/H76u:Q@#+MEDTZ5`lV,J#BQo[jHqNl!7ge#<>JK7n<&['^:R-
%:2o@V2!9>ZUr6\7_OHljfOBDuR:l43qPZjW66ETKht(IhI!!J'P_mHnp"&(J\33Xa"R%sY!BOYaKC_"#52tGCkT4UuVL#c>fKa\+
%rF&2-c-5-L-kSFnq$0#9\@'$QcX7*QM#)bYL7o?Q,a8C*S[JZ(;>"Cha^59f,6OR-9IHGgh<Y2I$paMqKpQFg4^Xj`6<Ui!f3Q2?
%-_G;c%_Fg.6QB>YOA&ri]XW\ek,EE):?_rS8c-E<;QE7YOF]*83#KkYG;Hf*+#]3Y*Ci827aDRIdK\!k/2?ADs'RQ85>10_DcMm7
%i=tj%05!&P_K'MOS=FH;)l)c_&,Qig[,lh\nUP7MWSJk0EYXT3C*d>LU2p,sk-j"a.p&rb4WpV[?-[%i*^rF&;t?G!OmF+H\t*M_
%*0fad;1XQUI`?(u*.C-D%njj]O9dPU8-BLH^tT:>'<1rcP""PnrdiWQ"2iDl?t=gJ\?6YT4o)0Cbabu6WlmO[\D'8-L'8EN'&L#=
%>RM,["6YUb0ALOOi\kDUI;<Y>dtPq,:)nKuil?rS!+Y%Nmr7+AB(&js`f>!`3[-jKp4r,bfH4^1#H*2c!r(74D1QOoYct5A86HQL
%'d`nL_gQNK"Dr98&eku>47!Q\1Uc.*/%MseGAl^gHgtpC@4\aLBj@dbr!m=1&b53sgOpC5ipS/pEFP6)D3+[aY"!VVefT@N@hR>m
%"eRr%M:Vr&flJE<f0b&M+8CbZ2;o#:OKE7<i,lD/kNGXIrRf^gd3g_J7qgnrAWcG'r[)\rH%j.ACm0dqbNUmN7:pH6Fh).fp9Pa^
%l-pLZbm-B)oC"s=BtfHQ!m$6A&->BYpTAt+@*=FR5fc9S5[&Sg0T?FG@g,e]fs)_Sp/$R!Z*D/#KN7NM/&J:(L_]kcIpa6p7=PS5
%CION\PLa2>So4";df)qn-&0(<Ad7*mS@20<f]$*Fg\33i[mFVY9$lqBZYorB91Y;l@<PG'ZC-=LWW"T'jNMH`-jj<MOJK*)K.O"f
%7Pr$tH;&![G@%^2O01U3VBB&idLoWkA$7<L%$E+B58RbE<I<('>?L^@R`hY9/%g=244j+I#qN3j^d<3GKnY66YA2\[6:2>&)eqr0
%bJI`\L_tTV*Q]91FH)#!p5#i193B_mLN2+4JED9qQBm==(..TU+Uuo\\dr,((dsZ%i6Qc:a/#EfW3p&P%3cs!b?T^":-]\$A'Vc2
%'`j)Y[3c!gGu/n7YmV9@Utj0O&X3P;$]t[bnsS1KAh/`Ufk7I,=]_!iZ,O\S+tNcLPric@PbQ?;(NFB#'\R"HFAGKP_5Sd4'UuYn
%a^kF%`sN,U!7quGTB3=#+sL!=A#g,Lp5IWY[Z!2W=@CE%3.otI,3C\aG8?ipOW;aX+gIWAKCmrt8n9lL]94T0%hX54XRljEil/Rh
%ro8)<!D^+.%?;_9\4ab&:Z0J]p,bq<6sQpHCQa>qhrIo!p_"0;qZ@nLo7?]]ca:7)M<^c>'N''to;:ncp8k=J\uas3I2#V9cm\/M
%@O/O'P!MHS>0mI>6i_Jsd!^M`F^'l!6p1@`NB_rYg;*N=Lb*@d=m\'4h]?<8+ssCGR5P6Sh3T,m]U8,/T*JPWS_!fPWg3Nk41"U.
%Z8H*]9eLUu3PqsmKX4t\*uO'f)F`/GXQP^-DRid1Kd06.k?\H&(]4T+$-0o)Gp(6<+S\?aC:l<eT0FG;`^DJ$-@)^D$$`YEEhPT5
%=`;8=)b'`m#n41!&//Ho&sStL`iJ[1WL,%WM-T\<XllKucT5R%^j;_fRcE^`aOUq3',bV+$r'$17drfqQO4p[ZS5C0AP%2TIcdUb
%,GB1P':#P5J%.F"0?ZhVe=?e_j%#PLEgmq]7OKMol<&&6l/Hi6c&-:,3*>OY^.9%#&R,M>J8'-o'Fhj93J,ngp*eds&oKU6Vegb*
%$RL=Q3QoE(=J<&KZ`CG*:\hmhb:aLXGPS-Q4AYH>?ZQuF36lmfB\EZVOeSd+S@&*HSUrsUV^9j>Qp?YTdO:HM`7`nF,+c+C,/E#F
%72O5WNL?hUi-qDoQZ=V`Za3gqKD;aV[C\@;4KC4\fVlEVD)cER=(USZg;t,WR`*g,.s9'96N2G/I?Ek,!H-AFb5uCHKKm+V=bHhr
%M]tF7YTLu9+I)7r2]tL&_0k:P-U%E7=hDY+hsXlSdaS0qQ[tGpW9]oe9#*lV,4lDU5BdYtiXTj'p6Qu#d.HTE)Wb86o*+2!kTUMc
%$79"h)>.mtM^)6BDT'bXY:9lP<5bJdWhZe3nR&(IFc`K(3<C3Mi^c/Q9TS:H)B14bF82)O"Js'LQ4p#uQqG;lO_iW-4E+mL"8i#6
%ff_HDH+`TQDF-JJ5'"7a/CW.aZq]il5[o]WMQj>F$+#H^[/CPG)q1nDZF+\(91G3F+\ku5")ah;c:?a5B4BhZi"GiX#ua"um!`Q`
%\n>9s-`gR^CTU^!c4@cUm*rZ&7N)*.J]j"8+jBF7m^A&3;5Qn]K.CbTSI1`%1:H!-^2a%JJ.5BS=mmKK3@nNX,Mt;a@CS1a+m.\d
%3PWS&g/67:ljGD8_l^KLiCF$XA_NfCo"_R\IBn<]-6V%b[cuor@Zr](dWAS/-U<UZ&?nQ-&Tm28-ug:IR+24\V##A[*PFGT3UD6_
%(]<5!qkSf+[c(g"];Li<7]rB>9S=2#f&jN;FYPhd*S.J'>]KnGGGsQfOlJ@?_/5Ng0!O,<]l_DsYON#Q>*EpKW$65>fn6"-i"7pB
%^!Ufc(1k4taYe!V#jmq+E!"h'fQd.IR6KG&k,cMQI``a%E(:Mg#&Y0dTmm'c8q=9#_-lfNq4WC_<ET0)7++bCeH+^bF3YQ/@Mk0i
%)/j`*enp5Q5_^b;?tXsXbWmrR91'QN9#;0a_K3o[B*Rc,=TZpbYf<%KYh-PY5;4'c3Kh8qqP39kaLj7aYDCo>W.QMB8J.n&@XknR
%C`O!#%pYLtEbG/X:@)U>iX5YLbfD@@2ckYqUuET^'e.->%N0UB$W(30_EaX_.r9nJ(b$'i#Hm\'ZFlQTLet(maXE!\^#Ojp8e0>j
%XEnn$&c?BIqon8/_u".,qs^,sP%M'r/_$GGe9V8+[6tc[_10dJQJl0Z,jH3`IZ0XON'%@_Wbo=dcGBe^($&_?>4]VrS?FKrk8*dl
%pM4C!ePQWjHNrMVl`f9ud;ieFMh6"`/73Z`eK;Gm?otZq=<Q7AUue<\'^mi`I?tj_:uXL&1i2<[\2+=`1`"8Y>OdIoK:>-hA0<'p
%AN-t-]rdIrCP.dZO'AIAQ8,Lb(=o/>Zp3f[2r9;L-NA+;cEe1WVZU4-*4/*VG"J]g2NX_?!^c>,IoHR:Xu=Xpk?^SfQ.H94^u6g0
%cskRE#KgR&_*i3ikNAn36i-1^\'W2LXWm6=3j56@K7JEp5ighKOl9@cgu8r\Z7nXjCDQbiNedZO:o#4(\jYIg.0\9+/979c[ZdYt
%7ZO6r2`!5OP)FqD[otPq['Q5DNE%6?PM_c^MA>]4@70aAd4"BL&U#$X)CS8h#!tT#bT2o%1I-((=4U:F;lo-"''V5G0M8)$m!4Bh
%\^L2AQl_Ze1f)L[HleTZ7#DXlfdXYD%4A8*314LCkK=s-)UH[OFI<)qVpcE80e:_Z":#B(k(]10rW7aa5Fa5<PsU/XCdWI9$ThOS
%PO]5)["AYVY=h\e3p;X$#lVZqed%5;#$tR<aAb;LJ<`Y@+?5gKZZV2X[6TlnT,I8XL@;uf91n(jGLI!=>FKi8>eD2`KAb:3m7<.+
%K$X*ZN_Y*D7@Z/LR7MY9M0;O#eA8ZA(2S#W&f<>c:)(>n+Qq3Ak1,^;*M'gZ1%/M3lcooo1fE<p;S'!=7TB<p#o@=*S5"#ij(k&J
%7gVN!eJKH#7HpA:J2:,E2o``rkdMm3RcH[(9&"/+r_$OY4(%cTDuPjbibs+`?T?6phWrp"r*d9`F["uZ,-ZI>6?(i'3)t8f^M'f]
%AEKG(\$A^>i=$7`DnPoeS3NYB,"PS.+3MD5Us:L!f[mD'XFW-.bO)3qB7W4hiQlPgC^14Lk$t.C_37)'Up>@lBf<d&&GH_i1Sjs8
%QugI1a4$$gUdb9Z;qb`X(NX0c:]82Q5>604D%Qbdi0lj77iP+jl?m2^>F4-UjL/BBIb29*eb@'5k.t&IefU49om6VASLf!iUU5Rp
%BJV>O69OJ)r&,lGU/NUl!LH_8D7rF0i0(f/02aq8/A#]5)qnndmta_MJ)@tnHlXG'fQ_:?24Y/"ROlKVHd+f/nEODd/@Y_;fV]'!
%:8/5F>0nTuGq.0*N*WCMH(Icuol(<71\"j7p7"TBi<ESe?"NGN8<Y`DSi!UYngA86qjD[W!WKn!T]Go4=L;pLO5Jf:X`k_(P]Zh(
%^S*O=FUO&((7)U>]S!<lU,Pj8"\BNb-,ItVfCTB40n]j/54ooN.0?sVIM3_#JEV=F`69hiDrp(Dj<Z)^*<q<alOWU45=dX/]HDo9
%^G77r^(2J.[&D9>6.o#GRE6Mr/cZKtBENore9OUrbsOe`h"guTpT?TH**7=I'D+B9:Ju@5EPELRr*]8D$lLpg+aMdX(kt9jgCfLK
%-:*dDiS1![H`sh%^.XUE<M#<X&2Y"[O]h3c7`K"Hem?PUSL`%ak2`R?8JG'gl`2&pcM1B4Y6MY,1q#,e%V@V:jlnOS\tu\O8O[b/
%=Wq#@F&L25]&ch0E,AlGTA!diq[Z`1djm)WXnWX-+E7@s0;'A+'+pR#,U4,OSMZWrfXT9/deBCEH0U$+&'LS:C86"HgKVIaXe-01
%<;]<d8s/4#s-qP0Up#iAOE,j*?!TAFtchiE8F2uiAVjbF'S\]7kKYdLZf1=P-Yak8USn(eVeHU@SL?atAE`3m%&EdTq$.[>+b
%Vk,\^(XUe?pX\Vna1AbRQj_YAAp0_k[));a=!(nD:`"$9_n$E$ETsaW]oa"*d[3Sk[rYfG>YosR259_2$D*S'Hc;E8,7=.^e:U$>
%o&(=c3`(*!i7UWL%h`c5g=Tr:=.)tGf\Hq^;97Qalq=7F8PiiPke3QN_Y/AD6*1C,:r^9oUR2KI)Wk3AOdfQh&N8LL0$GY%]t6b"
%'Jc;*4g_ZD_\:tJRYM/M.8V9dWjl$bm>B^a"(=Lo>RNY5[#6mL5d<q>8)PWX/"c'cXKN&e>>)$qPF<ar>/A1Mqp$oV"]+Y@i-oCL
%Phj!HH*WBQn2aC0qVg.^%K0fs!(in"7o_^(,W[QFS@jH9U3G!7m`lBbpc2;Rn@G"rW<[,?W$XRWqrN`PDoojEFZ-XsLFX/Rk\[0)
%.Lc*Vbdoo3?E_kJ]K;4o+)2hUFH8^'s2SXMVN]nIqiqX`#H9n01,%Nos,\$ZljrDKFk68>`K6X9`L4H+`4@l[3(4>a(LZ-'^H&X*
%;:YXQ)a%Dm$ZaPu^L1ke7XtidTb7#`(P(gaWD]i*I"k(`fi\ojNJ0Km="$Q"&V'J0gf(`Yol&]:J+LeF^PUq3rgS[]^\Qje=#YX)
%o9\@K]m9D8X1+_Xr;5NWs)@o1pqJK]h=3^UDu?eGIfKB$n)"*<L[X,KrVl1KIe2Ca^]!TDTAG%+h<u\Ao_jRFq#7>Os7Gg$Dr0IQ
%J,/e6?b]+S-SKsopuAuq2_X(&rU`Ogq>C$V(Opl'_sre;3<&g0(\K-3"T?X_59145q=p<VI5LoqVVM*uc2[R2iT;ZdMr-fihD4pG
%!>CAu7@FD#&gPJ;W&l6cZ;)(Wn@J&,l>\<Z0EnMRNhrC(Sdb4S_@t'(@4^o3b]QD9@_=ErDk[E3`jBY\-RmHign7,X8CfGJ#1MR5
%h9p-5";>``4j]YHGTWh3KXCem\eotp(GGg`,%(CXrqT!qq;e1*^]3l`m8l5rqX2P1^4(EVs"Q^&bFd=S)/^^rIk3k<:usB27.6*>
%mV_)bPUW+pR>1@Xno%eJ94%V^`N;rE#VWEDHO6rr;UbI:I_lo^j(iUL*T)&3nj+P3DdL/j5!_CFpi/>QO\]nErVQ&uqtg8`DE`@A
%o(2bU+!,n*c1bSfXZ#?k^&R'9YQ)d)huE-3rAWV^FhFSVrn+^Up$^adq<jlh4FZi#dn0T)oABHnN7NLU?f-8*@$`S'O#?IX2h-5P
%LX1H+s)>Wfn%\neh:k/qkLgV>39KTE?_)V-oRUAf<e:5<1"n[%%BD&JCZOpliQ2HNl`f:%`h=XUPVjS'?l9%Yf?l:KG`'PnPDJIB
%MIGO:9.I.;pGHo<%@hm+T:>iEI/6J9`K'Vg[-A0('Ko@I@SkfI._?>'Rs[Ok7'W"??Qt+\q3p7jN11$-'@B66;AWkn(1or)IWgA9
%g[pg\,4enfBU6kI1_o,K?Qu:SR@K-1;u-XVK/M+-)Co?diM%b_,#D\a6gu8j^Z^d:b._pYAcHK?fZrS#i[0IYEW#EMjrA!QiQ4WE
%7-YL0`8gHF.3^iFPj/_b#74Q)c)jC//:MsAK)]T/i$7.ADnQX`J!?Qi%6je-^&#>8njU&n,Vudn7.Vh89"O!L%HL2sRd!hOeNm\C
%>7t(o4#-q3[1^;@c6>3sLu:3D*<h1!W8i,r\s<tPRA9fWaN$MO5F#'_07J>.m4eTCgrAt1TQ)uGpkh<j.7?9/IiBU*ZRiC(?dL+*
%_,)WBdlX%1&9oQnd5=#:=KMZd+_a?+Y!^fQ=D;o95'"1HdE7+:neHV:3HK'1`qlZ.P9`4T\B1IZE4?L3AN>55Cq`I4iAd[0G3@MT
%<3]TPXMa^BHA2"tP%XRLiIt`TgPql9O!hR1(BY;aqGNL=IsM(!5P+H4In"Hf0s]k1lB>T3F5MfKliQ9%%1"hj"b/LKPp/9i3!GU]
%P^/0f6&Pe@:l@ftr[We5pNpOb%V+gI2<"XQoCc36X$e:WFXk&i/B.,a@&%nL*d5/>^"1d#`<^k4mN9=O(nLJ)eAi&ZIft8TfXGj'
%>C!`i'h/(dPKcW@"Vl,?MPks>RaUpeUa^F?RXlP42U@9F@&gGc*L3A'=#_n?'s[3J$rTej&L@STKPrP%i/(GXeNS<Qq%f:;<.jVC
%7`MGO#G_pH+?T`&/[SU`DkAfM?WdeD*@E.U/PJu:.lB.I[)`\V6GpWjB2IPp:esdt-8[$e<!p/3!0stS"LX!ZR;i3:8RMZJK.'0.
%q%7.O4a%_Oo4U\0ZlaccL]OQgG6/rL>p&PJRai,Y)AZtCb5PLh$/ln/A'n]U^"<nN1e>R5oehI[Z+NNhTaIaf,?4*=>ZnEQk]_PG
%;a5?#R:t[$H7so*PlYA\_4'J.X7[\G![fYl<`!l`%4=C-1`^+$2%RTBgfbSS&gj[C(.5IVF``:2"r0^d1JTbJ/:i>TMgg;",=nMj
%;$;f9<*l5Oe$&7^oAJ97;N(P[kCIO2k8s$Jp[kBNl07B$W*AeY"oP=$q"Ksm*C$qioQ+),l7B%78L,)uh>VBIXK&'Sfc!gVmHj9>
%FBHn%T-YAMeUFDGL"3L^=!N3dJI45pA=BbNSZ:C@c_nP(7P7b)l?;WBWNFdq!I0X&-2s_=V;XBDX'"R_O&I2k<R>U9cJ_u91mL>8
%6l`MJJBlGL55-_?<PR`LIE3*#gN/M&SKW":/JBb<)3WUUK?($_qt--:Yu!$AV-o'U-mit^NGM6Wl#+c++-s4;Jqe)0g[`=0"A:A)
%<.kSck(=e3KK>59)!@(_G*)>qC7\rZ,gdkkA`C6FB=0S]*j79'@7[`Z.a!NTJ\XkYN[nW/<3&kOFN4Aq"a;_ojKQ9"JUG+Ql<PPH
%a.eU6$'KF+2qe2MN@6alX,/5I#]0-6dk0Cr3:CAT9/-PIl/Q0Cc]=WFj9tpgQc'+Ho03mSrqh:ll@LGI1$"C&$F6Qg;>NkM5fm&i
%/_#QDRSV#"b[<@/hcI[iLVo=naJ*>Q1rliSbQmp-e`a]b!<>AWke0m0F@W30B[3u$hWimnZHaC6*9,$P8cgAK=Q5+dl;!<R0,RcO
%kUBX4,^AH&F>kQnr8bo"2H4h5.DR:l`?nEHXicN@jMTPcQ@gS6!>>rk<01)R7P;a>=b5W_Ypk7nch"[lfb,GDPb<"G;P\cOXKiV[
%C(nP#ZG9+I`=uG5Z($/rU0i19.$!=.s7I/Fa1fpXHndb@;JII@<mek(K4,UG66/YR29e3,Cc>8:5r*f#2jEon)B.a[E)hM\)5PM$
%.EP[FBD4]a>\0-ST-q/V7D7DG0U:.*-GZX</ecHu#$FW_^%5&3hY@I0+dY5AjOFf"4^`@ahuE\\J8Ee]C_Z$3A'@B.7G^Ml54Kg>
%HRiY]&j[(;,_=D#$Ea$lGQJ#"3-@R]<@*h3,5B-0r1-.(Z7pMoDWUHX"C*P%,8Z8s]tAjKcb97\T9F@rBD&?>3NNMRUWYA6e)ZjJ
%#ajpjd6sH<%%Ri;Cj7pTY"/tZ*auAl=YfTaG*$H`/iMQ2C=KAsGJ?(%"`3LG2<!/taVNL%aWLgjIEM3+q=NjtAq05El?@,![(<p@
%nhT(bLRD%M>"UOh4j*qVV.,8g%A?EeQ561HO\NJVbpd.ZQ'0^@PU*R)C6T4B3pIhFJAJNpd;PS>?mmbBmX7I-2-(o$S3c)Q0sK&!
%h#\nOC@(`ei5D28&XPi"$.r7%[J%cEG]_n:-:Md+8Jo5t/kTG]-BGt+K<TCOj=-%O+rG_IRkPaQ'Mt+%JFTJ%<)U#slPUfZ$Y%:R
%nB!+X@6i(5o(<uVLL!TbgYA(=9o(mVs13@#g8I`]2-CPmU2;:DqFSI!nq2GD2YtF.CdjM9aRVM)`*E9P!#Rob48b!Y[T=KQPI^:+
%-``eBTHG)mk<H3(8;sod)RHmjmAFD($B7f""A.EoDUjB&e.l,V,1A'0"=G$`A;'>T=+;(;f2OHp@"ifK7b2o[.#_'`:4%M/1tWJA
%<qk6^@,T>k<Ii+_+i0lYFnfVd"7X-bZ6^A+WH8^[/;VEM#`cf<RRKrURo0ACOcGQgYnnQIGnknfMtmGf0VP[#grK;nHpoL54VhRj
%^q(d-%bk0p*j>P,bf+,9NWWT[C?O)FmjUKsncOA>/K(=2P'F;Anh2R_;)8V4L$)[R+#EQhQ`n9l)9Ob9=,Gmq**%#/13qEcO<CXT
%4jE?iY9NaMb3Qps/1XHa!@jpH=^D,L7+(S3>$i#+Qh7$.>GsP9J5rhn#]bVC3,V?k"jg.(X7'))>!uneJsgDck[GU&`k0;rJ7hL:
%PGBT!mmSJ=aM=%>\PW]$WI@]5H+9D'2O0cQF;eK5=9'GTF<HF*+#./3<[>.Zo-BDL9nWKmdJ(_L^H:Ser?+f')6E931m]oscVgK+
%<-T9:Z5e2m]=-nd`]C6"(`W_p39_tW9T\fZq2QHJ#S186\r9L"KLP$qa_<(Kn472/eV[u-?^s$`<K*4qi<[c('cR@V`30L=VDto2
%.[+Oc.9kB4')$n9;llC3LbS-63RE_<TP,/pEQH,kL(cJ=7&ljlWcaZGr=cntCO_/l,oQ0,(]T:E2tM^%V0&X/JXV\4qJ&S9l%oti
%/65(7,:9Xo$0tg-"tR[6VK%LJXVpI5ZA**dP`hm.fN@-rR3nR0!G/.bUP!*1p0r:Of7bd+*89h7U*<Zu"*[k/`]g;^VC,aO)rt<o
%EMp$-=d^C]_TW+;RoU/'b/$IZCmrJsK!,q?.FDU8P8fLD$@+G^gAgF6R(rM%TMU`&jObY&T-Fc/@Sg>7"!f]Rb<r4-"?mtS.,l9e
%2Z_eMPiQ;BbP9c$=_26XeTr6'`*WA<#em7kOd+a!9lAcOm2',Yi%IPb7b%35M"<YbD-a)NMCfUCPIHsLaC.&pe?DIYk($!UngOHm
%D2:f3eR]ahlcrV3A/dQnqN"_iN;9:rQO'0'1U)k[7HG-e4]M)fma2%NO(9LZk94S+c)T6UaiiFB*Ms(7\q,ecb+:C+FY$?2O2V3k
%ZM+LI>WBQSFR=eA.+<8<ARkq4nKTt*;h#HiT!df>Ceoi\.Q5^Nf>mfG1KVKqV:\lIm\UP.qhMSVj)hUWjUu*@[TREqV]],\W&ih9
%IS8*Le(\gFVlHhfEY&OSOj*9eRO<,2*_3l9dbC$O5'EMs/93h`.!A7d=m,PnIeDfXri1G!=T^RS+kY@Q2@]o?R-V)<_iOa#Il$uk
%K=AW0Ha00]<U)=&-%bA53<2B*;JV"h+uu>F&YYo'A7g4ip(SDi<I##46B6b)Z&8S`d0b`7k:4ppn15.;8S+Ibmm[8pj@1D4"+O23
%lJQMi,C@,SddB52!@lMk4"-X\>8"f0NV&*-rJZYko3qio??DEcaYXi)iN4Nr%9_9DfPr1`;(CY)&)11hj,SD,HleDD;^L^=/KM#?
%""2s-BN"NVI#Qh<(tT9hQ`5f1SBpqp55L9<egZ46efOd<5s0-QS/381AM)\L@=f@U;E].I;4-BUiDB]<E]6[RNhK>crd>gb9@P&?
%XI2qr8;9*g[05!s2@<<&:kcHLS1<"[SSVW1C24q@dAJRIC?51+!'l*cYTFh3Y=9'gXu.Y"Xi(`P!L441nKpq<:K@JN%L2s6"&6b&
%8]X@,Td:]@[[9'D"G?'/=uq-*je%_kc;BMM>-J.qagB0F+*;`m!nqI"AVi,oCI%V1a\do*.:G%V9p^!A]Kl3mm+X&i.kZI8I%S1H
%.erdlnV)Oi1XH[A&u)h2+C;9<N/L=E#ShHPn9eL$,u^=QoI[VNH9T.i'bI3$Q;o*Y,]cgGJXmnp^L3sr"]_@[/r`DV3"q$`<1_*7
%BuV,@3`J(u8hl2^m?UW[63CAMgbDpEe!8O7\o#qB^TJ*E;s/+i,rK6]<U*$lE1;WEUE!$_qDL[<4/ZKOP*FcLd2`dlSZ"piD2n!B
%]H7-FBSS)uT:aF)a;=\W084$X7XnbN+2&62D5*(u"1Jo:OL2>^,\"NFU>gA*UJPVN6e4mEWdkU]GZt-]!r`?sU238L$8,8*-Cb"`
%[.Gos!Ij")dc$5`Bs(:mLjY3Mg[oEVeQQA1,Z\2O$]=9J;p>9De^[?g1@F9)gnRbU7"r0B385.AQ(1giX%a62:*Qj'/A5!H3,JgU
%(3Re-kg#^%6"aJRUiO'eKBH?+<Mldh5C5P_40ti8]%3Z^^QJo?;Gd3`UUHH#jRJo7VV-R^/'e).s7Os[8&!=,H7aNW@Isg3cPQWM
%nNXeb6#3:qoYT5c0+q_)Ic2h([KO*),SBk+mf)-DUtu!NA0b;-T:V(M(]:Ljj;ZnQTd`PChM3@&a^43OLSD'%1QGdIjCFDep6:RC
%"D#^+=]."nI3ro!>onku."6/d?9N&,SB@Wm^-'99*qkq4_4nqI=pdhdP+YK(!tg4I<4`mYZOm2Ohtb]s'N3JhAB-:OdAmIg[k9qV
%IZ:MLfWQp,?*7)@>bd5)D_%(RWoYVg"15i.Be*FfM982lS>r7KltQ'oTrD0p'a%GUWGAk.DbgX&OR'SXYeX8nCF7,4h7_HrTgl$7
%PX+I7("%<7VJ,8)&6Li1OdKG's2-VNcBJ.T>e"qGS8:/lmmH[)Hp(HURepuEqjJ9hRC&b&F5^^I"oOkZ+OGA^Deam\K$6.W`2b17
%cEE`NlAq4t("angHpgR37YX5;Xb7TZA#*d%\H)#JXeo'JraVHUZHdOa^imsV>%9&3o:]!7(.%7;dN[m$<NI"ZIY!J1Z-d`PCN\.-
%$RZ<OiOLclFX!+8f>YahK>-'BZ1Yol;Q6cWTQhY$Y';rL\W\G,!QAW.lALL(/jQ$V\TiX)F$h6W=._A$3[lF.HrI)(C.\%=S]tM"
%@66>-kc<'D@`LuKh5"QA!Z7)q';]B17R0[n"n4@:4L)=D:H*WVcC,^]JRFH`l-!qf^sdK=@5mD./77<W/Pr2M[4'19?j`jLD\.`=
%^#1hOjFn$ED%.t`JqkusZKA;]hYbD>Y`SfP%MKsOMHP[#mhKDq#gHDHID#f&IY(t*QJ$1mQo.1%0.gpaYd@@kgi'B:c8[QD$tPnH
%XLLH[]\X%1:-6:hJ[2-1].ZlO@72fI6TH/"Pn$lD3V7d(e7%*g]@sl.\'\l.!tcH+EhQ$@fn(0OO==DlZFhq6KDL,OFfq[+H7cru
%6KcO6`++X^M^6@&KN@<F!r2'/EO.4rP'ao"J,X<S9ce2hnU%IrrU?/KdhBmG?S0jNT19%`!Y&^qI]V0b<Fd*kctl<ADWFop+h:QF
%A^l%[W)`t7-hlc'@;DA-0i?Jq"pu<n34:`_fb`,=4h7n-6&Is!fhatZ-Y&!M$93A9#)m@j-#1[$G%Ym1$&0p?U@2*BB/PkMbga54
%H`*%+:&oh6!.1I\-Z)ksYuqK"\(Ze570XKQU%2,S_64qGWE<J@#K_W\:$nhtV!I6[83DQh%K('iYD'XYp&mesP0j$(`8X3>XUPXa
%R*h$gNE[Xt3X1L&\T_pU2Mo7QNPPU)7%/[e7c@!sbl1k'U2q6O;Lgns$7h'Cg,q+>Bo*(/b+"!*K;u/YA@!m7(Lb0_K!lnE;4KpF
%<t.^p=X.TNZmNdDaJ1Jf$%!>+T$f0IQ=`K".Lj_RWNJ=?XVbal"t<o=q?/gb9Q@['GB4,A"LT)jegBfR*;K-U.WdWGWjsejeV4Z-
%94KeU5i)=lN(,,"hqM7F\TQU+7QbB!JSY'^B+H+'YHV?b98Q.ugXuS2O`8:B51+iJRM]84>N>\cX*K%q_)k!?FM1bU-JEi*#,tEb
%YRTV4[`9k-6BAGlc(FW3F+j0N:B_+tI]QYd<V.fspQ)[*<%6LjJ2'`(!K@RgSY_t8HS!JWmBM2>4DgTh&'2uuc+SMEC>/dV-`p+`
%1.h\T*TsV\ia2_'M%U1&[C]4*/\s\%H7eFl&_Tu`MqCV4'd#ap"K5WED&Ncr/.(!@6(2]fp@fbBB#5gYH9V3f#rF3pZc6\4JS4F)
%^^BEG,5[ZV9L4O<:T;YY@r&FiO/"YW;/Gt:f=bM(DN4N,m*4(E*+Fl*d[-Ca0p-d;haOmf7s7cXU)>-u^@GC-MFbTiEo+=n,^XTV
%V($C[9[uH,8E`ssC3X6pIp+5%'SKGmRAR;%Jsu&JN2@D0]tstP]_.6_$HZ3:&p'hE5"UkZp0+W['["40U616-1_QnghW(k7J:9?<
%.@$pe5u++O-<Qs2ZUhG5blIS-TM_CVAFL8A`aJ^ur/><TR>@5nHJ8)/=f^&-m6I_72N?u=TA1rDL$`h`T<%MCpUB9oG/m1X)TrP%
%:V]GHK&Lj3gV)&Ci%3X08:nt+?NG1hctX#]ZO3##r2BZV08\Ss:'4&E";<:-q\:k'?sSs/-tm&`9L/lNRWP/I3ZcGpkcbV_L95eK
%Vq!#s[NM!q)F^]]a<kiVF:"%/lr5PZW*B'"GU'tscCE@1)nq5r%p')fUgR'+W?Mfl6$'XqfK%a7K@ZTX\,$>+nNTsYPZ_f"G#Fj4
%G.#tVTt+]Ic4JBu(nrGX.GL7_7N+Y.1adP"C)<m6eZGfD9N<k_7!EHXjt]_6)S9!O>d=$1Bn:pMNLD]9KPVnT:)\"po@rp*M;[T[
%XdJ)WVRK^qE_^2/(/OPpD5.W`DS>tU4*qB)'4H.)mP]g&DHhaB$Ou1PiRodM-f<@oKH!_WWKJ+n]jq(:$$)I:&`WE>H@q?YVDVhc
%MhLrJn#2<oD,u'_I0cr+<CUrTO<U`/2do\aU2!Kh;i#Fm[E:'-L?[jcO5VN5>,!`Q28;5Q/]T[oCm4NCc?iEGM+\OXhZ7/,'.keg
%Se2[\NIR\RaJ[R-K!NUf8SKFVjqVF%gned$'sOW)2'bEtTN.>V!o-WS7TJ9HcttPN_E"JAIEQH4>WYbb;Ii+hZXfX;J5&ut1/')e
%>X".^Z4>D!@%'pfa$PO!N,OI!SMrM9NQ=k"8bLC$;]ZTA$^&s)Wt?XL(I.WucVaX>+;XX#$3?p6d;bB!o*tp1]dCB$82)o?*Gc',
%4n&Z0%W-B"BbUH`Mk@n.W/FkoL<-(YJEC8*5^"n=n>,b*:UER6b"R[lW[4PK<E@XE.-1&t.^jrP?&o_AhOm-9E]oOckCDP`<O\UW
%,B0bo+#XpMe!%]ofq[QQ-U]dKEb/[*afJYLM*)E`o#oY*4@p"H)"ek`2aZUT>f0#TE1$Va`+PB4Gl`\m(7FBAaO(EF,8nIF#uJ`3
%N?pP5)9t1mJ*ub&3BH<\flLuDja%CS9DN=8cQPc@R@i5TW21Bsq/c&gn/O_VW=DQkXaA@F<Z<r6NT'/M%?4MN2GD9\G-CEK0Jg0q
%krDmTNel^@f^]hCL\[sV42Y.On=>grFVEdkbVPf4JM'[<DC8<#I"St@l<L>]>2al5#k'ggqT\]*j*5YOq%uY4-6EcXR9\6G)Ng)D
%kVaA-A%#iDRfotg$RmP[qGEq&._2s`^ogeh5pA8@b3O^1(,gb$B+q\B:6$Ui+G:pArS=!(^RP.i-8>"2\9,Wr*$5#nSem]XMja7(
%B4CpW5a,2)FdnTL8tpY8\?_FE&5!I$B8'!gA'QP1JAHQN]olrI#;79j*3DWuBs(h@R`q%(rNkN&UAd[Y;m'rn%kk)'ollH;$Wm&o
%f8o>!=+9Qpb_-@NJBA=6#Q!7$8,oEJnG6"7ipt,r@s>Ic+cih(bGF_)`RTZ`pZNg5r&Hm[jg"Q!rK+[=oRsh=%:;>GEaJ_bT&Xhr
%I=/N;gaZ[G\@Ss%4h:r,rnPJ6n3hR"oXR(FcCTXnc.R/SLXP;1@?t5gc4AONm(5cIj9p>2oqSDYj_o.<>ke[kj',c5#53]4DT(Ak
%*ll7'i@uso,Vh$DD.%RKlucAfWn3;LC6u^/g(2!*;tT%r'DM'>IXV/G^O,Sq^AL!:NaDp6?1er!Rb]d*6gWg3q&uVTT:@(1%\Aq1
%,$sFM=X*1k=a;4Wi`VZn5/f<u7>>&m<jp)'R@g'(,'NG>)']@t5!<Oh>s'WQUg6)1De'kN-Z`f]4=bVtp(1$A*naXZ.t;Y!Xe(\A
%ihUfg%`u;,<YieXl*KqO>j+u/,S;*moNW"@MGMPF=V&j$-_677;_grJ6p2cm6o<@KZ:Y7C4X7/K(O8J^agu^tDM^%;N9h0OJnO/2
%-t)q2%$O'.Ssj/0WSj[eR1(22X?7.nDGSP7Z%H]MR]ME[AXeL?HUb`k\p-uiamJ;ik+"Ds:X;)T90=`nUg76I4Lp:EdrS=7V7m??
%5HOQ+#D-Y(5!9P(JrZbL_V)hjUZ"C)f-6N(iE7m.pAKrKV02=0\0[40B1+A=`q`'kMAk[(a^4MEI!YdLcg^Q@*fl\$,k:kN^g>p4
%I=Lka\)4n]f3/.@APDkDd&p8U!nmBZ+_7V?MTW31YA;qC9GO&-9kSi$MlfusW2El+m$ON?XS&#Z!83d;UC-^/SPO,M>];O*0QS/[
%]6-rP;Ga,#XR)HDS#jF,jmnlt"]Z(Xh+8Ym%5qm@lBV;9lBl>QK*A/NVlF_cg%A3T?mZ6#i&Dm?:@-hJCMUWOBqsV?=kp\J-fYb+
%@qqg[7^9nn=('U1;/T5G/X(0@=c?Bq,lXAt]*7C$m;L8&Sce#2/rFdkX+C5UIYmXW]n?&o/0nn;Ks7+Ylse"5C]iO`5/BB[4m9AW
%%O@ccN?'6lg,QMg=O#hOn]0_Wn(?@H_>5V65<.l4@A6o5m?T^9dpD"#6(%gR[RP`Mj!89.n)S]s^@'RN`.9:[;JcuKYhrZuKAoZ\
%MJYY[On7`+?7EcX@p=qL+'_j$5=,$0S<tA,=t7dp%K9JM(JSesXq$o8mT?Yh-_IhCmo;[^ena/g%AZ)g?aoAdL3o!'6+6NRIE"O!
%R'<OIo8Be&bR1l3-\mSm@F!0c/+e6>EumlGQM"GQ)FT)+ReG(k:FfVsk[8hY@kk5inWCJ(lbJiXXo>[o7uG=#3k/:OZM]D24\sW`
%I&?g762jsH5bX]E>i0+]p[E]EN;>1N,b<%;aNY0X&0Z8dj*L$I)pVD3W%jgi[(>nME:Ki_>$N#C3/djGDR'7O='@RLec71],Vku?
%;+$?)2D"!!<O@V*!6805V*WdBi2D`fN]I&9b=if!@c]nnPRU_Kd3Q_7&T2"d^M'^[/]hH?TeZ02Oh0ZK8-hLGA=J-Jb>n[:SM5fa
%?)=QX(hFSQgb]pqbdA#+a,rl.%>@f<]W/=?1hr4Fgf&\(/F8iuXVAp$IK$"f$HkR8@i%'MDNYupDY0ck&<X&omFie,#fkrsdQ<*3
%s%P"*\nB_]<[u_P5b4Z`#F,W\_#D$7Kf4@ce-E&0P0+:NAS@$"QiX3d7>j1)s+iE2/=.sVq5C5ldL\MuA8.lAd].'<YpH-*=&?%[
%CK0R$K\ZrZ(2^Bi3E*+B<DjS_e<V<9>RL5T@E$<$jF1S1?2M;J9Pe=O*kda&,$76<T0R0p\LE._=%m)Ec";;jFY-7;W+CN'0@kf_
%458M%ZGIk**]d_P8VRQc2cDo(aW$[)e*:g2ZF6BfBWNfAS?jkV?SgAI,aslBlb<iSF]%9Us*,kI0+PLH&I?c_\iMVoiG+R95[R#[
%]OobLV'D580'.,Dl-6pk"rrAqP4GW>NNni*^01l4gPWoKhDf8hmSoCorr*bmMKDqiinI9RE`GrD\&DHq8*Tsh#,RNch""OffBY_a
%D2q0VY&Pg;:he>4IRPDBS3QuE/3&lZL(%#;=AEE#$TYC.OpO0")&o(SG%"qSiX=tj4"lBLpfdn`@Y8iG,V,hEk(.'6(3l=l)XWcn
%Lj2rH4u(t8:+Z4F;0;ZUKLb:;qU1r]JJ?TgG@R_]2-l>V.$^oOE@kSU4(`]b^%aRFh<H%^`ekDX7SLH2T%E!>Zma9,g^K7YpUiQB
%AGr>M0CT<ookG(!fjgpo@7`H+K&1f,,,n)9Olgh-5d_;EVTEF<H=Wl+G$_$#HJ*c`LCl>6>Eu;3VPWO42*fE+@GW^7$Rn\B`T>pU
%Y2@r,/)$$o,a9d(V8pM2e_ee\%r21*JiiE%$d^)AD+:U2G'V?]>+)USMcShAMI+#?Fe)&XW?P$TBsAoi[+O7HiHdA)q>cO3Mgc2:
%6j?:d=GS4KV?+[L\ANVo)=^k=7Y5sPTF&p-1q>rBYq93d",)+FVrR")[We<0P1DB(U[8XMYXcBlL=$cnGiOXIbbWm7AeoTcGHkZq
%"RX1.SMoHh%bZ@V+[6!g0r%#i>GHHPfaJ_&C)KaL%!GY3ZFs^71\>.lP\&MuH^!PWiKK-0&5?\a=Q8oe>Q`(U_DORa\qpobaid(a
%rW^V>2;.csH?,I^=^dLeLl'Nc)$:8[cT],p#D(2B_(MPrk6KYnW7':B?fc1*4:mgLYqVRsg51K-g'U\V28(`i[ZL*B+],)`%PF$&
%DkMkWI_<h&>s"q"dG<k\NnlNE"@tEC!c&K+gSs,TMGiA=TYI`GFp:]5$/Ei0EJ%8M1J!X>?cJ:B+=%fIk.Vg'L)[.d2Uik*1/As1
%J9Agj.!@4hP/>Rb$GTt6S+!5_O*o/Q05-THDU$:4SsIT63:)&G9-h3t!iTEfh$j=VVknkafgdS(EQn=0Qnbh<\"8lW#%S'21XtEY
%eE\H4V74mnfH-\f/sY"SD)<UNOJ0fB6NDY")O1T!+Wbq?`##(+OpE\A)?E'_ClTX3&0+M'>9QVYS[0h]eAtHR1`fB*8`EYS:eR/;
%?T.$>cblm:j4FP4:bS-JPV"u+;p:plR[UG6=u*%`?:3YG13@a,(-6rQdHTBe^h30:EfP.s;/R6l^RAE'ctksk*cHT;j^+ZDLcj8A
%*#=c1Gc[9seRedCqD>qXq5qlQ)J=+448#8.9j/W?+?('O']L+P)B2FV0cIH47QYs)>`osHV3nO-jE+%4aXI2:TQf?BOk?4])sB,e
%&2bgupNh5Fd`ILsJQ7#c*6PfC,XIgOkrO5g;I_I,,F7.T5+5t%aE$OC[RPkGVKi>'LdUj[%&M^j`sbWq;9"Ol`o9<AHRl7<0uhb#
%QQbuf4?\r]0Io+@gV>,K?;)2^g.m$2<&*4I4p?(4],Nmf1,f2$P$1S^_"1C[HCk=T3"H4`28=!@ehhcV2<Jcl_XK\JjXb`NJb[&S
%Z[eQUf8PNdk/Ofmd8H]bf&5u6`8t-SgcNL3coAQ%eDFAm?a`U.C=?U\Xs;BfY)\&j=F`5_m[4muL=FL$+PWn03UfJA;i.GhY3<@E
%OL?bs,eenJ!4K)I><BP[0[J@Z)U%M3Z7fMO@+TQ`H\e_Lj4.H-b)YelKiES5%&;2o#g#!li%%DTpoWPrZIm@dRt_f#+b7*lXXMr+
%VMOV%(A6T59lo;ZmKSg%_b?b*H5<?s/p*-,)4_T>Q!?i^GF.P>SS^2O1R)hIOjfp*59WuGP]-t@![JB1ZZJ@*&"*DO&V_@[LI/3r
%4i.%D+-<WnC02okb&"m+,(_"Rl`D_3AWNVppAos5P<W0L#@mju3*RQc=?mb%>.u!T##3/pf<Xl/Rr:T7l8(P=P+k+qa*(4bVgI)T
%'[Q<U*=rl_3H^R_1$-JGcjjf@SF3l=O$!#67Gg:m]B/psEK[l:M'<d!Vc)O.2]MEF`A':M4'd*A_ZNYLV-j".[bk?]i3)p&fDNKA
%?HR%A$87(`E#+T$9hqg"KMTMV41I(I(^!C'\JET_W\=_"=XG4G;O^amRau_"N*)U$a;!>7)<+r()q&"gFZ/6"G'[cY_GIK<^M;>)
%1OuVG9/_4%RT<LLYU]pIF`GC5]5@m\ILpt7s19EV^NoVJ]=3:cbOJhEs5i2J1a"VX^O)Y`]Jlk;VrYNsRHcXJ0*&#JNNL;eN`jkM
%^A.V9TESfH,fV%+KMP`*(Mu6q);@7=h)+P-=L2ncXe9b;Z0N;.p@),)!785@DQp(,!GEm#)_BBJrk#M6b7c.aGLE$&?;;a>f#A+O
%1d=O]85iSM<KY?0/?9VM[6?jJM$N))1YnX)nuXbQef9K8?#?DRDZkYWXJJ0d<t+iI^Ft5S<HCnON=GBKBSVi$^N:6W.0U_1;6CP`
%2n8X=pXd1I],,sJUH(^3"-Sd&0p4fMH^oi44_6%l$!O,pg:%q.G&iW+mLCq4LrY70i[i3eG-oh`]G3j3ZLk!BGP'e_>htk9h?Ggg
%Zl2BFZQ^q4%"uV+KH\+3(2ok'd8(8nLr,n3%d6TL&`<c\7ep%(8eK-f7?^!f\II%>aX3fh1*<JTB*1PQe\#HDiRFLg`W`K(USDWn
%aUkS,e_L'/KHN$+J#g5f\!B*E0WZ1gO%^c,E>=,>^-a]AB`uai#&08-@\kT#oda,g8r-56G7e[gC<!sC8$$m0NE#Hh5\4A'bg_$_
%SV2k$o;EM;bCZk<l?k-i4[=?BS>(QMUWG"r:%6J#_f5R"WuM8T6-VOA'f0;L?_X\J+k\F\dJgkKa([gq;GnR%Jj7`"j%J2nKHm;Q
%a3iK5%tZ#S6^PWpPbB#:@^+bKme$uL48<YLXoeXLG,7\J0sFciYKf=LZe90dK,jqGMaf81P?A,r$en\*Ci:^mcl#U*Es&#V_L\[>
%*(RfXLTf-r,6XjfJf)`$U)MN82*j9J>kH;[An;7.(n%KdQkP$?oD6C;8Y)LdgLkVfL#Mo[!Sf52E"(a<b@[j(P=G$7UsY"-Z(YR'
%*3<)i5dZS(Vk%X'(Y`IhM4-9),q>CFDnf'%>sR/H!<ZjT`OW@-8SRh#.#D]Z1f`euh.:ZtS2PPI8(o5Cn-XY_ha![963UiWck3EB
%.E!6Kh;\:>M.ntaNej^TmDm_#Z,ZHCH&Yn\IuMFbRe'b=jl0ZX#A;:@#UN(YN8;5&dEPMa!&sgaH]1Me3?#=kT`GS*lT(rlK:K8D
%B&"i6FVmo3C2/:)41)XFN!u.arctrhc'VbR9YfB8l9Wm>_`FDgmYjgk8kLCQAE$O2LKc"r(4'K-ZSD!cpEqA(2:K7&%U@SO`nP/2
%KO0Y^Np=`+HLF&MhWr,s\A/#OBY$l7nj5B'K1uki[XDC*:EsmU0\r=tLmYK"D$;X+Q#63<&3qFp_4(ZfEXg\)`*9*L.qub#admT!
%$.!gU?U;'<Uni-1!T/h[#AYmik?=@noui]SSi9f6B&/C,2\TMl#/ZKJrmi;Z/Y*cLFmiR&F%h^"n6!grcR5s./;;6JV_u9)Aioci
%`JXHBSXqr[S9fY"D1ap@a*eoEBk)t&j5$`3c5gtK:uprT6c(8Jqm$E"4P(0a7&=Ai\3L.tmTQKI=R.li"K.T:4t!DBFPp(Ko>.;b
%@bq1W!j]a\b"KT[qWH,sZr\XCrUp!1Xf6jY6Vgkd`d83G!7R+Uapts@4[I9^<N`D`bS9I0^\Gsin+Fqae)lI(HY_J*l0+hel%/Y6
%;.?cTT$^5>A51NsE5M6m1_&CPrY8EZR[\gD2l@P[(.G@dP1AR\0c<lL#,[;ZlD1>`_ObZtLgXeuEdS)F_g:lS7bj[D,//m$O;<Qm
%ll`3['R!_[F%92s*AYSfU1NQ-.q0P'E(.+h.jl3O%"6hI)=oXM#fW$N>Ld1U%*Li[c&nPFBX4`^ebt*!(`)r`=1TP;@k8Y3.nGVT
%T>n`N)LrVqL-%<2@d8+ZZ+6W%UR@&=Nd"-hf;9Bfn=,'gNh7qp]_5T[h)nX`cP67grT<dkU#PD3>1gZ)'i1LuGeQYf<nrW=`u5]N
%BT7/?nSIIF?XH[9e?3R>-/J9)qBa60%JSMQ90FLHeLN-M#*^+'2'U@%46"-B@qH!$FK6h:`eDAC,<[>h>8fhULLtEm.(YON(6s=$
%pckk-8m/ii':R79<R8\]bau(4,-<X4S$=*<]!EZJ#Uj96q3:Kf_CEdG2MP+dCoC+>Tf<$fm$$U;i#])%.m<Iq)oNY0agcMo)Z^j;
%DomEF;4Ns:OB\kTYa$AaaeA:gMlH6"@LNqj'Vd#F47COtWA&2?f=QBL3o&6u"oL"=H`%@ENt+Rd2F7ChG47Kdb]q);ldJBR+fpgd
%>n*cBNLbp74JGW<Ja"A="_N;cO!<.L8nJdYbesmr]q._D%>jf:-Q&/b[@[\Cl!hBa?X3hYQDlKs"V/MiOj1erSdJ?V^%$&<M'%qI
%(2U`+T$#)ad6o_]8rnE\YSd2'M;@D_O;@+m<U.WNWZFq_FQ3)]Lf;J29p0@:)IZ+MaY^N/OnkNcgm0d#Z'7.9!\#C6O2>VEr!rT`
%A:u6PKIp0_H+Fbj5,FXc-0ZDrk9N\EE!t4d\)us1Gsa,Uj$6d8)D0IrOU:Lee9IoqNnj//!Det^_IE!_Pjk;9Lj;P?d.5U:F_lqN
%Y9XpeO?#B,hnVY"Cq/,f/[]SRk(lg!c)A1jf)a!K6kMkrj5"9f+ur`o`(pX3!Tu"SF-WB!3!mthP?o>*P.EQj7OJ%8AuL:4AV0^d
%m0kOe`2nSd0bqqIkK/&[jt/6&5(PPRjWlM>>FO*RhFCY5Nd;r993tn"pXb`LCrqNs#9=_:C-Jj>T<n*F[1T%Fg,NTc`%72$@skfe
%=]H1G+#qU@k$G]%r)BrsJ6l/ATgKjRHd.#?o"*53"L"*5VR]?FCnmXiUMhqj;lFG1.5PRgCq"u^?u(RJ#@XbZ)&>2*!*G2eqaQF\
%EWbX"lsnf+nqGb5gdG&nU9<-16mBjt<JD._$^+4BZ),YFPMd=ElFsMO%^TPY;$.AIO?J3^2fq0;dJ2D5kl_"N-k-%)>THcPA+?*]
%H:8']6f9B?=T[!=DOG_4=5iOm[r00/\=5QTh56!Yq@"c(OYlo?S_o#^gC(3WbHe-.%R!d5i1=<If4\q>et(XH&D7(+XBWI5"FT<K
%<+37a5q)EO`bL.LAfCo,/\7.Dh5Z[:,\S;&TKegZ,):d)+*">^6(bmD,E9s*\n%u=F,<P*r$C)i)ZdH'q<GOMo#E*6+o1(Ad/$F%
%03s)$@XM?>T:)G-"uiXJ=:I`3N=Iu1']%_QZGLID86+80E$K=qb&TbY7(We&FOD]O,C=^'Wa2oqAW:q=.8M6j4$"EA=cFF`W1ZXS
%Nae>Eqd*/4+KP-)g^?"CBnd8UogXdk)U]KH"<Xe@7tc-7,Q[.1Ni:K35u=[JE^@73PSP+l.N4'_i8.\Us%T7Dad_YhW&uEIOp@3K
%-`2;JE\Oi?_c-gCae.\/&t$Rm&L9,k`1&$%.aA'XmM%n8X0#Uoj(HWfBGR<a)6[CPD*C*QE,+oLSf2b%*D#!RO'CY*4A5T+g[8@,
%gQ**I=JJub24OR5c$0:Pm7H>!A$oB]E-Ck[D>X^fc,%Oi?*QCC%X2,h.b<i'r:G?F9d0>'-W)3mNXGd-Ls*nH&TciuYua1=&m\W"
%l?@kj#&[-*Ddn(+6NEQ^DKmUsKQJBDVBh%d\k4)VN*j<2CM0HO"FZ^[e]+X97A&,?#'sYt:i"f?.2C<$$R->RfY\u:k<a1,eHe\o
%RFtZN\=OB:CLg_epBe@&L(M'O?c;VP6[>Ca%PK#?Us[]RCY0ma!9t]f@l-jt-T;2d;QYR[fTosI0(sRe[bm,FA%ZKVX#H`c$H1'<
%T3>u!l;]87\b:3o1;ptc]nFi\Ql1.0,REP,$:Ye38F\\-bC#[XfVqnRF)OE]Zmp<le?ZbLSW!&_/(-W[lpW]t]MqW8`ncM^[[Rii
%h!Gj)Z;._kB^gP[6(]O9`o25QHsX)!3ZlRo6p:BSQ:sNULRXZ>`RHOVn,;o:]ol/V^^WhuP1@IsXt'==*BAa2*b"G=PsV0bc?ZX!
%Jk"n$dNZB4."Kk19(a>Oq]5p>)YNF>NT\F2rTs`HfF#d4>sEGX0,SYckl1.hqKd`b]3Z_8!09qM]%WH>R$6</o!J2WgQ/2m5KaR>
%A$fO'0iK,W/%Hdi+kr<k\Kk`EG,IT24VomY%hsT95rVi4>&@g%@nEtFP,`AW\e_m8Ho!T[j"9kYLS4fe\=9UBG/4')I>(N9)&V1N
%0p`R<rqcPe4"+ju'9u#6F(gobek"Z'ArWSr5&7SrILBt1]_AM\)K?$uk+L_L(+bfcT6qGo)TX(,.ES`OQ?KbOb[IofMV5Bp6L%cO
%T]D%U\"7&9hEF:!_DPFd+3A/a7\jUT>eZrQc+M!Bbg!7eUfS\RSB]UE%Dk8D!'0^Qj5NlY;dEg<6A&X"%+'%U@kR`$V_r?dfp')V
%#6;$041,[$9('Waq%bCE-FR\_a)YY3->A0_1+hVCp^qK[ZFfrNToh5@RV9>_;.G:PI)oAE.^tj<J)HI#JP=m\\.sr'ZJPF'$1QKb
%R3rnSe4)dgQ(LaXS#m9bTGdGFCVHoRDXq=aN6+JL&hqtqO1A<`BlffA\#juC):J[,NV7\p#4*I8YY^c=MK:;c;.FR?O[_SS3F(-$
%"o5J_7tsJdgPV9Bl.=ADmF@,qbnr"4W8U6orShQJBR>t#_0;+c?X.G;UD_0W'qH!6XhLu>(Hki7k_WHC4,!8W,n>d0J3c;^+3lQ>
%!u)0Qi,YAjGd0S\9kdtN?<i?IO@CA'A<@3QKlR5(B9ih7f8P(P'$V&W5B?:(ef;`e>.Z&2$hbb2-)QsJkY?d$3LL2M)cEOMc)`KZ
%pi/pX`MuNjp'0i2oN8Ng'2FY+CI.p\NCr?KUMO`&Eg<&T1YKQX%qN\38)4W3^"JVG(TmC0E,:c3@NqbUrE/a&MVO--['%M]P2tC7
%h>CEZ:`S+1!onNUZ5J$_$XE+ra-D`V3pV<.$@[jQ>Wi><)W+Y76P>`o^!e8S/\[[o(=F8ZCp7%K?ESH,+\+>2Fr*\@^2,PQ-U-0>
%)Ikk2S$umF3c'[3[QpHc;b*(1Vd>`cZQ,Mmf$se;-)kIV/"_RD'cnc*qP;'[L\1d8i^=><p#S5=P#>l))3+A"n?`f'FUfNQ9/]ia
%/8,:=RSmQ%U[H^Q5K3nTE[O*$8V^qcn,E/RI<XYC:Fk.omPL\0_gU[uh/t`*6pudJmkQOsC>=6_[>)7FFh/0m3uYFo'/pG/rEPi6
%_>G2:TF0tH*^39HVV&Ut[OhRr%@C77>W-pB9&U-#dNd5oj&hM>*N*DO]S7/?B(LjXG1scI/3X7cc!Gn6pDTBrG4lZr4Y8MNWsP#u
%0`KcgX<P#bLqEQC09%;qhuSC5"$^:7VU:4RQpjJ%V=G`tdO_V_136fel#*Z#;?3sA<`UR"98gQTY"ZlCK1T8c_*FN-*8(@EO7E:7
%aRmo[)h:L=(_E6P_n=*]YlWJD&W`RZWbUQA@_t3%ir,&Kqo%EtlOu*7`G':H>BoQ%TmC'8YgS+4Aq26a:a_7po<o._(1V$GE>fR>
%ETAlephAdA*4WaI2<^TD+N>\^Umnc;kE,mAc&#jT?3S3NL30Bu1]U5dm]uN.dn5jigB6Dfj53>o%+R&9KXr\pgc!*_Bb9MeL4`]=
%n/VNu1BrLZceqX5DXhTnbtBsTEbZ7+%k\i9.to,BofG&#FKNG&[C]p#W:6d-7bH)q_qHfN>2H\*8VK,Y4^V3t6=]<mJY0fXe1g[/
%EkH6?9C&po>:ft8H<)#F*.J9Q)iDBFS&jprN:$1?">]?b\6FA9""p32RlOt*8OI%o'j=Sg^-q0s>,(0qWI0j24.C-Jeha"!j+7+f
%8\fjMPD&d`YW_=Tn9[e2!u3+d!,S+.M.5"F!J5\!n8J)*,[Qf5<\rTLcWX:/gI0eucRZ8I5RrK[)V#P]"0rD.P(7%M8(9!2,TuE)
%U%Mn+7^+iZ7W(/TVep-r$gjW/+&;_q]Pp238CFlNbqS.Adm?S0qXF>c1gD<CQFYU:'\LSCXXnP:,SsBkFmdD+]CH4;pcGp^SqoYn
%rm,7UT[u!9qSqt-:.,hL.:bu)g4::P%-F]BS*?`-Orrul?UiL&9[F]2ep]44Q+$oR^0&(h4)Z/GS(+a(>s)7ErY7?>Q-nsI.t7*4
%OsOb`+MP.,?>jBd"I#7DC85_UT64^"]?fR%ahD7^JY#MENVN)OYb?fn$k"C?_8pSJ=R7;1"3Y\D^?#mDmmghTSCc[K=pWDq03Pei
%o_6u3!neiJOaZ3oX\8Vpr9q[,I=CEKh^Nf,V$u=8?\gEHg&T6IT98d1/6NRR_)c!iB_[3*idjB<os%>S*fMPm)LLD@N"Tel<9JXj
%ENK\)#ad(6)m!.Hol$*lCo6@_VEIg[e6-',.tJ[J/ps0?@KXkD>qh0BrRdgD_&W-p\m#U-,CmL(2kG-mS<@p/,]G:n>#<7"Z%%WU
%'\V,m'4m@hBn99V1GT$3(gh.@NZsHCTFbmcDeV^U5k&N6kr*,f6BQ/'!_0&H<<t2-6\J^8ae;^a5q/2d3$8FJ5%iNJa1P//3Y<@K
%ESIFpm7C:?f&.]s1:-:d8E9'H]B&+6V\>C#h"ERuPE'#/dLYZ\(uEeRZ6VmpdkUGGNL>P5bQ2l!1#909hkICM`5^(_V-uT11$5nu
%;PD4I4[lB-O%+5V1bt;$XA[Z^B\p`#Q'bam1/Om!?"A>9>2mXk,WqW`DlrJd0Uc5XbPKLc@k!$V<#5&1SZ@rJ-[-'@d>1AjjHrRT
%J1%[*'SWU^0]6(J\HrD0IR8KjfbM20IShZ[Ho4$*[+YD^>mMjF-EDt[VHDO8+f;RL\X&GN_RRCC=pU+).(Ibrn$[*1aMlWaiH<3c
%j=+bG9b6Ok.X\97%G"Wn@[."24L+2;A3n)r<.!'q=)a?g4%mb$@qV&.MNl)amgXL+Sqa-Z[R'DS*+&ujotiRGioCd-F:^Y+cKJco
%`-UL]`]+)S9b%8+p"?>%*$IBq9Lrla!,;ae2K=TB[L4\X_J"Ba92k?slH`XDbVUd^\<Bm*N$FQG<XU(i">c"$(7=h>(":.QqC8IA
%mW'tFc0MVZb";7'TZ^)N%Y[G0B$boMmRBsYLlZ.C"M2(Zd`2@@L1)rA[i0]U$oK0p%@9H%+dVgYVl:>-npn"I3`Z<(W!.sF0VWe&
%*F=h6+E)FY)llEt16ukVm_5]B\"i!UK$:gL$c3276CE#DkQup1YKCPm\r'Z"[-3=+DiD<9#^>rI)jQD)AatAJr<enn'Ks2`J.>M.
%fd)Fe[jL+eRp`1V`b<b\@K,`/G@?23VXdh;L/]mG@a:e:U4L`djCAiZC"8+Z\i$\C3L3HRdAn>UlN2RAR5qnX7HS4@R'gZ`1L%O\
%_C5\B4)p=$T0[F/WoY"ud5F'\5_sR&n"7;!):Xgn(Dh`bTp>"3L]MT"'/Hpu1`XRf)Pa>XJ1(QBE=Q*FoVB&@G('cRcZnN90%qc?
%1TX;Z5H9Xh.baa)0nC=7BF]8NKb-3i%Sq%2'EYb8,.:,CMWsUo+;)QfNep)6C0&tF@LVWDMdmPm/Sf$`9:H5-.P#58BW#s[Q>aG,
%*bGhj=XB9_0[H.KGH'^oWrOZ0DI*Z=nfVT@iSR-FetJ13K-MjrZ>G157h6Jj8>RbA))Y6i(XoE$h?;"_XVjpob\2m5el]`-)9jm^
%]k1e_WD`fkUf+BlctS_]`oNLh3tn0(8A8mo;U8A.-Wu^&)?X"O&J\o#2Jk'E\fr[A%<YclLfANNiXE_aI;)sa*A-HVMrY9fXDZg,
%4eu7%Ebp=:m9%E?Hh*7q=<)&)7ORm[,r0<G&TbhSCrmtFZC>i.ifo!`?OK!\ZsF+ufM]DH$dc23Xh)g5iuDHuZ&\45Y"%ZPS3&%f
%Jl7tIO$;<u'm!l,\:ZKE`4-ZoZ<Je!8_YN,[F,FsD)T6<!Xl:b'1Xp]EAti\`5G9D_QC^OhO9gIRq:RIUbUfV`+>"#=`794$FETO
%"]sD,D:(c:Kg_uB's;E%6oG."Za#LlE@lG+*1bkJ4FTU((YplLSJmHoJR+43noeI!)FC.:PkI6b2`IRFg=hT4&Png(?sPkZ;KTfu
%/a]kffmGcQ<,W?j>a_Z8eqG!W$tBGTCeo%Kp;C'[BYB-lH5Ms=MUY.kF#G.Q-E8&<ZU7g?^!C%#GJo2//O^mCdCCM7b?IfGAB))V
%hq*ek:@/+((D<)ZH$7jXFhg^PN14hQ@Q=0X_BM^g(;U4O`chU5h2,,>%_S+:h.HGrZ>E<YnP"i$lfdhM:s[rsIMA8`2B$g7(aW3g
%QP>`>V'%!sH'3\NT_3#l@$d%U4o'Pe&s)Ejl/k!+4)/1^J`8KSoc0es*$@]F()IotCCTa+W1RYbOTIuP.B?H7)J4rJD(-U^@cs/t
%!I*"N;IA4u`9`)ganuS?XjWLd2D4OM[FJq3VVjcd>.LqBJKMnO"1]B4``iqd>c;2N=4l82O=$Z82TaSn>PA<-1eqo30F)3C*Z"'n
%DL$E!`r/5@AG]cU8qmLLn!dQ\,o<A3O&FhhJ=G1rqaU6QCg,d3^-g/L.hqfb54nAekX*PWogqMGn1Sm9ge@Z/aVZ9ngifAJr.ZG_
%`<Sr<7au$[@mbW04k!Ke4DLOC;&o6e?,31:bc&@$>$T7BjK"-Mb-J6P?rUlIS<b<:R8$%?S$dh+V@!%+O]]/L\?G9fd<_'`[CtX?
%TkN4U$]V/Ogu<ja95QPSX(E"T!H+TcK"9Za\VbN,a`!,;PInkf<'>C#h8>ZU1raHn9Kii\lQUjrLq_LFdE>Y#Lusr[T'Yhp"!KIC
%M\i`#/"g+CRR\3`o6Y?/LQHlmp8#eA?KfmEf4ro/Q89-u/P]2([":MQ?e_0BE__W_3:CG=Rrrp&X0f]u[&oDi9sr3t=P/6cM6Bqj
%M67r*68a+sAFYFj@mp_1]GKEn@?+,pNR1cP:[>ak4[%P6/j0j&l\g$`Qo(i7VlCum4"k-JZ&4KMq2t3Gb8*B<UDF1RM%]Yq4<'5I
%4aO-0SJ^:OO*;AqgN\c)0Tb;6s/LIIl[gtqa>9=/P&H>Q3-s[lj;<,h$VH<Hg1%E\H:Y'FGAB4r3^EQ#Cq^nnLIubBM7i6:1l2Be
%-%fK+6V"``#\PlD\5kqqHrWai899]B+Kd$;kjD,DZ*U\]:FE3CYdX3c[bt(_+VM?$]L>m2ilo#9i`G;Y;oiP(H&XBiY<503>I93;
%ZE\MW,h]XTY"X))T9'kXcYc=jf,;muho3X5=hC2T@:3+\!Y`'bk<j@eMJ:q+IE54m4P3@sjKKg?@oqi(nH!Eg`!e!6e.:!"Btld&
%0:q2"1AkQfMNX?%'^.NbEf[QMKpm3/?YcIU7U?E4P(]?mR*honfL<ZNS(8D]o*m8Ek[59jm6Y%16Cj=(-ob%15pU/"<\Oe!Qn=EM
%Up_"m(k0It9KEfWOqNJ3.m.W*T1E"'b,l]ll.IqO[M`Ok,*JF0&f+j[[1R.-@e<]9X.WSHSZC^n6Nsbo0uFnkh7mIUJa>u2,b(^`
%N+fZSfWF@6)p\-+HJ:&k7Wfs!Yf9d,8>H`:`nAC?`Ck/p/`C3!QL$/!/r.BDatR-RCXa5>mimPSMQABfI--$W&Wu^j]+VL.V^]-W
%V`6k=[0qg%bV8haXD18EY;V8ibBeg_.gVKQh^`q:gH*5!pC\['Oqg3h`V*3Hh'taB09oIGUJ&K?;[/I=_VD6j1(&=uqp_XVTasl8
%XUBlEf$9a(d$UO'M]NEN"!TUXH^;,)S.e=(*P0^iO9QmQDg_@_+eu<rFk2bCdbro[>klj/jBBc\=qK/+NtjIuNR]Y_G\A*,c]l4O
%YCn/7GA?'peMc/R*Toh9a4c'c51f$IhoFnND#6iY6lX9V(JR_)Gik<0Y.ht1(d'i=,bXJGk-it_BGm)VKoOCIjB/0-UO.!SLFYN0
%hg"lW=01WFiQeMFYsZBk*#T,`dTQLJ9Y8$TB`'nGn3-o-`?Bo4aTr]2mXb;53h;\5'g+5t+'eURI&ZTE1'M@R.'SV\FL3[="X2\S
%P7Z/uBRFk^l01OC'A+G)H%e@0d=Ecu9L*,[9M?9q@u@9(,5J^VF<KWG,XpH;eX4(N3anCs3!\*?C6^Xj4a3uF`M2.&9a.=QA+\E9
%K)Tn)a%.+'l[nU-2$e7Goa_NYfa'iE24!+MYe%LO]r>BS*QJ(qNJG9,PD!>OTct:8?J7/NKt+VPTE7Uh00k;!;PeH20iZ7>,DXE@
%pE4a;L7=::OtJduY*@"D4a%-s*qq(1aTPmF+oU_+I1FnIRVfUY;J\=f71IN+<:RMgW<-448>OR0cf15aT]$a"+Q*F;TM3RaDTIqk
%NIg(\<3R7)$IlPf.hStJETG);(0PEh2>Frj2V-H@:/6)6CCD>5on%($lgYCL+;`O<fIjO1pkd&H0@U'?2A_L<`C^>W5iN5-?9!",
%E,RFNVAC"#@"9ZQg,FtQ4FJSs>aFI:G%$Kt23/IiO:*k^TMqDs49&&en2R>_P?'D!ruuE?eD`?6N3Fnb%&gfM1[;-#I<'LQ;5&%_
%BJi^mMnt?WmMIIG3m='_FdOmt.bA-?>9^a$C58mGADoNX@3Lf/)\Fj[ToaurCgXq:Yn\YF:^Rf9H<;![oF(=cqO3DI\%>5Waj"<N
%N4T>%8Y(\h`:?"_8a+a#eFUiC]m8QS#P%:UiSkKRr*`l]8ole.!A&_jNm2O^BEYGOA,.gfPrLOc@rs`)'GL=s5`dmU\$BrLJVB*V
%7`ds"#tTK#[^=g()2i?cR/>>oNLB^,\%Z'6U64b2];<'1.[*61.!<g$qGrO$'":H*e?s9XkWCes(IA,!U]S@j!Q-b-%A.eYM2Z=k
%P#qX)N!YATesn[pHctmY+Za+/`]UBG=`"[HHfg&tN,A-+Pm^30>H\OUF[4Z;ZRin%W+8Qo5c>V5Z!bn\%SdWRCupL?>CB1Q1<fPt
%Yo1*6\>LfoCZ4oE:e@4[JF\HZ!dV)CYpUR[/NJ(I8rP9[B?.^+f&G2LTogq83a_&YU!P5-$SWdobYk[e3c!ub\P21k#,es\P]W?P
%'$4E%;$5V;Kt*0C:"/1Q/s$IG_>D`)BT7e:S9^c?,5ng.1aip:$_bnL#bE``V1i%eN1*A!.?-rJ2E@sB\4SB(&[s<'<(UuGat==G
%NM*F&NIJNtrJ&Et:Hkjb-q#i?[K=it&aNK8D:u3$KA$\F&MaZ-V9I<ur!@k[K/CCR,+,]jdd<SoTu3#=_KNN=Ki33O)E,>sZD[fF
%\Des1boq:?O/mHf/c4497oZN<kOiPMkqrhR[8cjJ(a!G8la<De,ojF3XV\MJD08]8i'H+]'7*<qlAa[pU>YBo7m$a*29'F5\N:-g
%;eNp"/>/;Da#/OA'X"]H(_[K<<PZ1M;[O-Qa`;hg<C[mbU,a_"CqmLd4j&qiM0-DiWBOS#d%,M"Ld3fr[,##42k3Y!%_+8c\u9h9
%i)pf/?9S!-qoMcr6<rD9MesO5Jgg`cKp_R"R[N,>'dL?^^S")^59md6FmgU)B"IQ&*tf))?;Xt/(?rXgA.ViX@joAUCirj;<It7'
%*=49Afu!W2-'K!>U/U4V-M:KL[/2@<P=$t4]9P_K>H):1IS$8(P##0r%dt,K'Y_WrOa1\AAJmU5LI!8u@trO2N![.M1Pae`Zu&W1
%^#8Dd/Op`!&LW\u*6n^k(!6k1feR^O)bitd<PQW]*HX!Cd/qufRP7&tNH4\;V^O5?P8CX'a;t`VBq>W9OI9:3*D'LG4S8!%>_#Y@
%7$=j\MaT#7MdU')A97"Z"`u/SXY((c#i(s2nVE14Djo\i*D6L)9F2L#HAG&81MN12J@fqIAanj-3PA^]HPsfgWY,CPMI;BE6Z9Dq
%ZQOiT>K+)\,MD0/)3G9%-cHT;pj<u1@HG2bT;6'MYL/]-H;oumL-[_'npWJ(_^ejt`ji%k)EZ"k:%!]ZV)#4S"ICMeW-Dif>%O8C
%GfTZ.>&I7mU8j9cAiQ%.79ZR8,ZQE_PGOMFSfO:mr/?e?0LK>Qg%=V:WN:fP'F_JO)Y$Cf/\rG7OUbHAZ[A22WNfJORm;mO5<,X/
%`E\\;2(!NiUbK\/=t5^<msUR0K/S#gEKH>YJ?#m8bs*)37-r$HN"S,gNM?i99*-B,,bS?6[^o"aRdM\#V_O]rC$liZ!8Km-(Xpq=
%^f)^-2uNuP)P_Z#8<6&@Y&fi0LL\jnm`'Wg?uf7n[ka=n[V]A5.F[LJ4)2:r#a4]V`1'X-G_.MQa.&/9@5^anGA]9+dg<)h,Lu(%
%,Tg,kW,FS$X(GZ<4[gJOo?,mTL"?^_mr%!k7K8U2*,M_/QW=C?Je`UJa9^>"6DMn%Vs6J`I5E'k]<A#e&#YfP4$OV`/)]"]O&W;b
%m!;.T%\UUXh(DN&c)m[jr46+6`\nVsiipQjjUZ*Yb^JJIY-S9Nd=>n]m;EQ]P7[K4!s]=s_?[FM\]fd&,*G<g3)ra('jX(0>Y/.Y
%HV=(WT(9<Y*^c:(GOh:jjs1*A.?ZcNFGGs^fT+XT^jAracH'N.%irhS_1X(9pjisSWR8+DL@!*g3hfO8_&T,P<u/Vp!ReXgD3%nJ
%#nbXfKp+`ol>\S=NYVAnf[H"W1:@REHd=UNoKqbD%A7d?rHG>X;ICkb(kRXKAfD,+iBB&h7KpYq95TjC7W?#Z$n"]9Hh."In["5H
%8jre.9Ae#QN=Q:.L_X?`'Ea+&o3@-JS3qi[$Y11cT;<3Vl=,VHcb5Dn8:c%D@^sPbWXrL(J]47E6eRK:!q2b5bNB$9#*cWm12:FA
%?>n5R<S)3lUgECPe+An$O1hQ,(gb2TJJOW?5P?HCX/dpG;t2ol[BfIj5=K@``ml`UWd^B;SJ4LQp2V9Pk6U3*Xlt=BE!#X[![=2Y
%G!WE)l[krjFm\.XmiE_h@jWHZ`YLj%UjMDG7BM3i$gRTBB2IhVD59jRZRh]U8T8o?FD;,,;9G`9[bq/I0[gIO@ZT5f3Y_YndW23V
%iPh07)-Gse7h=6n'j7o[/tK+u3FDS<KAZDT]AL_ZY>"EFUjB'gF>7rPm3')nN4)<bqLpqTTgg4h:gg(Um=Sf/(>+>8k4k^'"Z"ZT
%Akq:?\cB^'AiALh@8ug<:u$#q=Ml!;F`.P?"1+sM\X\pH9pAJ1SuKs@jAE'Zi3F\mIGXPpH3R7)6",q#l[hED[7m6Sm/kQd`@joJ
%6-Msm2_IctNRin2jMJhLWs_!A`%?Dd273ZUG7A'M\CqGT0/)OP6rdeCfK'fSR<L9Z_lNlLcc`dp'MXS^c+W&aapIS4jJ<HX3[FK=
%h9Phi5>OY?ju!V06HGP$c+O9r0A]I:m:#Ep=;ui@,6U>LLBrdiP.#'N3-1joQ",Zs2aRNe498=]n!so(ZMGmUBF%mjiO]CHgEd[,
%">@H,V%E\RBiHQdCK/3$#lXW-3bn&OnOa.IZe)<l&E"s(cJ3o4,`::(_2gG`/%Q<qqHWb:"k/B7OSIgY]NMedaHlMY"Z_3W>mVp^
%q/1Cml.SAch+itS8UZ9)!/Z>F+QSNJ3ACS667O_lKDK+)//P-\CKP7SRKqG1\Kfi=UP2T%dU9[fP5t;1[Ip["8`Ws30`LBqY%Nnf
%af2Q(9r2C>&H,Qh6t80VAts#j(1G_4/;Xm\;97lL:D[&ki!Hagf`f94q#tOjosU((l@Ln<dK'2BJO"EqT:1jE+hGQOS6%B-;qm%0
%=,jBJ-hE:-WLl(hf2^lP)gQf]g3u1ZEPVXop"WhX.(e;^HGPfQ&mjYuSZol/0q+bc'>nieXcsR_NOno9==])k1ai<8I>gb^+%=(`
%?cf=)'^)rA&g`(qe8ZZ.Z`oTn[]3dPKnRd@mj6`<:bj+%.LdNcIFk;`"Y,9[mFFo9<sN,1O4)Aq/ul>AY.arWOtNA`'=i`i69VtL
%Ji?!q/>FB?^gjrmehL4!?0JG^l_h***PC&HKK:k<.^F@d"f7)`e@f$Kc@dLLl#O_f7]iqjh:MHF-LB\se,b"ZK\+SlYl\<;]1?$[
%OO3\R)B[;+ME?YcFLW^'dV%Hf5)F^T&HZ9GnX'i96)TTGJEEXIItKshVFq.;^="RlYU39>\).Ia.XWeP>c/g/-Zq5PS8EDb'b.p%
%=WY`=XV^]::BgHP5soo88?)a,fqN1k1a_W]).Z"!6h4t2Y@tQa3p.5WcLGpqU^g8nm@YF5+Nl/jP^g)7\(2Y2"T%XB#R/N1p=a2o
%e8YL,fa_1:CRkCjTeTGj;W][8^-jWQ\@=D^P`SND@#RtR0W$%Y;fHl!]E2D-(GE?R!m&+J.6I$\[Y+;0O?Bs-gN#6B3l/:hMTP3*
%)#]hR/3AP1:lhYQS,28<*iB7u:9D(dS>mE7=#]QeP<N4_CH4\o0mq#Xl)Hqr>&cK';#m[rU$hU7V(j]'OQt?aQ!ksgV_H>aB)J%D
%G*^[tC_`flZHjH6TT0&PQ))e7Xi6Ok@?%L1f[+_>Z12BcU!cIG$8u'0\Y*LXHGQC.rPHVeL/<-K\hF]jg1H>EI_a%J<)HPNJc[_X
%Y,Z?L]1j7mV)[GOY_=8Z-s*?HNE!R;g^-2u@[SM7bZLojr#C+H5dlCRD'VX^0)K_`V:s;9c"5oiK3iI<a2A\?8_*_3e^CHe'k4:?
%WN!88#EeA<"'G<JNTF@:j%hk_[C3C^B]#Bckp@.A=6Fb`!o9lt\Aj%p/XBhG`f"IC*//G`+0_m(/m](uK2nL/rp8oh2]4VK7>a.c
%-p.8B),5Z%k/,prgd(_[h&B-sA37.D*Z$'pnfWFeP--4=;g+KnSE8_C@LWe_Tuai#!'Ia"']^P;jlsu%>8!Z/=7OF3HpGDJ*)`7B
%Xd\:28!eNj46kO-9rH&6ou_Lc2E%7!:cu=Lp]_D4eYQZhTRaY6g-^soLf2f=BH?bko^ofj/p`@nL/RUb7'KPd.hGn6B)@TGp/NVM
%`R5XfU;B?_MT?@M+-37(?1h,CK;e5-77>pX\r,AjK*J7u7*Gr0Xh)1mnB4/)QmX6Ee6;J'2cWZ*RGA":$r!t.7inG=/Ktu#]l!/Y
%M2<]Wg$s)Pb`YY<Z2opp^B;]Qm"43ZAWFm4XUHQ?c<u]VlrHZZVL>A,]PKkX<^#tqDDJLZNHohU.(qCXDMh#uTK&1:(D(GH.[Wi_
%J@R1eW_r-/,fB:`,eL;kp0iE"T8VSm1oUP>020$875l[""PG#COc\%]*dgug&ta^i;r&!Mg:3o5A<#Z)Y']*OI8]X"F`.n%,^XhO
%JGfAS_$/a#2J^Z):mr)mAH?YE%?IDTWYlb5]'#PO>,X*QR?f_sTdF*-1sL3;:h1tJ2i5>I-kg8?i3X?H>[a1+E=WA-,>g,(?CR7-
%9-Y[@Y2?+4NI1\@.U3+^Y\4tE!m)+OOiNJEQpru?q<U%40)ZiW$^6"*OjOmp('h6X#3G_Oi$h[0oSbp:]p/MjfCs$M`\cK5Sfq%`
%h,L$Wf77_ifXss1@:`3a73bU;k)5c!aKCb4c('.M$]"6Y-^F4BM1HE<SE'qiD]:<!5G<dq]*!I3NB^XBnq,eY8^tRlB!UZ"XBeVR
%@\'J\Y8#7L-Ud,VQd%*!&0i#RmCgiCBg:7=fubuTb]dgP8768D^j7.R"_hhD6KqgU;*ibbg$B="%'I$B)kB8TZ-llI=lX:59gPEn
%?E(m_UGlA.J9Pm:Ue68pjlhSJKXIQ@s(i*[ge>rG=^<XQhMd_c!39(mMqJuemAXUB'OeD0+gmtbi$-r=brB>E>btK!KP2l@]NA3l
%8CS7;+L#5hY+fGPgH@W2k2k[:SpQE#E/)Z[Zm+.Xm=L$>jsmh+e5W.pi76(sgInYr9.nR_3,'XD[mXtN.*\m^nD`CZbKN473Xd7>
%&;$?jZ%E0!O-?u@\ejJ4d#AA/IG["#`url+$E%#Pf9ouG;YWM]I=RPPYnaYMMD;Br"=\RQqOt0.#0E45eHD;/"mjfD5"sL%"3UmF
%)Bl384sQ;gfVDO<BUr8/]E]"X.5kfB:ZTCRKtK.qa?*L9>U5qN@Hl%a/+f96NI2PCp9"L?qu"i2I#r$mJ_WX*57oOd#50>T81UoS
%GM5d5Tj*YOm!](M-5uE;$D3HgHm'6C0\,^.pUQF_J<Rt%]Y5#-%s^3i4VqW3ZpK5Z6[($C!TGJd_l0JEgeb&R+DGVkFXuf%3*@QS
%OH#^H!K#VWI):N".D2SV+ra3(2UI?QW74_#cECYWnBlD]ZtNBVHM,WhjU>O5>&Xiak59=Cg*kJ&4%V;'L/qi8((+EL)P`30Jd5#;
%HNqA#FTGN=fBFU0l55(-0WW0,He@%4D7&*cDS*\cd"(35Q(C%R/_^7a'A5XG8K+OF?/E;"kNn3-Kak\5NK`:A%P8T+XU[+M9J4:@
%8/++H;7=J&IIbWD[qBBF\Z60`Y;3Q;\0f_q.G9E.dFM5=Trs-t<l!6(\$a@9P]F[YapYt`U5]FX":O)=g/Mu_^G&A\8NNZ%SDk%K
%*n/_h1*IY'_CBXaG/\p$K3+B5$'Y1P['mLY:QL^>oP\:u`G@B"F`"8.jGM&SKJTOn6c1eBY0Fjkp?+lJ;/9"8,E6P&X:'laapfU2
%SXi6X`LtKn_38<eA<Z]YWY*oA1+ifceK7F/BXifd$Y=L$CmnIfBbf'PdbKN<?npO2425/S)L<QENsOcP7r0dY8W`I8:3HV9/9%N0
%eF%p_U\*B&b#f*Df3JD0BlY42iDf:Pb1a)Yg.K9j=/X.Y>76ZpaISTVUJ[4@itSO%"ENS!ac9FE1I?DG6>O^65/Y;H6hAo3qK0VC
%L<f5t!p4iXj_hS4f%;FrB^l.X2'Qsn7Elp=PWUVkZB0;4#Bnckfkf5nA3?!KF.%P\I&+#*45-U'q<Ku!@n\Q"X_[tG"2f8j[L:aH
%-Hk]99,a;"8p="f2aof6%ga[,b8]S?6N'@t"_&YK>r_s92A+A\!QcUdV):nLd$CAn#,:m1PB**0SBBKc(?SQ)0tlLSP)\>/f#%Xm
%6+KEY9,?r_:JJ"uLbN`hiq*:Y^Ur,FPX43.]2RVnf!4u/P-W.=>@Zof/Wi"kj1nUDe0Q00$DW@S<;S/K^?&b+SWc(Pm=HN>m)%0g
%SAst\"q0"XYoD2:5`FlTI@O%9kLfj(Y9$j1YZ8(?Ribmd=5F&3=r"n;fRqVtRUm2GMk&T'&k?YY@HCXhJ3:k1Fm+.[cVS]2;"8A1
%+R3$nScXmsgIMMV3%,SXNQjkmL<D,B-!*\I>0Gj]qhAdljXQOP*F$ZeX?oJO\;j1G5W#)-"0$+KGaso`QL<,e[o,!n'pZ3T%k-%C
%1iIMfSDsU9`S0c<)J\Ea;E6I#<#S?tjRq00dM9#uN,D/s)2!a%Bfr//jDlfJLcGPdE]]EcVHbK@>#\%P%Q9]UaVqg^-If6YoE?pP
%,Fr/??M+dWV*YnPR^#,dap%9T.tN!N>;8d\Ke1kAcRK/SQ6h^Y<iR\tCmdtj:mFHeVeo(.Ps+U<C:L@-&W(+]If*5;pt1J#fcHkU
%T/)D]*aCeW^`\$[M94O3,mCtI8_q)mqOV"aZ[+P:F'm=ODuB$4@0uUG(\CKPTd*fL"h13\<1NP2;%[LnGhM0](FB77#OYVfgXS5J
%,78.Aqm/do\(248qhl/6JT\)85XlSjA?OF^NY:$a<Xp^3\;Ue1KmY($A/.C>\1GUDi3LjX&%ePH\G=+lg0sEk/a%/S09f`>\Yus#
%fuV5&i^$O(g_u4gMm60q3I`hG%'_4!g8^=e\$PP0$rb-A=\)@OI_#rMU1j_'`n,\6nBFjVkZ9\F)Hh237qlBEmiGdG4q&a1NFadA
%*e=u.GF5N$^qR4bH<l%RR6"W=p%1kJU+;NNWY!&a:f#(JG?6elL6ke17+Nji@j>R!/>a",P%"^VTATNX3=L$UP69?T6MD'BC_!Dp
%8L"ng?qt;Mfb'^F^/UYK$`E8D_=3I]"ju@C76]eLa?4/:A<97de;BH!iRBBLb;jlA$Wfr0TL^9B%t5\GaU9uXh0q_[\Z]jQC$Bn&
%A3\iOEfb^ij^%]0<>Va&R=S:I%9+\lfkP>Fc^:d>!].Q\r3]A<4M0d[=f_55CAuir00l1:aH[PWW'ZJMb:\Xn;:=$u)*)QcSSe6+
%/!ndg:TE0'&e_'pB%GN:'Z.qF]fN&&!&&!KS5b*$&<[u]g'/(DMEapAgs!4`r5*Q.Qk<'=J#eQBkW.29MdnP%F"jY80(W6!>Th9a
%>=BJ9Cu-a;BdH^E)sA;"cqGX"bVbIN<!lFVhI-n]bhru[2hjUSM:8qZ2:86uAM7\Lqs#GT^4)/]94h!X76b-0B[jo!eHN":"gM)X
%G)t;imT,8U)K?BV\S(_Hb>Zo23B#=0GFk)44.<drRQZ/R5N@^DKY>Kdl[5p6W->0bEUOoiPHGan9Tn[$p&KHcGK+Ad5B_qNQ>ZFq
%,a4p"/@_8rcL"*9B"Fm<b^EU@K41E[`mjIc$Q_@&"#l(K;k(Q/n7=foQ@9g-d4R;OiU%CBAC-.S<_c;s`TUoY68J["\hdXsn5$Ho
%'DkduS(.\K#*gqPAlfe-*`0GraFI,N&)_-0$[:(@cRfQcIs9)NL!8Em]CV*kO*8Lhh/-Y$h,qSE(CcVeDsa]%$OiCOA_"*3@ph!j
%Y]*O^4"!BgTt=BS\p#euNt/QZ=UG1Z=<B\K2]ZMbAcmp1#.O[%*p[PgQ:T'5XZQpo8$d<s?nI=X;Z*HHPC+/rCeJ99WAj[L-60$`
%25n#U(GC:1oSGVL'u_@Ll\T5A%'``K;lXat:#N6lf>p%=7=R*U$\ON[ft"J&Xs=WMWKkWp1SE>ENE4dVNEaMj8q86`LbUk?4VkN^
%'8P]9"n,7D5+>0F3(6.9Yhjir[7Z3EZaaH0)l9,bSiL%'(M;\PU'sdJZImoHUmY8lG7:2'+EM`W;719mXbP$NGdYf`83n1TNgeE^
%WNg'/.`D3lfbl5o7U@Qs]-s55NHp*Jo`Eo&'gUg(ppj/LOZ"CGNdA?L0Z"3`1QBt[Q"e<DS'8^6GPD0BS(QP,!jbnl.W!WR(df07
%"4;.r,9\&&]h>^BUl/RQ2$H+$>hJrbWL:t$cmt0elkP\/;Y-U@-05Ol=$i)EZ0\_H6m.b,+aYc`6uAa$U:=LJ8o:P-X1MZV$^FCV
%)Gr:f!%n)A.mXpPCKlqDiIrhq<siqW3pUlFSfTu02:_qo-CM@Y@anr"@\k#UN7,idclnLk>f1/SCS`++Y'?<Yh:q)9+cW4h##CC2
%0tn-E\%pG[S/NfRgFfoS3>Ci'KbYGj$c1iSXaAVSJE4"6TaNd\&d\<8op[r,Nq[Ns[n%W1",cO3Zoq2fb2=BMd%e;-nj<\/M?Y\c
%l"R`,=rc1.9X^6A"#Z^WN(GGaG,3:-BNPEec4#QZ3QAY6NOb?l#&5ldIF)Q32:K%`C;7PS4+!*,j3fSD0pW_MkPB>bRX>QbI<d7>
%B_8SeOaUp<7LFY'jt&O=JhOg6>/t<D(GsGjTAho7jV2>hh+C'.io/n6E(UbZkZOn@(m_;4`aZe,Ctt\4Ofk%&j9XPA+OjCM!&Ze-
%d"&M_MQo+>/W'PVNO!5sj[*M+Fg(8!$])J$bu_+BR%1M"651mr)@=MaarY>'35&GR_J;$O?4#54oXg+><Z=oh-gTTcPp.Rlr_if<
%K-V>Q]/21];inL@\4/A/A^/lsT*gYeGS)Lr<a!-rimQY_<mn.1)a1g?2o6SZrmk,DJ#XB=hH;9]/<(c"r_c-4Q;pe-jK7',k!tfn
%L%?`O80378mk3N.:$OMb.'++WpTQ9c%uH$a\Q]kXEl=1:TjI4l!9:947c6b1/)N4?Rg_Ym/<"Ube8p`[QA)Ojl0+IkEmj.RXHhD@
%]F3$08B0\J[Q!O/aGP`1^QsC2O/>O%`ld;Xi4b/W.uX#'a=&<]VaH3-gRV72%X?Sb$-12kSf(r\LnQ]PK,1=AY'd5[Y^/]oWDi1\
%M4,L`_K#!3]:a+5gc_UV(es`r:G1\,:$T+W>6tq]nt"&E-B6(Qbd<Vr,iW382/+KPg3s(f,dj^)b1jKV%r,Tb^Q"LaWg:>U"IeCP
%#3)YeYZ-C\&#MjQfb]0/L!ciJs+6%JHU!/3a9RNc'4UW2lEq]i"Y55KY4CCLbT,+?+F;R.X/s5DDjIaf0,*/@D=p3ui3pI`f5?Gu
%e[$>.J`B^3L:>-#r*[R&\Q*LKl/`;eGd:Ba5j"27ACf]._C[#r>Is#W>,]2gl^0Y3M.bWm8p,_?^.PE8,7IM%'Wfd-<87"bh*2.e
%5*RFdHZ-='Z^"p^M)(5#hNS[[$^k%_Diikio-q;I'/dpbq/$CTWC*;1C\V`!>je+Kj_Zqi7K(,=2Fj2#V<`)j&2)Sqee/3PSg@sd
%lA=U:AMD:@duh[E"ho5Q^kuYV)[gG;phhj,#ok7^K<,,.A;pbUOaEL$NR$!(P3A/Kj:72T&L];rcd::[XgE9UCDk:?+t+C_mh*oG
%P8q?NXZEh)mt^G2KQDBk-1%3Tj^VX+85%(YokbQVVC^fFnF%<hPU/W2_+bB[C!?jB?/_<:Wks1P>Z5[lQj*82cpj,:)>5[V%p_CV
%.eB--7:n@d^>-g=]"X`=Xdg#k>)<rZ&4^dj2I24nljh3,)r&$>C=g>CLQW&'q2n.N$++9SAJ5ob`f25=o't!ZdT(JPK"oetr2-4R
%7GGt\@#]T=jI7k'>.j./RSG1G^p&oVH:bn/W%An;b`M&u/K59?d)3EU':bgKLShg6)f0``Rppr+[PG9pj_BnQH6W/5n6XUflkM?L
%@Zjit5[Aq7f2kpFHRI941L,VR#?'?!mp-dJXZbHMjTU`ch"f?OED=R#5?:5B!3%YY]^Tee,e!&%]>J4N>.2euHG;Qi0'k]$_K9Nl
%0JWrBe;?h7F028b;EsQBZr&?\3<>]NW:mo&:LR?$L.A_;9h$^'57,m+KhB(u[`E\^-+P_^6(Sih8M1$D50AJ"FbZK#+]Te-,Xaii
%U)Ud2*Yad)S__!#2!dQd0!I(.CQ3\UpKJG8mp>t$CJW@3k#Ue:!u/qtYejj^(Js'7NMQ?u*9ZYTBa1;%3X+sLJo1d9@7*CQ6-GWD
%QV?)A8K\+(NI)E?on_:tgV`1MQ@ug:.]qOdin?qWA[0C(_6h\<cuSccDW^`-l*T8M+A-N"bpQcp^9@8!E94uAR/*hg22mYA;7B?3
%(!F*@jZ`[qg,>+XT4<S8/=9<uhb^aB0b^-UIDITdGQJS]'&c5Z/^HgVG3*N#Y(@!k3s;7U35!%-:@^j3Wot4>,>QBcPZ,fQQ]0>t
%)VX2\2K+P2"X.SM&a^D*%f_W2ZA.^,_+:SB&.#@l7BD>N@b6liCjS9tWghUi88oIaK'(4)dYKsU1PqR:i`I5'YUWm="LJk4g/q-A
%*HG]2DG`MfWK7cZl=luZ:]YDYSkBVJY0=Ks7:!]Aom4JZ&<(_p@-L;F@5uWtKR#n*@ZN%5^:'@30=BLhpYt(HH#hFW+"-0eZ2"R,
%.0]CQ2Qfs=f&P>khH\IHFs4GU)ra9>aC>L[6ttEJ7.krmm"+FoO_hPe%%u`fCD#bFX4dGdXfP-);'Yj[gBH=-RVu@G:qJC#-nCH)
%)/!JoN(b_8R3p^,4dsuDUD?K[-CdFV6>#pNmGKUYqo)8"bu9i7`b1sDU;X[oQn^7"I#g]geEoqle01V=KK[^R_W:5`5:4#QQ:b3M
%=^R[R*AXb*pfF_E[q[[65@[Enl4A(B<qJs'@>h(bS8kIbCGlS%24^iWUfg[nFKb'9/4C<%S<ji?#-D>@S.'$LkCjSJ.^.VE[H@Kt
%^G*,)[j]gNhln`p;lmBCTTOB0E@5(!LU%m(GR[D*.?0Nd90&sR#<l;(RHZh$<hi@pj!rog#,IDun#QpKd[sg`I7*=Bn]Z=+m?<ak
%9okO@r]:iYikj-5Uh\p73b?WjG'`l$/R&7o[Ia2pTZV<@Ji+<R.FQ5Tj:gc"mNoTYAS*$^fX@?.$!Ibq.\q"&U3btabM!m&.upoV
%5%PB3O;ZH`$#sPH=@5l2=!:E,>=IH#l9Gn`0BAZFG.Q<bBSX"?+G+103d.B8V6On`=)rL-PW=J^he_(<o9Kg3Y$=W43qq7uAI>qW
%GACNGM8"&/JHGH0r9,ERS.8Ut_?>B+X3&<8P-4n%I95s(K.LS=(go^1;CU@k4*+Tjl5=>XJn1/_5\(@+`Gbn%S&66D6,Sph5qF>0
%(&lNZ+[.\.`;BiRnN<7glI89-ab3WQL9d/_GFT89XIm(`gJG6lo+tpP9`e&Bhtq(6,:/G7[HJmXVN[bg-Ji"`d]V>l^QSWkf:RQe
%rBG[Xs8CR,]`7Q7T5OWMh&CkBS+kgtI.I)O@^ruKk2G'5IX(nCc!UJJjgT/H*kqI8mADoCrj_8Y*</2$mu)[>r/]\Rs6H$/J,f5S
%pV6[cqfcD^J,>;aI/!MV^\dT"\)2&sqi=D-J,#)n^\[n)%tFN>*WH)*Du]J&HaJ1k?bZNgT>//:rV'ZJpZ[TToD.q60E1h-LZ9Jk
%4oT6sM>Eht^3l&\KM99%^\I''rh#7$q;96#^YY3EJ%GFts"iGX,oupOL"XKr]/5O2a./0F(Ur=-+@8I"1@CsK2Cg5\k^HEI`7)?!
%rS-."hr=TV"(%Gh^"<GbD?8rFAol]#\pJpibNHTdn\:)cO6aci6REiTWZoNn1O8'1T3?I);0i.67\l][TGcctnis[q=bu%<kB/SQ
%j1O\DiioIZ/amk*G(+H^eb(fGn`e<%J,fIk?bcWibpP/OIXZeH_o(rWq>O$tGFNUBk4<MP:]J$C!dhQT:G4!lG\eRRQ!\AYk__l[
%3,R6kB<dj8;S(-#=Nlf7@H5&8HZmD"^XiU2H9CG7CZH."#@"P$6VsNN?<-fdP3>(YfVhU(:V5MrhJ;HMEX_AC]_nNXZ'Tr(7duUk
%IfKDjLUUXHr;Z,s#IIN#Q8\Yihh:Eh)5jCE=1>;K^jn0iG]HW1,Y:`@6'0<E!@/#=$[cJ1K.N2H]SJ%7d3TD."9fP`)$ORPP*:Pf
%LARTKHgdsqkC#!gZuu6B<hE^!^!qC(SZ4^cG1D'8o/(7?W(DoEdG/..V`"\J^Z+ZnpOQETlu1gSL%ugbT_&T,8<mk:?fS*JQ7-`[
%*`Gn;rt"7iNaac$^0gLSpj13'^U=%NHfRr/"&Bl6b"Y@$Z2d\N.#5bP-G`V@W&^G?&],a>il"Zag3]">7)5I/lX_3_$/P=!+(uAI
%#c5UK;cC7N+o6anh$h50"r`(1&rAq\6sM5A)59//9#\e5$Nc5BIT#S)%I(hf&7DTF+GC'i8(5R(,gnGY."Vq]q,&8$$-Yl(KnIE"
%!/rXDV-Q.,2t<[]';Jj-Ko%O-'*F)pEEbiO@=mSZ_]Sr"7S16V>)3Yb)6c\C.APA1ri^KRQq.I>_BZ(f<.p]85eB*L1*pV4fdXb%
%Ro/,bLCaFP5gP#^SmVs^YGJ39Rj$7QRaV6$TX;)KK#3E</WqDI8fZnN_aIF@\V1YEB43OB[U?Ks3"$?2$e9g'cu9;*l_Q&H$K6:6
%p]tSL8ZHInfb2aG#^HeY:"9\+hraD;d'I0#93^h54W4&"]JEMB0.-W'dQPZl&h:<n@.?WU'8(rlO]YZ"-Ih6A*KI67KEXbD$Lpu,
%R/=r`LP[nj_F'Ka;d$UIYn8I)OY:1`aIX&8ig<7VjKRTbZqh&&03W\UUu8O+/dr<RM2A#S"WLUhb:RD>6i')h*4sFd):C5ZcMiFN
%.0(eqh)d1[)penp=OB5>qA3jDjhR)FjWW%mW>p<8AV)$qdq:[t0_?e%?h4(*L&sn1'FfofP?'-.LQ_$AJUJU/J63"s!MS'3)2(IX
%Rgk<JP!<Wl/I*T!%:n_#NJ3-SIYKt@"Ct8Xg7^up9c]O3P*%V(Y=kCuM=>OVA-*3"YAjWd6<Ao[+%#?":(3]c7+01Pb6"SJp`\]R
%LBIhe=_1&V_l3ku&j^efcXRO%d1^9&l6K(l[m2.0'V]&i:Pl)#"=$'EI[d906G"1hF)Xj/:Y.-1>r>Jg<,K8ZjXZRgR9IjGNG:um
%*R7_?Q&A&8(3:6,0mSQs8A3b%Z;!l"hA^FiRJ\\^Wsr#OSk&#r'+rl#Xs)EAVAL>9k\G4^5[E;ErKsAg\1E<,+=o'B&Lp@d9ekt4
%/9&?G]:7W+QuBco#VB0b.olp7#l&!Y\he08=b*%l%1aoW9cALfL@#*CJ8tAZKWU0(CK71s4[_l\M?+@;Ss,kl*YGjE(%h,RF%a#N
%dT[UC%IO_N`8)KRai1uL7ghc>f7Or62B73^T-C@G]`Qai,=<8Vor(uB@k($_@j61s=s"6qV&/IfI"E:V)Z^tFVi;tQP)>72&CeOZ
%,8B;+oYDL[=[d/f_nfa=a6/8?_d/E]M@c3<JKuHg=A;P_W;oKV`b%Ktk(.524q!)LU3k?&/Xbh'//WPiF"p+]Rj8uKce<pJVI!u4
%.:tQ:cRXTX$pr\\f+*_6<A7es<uQ3P$9nfhQ<]#$&Oir6Pf)Ftd-!eq%gK:kOOlU\DQr3tD9)fK*5pm:@r*;'i0tjF/\3-HLGd;$
%FVZ@/]FsOG3LgSIAe8>F_%2.ONQOWhh%(bB8D"T-h>hs`b5)+-2/n/WSH:c'0+?:2)Xp-<P"i96K_hk?`iUP+V]k)(_R9MUQ>@1F
%M1IBSVk"_Kgh"%!KS:dqJ6d>oP!'YnN&8p57l^OTq34`41IHcS`,*juE_L6!CIk0&BsoYLis%g)15=Qm2Qk_fL'(0RbU4rZ\/S#8
%`SD56jtSPZjD2h7Qu&7-.Y=#kS)T_W=kD;Ul,ng,BIZEWLW$[D=njPp-[$!$Ce]k8+pZl6F$8H!:YoqDjW:[\W==^Z>T>r2mp=oS
%;_+o^%OcEDoL[dP62qL;9l^ajH4qBfo8X4TSe37'=$Y)%^6/1c%_Ak!3qBuq3kB+4]7>'\Jmuu9c]Y`/%!=dgXn0Ld`6noS(0Dr]
%<3`LS3TTgS:%orq#QJOW$q&gT'"_g'4dt#E_^&[U]CV,_S7B2+:^A`Xl$ND+80OGl'7u=u4C`"1JsF^)E:Nub*I.b;3<^\Vl(^;e
%#\De1iqrn-5^893=ou%4`<ZZ3<s_k\EVpLTk%fU[QMAZ.&oBf=imSo=jS1_%,Uene.WoJOc2fA':nB=s7$EH2[*pH$J^8RTil/id
%n&A;/`1:M=8:<7`814$&OBPBYJQ_EB0_%aG]jC5,$f+%LbQc*?bFhJX(,#/el0UrVoNJk()nTi6<aWb,;)r&9&0086Pm)YO7l&n9
%IDS;3fiSadK0FC!%:24:LEULLLilC1()X&iPMCbLn-#!YFo&mSJtm@2_"K+:I@CEScsjT?Ua_'?i;?9:KgeS7r%,lD36!cY9f;Km
%2::DDKr,,8o2jB]9dg%aS#Em?-^mq#/V8!E'9(e20U&@q&SU7i9W'^-.`kn3)MNUA03KuCdM8;6ROXVnU02jj2OOraHAC)SRejip
%bd#*kKgLu?:eM-Ti6?ccB`[c<L5fH?;"-0'X.UgD>YJHBBb_=;'cMFtO)lo0c.nUKZQTZi/Pe!OY0.`:Tc[W49e$=9F$_FK@NCh8
%=4dVRYY!91RT8@PQmNL?-F+ae2:$S>)ogKcC8J<_e5]e_G.<BW'L,GtO<l37J0(&/CbC6qKGN1"$oB%4BpFNFesrTAVX-KR6-5@V
%.*fgHH+("-=]d:gI0rtg$6khFWmH`_=j1F0!rgl=/7BOC612RV`@M^6[AK&Z24PbO'To]>!MjGXY`X)j`:NiJPDj]IBm3)Cg1gAo
%U]?Z\$6LMAiapD34-qfKPAL=PB;W.C`\o/q!WF8hAJU+EPb]>sn6G&E^dJR(GsZ['P[n5]CU_=m@@J,kI)unNgEVcJ<-I@cgKAEk
%`8)ch/+?(3N\*U1\(P!n-(h>Wl$NZ7;gUaUcJhDnDA;&OgN.K%h.TER*t2B1/_Kt&U%r=n<c"DgdRCgMg+l/kF,3&*,e,&ld4AV`
%ntO1:DP:b'BmToF&PbZpal/%nK):+#^lrC<Zq`u1]W\mdfO5Q,<?\(@0e%[4)t6kWMSOq?:59#2,]sUV0rl)f5]N7P0Si`;9oBO<
%"PsX;4@@04C/X'49WAST6m3P.iM8#2%5:'?I"kksaODQq3"(Qe<>It5,g%VJk4"a2e1:mdadhD7G*$=&3^OKEfE#W9LM\5t"`=$J
%:*^`-g]EmcrP[N``)p6LX$J21\9G4maF,E'-KtRkF`\TuAFHeQS?s!5^Mmf#"odF6J#@NX@Bosn&)n[IQ\.;mNL5nXM9R:\a`<U7
%CqQ'Q`9RS`p>?&3[+=9tj4N18clDp4[PT\d8jO`SqA8>TmTAB)ZgkDo`$afSIV3Bjar\\1oZ?N;@8L&'jufs"$DEM/$b7Tn_p=W7
%DV@&R]VN`qUQ9/R#scHL+IsM_M:u0+W?l*'+;Qe6NZUS4CGQQKK3/,-jt,aY9$VC)^s[G\I#'s8-U)TDf2cp`Q&[P8;H=8`D>%#e
%[DZ=R>]JK?TU^2Z)PUJaM%rN@"L[noGn.6I9_fP>l^lJA%,CV-$2OFK_s=;@=g3;d?[[@^V2]-H16nVH[g7b'84J@oYg=Ae(f_[e
%)X2;hVLFXr@,8@;d_-QK+ZX!h6V4h*'8DZjnnNoBEX-B7P&_Tk$mk"MedNkdPh$6hjhac[Y0,_*)7msJXpa;_5C2+6<_dk`fN.Ec
%bq)rAr.GZc>lU87Y<W0Ck!23>&mGYG5gVDc$E9\8[1obeYq]0*#]1NYn.OH0:SB9OgI$\6co.'p[@qG!'uhK'8QCQXD+gq6,MM9]
%+\`SRAVEe)2V&5OU2@^]hBfF8=6LK<H`qBFl5W'?DA%^/$D=.h(_i-'4,?_CT>\!g64%@]*"#K;*JZ'8;<%(5@?n3p(56L$B/0eq
%PrQS,!)r0m7tXjAK-:\['gG19?sDpC8HX4:j!b9=M]ZME^bKuuV*W>T!LX-_dgjiKn<uIaUI=,+7b:c/5&lr[el4!#X,JjQQdXQ[
%3-T20p=]X]cK)SnU?g=>,M&#$Jc_ZP;/6j)^u;.H/]*R+Qq4nR!t<<%gQU$1[c.(_4dck@'Vj-XQDNjuEb?6n0m0qU5.F0,3ut5S
%ao^STf_/mco-@=&&FXc`A\epudI""h/IRb%p<rG[7Mn\1;+EqY4_EYcKp_Li`+qqqM+fMV=rUZM*MlF%/q[O=GXO4TL$/p\Vu3!>
%V\nANJbUcJ#LDEMj=K?DI$UCT(YV(5%L"!Y-))L`6lV;Z?[=lpQ1U/c)tp7n0r7mua5C%(eb(r'ct.52Bf8Pj'G9i1aZ[L?at[9j
%8K]pV$>57501oRYTQKk+e<3p(=\7U<K`*fSQ.,&m=41WfSWG[$>2Q7/$`6V%/T&U<mL#O38YupP=lAMp(+nSJ!I#<Gd$,))a?_F]
%/or>W_3#`#'e=mtYWp?B90KBmH5.a<-@>\pb9&J`*/XPINeK=WOCD?\#c>>EF$PFlg0@%?dhOTn*[fCe=Ic:C\qOQQ%Yq_WXKbM!
%"@4J-Ae%5fZZA';rBe/REWo,7CEkY]S<=:o8aDcI?WtmS*J8*iemf-;R:o:-V/=f@(%,t9km+"6psP7;D1!XDi$j&JNU28Xm+*?t
%@i.sTdZQRM*-*hRq@9IJN#5=Dh<Sb#A0na;MVh.@6jEq'cKg7Cnd"(A#TOD]D;aD7J@Gd3:ceasR:pn-TTeD]!Ylan#E$ZY$)jIA
%@&5,R5c'S>#bdP",iG\ZMNkb,)%,WNff)0bf%0DIB\R+Y%jB]ZYfF'q:rJ[S3Su-)B5DVtXDepu:Mk+hLb-Cs/INT3C?Z:5%I2*4
%J8T2!K45K/d<i7Q3YPU1^7/$"1^o.)/s>kMPB^a0k&IK&d'U\Ol8GHAQ/!`>0sQ0$#lnKQ12%&`mfY,]dZsm*A9AFujB45GO'X5'
%6BfsHX!iuV64Nde@TkA"`L6eEU>#mG:UWB[&-SMtKT;`rS"hEb=TgM6ggE[<jMX\YaQdCi$;W04'2_^/ZS48,DOA4YE@oYtZ\jr$
%RT(h-WY&nU>lM1N?oOPg>tVE1!XbI!_;JH+m"5^56JGXT_""?armk$H4V+o;7U0l+)Hn/TJ.CW=CafUE3*_2HC>.\VrUYi,'McY1
%M+P'3?mU=Z(h_!H4<ak6bp?6Z"M348dCj4Na"W>Sm<9/+Ltg7_>3Ii&j*'P&/'\\D&KKHoFAlT2#^#<M`+9dS53"7Y*BPgL+O#F:
%q;AX-obbngE\+0Ln;Y<]duIN>Gr*oF5RsL23EYer<j%0`7J8#QWsIn`TpNjA,=2Z`V8_dA69I9AJ3GPEH>R,1<N^Lqqml>g!cA"Y
%:Gf%H,_3/>:KBid@XnPTos<6?#<\i?ou`B5U1:kq,c2pT,RSr=&m\M=7tjA!*:%rkoW5)LPUM@"m+29V=1a;$OB)moOpPg'Vab/e
%6Gti@&B.1r)qk!3&eb"hg6;\Bp_'c+DGO[;\%VQ)QB&,mP/YV#`Qa4m9iONaV+ED`ai,KUZ8ELYX5e1OaeTnHmj=TUqDoetLlP`)
%Ur%-RHE4S#WM)/ADB.**!J'!"MhbaULCKWelS-O6)L[+VFVOnQ_W5jI'C39'V"7j""uL"_NA`hc%Z\b!=U7X^8`>"r75JG)EPJ09
%#O.N3H7DKkl%3RFOmADIBIdBcEC_]&e>ECn#rW?Mq\$\0Zdf[B@V+4!2n@tgm6KWZ2e?6W<'q>haOo2bb$V[P9sTia:H-f64\JU5
%`gfZBJ8PX*r'>><B7pm2GX8[Ke(\"I=9)%"K=%bF!2`kII*3^a.9m]!OIR\GR9:ca`[Qp=QEms%A3J;K@t:a+iC^M''0008O!`8m
%nS4k\.\Du6H#)5>r]kjTYV0Un"@,rj&u]S",RRV&YpVDO<3PamE[u'#BNN:Q(qa>pkV,AAcHS=09Mu920.[4G.1:bA'D4m<=9?KS
%Ba5YNCt`kHTIZih!q#V)A1@(7MZ,X"o#fCd@#>_l=@M7`@,#(6*%;=)qB6;I)Bcb]:0&Vj\mXg$1Dkm5HAROC4ZA,pKbGtr\=F+j
%i-<H)dY*EF'9o2n`$TgHL#E6='*fQS9Nn6F^M-aWk)RX+8Z$rj1Ts&6mok9PnHkV:Dd%7q&Bc7pO*Dra!+T##Q_o0E_$6:jfUT_'
%<2:^a/eL/O3oMVA$g'Dq'b80;L(ndT#HP']==d-]kYWiRcrXEGK+5DBS:upLVIS#t882)I^ges"0iP#SZ7o%0@c(-'A1//4e"2.g
%4"PZOnbrl<GKW_(K":AZd[(%*BL9a7U?Mn3+!Qup+U^(W&3JiGYDB2)JW7d4Tt)WYDG96QI/5MS`f.4c,F96@gP`tVIAs;[=Y^)D
%Dj1NE6h1C_L(a2P_d018W"URr$/O2&gp*kjY.*m.[8+n.00j\AE*MoA@>.f31bo+IbV#,jpn#FKLd[<V:.RK##2e"1G."a`D%]a/
%:g_?+"-9h#`B,r$-Pq!2W`+!%F&Z\3lD>'>UrcA+4RfUH'JT_mKi92-H)ruM!Yk*bC%1]?@!tl6A(3QNMZd#tlOg=r:\$k2&p(*G
%H58$Z4%/okAfU^Q[K8/#r+%U(gb\V37gEY1O&b-O)C""'>s2!]3e8lu"j<)C$"m,.CW9PrX(W`])3bY4"]\!LKV0m4hTlR"5Y;.&
%?8%T^PPj)\^hqRn87^h$aC,4;beds^[r!H-M0*u)CCo]`?mS/J7346c6a'uB"\jQI:n:eKb"dg/_W<"Z!(%"5kpDKGedu==<@,W3
%.U`[#94f=JoieF/,pgA$A/Y_AJM]BC[LEcOXG`9C%D@eME+7UU1&sZe:DC;F)%Ird'>dI'.\[9TjC.s:q!8OcBaJCX&Fi45TFtg\
%>$r$9h6Su>#S'uX!oXBm/TWTtcGAGW6p3;oo7W<A/^s5p!HBk-EpkuHJ@Cbg9d4h$_Ws7/+J;.i4ApAgR.u\pYFCAn`cS";D'.cI
%G1pVc/-;-jM-!'JU.mAB!hAANY%mQK!$F')ITH>GJQ$X?hUIf][nml>Z]VC&OD^AKG4Q-+ZZ$Q3@tAaNpPa^FM1BK(Pd<_H:]S)3
%4drH@VS`lMk0kTplqi;'/VYd2/f0s*Vo;42A+k"b+?Yl2oUnk<GOc;65RN>s4\s";![$fS1(/f3p(ZpU<fp)TJ7L5Xh*hD'W'_`!
%])j@.4Q[1i$MZ;^Ql30/$^Up]>GlrEq9ViSep%u&!R`K]dBQ&%76,N2_[3hS0r:UW=uLRh>8$CuVQ=\\9KYtk_6^[fHgH8;A0MNc
%i>W+TmV=j7PP*lSe/_-(+cs?snQP-6P\r_j#V$'bA/@lu+b9c$B(?YO6]ZeR%VifcR%e&o(0MJ0FMj=_2hjthNq?dO:LYLb,Q.l/
%.j]s]*3)Q4b;cFT;8\@,kkL+;I(n=IQ5AI6:O&[D"VM,U160a@4J'Xsjj,j&oJp-#^DYd>.IX`A0P7^.UfAWLC`mX[iuXK#h*Cp]
%/`96o"@>`Acn'a^PcKZWa9>]LT`eOK4suEN`l+Gf'1i62(/?(YNUV<*-5.)tS4+j4+REB;4lV_PkXE?N&3p]8#a=\2Doq6*5_2*K
%U*Y_2><6J`KuT"k_IX^b@2dS\0UUCKjXEN\=&g*&!)I\?TloS@/3IWiR%0PB80!@O(`50:'F`$)(nkY82DJcf)866&qSX*j`Z:uj
%ZQjMKRgIjp9K,ImBKWS3A$`Tm-%$.nMLsb+4"Z@Y2:B;S'%"Q4ZU.[V5Z4/7NU1gM,T\`i-rWd-^8FoYd?6#cORQ/dh$?AQTh@b0
%/ral*d52NWUAB+Z)[!2hC6<\nVr2:%q,%mWd&LV>$IkP4DtYKY<H,WJ0k4<S-cBl!/Is`ClHQ&>H"SK)DS.P/rAY)66C)q%_FI$1
%.L91>pj'tES:\hM;Ti,m-)uua8lV9d%DN1\A!uI&_U?9l10$So7`KIV&7lh=91VKg,>:<5Y#0&*&HV-9(+(CUlCh3U_g?.],W[j5
%<BpqG,*aMi0a+\'RN_+,M%u=P5"),:MN)F8Lf^R#H;4>j%@aEI<D(K=L?%B1k]gI:DHuSDD78?%mG#'eRbbVj`ssi4?fq5Co1A?X
%)Q"3kD:>B`9%Ra/&a`glQZjR@7#ZcFN-_2@i\ViQ.H`nE-Dhgj.tNJEX/8Vj84Z-WF48*Y*\fec(lR<i2$6$f(*7(N@?ub%+e7'B
%R5[dKe/Ya=@^6OR(Pfsf+pF[AJ`DqPKa1g3/?8s(5;]0LisTnl+f^-E0k1A<_p6H(M<scR1`Q#N%4[tNl)e12U*M!^L#W7]N^MQs
%GS:`V<?t$Q>(j1/RW]C4p?Ag8[uGV=KIbae3!58i'7P0;KslASn1;kP,BJC]"Q0CoV&_\A_@UBkgC;MWN:-B.\1_=rU:gOn+F*-6
%d$.&*@43^&b+<>:]HfP$CQbS(_g/Hl6AZ(7/g"qN!FY#Fp:ujP`TQ_1Ot"H4J:^S\1LR@"p(;F8Ncr<JAas>^TZtO?!UtZgW1FO@
%$4\.8m?!!`7J)(<g5cKGOUu=Gn^`:,Lei8#mG*iM3,Rp<J?J@gdfrD%a_uul_IPqXKbb\&I!$Q:,5gGH[d^P(e4e5e$W"GBdLL/r
%9[TT\j?f5m1)Z5%-[.VO!7@HPPpm<h/D/2e'1EPD!K#=O2PaHJ(heL`cCuaKLC6ad!!Pf`?'@Ui&.[QmVccj$$!`7"Ytq/L7]1uc
%Y:2UNJ0/eCMW5N#L]\)UON=[-cT;tf%Bf'E@dHap99^>8#002r:insEp;d@'ZYp8r<`<_,=\KsrROVR*&kuUh@YniC&/l_Uh#L#Q
%?\SVO)_5>=)]/g;mg&']7BukD*XbIB%YqSe#[o-HIV:(O,%>MX*4)f*q)6kZ(7I!(T]2[N$pEa=:E9Y8b8c0G3K!jg-Skh<+\NSb
%M'5>`0pOZnB0DjUdIMK8=.ZceLB3BZ%gh[bVZi2U=E$Y/"S3old]O/popWkU"fu+m(g!b++JdXM7"i=@I"/f:@-tE)g3.JsM!(HE
%S_3\aH6O&/;9]m;CLPplADikX6G3Sc_($ZKTL5C$h8<M,54>c7,`(%a?qtB^-'f2fk=h#'50Ip*],['&M#'<[O'2QLb_bu.<<i:&
%V/B9`O*7RcJ;QBm%Wr4F[):Nqk_A;l('@#/eeT#VRN?L9M80LOhdqCGP\:+k#)@d=*t&%Z+Yj_hS[=;p/HS1H[Nn6(5gLX>17))G
%?,oJ/bebbQCPd>P0bd?p3&j:]HRiXSg'e`nQ[B@US)Ji4J?5O9@A'>*MFiL*@/704AH8#lkb->I>sO)AQ"Y>J@A+uI!6uSbdc:`l
%?!%)%]U85Qi'b#/8noYUhtQ#*JP)0JClpobs1?)<Q.opN=4=7Zm@-N*I89,j1R@+ts(^8d<M`1<m9=ZJ2JU@njiUEeWrI:tp9!j4
%Z;)VX[Ro5n9cFd"(H.'V:bB:PX/6?UCGd%HCsQ9Z&hReqKGJ*mHr5BS/EAp0oB.V]lHiH,AJTO)7,,/P$5BMmU.rh.9sB/",p,\K
%,D4]e:qB)rVD%F'KQ6rtNB0HSHB],W,cX;$kc[%?PQ=uP;4$J[M=](JRdn`4&=!q1$M=andH<<\[)fUlIW&#>HIC:?ha"6W'E-7-
%OqnbN/Cc/\d0g-%W3?'leLL;HWP;eZrNBT!?,,IDrqA)@Y(-;g?g_5"o#p^]IsLO7?iO$mqK&?^J,"_(p%rFiIcqSo=2AA-MA?&#
%?M/:-RWYV7J,CU!og$pY/Qt%\o@P_dY30T/mFnC:eO%$dWu`nNWqW08frmR5$bXZ"fQ6iOTq,ut!q1H2Eq\6$-4K?Bj6<39>u"GX
%n^Ai"h7if>5PqK&WgGqYg<9j*Ref8GX&;COoc?>=qWP)s7+V_%(d*)`U]GCur:uiO_+G_<:7XF$Vt/k4ql<VKC3:U]AUNB]ci!^E
%MEY+FG:&?oH0#ie<U0DV4\(JPdcSN@od+-.'s?#&fVnd$IbkS7&-!dOo5otP"5iOq`;*QnohYT5rprCCQG!KEDe/mLn+nop1/@dC
%]fJ*^_n5mT<pG+Js-<@tTrK\+Ff=d.SF?=!K+IpmpuB]>lEtNYT_SJ2hY@[Hfd+;Hi0.]I'e8+FH,Hp`jE]oQr`"gNhk)ZrUT45H
%W7IVjV8@N7q@C@;M(a5*H,4lYrdO(ml?0,?r0KP7rTE)9UmKnU'ef!rM>cZo2/?96nhf&!nR$d'q0g"\Z<ShOG)&9c<F;q8-L]X^
%fDkQj5Q4[6/!VS!J*sd$iMeST)V-P:BO:H5dr0a1@r(dN]1gai'gaM<qd6GXUfj6$"nI!!hsUNn^](`E3G#8AXBMq!n$KH7.Q;4r
%[UIk%f#qG!l-W#is0j*AWcHX*<@_q+]#((41sY@=jc)l.jmg^455OVe:YkW>.=,!Rg,7%,M0Zt:ds9<prB&NMX+NP(r!P.nq9tCM
%<B96gM=a:fG8relb30mhT$R>iDkA[[rY>1!bb%,QAZKHi<@V"Uh5GTl(/5n#U0-Q=p2oPf[B"uTn?UpjV=Sq3b%a+dn_,Ws0,g<Y
%o@Zfu(+e(1H'@N%L*uT&Sga+Y]]t%V5<[S:eAke.q<"a>e,-eDWJ<TB^1hc2(9clT@"$se.^a&XG;GSfb-4\9SiCfXlSZ#[^RAT_
%pZGW7kl+W7VPWidYs18aCY,TIAZAaPPomU.^kM)Uc[<'66G"qhmmUIR)`Fp1omCW_$^H.RIZ9]bRa90j^&%VA\[g<fDI;&2qSVR4
%QYc]q\5BpXjNe*XTNLT_L)'<M@ET0cHgG?^DXPLBb==E^s"'5\kV787KRn%Us*]@Q<MXr!edY:6d=S>sKb<WGgkss2jj7XMZdMoM
%,AZ5e3R`_k/s2cM4]Jk8ViHag4FaOkqTI?s`Of01XA^8/kHN4Pg$d0&g*5to[*,W0[9q6AD!7mZgO(o*<UQ^^*tKchrpqXG-G29e
%qOjqf(m5D0lnDuBi&37LGsgu`4"e=\cL$"o9DVpief-SiiIWLse]H,;.pTjXU`&2RQcSLeB<i?A^Cn6F`pk]/Aj)RUo?2'4H#N5"
%@lm]7cpQ87\)k\TQcp=L3Nq=5$s7f9"uP;QO5<Ld+;Lp.J&\5%Z\CBao,Hm/lO2C05@4<1e@&C!pXY_9ktKSaDP#QEX[UsR-r?b`
%q"Z!_R+S0;JNP"RhuBAJj5mFbeo'=9dE%'1:GE3#=Rc![W*5Mu//q\DmFN.Y&"ia8#BPX5O_6>CSHrQ@HS3s`J,eYbIFE7hX5_lL
%TF#P/rG#B6[!DZ(L')$?q.O29XZVZbI\g7P-/Mh2o@U$p)eO<8e8([l1M=`=;73PK?8X^E0SO97T"8IcdQ)Lg>lSo<DJ5=%]CbEq
%Qd6cKI)6g??<1sbMSiMjG?rl"DO]^Wn^M>;VCYlTI.;m8Q1MBJIe.pBc78A8dVgbn\p8c)MD=?Od'KieD`\p2N8(6h]Mg-HgLIF1
%Sb0b`[EI_C]#.[eIJ<bsp912R(@R7&lHOBs4s!l\\M06i]](&5lfPHP^!+E50=N&'iVH:75FU7(-'akQPPt46#IR%nZKH*i#@mGV
%p4[FM8QKWX=(bpt^%)'Lf#]CSNEGc5NpZ-J%")>$#ljASQL+@,4f26GM+//m3!!g7eRKP2^D[&^jT[A&#]iK'NMF[C`p<;2otKmC
%Z$65Ne^Lj3<iKff^HWK]8iPs+%p8OraRJc:2.ITiU[4CL1Uis1C?=;5\UHqohY#St?G6*SiEaVrB`mrKde64].eK7F#"RKq4+.(`
%gHU)a@6_G8QfV-+k+:HbZX1;eI@':[G37G;`P"mD`7Vj?fDX#u:]J'#n#@U6+1W_%lK%)1D3W<@<:d)Y:>Nj4>s5R-[r-"Ed<OI#
%KBFnYLdnm4_>eT1(?pn+q3F2e?L5+6O'"8[Y8gY)XH&goMt[),Ru@'AB\qArqb:pVNI'*_;qJ1Eg,u@CQIBd#G"D?jqbf.Q1U3Nf
%3pDQ4f>VA_Zi/]4ncYu8aL+OAe%9Y(*F1n+Q0L@_p\Nh6$b(&HffYt><it9Dbs`*2EqqJnAm`4!Hc_j$Y[WAgNMoIK:Uci?`\Cbc
%&$2>K7a=H!qCaoA%D3dk9s1Jdq3M?dEaSBCNu,!#ZXTS$n>@1b?2M>1@^jX#TA/KGfnB5Ta]IT\^@9t4krIk)e!1ueo)#B2(\c-f
%W:Ko[_bWFu:D7\1;Z*pl%:0KCa1"+RgOAi3I^/!N<)e2@ZbtDF]5hgq4Leg+^\ZT,ap_R(oEKE*O7b-sOPrBmfH:(^Kj)`*AQ@/>
%:rUMa'tsLqWQeA2$a]g%`\b\8bq:*o\p.>CGZi_/f,T_*FmJ\^l-7^opon,2\<SbVMc=V_h7c`h[HJ<B208@\=Qsl[I^>iJQjBcO
%dl3o1PoI?<*oHe@W$V_^$OUq9]+orKW<R^KEjZ7'I",,"nf(lGB/_<;qF?s&d;0?H>sGW,KWmVPFu.S'Q$_oJY)c(0Ng><<_q%'l
%7NZm<r%=SBf?6#iepfQ9D,(%8Z>%p>IBmW;)rp2&j$"7]qY&UEe!n/b1KmKOiqSMO]5k*Ig@aFO\cl$ohu6;O4Ls((Dj]CMD>?DL
%[9BqOqJ)-p`LQd1#7c0_X`bcRFF8#I3U#E<pFOC:62P?OOXgrK8\Q_Lg52s#FY=bPPZAj>7`/c]p_GtF5@:`kkF?/G@S>l?26mIH
%*7h`I.FkjAL9;.b?eN3$B/)q*d=)"S1W`+FIQt>c@f*0bL@S;h)ckW=1p]>N[8"t2SK!j@kM$6b[-B_fbhHE02e:@CDn`jL4FI/2
%bPI+\oVnpsT,kG+p9&(H=ZEWOeK,*AT;R?`HTrBKs!c+"AadJ64)3Hcf;RGP`:u%h>*W#]ek./NLMhM,d.70LEu+((GLNgtBeR*.
%n)M6L;mjVnaWofbl(*b/cmn?moboa$DsO]T?[SfhRmY1k*7:mK1,5Bh\7jc2Gh7fRpoYuZ%pH:!eFhn7XrL\1Ug0ofhbSL1ah;k6
%j,DRAMM:A<+#.AP\(WS&hJ(VhoYe$5>A1X"RZk1M(%n;FV2@)Lp<i:aad69r]Q-Q2e?c8$o71JsbMTH><``B)%opmm5&oq>B!G(M
%,F(:u)*_P3a%E?D?Q$.1)P>FOl;rj@MDQ3aCsSM;a1leB`LtYY<9<)>E"7l1S#<a/gJr?o<7*UB:RXD?A*''[ghtdASVa+geQ%T2
%\C3qQYN9*dp7pK`3QZ"sC>%IMnX!NE\?'&EX*LDfI-r#Z#co"G:J=,no0JS<O6[P<,!B0kqsEo`#;k&0cE%3,?FbLKlc!./RaGrq
%nupBYVSt(CIaC5mU;uS\=a,ftEV&7gR;Kp!0%-EM`#06c2i_*/DUr%\N#U?AZJ%8q>PR$>>N^4TCS_n.G-cCYJ+J<lZ:fQ%CCN3^
%*>a/VLVs_8k'%DLiZm!bO.AIK@+2VOp1T_]@H0lPW\5==m.'?7f5LVlD5t=O7s!4j<VnGJ2)G")p*mDf03-&1OM0]6f1UGJ#:lB/
%Elu=O9bU#.?F)p2-4XoBXb`ue2OqL(qqTbZYJtI$>)Z[6i3I[\\LljA;V@?Xi<irgk(B9#Q!\4rp;CtLZ4bp&a6N;d4EIUZ]p^s>
%^:=ALNDE[E<i`2=NiQ2C]6Og%6CTPeFC!I5EHec]K9h/1Npb`=M!'mMhe0r\3CDFYWAT,,bQL.HSWMVQq!HtpF&B+Wh9\L%lhmp[
%3ar3e/I%.Tf(HH3cEVcspK)`'VjmIYG3r]g`6s$^gS@mapSD19])K)7@ct3rXs$^1hCFXaF^ZT5jZF9bkVmlc]CJOD8W?Tj[VT/,
%Dd_&GCH(NAq(q@<QZgVu/buPKRq9Y$N.:)]GFRUP'=XL,Zs+om(fLl^/_[5^d'oGi%k!ra2gaS9UBe8X[U@\1pQf_\Hr1UVlF./,
%dbj`^EVZaV7op3R#*nTIaT8!$Y9-n)"D?VI.sDgiUh?I`8Q`O>TC+pfjmorlhsT=,s2[3hE,H_$e%]SUcB=q]EXbE$porp3Yg;0K
%NZ7]7G>!9j<Jo;n2Io@f\r!R%D6C==Jq8FClK-2jeN@q^chnc2s8-'cH@qP)d+4MPBD6d/VY`GJGFk*2?/.6F'q/'0o=i+tFKV%a
%BpKjJr':)s&"C;XF#me1IAU\Gb-a;@R1Tm?rJmB1%rV:(WrqNaq0r*R&ruF9X6.&XH:WgKnZDoCb-8hI_K*"prkPVeW`=P^?*D)>
%V_2/drVMM^@s?_BG2_eAX'4619k.mb2i8rr_6%(%="F,N),(id>s5T.p&#\k-dS1[nRl3Hhgb9RCROWif9qWei:nq]I`.J-K:9Eo
%C414cA$qsI0-&`]C]!grh]+V%lMQo(__(hEl6XIEPBHasSipXMUU]?Wr4pN`MlrON/tP:Wnaa(,\+@=(];"a?VOuiga1o)kg06EV
%d9lQ?b8FOTXOb'ld=.nmjI.t(rD,VIhCX0t=1\DZhd*sC*r3LP*r_s21eoOmIJ:'jb@boLVSDDqVGfCE]Qs66npB1V]7"jtBR%j-
%[se/=R2oeqLmP\+rqbX1ZcN/hrV2]3IE$]Fot0\eYFk>sX;b1[[e`O`iV/P=CFAjoqWcg6(X=,U0X[=/m!H&6Zn5q]f>I0-h7Rk/
%_UY-bYFjT00t'jPS`]COE;.D&b]WgLQAO/aG89GMo\7,i08s3"[nWiq^T1?6:Cj=@$N<*<V;8KDlL0%1i:96ZS`>1[FnOK8g%rPS
%.g(77GMP6aWk[t(.,"'Q"$]j+hEJVeXEKm3Vb-c7Y.g$FEUWgAmGQXAIW*iaeE=Zn=Zrj\HIihTVJ\Tr=!#QU\p\J:]J`s^W&3kI
%_`q5caLun5je)t7gtQ\nT(>0J`GV7BCA+-3s7K@BKQTe6[Ye?SY^AiEA^He1\T$`"^Z#;1]5F.k1qQBaH(Ip<rhpRhr`ib!f'+35
%#LubN;J+\J?Q?V/EV!,3lR0.n*h!hB_r"?ThqrbXB6i14$O>8/l1;KchXtEM+\T9B*&"pLiUH!K,?gD_c0QV`LG%8+o[7*WkMO""
%k1^=Q8$l%,JI4=S\mXQl$\-^`Gl<CB4$T2jYY!6<;mAlahQtf$47h&CB@edVh6V"HQqk&IUscDtjZ6*5FQ_&0J!I%i\p")*hCk0g
%lIEC4jp29kg$j]&mQ5^YVnVQlND!momp?%1`*U\\jloWi^0^9-T5=Mpo];_9[[YZ6GlLjG(Ja2MV"C3sc36j"ml+b0QMi2V?i;^_
%]7';)V.do_D=,bS_n'HF]GmTV:t\m%Aph7"c_6Qc03u8?j6!KA%>3EEY$\karlg5:qmNV23dXhuQBdBjKgaCnB?S!Yete!M^>/8'
%GDD5!4)sQP&!sG(^N&Sjm>PtsIJ_TTCR:g*I"1(D*LkW^=>FZ&c^%RhjZ?A6;!B<4#EP@fki:d*eu\ah9=1IIGFh!H-N,uRqW*L.
%L\C,jZu4DAMs!bR3O&B"<F3DKY`aSkQDsjQkMH.B%37WY_X,7b<ioZ:reiGEglT1_r:5d=CHl%3ACe7&KDTh+=gMS:(\?*tl0f";
%QRYqBI-$g!]D!C&CrFClUGH/M7ZJ<D\6kR<2(Fn@q8-J^`1tZe,tjRT=2%"uX*j_`AR?nFrrR`sJ$Ts0PJ5JB#t0tDCi!5aKoOMk
%+Dg/`EOIX6[Wo?e5j==/kPoWQ!0O`Fl5L#VQ%V&Y#cE)/hILR8V-7tSe@65`kfVtLX]i)If:l!G6uogr3DJ7@oA)'W!]3H\)ImA&
%Ie_4T2hE-LM$tiY8=ibIM!>*DM!Z?I4>>h]i&f)_!(.7F)$9C8Ot]4-HshVjk('D_4\t@+GTLU/#[.K\h")LbfL;eFSWlE2qB9hs
%]h>4'I?d*\pS:$0Zo;%$/-.Xa[L'qgT2`io+Nn0,=2BfW6];"7^k0mq;*a\Q_d>T*SOJ$SaRLLTALL:VgC\fu&E_:iAj@Rd83!?L
%0^"@W:'OT"Uocth"t#RU;=k$M77?SeY_8MsWW5<W&GVrpKg74=+Z3]=9NGk\+UOcpX@VOuD+*;"?4gPm8jo:E#SVQ>V6nk&T$Li^
%%O;/[i<A-0j/j&Z5V_pVjP'sq+s->/W,-nANn4X]Lc%Pocj5LG?JoLhJ28<g&H2r;0?4kkV(V8aUI74`[NH6DM8Hkq=lMjl7M(<!
%QD>Q*$3FaaL_;j[C&eGr'V:?]1Poeb$Ob*(!OJPo@M,j?0`@`-SbIqZbq_;3kT<*@$p4(rOl43d/Rh+'![M4_,_%&Ch09]J_"j^T
%P>kJe8]f..@ZtQ7/='q1E!k(&Gckm.AVlO#JS,%*ODKQr'J_`c:fNgJCdd=n"F_'5Ad*o,&+u*[D@5AU3F#Z*AWD/2TQT8IC,H9I
%f`JQcJ3D=8,p<f@[faZF?qEg0MtK%L7=<#&7JcKR-NCk+@QLBI'n8!6Gt?Ykn/)d]!/HOZ/J/=J8GHbi*"l-NKfGQH!@gOY'4'0@
%LaT5@!r/6Y9JhVpV6VLH&9\GY-_DK)RB%A'@ouh>LhQpbhJqfQ(6cc0<//_'-s7``U*'sq/3&nck?^sVM9nd'AEJP#%6$#XJDcL+
%'K%cX>+$e[C]Yd]'<FkNpK6183[9JdR=^@(e((@M7*e6.(/Q55D5,"TEB9(CZ&->cKore!GF;O(((-_>-MeiP;W4Sfkj9[\"<:sq
%-#uZ<4L8uu10BJKMFCc"9[&dC^]bS\08N]G[:tYQ9Pr9e"_DQ*jT8P[(C&>+a^>.3)KFQ5'a7.[R)FnTPsoO<W"OqL#O1SS!S#W"
%AY@@Hg:_P"dGG*qa<Asi7HG/.0`$/67Uo`*YbDFkA7:6];bT8,3XhZ$@Y-N^f+QUl+IX;nW<mO,F^:<RJK)j!FDobrDJX^W7lhAn
%R?3X@E4.bTWo/-GhupS'gQb.3B?WA*QAKH.<lQsPkc[=:;qM)..3OKd',Zf^/$qVgP;<X]^,Uo`P\>64*DN;0JLJ>KPX[P^D:)(n
%G_q+'5k]q+KXQs>@m>r5-f9XT4-r_A\9,4tcliiBoE;/&H3IQK5\MY4S@icnFM&Lks/nIE:,K``%FF26l`]aLM0(03h6))7TmQR+
%aXHM=pUXogrd(!Eh\<[PFD,fXJ`/K_%=J-2Su=G[C6-"PAhlP)mep!?mXCXKeTba+Uk\X9`/D=l://UmmrC9*5HF7dL$TWE2g&fa
%]AKJmbsi5HG5&W@X6uXPj\ik><s0@GFh5'Q;NKrXP<mf=e=Y;23RRSGnh-^pJ'akGV:r=-Rn>hlQVRRJL6F%C#"#Pcb:>+LYJ32p
%]q\1M^it$7meDqm[<Qbj78#m3^/QW/TW73*?tp9PeN*uOhFijok8hiLYaC10/(:ne5jfA$d&)8`<@M*Cj]6*2PTfh<bI)c)666Y^
%FVNK,qNth9%4rq+2!SX2aW/902L8<q]COu?m9A1pro#eR=$I"`_n3MRQ:%h(qQh!Io+TLrXYPVf]f(*`K+oi[3LZGL\#9/'6CUH4
%?IJ&.GO!YL/QQ6(c2FN+r5ij11'@,;J[SLS1nh\Agi+JsG@,:]A+_`oR(MQs5%F#MoOl@nYN=p7n"Y?4f"#XPfrk/+V8K9"<*jf-
%2tu(9e8M`!oZ[p]f4<a<=cMY66/Uhe*ZUi%C\5oN3pBGiS$dER-i,oOlcn5FUXa;Mk=c[7]ALPu-o$,BkHbH0;.[lFgri>:R^'`*
%cPF!A59>d(%^]BMrJOOLnaEptkMG(FSq$";k3L@359;HhH_SBaD>QNbJ:Dds))^kZqP!V<8'Yre"YQ_X]a-7T\`*GAdkKdTk,N4-
%5CA"K;gulu[r1Ts$@b7ANii<]@IS1d5B1MY)ji>B@d]6#pjLkFIO-ps]6Hgh[F"j^+r&2G5C.cOBCYFoCZ2>g&q:FNRek#.0kikM
%q(KZa4RB]'Hh"]Wgm=M"HZTDg=o#rWEcZ_4.%Kq<Jq*`%b^9Ndh`*A(ri#iGpgl*2Jae@'Rr:d")[OR3PZ)u6?T7I^m\Pu=@9$n4
%&`L7qZ;$QCpcr`b[Ip869@kW4%hpK>7eiqB\[c)/Uf+n8,@54W2u&b;Th`<,?di`;8p:%D[/g,,I75tD%So^)=A.$)D[*%9m5EhF
%^&:qi\EhZtDt;[p2/WF*pY$(c*Vs._A#YM_/"5b62`LKT+rJX7a*t-.h=PH[p<iO,l=,EG.YuRJP?pij59.@P0\fZPnB_C3JDYeU
%!2Y&/9"JGSpIS@iF>!=aQVd,eHVPWu?,#$C\"eLOon,&W#HiO42Uu9]Q/#=0@9TZgHHpJ!lSa$$<&>tEhk%d,STqVae3turh^^l[
%MeR80&ifN[[q:T$PH+-/WPelt2Kq`hZ9C9tH8Y>VUA`u?hND2BA(80=2,^R.?Vf2Kke(Tg/MhJBY$',,CQ=fIJZDXdm-MG>V7Q")
%[se"u%W^?3q,2Tn?E;]ML]99"0Xj9eb11iOI+6,^m"*nd://.QN_^X`+\$=hAY4f,)GQUGJj4LN&Yl(tlLd$iFtahYMhG=3i[5SW
%QG%=^HpGq5T/]Fe_-\-B]E(7eh8!"7254%:m>J`&q;UTJBWJ:WhNl>hjT38gVaPHZHI^AAG>Z!lX3#nXZfh1Mm8HN8q/":eg!a<l
%2Q#XFWNJ>A`m`C7P>7!]^JDV)3XT8u@jfPB=eL@pRZ2U)7]Pi&nH"]R4H(o(9l7geNRondkh65$)l4I6+5\L>l:2-D@jL6V01U/a
%T#t5_>(3)lK@CQ5k![\JQkP<_p&2%Yo<r=\mIUY3G068[Cj^rdaCDd&lc*MLX52Qsbtli[]kKpMeF[fr:F*)14@uDBc.IAPpX6s'
%HQ`(",2$.PpT#4iiOZR+g8=iBhu.`.[WU^[qL4pK-['Xq-O(R7h\1@t&jI_V@5C-qM]Ug&Sc<nUr$n>cMr"<Ld!Sk=G:1qRg<t@8
%Ec,fle[sRrI(nU_)R2].b07t?9B@4eMnPq67q_Gf^l<2AUX`Rj14N)iS530oM0F.+$fZL.$e_ReS%^6l^mf+$a/YQ$k-Stih!K[Y
%HRP$\YGs`M\dPb0g7BaM%;>]C?_+pKR(Bpdq*6bkp3;))^=/Ki'\AAK+'U8k5]g"PF3k0HdNCU&cQ1a2jh+?R1-?\*=SC*1laQ98
%ZY-JOp?^YDD>g3f4ko+1l/S7:GOF=o(L929GA`r[AGJZs^H8Q-:?rfiXd=u!D*$C[?.(\EkJ+.@2dchRWC!nZM,D2"%2)P1Hmo6e
%U#;/shD-)8>B!:0!X.Rq!s)@/rPBZt9UZ\[Hhef3o@Z._iR'Z322S=SoIWa96SkQt*dB5l<8K/=RUK<k,\96@]AT2e#tpUl-IeYY
%E"fSnKV"nS.d$jYPNEjp29GY!r^E&K!.oV`@/Wq)I?L1W%fMQ\!D<!1*m-jDj2VFZ[\)`UUC[se6W^Y'#AQqe/,`>JI$o((=XZUg
%/PBt]E,pZ6=t0B&HseVG$d`fZ$5Z%`'0i6n,kN)%eX#39inLb+c:>Dc<f]\AU1ZQ`@k2q.QtR[L5:D)6OFh.u!'ZuAWb6lQT@(HG
%-5+Gd!dFJhdfP+%Th@S).+pn3"=RB&r[:<Z!qJQ2C]U>!6D"qqUMaJ]$quH<G(_se'asta500MolmfuX#j;?S;iF>)mQ]Tp+sTsO
%[A9%eM3S/0(_Sa4Mb#"J!/)C)Z=$+Lf4Q:W+`WIp2'bHu6<@ToF@/Z`$f![W(33ua0_ie,!dtmqb'jHo\pmPCfjSFoBPPj9eSX_@
%+S8D7Of5.c)cEgkHAVff&`j?Z-tEnq:^*+k\;sHg.DQu-8ma!4"DTFU;+o@/2G/?))-=O0E("&aeg9Fh^u[9N+&\+"OST<<K1rY`
%a#Z@Y(m%NoW'ul58%PmXqhd0@8iFP+7uG<\!$OAo9U%pKFYhVmfSmTLi8[[G/9[3)(_-Ot@o<+X$j3:Y!i\;CWiVR]^-(W;Uj<f,
%5-IECA)T5]6m'rB6?$V[!FYFc#juQHpkY7CpG[mX=k!EupHT9u2HeU&Ld;t$qOaU#MrWOnaC:eJ(+)Lh%M0I#6m53dCl<5bUc-1e
%IGlbHI#RX<$O'aVM?bPVaR9XU7bnp2!)^3ncjm#%=9ct5=LN0;JmM:;-kM,e5SWG!fN',sl6EA2PbL_?1uQJ=,g\kL_P('IG"e8B
%9h+M<%:E,/06Le/ZjOE!cN#*d6Y3Z9>=/M&69,Z8LDbrDSi9b.SJr>M`rToi@]Q0%&p+qA-%KAW_Lk5]j]NSWe]229Z=/;Q9<)5c
%M4Wg-.n+lU)@oef8[P#[WUZ05W%&"(__`3djTH'QJ'3`gX<_Am3qGN`,>mc2kQcjqJNtN#UVkeeJQ,YNobrVXFaR(q&TYr@jQA!Q
%9CV$^<%%dO@Eb'0oa2CFb<aNsnOX^(7"(aND=Vl\4fSL\[6!sUS:L6BV'7=8.2X(Z8Ia/s9em4^dMOiRT^7`d;"SUMYLKB?8C5rm
%UPH)f+="e]+L3Oh-=&UXYugO;!?PC-5E'gq(E3pki='NQ+J#FoF)`kk>W&M?BU(8V=p(O7;\PP2?jdu\K>3aA,0d!JRg#"0D'#e`
%0F*CE"pPR>idgJQ`=VNTV<@'9W?f8iOi>Dt^ubC71U)'9Eki;N%MHI:Ko:Z!Q[f&B*2Dl@VH=*i_T.e=b/2>^+<]QRfj<+X"Uuc7
%FS+ZW*naFh^=5IX)Hh,&K+GqqML_PEAs&(o2HkV=/1-f6;sh];:%T61*I'3F]Bi"c2%,+L5[UmIqOD6*-83.K7@.WeM]<%:8jLk2
%e99=P$2b$,W`8$g&a82*j_C1)$s[0)qh^=K;PNEu6jq6Lf>FG8#I>_`!!-n&[LhYsU7NR%FUX!bOsT6OROJh+&LfJ(ahHp_<\se6
%>'`C>8jW`:a`(D;O;W^&-0Q4+r%O6592W$O<KBa[$*skIb9S3,'[3B8p.Pc.,u#iPgnqpIT@*YV`"+A;H!.4AL<(:cXO+B['YMf4
%L&D+\)ckPa/D@*PL`,h*PNC\UW"cti73EB<B\'p"/>Z"FhI=]K,8qhg*Cu1XW1T/T=C_N<kcI+nfrXTL8?n<\)7IY[M&Od;Y5i_s
%mKiro*=9WP2")XC%+O6.P1gZZFA'\PPZ]j)g4\eQ]chc#'Ba68a.0(pPYBNR6:ogNk["Y+G-HEe#qn#;To?'P??DI/k"4UN"c5O7
%bV-tiJk28;P4<4<D'3TO]"H]&e/f%0FMQ&@@Maj(,0`)tEeS<D64$><[Ta$k$:(a%#857YUn-]NILG=%?c//?^>.?A/fTSOB?IqW
%lPFt;"DC.1LMTl(2m>aFN3Y3P,e,+8-Uo]V$Tom1)\lNn!1\TR#l>ua,;8[,3Gu[;N"Si69+Hf=OR72+OCS)V84Ji7'-M$,F1'@!
%L_:p7d%k.(BWa>k`\+9PB8TRHK!$d#6T6-Y7jnC^jJ[qo@cX7OJ]5P9?tU[t%9.n;=D2Y0TIP2"fgf<m1kbFCPifm%<0BG>(i,iG
%]S*m<O*aq79u8.mME/tU;9oCO:aatJC"B!PH`hU[iup`('-k[m4RX'U[.;ZIm+B_jM&JW9;3Y`cL`ODB(nsogM'`X\6^$YS%,RFA
%SOf\>8!R+!LTk*X?"le42;'[=W=^^GgW-c=(>sZs@j@M)<>Ia9P);Z4jRQi9:hiOEPXr-=:chHfq16*<LoJIU$j#6c`h>)mU1@C)
%*,.q&,%JMS%)2dm`=]r/M7bdAYH?Ugj51K=.pIk7_CeMa]XEIU<I?tsI5"9*!R8u&FEEa]8>;JjRcK>T,J)?UcGG*=ctgO012hjR
%/]*Td@At%cUaj54Tht73&X)C?$7dCV+j'=:Cd?W*D0Q%Cl3VSmBNEk3#VSM26V8[?>=^#]F-J))9aGEiIF&2>WC5YK%,$ZP"t?m1
%^p"snl6=WN>/BV6mgO3.`Ym,0"Xki)W5i_\($X@!)N'BCJ2ResBO2*814GX)CsYXFLc".Xcgc:-#`0^BqP3!rpW&pJD$C1RcHnu,
%@FO7BK54%dYt.:Y9cKemQiZE`#1BNV3!5N0&XSP#Ki#0'Fr5+IQ3(Y0o`upQ_[MN/5UY!]k?>O=&VAH)pp/<.,9nKWfgIQAQp*WX
%0:17&JRA1-Zq(3#fU!m<837CL-/,*rZIa2O,otf7V?Z6hdqKZ#-d^YS&b0G:?5S,VeI;qVN[bpNCr-ZL_W_.mIRW!&]aG6_6@qSG
%"+G5c.W@]T=;WplM?[RS6!P>Q5gYujH!6?oo+>jsTnZMu([Ynn_S&E1b(*6:K_VV6(=35a"mXj=:M]NX&t#)kg2J"b(0c/u8=^MC
%<gs^2cer&R/)d3C^tjMbIUI#7H-CrOR/t!6O%-$CnFWY.*E,]9DTE8X_oMhqe>7#S*!Lkgk9qn//bfF(>nQ?8@hb,O4WP5)T>IDW
%+lq\@^dgE<P!"cPfRl=I[3*U&G^'I+@X*>Q3jI_.Yo/3?iX5M0q(6E"EK_:J*H8)Ha8n+a.NKm2rLaph.5iWDmHL\c?:N+p0-`g%
%XQT15=WG:k0u+hG2do2)W;t.hoX3Xh%^iCYp/bem$E-)5VN*+F2lQ^rn3iKk*nZ*Z9J\u!84GEU3jDNb?dVADF.Wt976#lLVJ(bs
%#Ye'XK"42fQRb>Y(1M.A`:).MVh=#`DFBCR*8l.slgXs-+R]Vj3&h*_TTGQB92o;<"H^GI*>"k&\9*07of$,:_*;GY@4uKeK[WJ>
%(%<m[I+G>E>A/0=o5q,K6GSK#)>F[HkQR9I,#UfDnYD,1ZY2I*+b_P'G3DgJMVX3>,-&B%RrQeqQLa^?m?("&*B[_i/tLI)TAS`)
%$=CfB_8:'CW!"-H6oH==$I9<I*0.m^gjrYR/Nt_@j$=KRLQ/[.)8QJ$=!@`uqKs4913,gPWT*E%$g#aZ&Bu0.Zj,GF6*sV`]Jp/5
%(81I-Nr<Xt!hhgm?0L<<JB\t;hgHF(QtTt7J-0CJ<9!:iV?r%:C_;D@L*3?:39$gaK[=49+GAE.;QATiK0]dKJJFX0I]gd=&<Si7
%.isL7V.G)<d-&2$T.Fh3!LXG%&Tph$#6R`^o>5UqB3%1t="NAr+Z@=/UJ;>t<^Ni.QNf,GU:&YWG9k4`#]4-+g/5YBV^812_:K=m
%hPadO'1VV$LcTWcDMXb;VN=3uhHQfLCqsZO-`T>eX]YVPYq#Q_ftY4.Q%3@@%+&dM\i)t1A-u@oh[&Ik1]ID[K2l1*&,lcb<IW/W
%`a8[TXrj>sQ$3*Ts/JJ4?4T8a+,,k>?OrPnns$Q(p[tV/[tojP?V_A1W^Y_?oiS3!)/+-[nZjX0a]iF3^R&$`V0hZHaTo[a?V:9#
%@,(,n/5+SLpiVg2d9=Lf.8UBIO*cs%e!3?e5G1tVePlkekmunU6iToBX1A8f;lNB[HdjPL'Q]=!T=<`cr;+keRMsu[:I[@q*&_Z$
%:_A$#8ltH&F?NU-TO)U=Z#;>hUUcphL`:U,/qIKaRK['&oFaAc'LFXFcX4Gc>u[iE;JpfYqlN%Pr"2m?MGu2E.r`o$&.mB#`U9!3
%UJb*jqH>Z$les45D3EDd&#E1M^"sqK'31ho.mUu]gid/]^f7=1URX7VOW]^=DN+S'i+(0Dbiu1O@AHM<):1.(C:=&aX])9hV,FFN
%oh$@n]Q0VCc\Lndc)M8D3(/f`X#+q7q]j+^"u,/,25>rNR6@3j/<?^/e;T6B'n3Da.TL96]ZG(1E^"o]go/Qn*B8obLR/M>fsJ8E
%p>W#$^JM\J*jbIZ9.rI1&T8%hF=s#.YRjR.O/;\jerZ*YGL("H+8Fk<U4-CJ=WO%`nsPi;8(JXZhO%nEW_b+TK2n]:nF[^4p$CDH
%9[!Fro1qa#7#a-86$CS!0J"-'TA2T@n+gFSUY2kMqtBJ!;UEM@P<%dFY9B^SMfp,r8C+(Cb^WsnM8K?dD\iWopK)_8X.QCFESWSJ
%^Rp/QL37k8&1)!Ej8B!>lgXL!7p/n218RdoW3!sEN/H_@*^?Z2.b/SfTe?r$mu#OJIa6H^Z^OC6e=O!lo.3&q`eG"1Do/Sl@!@&;
%-GsSn(=$_/Q%qW>QW>q<Gp9KQ[4*'hD&ee?hW(C059+%e;Tm")[F3O'<qAQ?QR^jb\nLVgZe$g`!1'kq\NMYjlG+U--6F;>qSS?(
%.s@JoSU5KHNg@eNj^0O)lG)T<cc8`uMKGT;5MWRKJh:SDUR[pG8d-DHWl9i;J.DF5OLa&HKb[$pC#$,Rg,%>6ID98H#1Kq^FlLo:
%n\Z^@_)Aj<I;%pn,"A<sVcqt<2HPeCrH5-ocqfZgnqG=o0pB!]F0?WL/9uUrIe@"XU$PTfSeb`(_t#-0O5JieHD/q_/GS1dWDp7o
%2I2T`G+\Q:#7f#k7o\KE[4:%=5_3UUbs^XjeP3rf)`jr*M\<8W'2+eQc!ug7`!`3:cVk[,=6D.@rOoj^jg_6F9hZ\'^R^&.YP!`1
%'TOi/_l7&.&lJD'\sV?&oB<*S;H4@.nB5V)9`=e/#?)qgI%q8;(Ujg:3_;!S'RD>DIXZ-\pJco"EM2fp)3n)gMAK#F?E3!"0(#)Q
%OhFOjHbD7Xd^Sr?Y=HU0`lDQsY&3Nq8sQ=rVV82:;!a+PVPnaeTQUc!Mt`L)h"Z'Wr\uh4gu>?5,5%Fj89N_3,s8YRZ8N@1COf@H
%M!q`1a'1FqkW>bCfoDUQUcL5$s5_n=HJE8'Q6L.AnRq+G+S%QR/sUa2d"#jdP98BJN6U),hAXcfVq]SKa\X)X]!D0l<2WmZlD/I/
%@U-s);5r2JGOi%>CU`)QHh6$IfrMl4[rJGH7YJbLknDC=g&%95*5!eWpU,)*%P;O\C.=KFd64'mp4jSGD#Gt.+So"Y2,':5!2o3i
%@sM#l]401'\),e`GP(lkfqhWH+U9c5o&<jqXb+X'jB0NCI60i>aW9409PVo/[cc\*WRUG+mug,($%sVta.SZ&IJ$:&/j47FnGJ$?
%.<kX*GTDc)95=BEnb<#;qU48Kq75;88&+u[gUi6!>hqJef[O1d*qg)q%>%'A^^P0<?c9lA:E;HHH!FYLVI#hAZ]=53q8@DF`)>DE
%mCWATr.n#V%o36!hm<>K7Wt]3q1pdu?AG8Ym8d00Us3!>#fbRsP>^L(G#T%]j^oLDqa8Kkf'\ra(/Lk^1J-\Ep^sU2\'CPspL,#+
%8VPhfn,?.<lg23s=tFlq9g=Lbqs9d.>+Bj!3HkuQ9>@XsInqZ7d?X\+?/o_KY3Xtne@1g:8XV:pmP%4F0#sQom1V5HeYhOW4@m)%
%m%'G;,SB-Y0APJE&&"HhN8h80Hh(O=)b3*:cB(OqQH@nM)@MAQ[Bk4G%P!_uP>nrpCCadbbJJ8bd`MGL2gdHb9ceRJh^EjJWpPSe
%?d1C%X%0V%IWnVtp'j[XQ%d;V7F0Yf2K%9SF6>0eG(4r0oVH=^Dr/-Ujii9uF8E8DGc0a#.c7U]:?O6OFm[nbfALqtf5KHWH,J@4
%;qgE6,(%qB9TsYQ3?>H\B&+tsaoB0LpZSPDFB$8[(+T!L"eMo`h**;]JO7nU2epsO7'!2%RT+-gh7QuAHu#D_H/;H49=q'87Cue%
%'tAI(;n+/jVatJ_Sqt,_^F-iAli8&:m(=/&AB.$G:C]DRI:PQa4N>BqVU(W:5TeYl6:$DR(S%T1";8Fi_^EG\%#4htWFmsiVs.;)
%]7,SSe1>'3Su5iV'Kfn^JeHp/;(@,?*G<chli</l/ir.)!1[kek707)4SI/0A4d>oR/%63"*r$2$E0b^q#"B=4G&dH,kQV@?r(sO
%$*H?e1!`5"L`md,;%$K^AVOGAh]c<\!9?^Q4[O]&C`1Xli$>XrO-"W`6NEoaKIdQ6NHC1)e%>Z*70qh(k]K.;]-al8;-A<SGBB>&
%HYQq2$2V/:$@aca3.h'U`:R_Q<#.R;":$!Zn5XQOH/nt=%RDO(*6EuP0&Vj"D20-nIcr,m!lTkeV\*DCfr+-\jqaW09F;*Y15%/;
%87ot$nB$)-!9NR3A5An[.$IcP!16@)1%c-gW13l9CGC0d$OA.3$pYpq'XAPM5!'*gLI:c/"G))-Q2R%%A'_\hgp3G%N=bL_-36+D
%]FGO>5%@LoeRP>^JAC?o.%<j?"S=Ad6$,-OKSF"FZ$$*q73jL.3<p3l^tdnL>_7\3>ej2fRT))pP0C>ld)ROA(W,)iOO-F4#!an+
%l,$F3bimN&Y"-`*i%74,)FSBjBa-`9;_Yp%_B+,VAeqnoO;UD;N'dUsORFm)c_Ji_qD'%uBHkbUO8N*(E!c[e.OT\K(>9nF\7I!V
%Zc-V?BT<YN:k"gbEGp0P)A3Yu24S6a8!bDY\R?&f(j10A;7A``q$L'MU/1/._]F5_eH]?!^]@=E1MSr(G:8E4K:YG;_/_6F#d=rU
%#UJBC_'+u[e>n'=eM,A5-uMp`JQE!m@u!<dm`Pm],j^c!,6+CJ9o^k="<iEqY^6SOUq?mOV_>kV'VYciKEu&j8@TPYkD:5oEoM=/
%:PM&"KWr](`g1<OG223t6F@rC]4l:NVeq<J$Q+@\ah;K%%RG1>"Z0g&Pn9&sEWHj4Ggn`:)=RZ;bLhY2<!T%NQqbJT:E-=8C'fUr
%6u*t=<s_&(d>KjH*QHfi-pc<,W#6hU!u]Mp+EGJ^?tg2uX`YhKUUSaO=)W,rGaK\knf/C,-rsgYX`PP>joBLiMeM5a_=&@R,TqR+
%*cH"+"oMYh27mn6Fp#_c$d:jQT/^7sa)DCuB4>hI*sEnb(<0p,R%EI``O\]M4c%Omm!pE").!t3B\0/DeE$3%ii''][UBbq8DoqX
%')25V1"*1q(K/&(LlZ$iEA-CLP'N`%i9'hLdD\s=&8UG6Y-uP.b1[.gMN?r:+`auI1n;HS<+,g3C!-nd%P;c;r5P(#+967([V7>5
%M9I@XI3QsSTU&[,?_1ucRW2;/KIBup!"ner_@-h]m#TCE&Boc?2^f'.o`Xl5kj)aZN)]OOYT&QTF`2(bLiW)@9F50Q>`R:-G]D&B
%+JaP!gUqn_(2PX3Zk<Mg&;38o/F[W<Zt/B`:Jhn-GB9i)^!)`AG4fPl.)r/57[p+B]M`fl;a_<10WZgZ&N^IlZst:KLB=:*jUVj2
%fYAd@J18*1Y-%j"6YdeQO4Q#.J5Cg%@I$O\;d8E-@K^1F4^k)+k8C"p3Xc-Z@;H3FSQGk,n>N)[i%Yt'8HIDHjq5Tm:m"NhKf@%(
%A-g#F-n,GJV-"Xoj51utQ.qC&(_BJY0_;n(6bEGX$),4<Je6$4J4n[n%3-W`X!3=j,@DUF5(&58O*\QnCC70)U$0P46HrAAd)ZF[
%Web\"6j)CMKQqqO@)Y35N37gVHPn'sL<-6CZ+n5T!#Tnfj'FkW7E\Q59,)",'1"UZ))roI=tG]VJ82l..jg"l_!DD4`53\ublso0
%8/.1ip^rnl5i3,<@&S^6>RLSffS1(`U<NmmLA/A(3MEG#7W/j3&qrc=OFl%&S:QIX?c(gn%#eO-",-OPCcBaX2DI<4CLCRE^D"j<
%!=MIaPR^0uBnI"VE7^g!Ph$r,fWhh^[4DGqfeQaV`(_pRXVhiM'J1"5qZLmrL5J,,s+i88E)8eC$^>E:7E^PWXOqUr&JR4?[,i?L
%Q#Rnn!iC8[$!]GX=W\SU*7.S#V,&d!*.iqkR>_EP'NTa76H\O8E"!)%iSYpcb9B8s"S*T]`/k'=Cf=Jg2M0Q"_$b<L8Fnb5]\6uM
%&D86^d'Tj\/]BlFG++UJ9W=RYj<NYB""X5j$:u-fQrX7:!H*[+jI6@tR'<1"W=7I2+ig^@;FQfE:P=mC0$XDUJ2G$cppUMOF[HN:
%Ujdl.,hrtsMDkkBWONiGs6a^dVX+7h$6W&J^V9RsGId]lIm2bS(S(!(^OQ+M4FTn-^W@`!cOZqFISN\[)nD?V-i:7G9ZeujM^@MF
%OhEDhnq/S!WE3EV\>"KIT`0#6U$r"e.cXOADQPk'1cWuPcfo_nSpE($k\QZqh7>JmTP>!>3d#Y*"Sbd=B$R/LG0fO,FGs@29iq(G
%+NCtj>aU?cgjH6C)m@r"PS3oH1G=tA=]k^gq=:]p]]u-gW+B2G9%>[Ma)4OQ<NBWq3j7)7kf-R1T;Yj$^ke%c8omb@k-(Z`EhBA\
%^)>^>BB<Z,W<0=8<35Mg:Sf*^<^D2Nk8X0^?9O]D.eRPKTj>j=;DeXeb5r5f&ZlN@3d(DN,@t13aU+fUNu=+3:U&io3U[H[QKn,1
%I%XRm?GTH$p8OMRU[S4lK0!92b(HRPWL'2Fcu\.^CR7_#\T>gN*\HZdD"*%2GqE)ZqU`&r>1]K';.8DLaj&;@82Zq/eWJmI:RjWJ
%ou^FT]/L4o:I'HTVdHP4be[:?Zm)uTf4Ff[hAM^Y?QQ`VjOMGop4%SMWt0un"r,NR">gRgQ\DVH0rIr%66k)#5%eD\R\Zt.gNWA,
%Wp--n>W\deGf?FK%:?V;7F;Dlk2b$H:A3"1lPVL*^Q]n&hOj7Aeh,Eenm"Mn!6?^&QE=3rb?VH-?sEU@(dN6$R5_igL+GA=>qr3c
%lD;e$HR$&dn]+O]b-gTkY.Eh27\dDq(PtW1PCT6PWV;p,#GuiP9+:^e]lqeQ96TXY>+eidH9>35_m&+e&bK5/FlTDts'fKaXZL^r
%m'kE5SP<^E4AE1[US.d@"8EJ;@&hAb)&)Q3^!NViJ@1to)&_"4m(;3)pNe)q$!nL_I)YSan5k7I;n>C2Jb-arWG9?.T+*)>3GmXp
%!;ShQ$@U,&PF&JAg,,Bi];=7_F:j![S$D1J3[ptIdHE(hT"fLQOMP!?5"B_9a!t')rq00m7A#&j.`N-/F7.XMefemFVo>:RkgAV=
%2_.@gW;Vqkh]3R4d:1tT\`00Vl;u!iU[3fulTaU.IG(pdG$Vbd%G4t0G'JN(VdnG&)`@iGVT!l,>IJ'E[8c&0G:aI.SC5[J&X]K\
%h"@:8f+=oAlRq8\*gcpucrJgZcY8\[1j8!eJ01-F^\H"&$R`,BIVtW_5H`_?+i/2WpKP6!j$==5pY%q6p"\1]Fi*]t-]bDN<%:mh
%go$d)D\Baf_W6^R^Y<ttG4#kkZVk5>eno3nr)Rgk(LPBoioV`>pBeV5c-n$njlW.:&@MJ[_q+2-3"r=LA_"8F%j&<PRsXGL_*e'A
%CS62)IFi=A5\Q4A,JV[C(#KCT>P@?W-ao%lVO<a.2JlPYI7KOBM2dE_\'iXB6auL^L^9oJIXG>>$QL5jM-1pk^2`GukTrs$0-4=Z
%eURI]ge2u1pCKJ8<MjJc/q$3*3dU!',&cqa/VY^coI40$9##]sp\O#c$>VhSF>Oe7SbqgMP8f6D7sM:If9sf@Cu9U7_W?DCY]mc9
%qabVkg-6$s6>msgc2DNrWli\.h4WHUI_9n%9E5a?d,Y(ahk.Xn\?9mW-R'FWf!5G>jiZ.\;=^A.M]7#?^H6qH(ceE^0E49kf@HM!
%Q_5I6^7*Um!RRt"-8?k1fClD5RL4#D)oq]T*fT"UNG2<[`ETH4(s'+;/)R=lH;YRjXk0EN9J1e#qYgAKW'%DVOKR-k*\4P;hB2f_
%(O+0h=>'7_1isXaE^#m[DXLNMp<5j4PRVu"*s="acJ,!0ITZVF[$3]>ikkW9]G'O4aQq=imKRURR+E_^VVQI4)ntM:&<H!Ie&jdl
%h]9#4oEiFKhcR+#62OW]+5D9\*1!ZEbrVE(hEd7u[M4mLo<X),/8gsr#K,d[EbLeU8<[EPPo1K-?72(NiGC`d?+tJkrVUTmIFs0N
%[5p._`[H1HSCr`pHA\YRG5ui0"$=;`eW=^g?A%"\7+gJi4/.e]lrZB_?iN\ZF>W@S[A3U/QoK:p)\Te32s3`'cbjncgu84h*K.fo
%07X#H[S=rb80ahgg3\Ttjk`29pVS'#jsrOeSj?Z0Flpm+g(aPOjPBP3`Y-n"*TLZ)T:46D^.7,<jZQNT#$6duHg`DEbBp+_R;B(O
%\<h5@gc`&W1']3tI_fa-Y+49.3J6"P:MAJT1Z.TQ[XRK14J[V0:YL-[Np+dCQ]>rg0XPJj[Z-/Uc6<%mUR(:0G2_0">IQD&CgT3:
%HgRn0G@R0rft>q<:Y0I;ZLo_fD2YRa4*L'SHN*K3F5O-IpT7J-mui738nYQTcKWiHY:a+loc,r0jl`6hSXBB9O^tFjq'N4J2n1(L
%mXP644,3)l0l-r*MO;M%U:Y)5N#`+b8kE=p;sGDc5UYW^"RpH!`WTt_!Wn!7bZtLU=GA1@;Z_a"J-1ie:Sq"-[=jmcQ1tq^$qPd"
%P\^H;,N>J&cUD_0k2n?o]2CW^88C%i9F./$Rj;`#(cRO-ap#:WaJ,3C!Wd0]a(Bu?E>AWs%\,70^e-^9?uD.s61L>Q;J=OD8+&Vs
%&1SS%*u2<Er*OGupdi:7e\Ik*!5]/D%;R[B6Z?pNF,>6\]GD(#R8QkCWNZ^[Z.jjTLj2#_=bH>R^ur\$$%VA.au'taM'_=OB[]g@
%_&NU.3jJql%9[@#eN+9s3'Is7Es>$A"fLc0agaCUH0/4lXV(UqLs0jDCe[+M-MAQi>9[\[0T%*oSSLb4"n6(HUs:7i?-L)mi0Ogn
%b^i8sksX:Bm=cq8[`;-M?g0*H&dW"\7g>amU#5tQ:DbUZKCZ82&QgAjn=@CO]VnrV>6:upmMa\B<s-4[5b]8998$%A?N@WC>Y,2,
%3mB!dAWoW@TcSf1#mi7JPHcHpmCB7$Ko$Aq+[2PqEbk_c[;#G?T.>jOdHG$EO/`9.6m%$m9;//0"/0B0*;Km'Ti.SbbTjW1%`(I7
%M@I[^==kIG/:eHfCt/2a*+%-)q->7Bms<(CO5L0[T>GS>gr[>V,B_cVICR*m/&7Fg9^N#s,U+h(,\.CuJ;AXUM$;A"&("[9J-8Um
%qNMsdOI57o&CgQZ8O*M:A<\&qI0'9HkNJWD"L]a0Sq0PA3nsj#n]8ubUsCsl35o2*(_k^M='=If4F8p%4<0ro2ss=>FiQdf!etHC
%kTY4UFL`/&QjD:[">C>%oEl7S*nGl*Xr'4X,Q!<u=J(8:`L*n>!^HGgU_:s[`XW!\/g;mSkmYoP"@#jk(=3^ch?SQ;$%Pu."1D<c
%ILp!h5[.K4i8r`1cb`XlKeP%[:[@[u07ZGmA=b5TJ4Z(1-%J2*:gBkE5qRbBRQ^KK8K_apG];&E9>D1u;^:^4Qat=FNNH&#Vudn2
%L-]-]9.$+-@8+["!@Oi\:Nf)p[q_HA+BScIoFTatcTkQ5LM<!/D@PTFpP9;?rj;aWA]WEF<K*QAA^bD]d@(2SD[76c5WD#`EYqW'
%b`Y40MB)ob.]F3b7h=!Y]$,F(*-6.XJf5hq'L8H7i^3;ac`VmK#')>#^9,Xam%5W@EGa4Bk<SgSLYrD\:CF%96tqFpfI>K]TeQj*
%$Ee9!k;^kCn6I`-)t^f]9*N8Q`'=a<K,.D(qS[.X!#J,:^o0R5!;L.4^&\c\":)K#O%pf6OJ'^H.En,#QC--G=iO6&kXB><&F^,3
%nbC1m/b'p=Wf3eqVK`/'B.3oM.Qdg\BY0uLEVVa&-[A&t)doOs$k3inQ8u7R?Ds->4u\'3*=llSnP77mhH7a<-]f[K(rhSm&-O$X
%U:]*0i]m,SWa^=D*X'j.U\"e1L5#tk"GV>6gpCUdRZ))f!sbllcF,$'F!16%6d1h+=@"28TpE.,(C<Q-J;/d#5QKda-7C1!GQu>U
%5A1$=^"A>g1qSBRTUB2c6I,mI>4hX^7KX?ZDAu;@((B_H%PqB-ZrR2M;T;!&Q3o6!;*e&ErVo;;5e\3-D[?g0Z&:j3M=h3De#F'n
%`WF(s'Nb?T1]ID[YlM4Ds'LZfaO;N/n*;?"8_jcT:ZguZL[KUe`p7!Ap5f,Bp*Wl6!fu1%^:Z+!p;`f:dsZLH^XC=)Ujqj?:VZiq
%.eT/s?Tdn"d<i%:?QMb7Sl1Sp^O0WnC:k09:nmn1Gk-opPkBpP)`T]]NVi\5qR>@_o'.%d]H;A6$6@]s_>^cm<?"tN<5NRAK';r)
%@m`D@TPag-`T'Ae$1LiN%e]VA0/ouM49H,9:\7o^Q[rW+08VT5,eDq`!B`&>]p6i^][,01q]aSc#ml`=U1VS<;>]/KCqRqTq*aLs
%"/-)sL\-^TJu)e3Eqg/176KU&PX3Rn6eY&P"\g!no8$a%b!C7p?g9XXWQ:ENmA6`_nE_rgSZKZGKp*HGaY+C\\>.8Wd0D'FEi:p/
%ehELZq79"i*Wj8UO-V9?YACple(Tr';^o>!H24EHQ7X,bb;4[?-pMh14@u/EZ=SqBLSoN5rKjQ=-D\PJmggtpMOphEY<&^?$_jhh
%;mUXJ]@$(#R?EOOTL?*e_qIRkJ$oL8pI]9,+Um"GjjM.Td2tgB[&APi=/4.^i)=s)g#2*&Q[LX$&"^X>*P$F6]ASp#m$4Ll6'EY7
%0S<!h:Zgeg59$2mgo_ME$s2]A<O@4-8^"kN1[hGLd%c1OAo@GDn63Zn;nDMbofI848TMb?[p7,$4hhW.C+=CC-OuZ;lqrB<T1[og
%X1qch)]PL(HXC.*]tR;;R]CNLo_-X<os(u-Qj3\df/J6hGEo>ailo'XcrjjH@!f:9++H6Yqa.9%42HPhrY$D7W\\VLR"<M]GBV[?
%KESc.!UQLdT,c8S?D"H4>!r'0lofP2;'7\B%]8^OX.Lm@k.h#RS'`oA4WRg@qqm8p:UabNM@\3E`q"?$CYN\')"OW7,MniXLDKXJ
%d]IAgniYX3LiV_3fMnmDe4E3ddr<Uq+5j1=]JH"d*',i,cAcc)okgSB(>>o]<e]jdVMnfhINc:m?_>#O9eUn1U^?)am'<1q'F/4P
%>if>mR<%MqOdmUS:)uE;C^nMrQ^mj$h?AMuVote<XPpaKEtF5\J!Aut_^<X1Ec!o.SIF.nk.jLCX/6dfh"fJ/r0Y/D7E7@cU45?Y
%ECarulb:1;UoQWE_!P?=[On,Xp?:VE?_X4Y-qXGXn=Ad80:(U+eRXC%#sGagpctj.#VP>q=3a)N*M3QWU>ZI$c#IH7e'uQDom!Vh
%1J;Ak\?Vkh,kfooq.QsKko[=s!q!EPX+lZTe>=WqU\@O>UO.00eFZJ$`TW^BI5Q;el=7EkkhOHpj',':obP_\\"?tiIaZpQaij?U
%-PJ,C'5IhGe5Y^uZ$TqddOV4jhVJ)&rPE0H9;QC9J'WKaB0RJ7;Tg5KZi3^[l1F;mkq>QFh,`XXCsAmKZ+)D-=?\S+pT$&pH[[!P
%2pNLM5GMLFImWhUWt&IG4$h/obMRfW@VWsSC!X[%kqHVlSeIIYi9QGMeqr4Tc0YBu\P1>-^=heR\LTW-3HF(^7OF%_(QNl'YA]=\
%MW70o1s>,B02?#^C\QH<SN(]eaOaWs:%+H6[pb65!_=kg%[se9nVhoWc$t>sYZ/;^J+ku&^Z0CZA(N3=V9a5t7B@^4^KL4/Gbcej
%0*F)C$,K69jU\0e!L3$uAH_2j[YV+$RX=71&l(dCd6i'+Ot$^g+=;?ROX`,CpXP5jrbpLIRfuFCZg"2Y<34:V:Dq-E1'gBY(7A.!
%nrTV=PHMbBi(V1h+>O^8!f8.\mK5(^&laQ`>000M"eI.^#Fl#'ZT=1'0a*Q4'+SOWUi)5\U0>qPCg5)u[K@.h+J+'F=UU$QK>X]E
%Kj\=H1'VQ+%.-Xp"61s'#T?>=R+7LHB+.;R(q>ljET8%e"6)(jcD?<L;&2LAb,-6^RmjN>clq4:gTY6GR2o,-&ojirAIa:9@=@3o
%(ZCD<RgqQ[&=FuOOL+FMLEm2]J.IB?cQtj_)&!7;U+T%6#/7:+_%0ZqJch"k]U?KgKgNYDBNlfBV;nUk6po'S81HoMgG"c>[@qIj
%#tb4_LIpb=6H=he!3-$"?m&`\8.08MWrW-fRe#U>Kh*rME]E,5FDQu7jD)aB73#86SKse(.(hY:s4M`4n@5Xe0\GA[M4c8ZU,GX_
%;I%!@i7f'N!^VDW8<<rj;'JF<#"&IO?j<&#.+A-YI/UA%;-h4J^;TOS98Y=ANoS2Ul6uVe/9S\HEEaets/&PTfPTVa:#_sOCr]-=
%TCooW1N.dE8;`MRd>6l=GMg+.gjAJ"kFNF_LG&d!+t&JN<n&cs<(7*4Z6k,Wco"^5ab^l1S2Nu1SaXZ!Z;Jl4O>TV!JM,f133=J=
%Bu2-l+1d!C&mg7>l=ptEVp&c9EJ5<r0<q;d+b^VGdd/C5ZjE\oeL"ah^<SG>WY0M8oQbIOC;V1@1`N6=P1dd^)$f1io+n&m^m"].
%Q>86TMS(qB3"/TdBd/Kea\*T]'amIm9"BD!9gfh6P,^JgduAr^&CrT?.%8[cA!)#P#?GMY9KK7CJo,4CG!Z?WOJ!]sVIk]Z(1+E`
%!H_a2+XAK/!&gok0U>\"!Tm>n^JjbXArS<%q4U*7_MfB]*ZXH-:"%T0FY6MSR&ouunfd&saT4DapR3h0oTf=&YT0@6hT!d_UnBk\
%CAW+3dY#VSb(7LN>c;:N<q9j>+sYWZF%YYtjO)IBG,jdB8ZA0l=DJS<l)lfU@lG^]eg=WtR0#-4i^,XIO^P_;&pAq;[udG?D%IJH
%_Dn\$q+s48"sdVo&E[tmN%p"G.Wgh:PafHn3e>JbYTqGZL6K_^n7[r#';NDgNDtG-4kS,8Rt+K]YRtFm,8-#g"!e"mBHl<kjsCmK
%J;0%]'TbRn(?2SN$\Cm1lZ7Oig#8s!3"F&\q^KlG/9jSX0r(fSaGE%P$-(=[Ic.(Mc?I,rZ,P<<],i#_Lf^U&a2I;0A+TVS]<mTM
%Bmj_t,Jb[UIb`JBC([u\,,PAF-$'`/5m_26G2fifH,;".!\duM]ab.r\1Y&iJKs$g3X?/bKk:aECDd:4)F&phM%QBu*Wd_=,.<.1
%^pG",3#6rE$6>=P3VFb*6f@_ZktK,;kVV$kG@Eo#0t"4f:$WSB[YP2n,1\Xg)@'^(L;:bF%3pa/Z^bo73H8m:1Fpm^!O(aMKj\l(
%Ypa1UB&Z!O]H#8!56dQcQ5<[(aWV^\bboF$S>;7uK8p["2FI[hmBAc=:'Ilm\.7J_.ll*R+WUo7;X,ZXaX2d>X,0es]8ZGs5Sp`6
%6B%n;9e%^OjWhrWlU\/rE29=$gtR1>-KGej&5)(293Hn'Jn3rJPA+_5P338Pau/o-nue#B0sMW`_E(l*e0Gt;*<QL#+o<j%ApF:%
%&eT:V+EUZO)a2H*N+CX?P*MiY$Rcg\V[9Re$ZVj8+1jL/)gUN)eg!P?AFVY1)PX=oNFiPe3]J-:H2tONqkg>1[_CgE?029&UJd-K
%f0Cp,b])F^m8<3Nd&^2!4bTE8>*)p(3IlinBS</pkN`kKc8l8=LqD9%qijK(a@t]m9k5Mub=iM7O\Uq+#h$8uOsZ@9mprONYm-&*
%;XQSn7f`oROr.B#fd7N5CPBVn$E'1%0N":S#GEAD9/4cN64QtMKdL)t"Fa5I2JGK5<)RHfPDmrQ7-Tq-g'qV,:"]ObO;>A01U7L&
%A16Lc0J0d\[s,t(cU7:`a<I5RGZA/\E]En5>(PTalSYX&>BIq`VJOBFR)DqAeE\IWUrF[$3<#O.JbW!63?qU":br/WShmdnm#(5*
%XsUsnfo@u]9Y<tG"Ra(c67ZJLcmB\9-;@;f7Q19i_E`%<Z/\Da`6$Yo;R9@G2\C!M<h^gJHq$+k*ThbohPiQu#k-SiQ:NFG<$>TB
%-#09^h&P9$Uj-Y0">X2?8Y/Dj6O4tX(tph36oZNc]'H0S(baiQmdY!e'BFEOP#R%uA`aZV=j+lMR[L(\3Mi^l+9I<`N^ecUMIX&'
%$[DDTC0Fu^rDC#u?8IelSRgW<?)`hR8fTQO-He%`=_MSs>fTXdKI$QiO?rP^P;O0mSP,nMj@K=d2p"#d3)-f/($fhA85BS`aG:&i
%J]G")84+E"h%80`U%XK]M2dbAmYFa>*3kUr+u):%j4"ld/4((_023E>Hsk^Q?;c<\QjX"np(Sk#[knR&nuCCH#*\SrVMf+X(E))H
%FbC*1Ilk)Fm@#6;n3%'e*Fn?\>erQ\bJllpdb&>9(l5.-RHs-<$g:"FL_1LIR&@E<9=%LE<C:Z<6(i48S00DXi$_,q*bgE\SRO!h
%SOfOr9p'ITLoVu-:1aX#XCsaJBL@mm9cR?SM`;+C8UNSo0N=EO/,(phY&A:c;?6pF3o*'LY\VHCBYq/$afTG+PSqTrFVGGl'Jm9m
%clOqnFX:n<ORJ"2h7I-GBr=?uIZj1<n#NUJEYN;"9jJ=;QB'VN^u`q5#p;KFAHQ]j:P=bg-2S`&/+\!QF_*jROog8M*p/sdK,.=P
%cC*B),L,7RU='1f!O5IQf3rHtedPI3\rV)Q9?=+uJpAP>Fst`Y'fE>a@2f@:C$XGG4535ggdJfFBtrD1l[-q,eu4)H#o?2lej,Co
%GDZ95W.`_tAEnWt]dM_\_e9):]@);,0ddi_W'U;/Y#VJ*Rl1aRHf*I73uX"-M>=STTtkJ-=]0Hj6r]2mMGXRFZZ/<9!sP`B/p]J\
%_A>i&5=IL;6AAo0?/Hd<aSS*[S^OScknRce-&Rq?^W,6j77\+Ar.&kBU0sD<@b95_K8+,%;Maa##qP-t$EE'gnOhk5TkD@0-.Wbd
%>T(E*`,F`+W"er1U0q2[ahWd"A0Q2$:3mIFiK_Q/8K)<lXDLjL2bZY+AudF4&aWV?nWA@OJ^Fm7Tk=a#DXL7:`RC)!aNI4pXmj+O
%[IuF+Yt9e29o*<\n#r/m32Pr7e?tl]OmLFrs"]as:a$!HY.G(Z]u%S;V&j4]=5.djpbIg9lB?KOQP%\;9H3)emkl["?7_dI,s=Bf
%S[m1#lQr-@/344hQ$oY9EC@[[a^2o:7=b`dl&(n>)X4)=<G33nkNEc=+C=7V7pUulnI%]=(N8Poe)#-ZJT2a:/2%$eSD/\sk[>Q+
%^c/,nOfO&:7C[l%$+#?s@`ObDPn`YI\KSM@Opb5?AWEN"021RVPfq;fM3.L:`Q%j4iBskHjSaYb;gV4PP-6rTpD#<=*O!"Vn[QG&
%'ETSD(+XQ^^/8![J_=%H>4+p!bL)f\<JV&l+He+qZ&EuH*P;HjO[sS[>SscY!2V-*4Y;V@;*LgVW7XKXLmlCQ.!7E:3*hAc?\PY/
%c(LLT&ZssnQ[N_-f+cOd<uhlM&E?A^_'VEF;#6l_@Ri@^4&M_^'M/d9MCajf6@@goM67V?0#i,gBY;o\gt]r[II'!1)6"L"XKd`/
%M\<,u`VPe8^^_!:Q)-d#Z#)L)"6%AS:!N9/jlseM0+sp^@':H%S:LrSinXW':j=So8P]6:')rg#[F1tZmqABJQmi2n]AtB3(q`mi
%NT6.<"VO3Z:=2pd^hQDf^lfD[gj>@^fL3a&W*qhejMNnt*N6Wj.(j&%RYWP-Qf40M'MfCAUlEDqK?$s-1a*m'H<qUr,kF$rpH99q
%@q!=GL$^puR;.N:TbUa?(LSE,/%'eFcH1m2X73[4Z`o0hV/VrjV'FQ*C7:"Oc8?tjN#,I98YQ_t=H4"u?^-Mb_Lt2t)CCVJGDSg"
%8HCE$SQ&Pa.#6lG=BhL";dou%g83hn$RJ;kN+"^KZRsPDK"\*2#,e6$X*oa53RhDMr:*#UI[!/_d06;P_Im/0Dh>Z3+Wj3V-p'?*
%!RYXN0di#QRYW.l*i),d9-F&_2Pc<>D:,DI#WC'6_*DQG-9?FR%cs'N6:.P./P(KC.#AZ[%4N[qT4=i*QAD!s5\8J4CP^1Ahe!a(
%(tI;4`5lkrG$HC0O7Lp<q3T4+&;kuS)-7=dQK6tj6j=LO4]Xb![M)5l@aUPV6_[1s_VM!khf>R%#(so^%Ok/RB(CGuh*s6`#o1A`
%N\:o:%MJ-Tej;ALRZjBiqPT::.8B&,cC#0]@hroD>Vj$CjT?o.PS5FaF%.N09W:*M.cQ9[Lsc.=gbl9j/uT%J:q[U>KV]Gs;Fm9=
%@%eA@HHOr2"4D]b8djqOj,A[mZZXKZGl[2]=HFrF?uQB3f`QASD@W,kCKg5[BqEa;Lg`nSIqgsO\V8:tQ.pJ\4FsAR[Zr@B`l9Nm
%jl'GRo/5XL.`94d.mUN>4(R*do+MeVC3a3-U,6%+p/S,Fj44(8@Pq0CbQkS9L5:K6`eGrhq+Y0r;UTi<Z8u;Ajp(G-@;'LVLR%0k
%Zb@5(2TS(>&#*rX2Z<A\^<sa"V.CdNRu?^`Tbq12N<.!5E?3ge6u>'JJn!=u?I*0q7(3:IFCGrt6pg>dn\'o&`8*t?-I<Yt*7epe
%9VEJ%"Tb^-W>T^#?4D/=W@`_a]l56P!89f=]$N5nW\?cEM/M^,Cdpe\4")QEa'pE^M\iCO#`Dqlh;sKbo3"DS_+8fKE\#*p7He^6
%#nJG<#S?EQ$._n_,1qh0A*f.K_?4n8BBS1)Yr/=>`ohP[QcR,?`&<=@Wh=?DARa!r7&COIJ>X?0H88^-B/GJoG4E*qV-FVGLdrA-
%>]/1u!^Xa`IOpL96j&lOLn*3g`]B>9/RJ4spsP(\T1Eam*,6d:LG9=YJf`kri$0mRkds/ja:MuX@RE,8Wp1m?#Uon(5N:]dL-$2f
%<E48HEYOYd;h&u6r>h6-HUh9hcV@,@E':'FN)M_3"G:IrZJ][*f+EXuU`X#CR"\S$3N\F@9BI)F=J"k;e#K7HlF&1`#^dMWS^b'l
%BH:SeeI2M^+/?9ON#5r1o1b!R*J;?0&gAN?"3LJ7!?*A''hcLi20QdC"Kk$ESt\.88i._RE^U'\pO:Of"gM/JP3!W!H<)$:*@tGH
%o%FetU&loG1j1b8SW/@`Eh37r)P8B6`BNTlj_0kF'kdY+10ph3A/B,V"Tta8BIoRA8WK^m3a6">YhULTJA^V>0KXra!]a^fq<X<!
%CgNQ:$"f;6q\kb(-'QPL-Kus5]9E;G_AQ(X'`2JH,+]X[$h-M@aJHJL`D10:#"UOUhl\@t=](-oF*s_f9a['g:`1X.95Khb2Pi_R
%P6pdI-_4HYW"C4ooSNfiBT)CmUaesKPS6D!>ADm/Kq9!iR\u+%RIJ0jP'%?/1i,2aW#CFYAU-K.Ek6\k8lR@rM*0X@Td?QJ^03#%
%eh_UH**F121uVVo`U`eej-Z2Z0e-SJW.+2)'Tsr/ZR[eVD1#8@+[:FWPQiEjdXW-R.$9>1?QD;[6;nlq&^GJUd#0X3ed3t_W_bu9
%Q*tIr_A!Ll_,6oF5sgiuD7AV=+r2#X)lbk,Kp%Ja&=8RF8T?$,3iIM'gC[]uR>"+YU(sIq*<G;WL=de_&VHgg;'Q2j78n$!#W&&I
%IdF@sMsr56(lYhsBS@f!7G0I;_ehAaU1[m#k$6$TKOo&^]53r^d<2ZiQe#Y]`n2.HPjqoNc@rpsYV')VMN1eR\m3;Y!#EBCD&JZl
%>5qD)(YP64Z[nN.I7KDUF;2>e?]W0dCR"T;3Z$/MW_&@J1FU<^lH+^LNQ"pM\:f7SN_uJh-uqASBA>I89FPqS-cuK[%%6(Z\W,Ve
%NtFbUa?7:qKY&MI;I'C842r`ta5ul$2)3SPL.NQJ]8:j#PU8-JYg@ED$^7Z.e5=:9BfL/[ZZ[2]`RZ#mlt1f68NKLD3jUTE-#;XV
%h@d3l$lnB)/M@Z<3kNe$-&*.L7P`jUi!3_oA8B%-68urN4?$]a7Q36Id\MtV'57Q_D),YlAI8ecgR"R+'!hjV-"_XWOR,D]&)j(G
%f/<&W$4]Es`IS/E;We_>cjM[D8Mf1+m&.sh8aqNkJJ<5="tNA<N`$*]Sg@pnobjCS!Ch*bH%AiuFB"Ai2<t7VILaiPoo(h:h.2!j
%j0).l=@9@4MA8M^F)t.09Z/q]D@V,A04LZd.&a>mb\KSHWPTe.5Z/R`#+(NSj"OsG>0%pBUJ995i(CE249l#s0Opu]N\e`@Hj5bS
%#;5OK*W7h66IRpN(E.g\Nm^BEU.>^.-la8rIe8e"f-c>JFV+tS<+1mDD=qj+Ka$0/^)+<hFjWjt,^&0I5d>t&,?>>:+:cZH&4Rg7
%r`K&NAaD]Ja_\qL%3#aY3uOn<J/]k@jMSPLJIo'M-7OQnNhq@?SrDfa25K#Xn&/)'=RNH./^-!gfQ&,hrSg:814C8F&d.e`ip^V@
%>>F+5jNWJn&dY:ph[ed]X/h.R1q)KFdM'D&NF9n<B!,5)Sup4N&VXCMBGK`fi6KOSAIArFKmJQc[N@HXF]&"r0Nc%+!N$2mS]M<d
%`=Z=nf<lN$)K72a!\IAkMO6r1l_8$LMItCl(N5*\jX'pW3CE9;&rEnf-$K&E,695+'.gL2n^K:]6#d>S[PburK2a_;$G6[jNAqWW
%7_`$u^"i<X5O'.,La#pQ6d5psbJK`)p0!Jc8=)d)@dIH"CHIZI!YLJ486P/3_HN$]WM4p17A??dR-Zis<+X6a=qoDp@:^OYDqISd
%KT_u\4eX,^"*RS0O<WY\HOY[<eO%&\A_Af@3^m]a:7r&p5V+(mH7;^MG9'W6;K#SePRW7c+*5h;6'mCk.:jbLJ\W"hfUce\-7j1'
%R7YSciY;(:cB8C#amk?M0W/qccBO<IR0V=e*T8>M\V]5Hc(^-9Iq1-lKk1*1+s(me_M`!*!AZ's\uoI8*/>DGf7`m6(0kSfBX_K*
%gieLRO8e3k)]7HeG-/SIa"g?&;pPcHmRc3PFkr9a%s:$Z-+,CtrG>+XAZt..`(aL_NN(e(Guf,9C'"o_n^t+r+!#R%"KEg;LsR+c
%X>2#[R^)WX(4g=qe7_<r$2+p!SYtrOXiLr1&ZXY:Oh=MY]i\QO8CPmA<t%hQ`I-m<5o;s?V!o?UPppf#AD_%#:+RZFJI4Qtbb]*]
%aX-6rI.l024iVO9lk"o%6jTrcO9D%2JPbU=:>%chd^,!d8[C?JL1m&\LlI-T1icK-Z_;fc#:1/fMFq<--H)l1@Waf!1uMIa4:E!/
%7R5jQ%FujmE=RdM<@'LQY.9Aa^4HCKVDOdNF@1>fD(?D8o1![D_[;.<N]cVWW_H#HDI`r=hW8Wce@)l3QF?+#N)%M\DN))7be>Ml
%"'g"8lXG^$98;MLTk7kmCRhCqSS]q"nB_fA*GP$ajk\"\R85TKk[pArgk;GZ4#-K;ChX-f8Ms.!jUN(*f5ee9_=NioYq\9q7pp;d
%.$lj,D2WUi\iF?Wba%*la5(!iR/QF-kbMj@5Goj6DWq#V]'eeEE-!#(HmMQ%.25j-f9fiP+bqmEp;BaCnsZs=1;)r%]<LjNcK^Bb
%Na=;<F+'>%B`<%Ig3<TTG0"3e.9_PT9O0Wc=`&pV1Fgrr%tgD+5]M`LfkEgI9JN]hks?pF`["6%bU,$XD(K#@U,'#2KK:UZ1ebC!
%%Z;1$>9cAM5=<Ft?^8ZB_rUYkl6<:FO=eZ,A&C/I\Q)BGE5ZP#$4*b!Hj[to;hH7J+YcU1b-Jhik&q6V=j]uBZ?r959h%qF,eu)X
%5'^A+\"gqJ7NWKQYG^St/3=gH:c;?1KnYQ`\sA2TiKCE$84I`%`9]5+cFS"hfs37C&BHY_Kj/Q`"jE]dm#kZ[Qk^uT)7X!rb_fON
%MUd_<P/%1)AgX[M6n?YQR5H*I]pKV*#4NZLfd>3mXH[&/D0/>l)*W^i2S.t</i*iJi>ar$#]*_)d7k&D"H@5-.[(SCi[7['8%CI&
%il#duB%t628l-"Cdi_8']`Sq(FWFtPh7OK*P-Q'%-8D7!mF,*g\\fGD9Hf/97Qn?#O)4__gCO$oZ3-BV-SKbX7'_(Y,6N5-PIJ&>
%*Fp0WFs31Ppk1UJg(;\eY^KQ/1$6?ENu4?C":0_rpO$u$<REebIa!3Xh*%oE7!^b-<$RU"_CT_<PPGFOd&N"/cqt1K&Vtgs\7).s
%o702_UMe9^lMJF`iD(5Go0;!uU)T8*"mYt,M_</Y`!8=4QA_G;d"!#nRH?GBSlh.<!i,#"6n_iAQNW!^`UGLGTY3Kkd"Y7/Z]!'"
%6GEI]5"WT17#1,U)W=&Y0OVJ:%bY6p=n5Q!3=_DLJ3sXAnU%54EBsMB4G<f=*E.cG=@3BKrF:>^_"3Q+5N\j;BXuM9QI4P6K1IGt
%d,^1Q$_9_#6fT1`6T(R^4[j<T2_UD!C4u>;(s'M1[-+\=Vua*\!8N)PON@XP!XaZ)>Fu->M@,Zd+\3L]A347\VI4CQRCY^qHX%S.
%;N/(=c*2dDs3QliS&H_K*+_Yt_iY[JdLi7M,#^fL/cO3DlV:DFq'HZ1'EUou(fA@Zn^7m$r9363qY1'X1Mh(iOU7$SS%M:'9Xr7c
%$M6_:KI02jL#b;]2\.tsQ1]^aQND78't5iT<om85*ER82BeG<',0Y%(lC_Qagjk?l>['Wj1r#V4a.?r7rEuiA1,6Z]Q5_Q45m_7p
%"$7T>Fp:(uq=4s<R<W,49<UeIPA;K7c[8/Yf3tjGF#nOSJ[$LgMe0=K`_08Z<mIDYeaRsGg!_6BN[,:R'9k0!G\Xf*7I`XW31%0*
%XKuRqc6Ip<:E(;EC.DASC^r$E7LWZs7-8a!"ptF30!NuZ;MU@0SW856qha&UnJ3a_6&tM@&JJ8GYM52mD]Z4hY(W8&69F,i88M!T
%?&BXaN&ZBj)3$=ZQ;</+*-RCG0=:N"I^QmB?8R;]WUJ%?c/(j4CmR%2HDk"^H;b&N-q<kH97b<J&G\.a7J#"Ef\QqJZu&uF,t;B2
%,_MI.\YP"HJ8DPpd8`3t6]V@jSu[/@ghoCp$X,q2Y6FmkCcX#m/],o2><Z>q?/DcjKeQDr:K>)icS++W&^t::2oHMRYh2gj!%;1`
%=k)]1.=Vt7Zo.A%N&</U)`'+#`ilIh@c[I)PK72n3I5,SHs^i\Ad.h)Mq'Tn5;^Flk]Z,Kb[lilC7+fojKBO8XC+jMS+KF>ZGZ8Z
%7@LFU752XihSm(I86"'0=W5Qh%D2D.6n_<P6oA#.!(>l\<rY5'N'b3>_e;@KHD6IVlLFY*#`U[c7[#-U71kaG<$Z:!BSoQ?_E+XZ
%h.KOG=Q0FfbQHL4;.$8Q.*>G$8Pli13g'LO)rRJI4THkHn5+-SV3Sbu2q1)[_m-3f<5VqcD2*Y%a9bjdX&kWE=?'*X'sUUOBSfdm
%REJq&i!G>fXI"V*iJER??6I7sZ6NL;N!AO&r4te<0oLWsB8i`FP>'VG$U^#%*UQ#OD7m8l=9B3@#CTl%$#>W5`BrnhaHZ`+)P\fP
%,oq?k>AA,EJZOPEF`?B2"8er]_/Sqa7(jp:GB(FD>J+X,SN]Osd,hZO<J?:XJFLji"IG(-1ur=7XPc`.M.*>aA'&bDW9?=*B`1oe
%N3<2P-%Z[h+W2##3K0pi];uQqZY32DH)rF#[%dE.0S27kU\YS\V+L15:K!=;r%8IZD\mGmUsogG"PHdlAAcX"GPEAL2Q,G!+%u6c
%)A=gD%?9.X6qiGPDbJZ<*1dS+i`Qra]p]>f%+.q`NiFW^2j=;8DX8Z!DNC"l]]Z'kP\7O)-s?"P-i9T>:f-pAe^&uT0=#mq5=Go_
%d9(..*sZ^:JI::E='rF),t#Wq77:Vp6(aC7Sg)KL.B&JEW23g^.$u"`MBkU5&OT:u?1&`$JQVMV+^>#5'Pd[idT;+]>9Gi@%a$Jq
%:tI!M=KV2[WsXg(`.9LM<=<0H3='mtN(O[a$!.^KGa"6TU;):3?4_9&G%sbH_Ai_g%%mI-?RYoF\l*e>P9%7TN0Hi+;)6Ot?1QJ'
%Lb0+b'0D&63&%pn40eKEjDZA0WKG-W1qKbd^lZ[C_&4isPVj]NcQ[g;T"A$j1r'='j@(UlH*l"09L'H4:e'cO'79)A[F]/@l^5&W
%Uc&QK@q.9;,.MSHE28&@&VT;i;r^+t\S7X>VTB>*`^P\$+:CJ%9JdJR.ijjn\u>DM?qS:,.>BFRjMlk:Ad4`FVV*<n@:4(c%Qm]g
%JkBE0,]6GsiM\0b(MaR^g<rCo]rkVi6bX-'WT;1T#3>$lYm4.]7FmG!7cb2*'(U]'AM`H&<'_g6cVm*8^ea_loHWBX25W,t[n;r/
%KVE"P$[h;Te3M#nA1Tm#",e'E09VecjlYSR)q5-"1+1KZ'i>[I=<sQB\1iZ23]t9*)*3OJck7BE*HW.YC,ci76fVV7oo@j1nQ'5>
%U?#KP#7>'lP?U0b&kP>e,DdZ!]Xj%V*em3B(df.'6Qlm7X^FP-r6#k7@BBit4q_.HCsXpag]Y7HU7teQ";`ku`#,&J>?=85'1iIJ
%f7[Xj4Un<D"AMhA;P58Q1(<j>W[e`(.ZQu@MDb<aYG&048Sl'f,\+W(FX"G3?m]h:l2YZ-Ztdfj;%`1L>sV6fVEcQr%;[2J'"sRi
%la[q2;Za@ME@<EQB<W8(>3+Em9,_[?ZmV,`'EpV,'R!YSICt(ts+S=fgZ0n81.CcMbZpPTa/5OZY9-B,:ia!UF$^:B'T5XiPP1-f
%$HZ@c,jM)-]-oNI34*D<P&;nZ]L_BBPYJJ\/KJL9e53>!W/YpgJZlY+$52UGl:B?/Ehs//nNdqi+BP^B\AqDdmZCq$m6I25;,OBa
%3QhdjAuhc;.)!a@)D?nuW47il%?8V7,nqtie`82Jd8Fe32:._CZ$6AU=.c\<[P?WG,QWl^>aUMfe4?](6F"0mnNI1R%T;I2$ACJi
%X(A"k:r[Pl4CLj((=nV1#n'@A;&pE5qXcb'W4"?fQe=[L;$.MsIu5'S79UBC&.,G`,7/6N0B-3MaC6kP/%L;mF^D5\W>!-9*_W=J
%k[GM$)<%"!?.>,m!e$'+NV8Wb6D3CEh'JdlcL-5X8I<KY$"m"R1(J3E6\&$k"GI=BTg(7Bei.U<.H2jN*[80@CL8'm#A(hk^nDGr
%Z8"dr_o'REJ/V/Rg*U<idVgHdW(DdnoS6[?/_fE9DeKI*,tj$pL"kQ\LpIafY\jbP6)irpH6_h$5iQKeQrOeh1bcC68+*YsQ<=8o
%>%h99OgZ^;MFo;<4cR^QCqU4gZsbDX[RqoLl%8Y75B=sXi4(M?6IUHP87Hj.D%*MjL)#O0U@,?B*`lklR66D9&5jQl^-de^:J!*a
%K4W9-Lr;X&I1\4j6D8MA6orFRX0dDO[`#408JH-CajNeH'H@DuMrg+_\Ai.gknAI,P"=Tl#rA<1Z4WSi\6N%^K95[R$&UH08>I.I
%p>Vr4kaJ"^(oWmTqZ.'3FMPgqDh(J_!B^tHDq,Xf!7-OY\4AB[al4496;;h`H8_M*#]ku#\,%4_`%;<,l`88qTRqC;61?Kq\grAV
%,SP2KUNEh_&kdIFBp7-d`FFH9=^1#6Ko;0bTCn1t[,ia?j_4'e6j_G4Ok1eg.Pg^C5qLX^j:"DmD8d,5?3q5Jl=VEKce-QC8e-)=
%_AO+eZU-,Y$0d#/.5XU^,l@s;[A$;?C.aSg.qDFuWD1Oo1!`Fae(H`._AAb(7mhJF3>'FQKE81VP]B1O8a7625Wh5!gm-ro7m>$m
%%jt`16tH&p-PjH^<FEe3#SkGG0_A&OF0Y"(P][fj6r$.:r>h:i]3[%sM.Ef1<Q(hPiC52sU\"t^!`tcs>GE9%Ni-LAT(0Zc9oL<j
%EWZcWWj[bK$:K=8RjRh5MT.b9>/F!mJQ'QVZ63%C$@:#R@Pk)m/AeuC#M2E9fddDp9<PJGi.*)0adU@9/Rapc'[EZDcsB_jBLmq)
%aZWt7*Cna,8ahZu+XY(iTl/;bUNAG:1pqtsTT5!:1nk?6'm/!uVX<\LL<^`2o8Z@jFUCL\q(RnM0Hq08c-R8r6FG]@F:K=N=fd57
%VQ%OGRl8_o=-e,)P")G((adF@-Hj2ZK61Xmj('(rA/P,UF=^cCf_I#*+uQjMJJFq*_b[6$Y0[4rQ%/uhOR,f]!Ja.FmY`e<^*d&T
%4I4h87A*'-)T0VIE4IACEg!Xo^'NMB8Q:AS.#Pi5gqSS7O].1?KrcPB3?=r<ZU\AJa&*:*E?W70P&):U_KCYkTLF>UqON_-6:o.2
%DUo[4GE%X5XIda=j>SOdPG#,(-3DHS"A-PW-JO/H,D@\$#+g-G-r7?T2t3%>[:6FQGC;C*j:0:0cu:J9<%8o1o4(mm,l@nZl&/\u
%f[XR@7G*2I;hU;[ChX[/-m2Z%S7[nEk+E$F=bIf'e=UEa:5hAS_n]dtZ'679*+Su*%t*pT_ZqLm=0+-d:roI6Zsm(];^#j%$YJD>
%L7!^3H*LskOGbnMAWk%[9D51q(UF&C._$d*(/eK4WZYjkLNJG@_t6P\9jPIEc!DUN-"7QaF"]P)@`D1r$pqZPH5sU\M79E,@?M$c
%`3T3%<lbp<4^Jd!82?c=QinUiY:ltAL'-AGHF%uC$&m^lc,c2s1s&7tJP9cMVVEIb7`.qkUh+"=1r=G^WFAE.+<kbT&:HNP&UZN2
%JLh,Y:m9jql4;^P@QDp88<p7c]VU@#,mCno>(mig5lBtYKHUm@#[dX4H"s0bkTdK4Xd/%$B\$/JZtJV\RrtBeqBK3SR\<l$d_Q]X
%k<cMp[TU3mK?MgLB5*@31sCsK-0j\&X`]AI>A'.MU'H!G[U"m&M@'Y_=D!?OO*^@qDD/0S#U:pj0&mQg!2H;3q`.QuJ'WrC9WgG.
%EE2d)`l[#='fft:jN.1+`)6.D?Y+sHE3CZ+ZRc/7H>nW;5c1ADP>sp^d]LWG+[^sb+l+mgc5EYH9Jn_h3E,15V&aL*UN6N?3qjE4
%q$'9:+X)'<-Eg5\%@[9BZ$HY22iEAm?NSJc&Xad7PYN>2,[k-r)S(a#_<)`Ba2kgrCM5aV@S*u(@:CVr?K=aO\hK3o`M'*81<R$N
%b&&7-5(^.PSut/./>3@IR\fD_r0akd-9;&cdp\!\^P.-06'kD%(h@>e6A`nOF$N(och@O$=es_P0q<4"n=ktlib>7#!-B9AdRcRr
%^_FhU39E>^$-OT^btou=An=]fNlnCZ)+XBZ5"M)>Af=re)//S+Hk?OFd=;Qtd6ZG%Oq.9Q8td7b&mgfc[jip]bL$$UbRpV+RC54$
%rim[l%Z=VP+q@(PR@*F[:f<HgH&59G@X/o&VqBHAh\KuQW\=b.8C=e8]85]:,`>s7oHVIC#ko$\J?Anidp6Tc/NqK:SQqAiZLhPY
%9W$Al9>?dhMrW!E#1LKR]-1*Fb"YIe3m*'4)O"\d0_'i'8FBiJd)T',mL6FI)02U6I?Q[?;E;X>5L[h@_^0i&aE/QGE](pY9@-=3
%V@u>']0hm""HObUOWr99,/ZR]KIh"]k/_ZAaDql$8O/S/8Z(fFPF%06OR:KEjSj2&WHR8PPNc,3jaq!:&2stDa34X/-R&cPEg>(+
%S-kM+U0-g#3@mB0#"e`"e9o='kj*$Z1MVN%-$"9kD3G^^U:V;Cb4&H(OIoYIa<@GiiBkRt>sK$94VAE9('rp%+_egaI$#jm\5Wn2
%C8i^@`Au56Mpt-P><!mZeibtCh&l27&*4-eF<V?5?OY*'HPnEPdhts#cAUn>.](O60-F\6&8Eh(FLu'T(E2nB"$S6(pe5a^/@coE
%>.>k9;L9&o$KKp%np7`(PWP<U/_)lHg#QfjddF(TmjOlXhe9"!Sc;9@96PY!"MB2Vj(Sgg_fe).4H&oqT=^2;?@3I-4ukAu/M-%Q
%r+D78;$\8l)]noiFf\qG4n$QijL=;g+RN%HPDAT(a4m6@T:>k+9BpT!a)YIX\'4bkX,!5DR0=^S'?hC*a=Vu57ZHnto_4BCn'-XX
%`WMABs1IE>a8C4*hg+hSdBo"L_%9<C8.("Rn=>'L6M\o2Zp;>5nLN]/;SY&TR?686ct3T?6Etdo]I!&Q1iMWQq00]"nbg#_HRF:Z
%c!S$f.kG:o%AYRVo7fMsL1Q[$d,=@r14Ru?"W^5P/76!HmQ25d\81%dr*:XV."QD`g9G/hJ.+(t$O4gK(p=0*!uJ=l]mqY<Gjhql
%.m"NK>/'47jbm0s^%hRAM]]S:^.TNq0DpJiGQ`0W-"*(s\R=)'CllHVL2hC`0k^ku#gOFpQ5K_o!!2Z;]h9DQ\`BkCQThuql!sH>
%?*jCQ[J/SSp]G`BUG)NIIR52?H=YRSL[QNs("0]#9YfBc`p3UY%2uSX.g9lH:k1>-$NP2pi`-qJgrY'H#jWSFCZ@e*3Zh\:l)btq
%+6hGSBLg[LbI\k6DqALB[m%BNb9J%sBZ!3\eiei)k#UC8-p\3b65M=u!$_mS`WH=TUE3-B!1e#11ha*kYTmNo!MWR7!XiBMoKG,T
%>6kc?_9+@=fA>nr^"[s_KthLoY^T$NrZ:uT^d!Ho/%io(^sd/2])c#cFP4ZhQ`VW++2)SAoEB;\pRM\#,VUJj33rT==h$;%LjKNu
%m9$mpmR=?FDdBmV&WC+Kg"r*"OYe2P!-1lBiLY;S]fS:Dh7;e,?(4p`hQh1JQBb6^=[c]qp[69Vi=XQ?8Dt;.f3WO-[H?oFgi?NV
%c#;tL0Q[!E$!VQ6Z:-In0IdoGRonBpR1()eguA01]8o40XT?TJp]IQ!PDnG$+]rDH#`sBM&/[2iZ#s&Bf;cO?X7g\n[t!.\IF`fO
%m+(Sg8DaO#lFq-0_5"\LX.]%/9e3\k]JngRV6<\<$GaO.Xab:-i!Ed$9Ju1$Keirf%38+Sm'Yp`g2^=RfFb>u!#fqab641:@t89+
%E1Y^n'#rVZ]ug<V+<5Fi5O@6V`4`qC]Dni0^p2D`W/'JiCkT(&CDBMH/FJNmpMTH<0@(8Yi?&%TbTU@"i$p9%Cj^l3l##'"J.$&X
%!'44AfP@_=#dgFh'/ja*<J0^IbJ7r_6F[/s!sm1e(c.*j`]k"sE'/C7Gkg3RnA1;#IL#,\s+YQmdn]t\]=`a-#Z2J!iFgKf<D_O>
%JA[gnb:NreKu!a`"1m;8J.9+$?@`oDMc`a$_0!M""41GB!GGblORD.Q"#b&SGRm.H#hEW3B`/(cn_aG&j])0)C%uRqkY17L5G<Id
%!/(M=m+`-?p3,<uWt.1o$UMCk6,R;CdKkU/bak=!\nb@If`>gij:l8/XMRX3`9!JDb6Og[0GE"ITS#hr<O:9_oaBBp7Y;lS8738g
%<*6X2K'j>j[H!se4!&h`^,tims$!dL@434V+$)^2#H3R-FWmaC[0$CH3`o<GDa\F9I\$ZjLKT=:&).5q+WS!_B4_4<_,#:f?AEt'
%aNC>E9X[.5!MBHu9L&S0bm#p"cAW!00Z<&t!"gW6NWCu`dFt^WI1#EurA4s=FF^iN%g.IqcmGCje:[i&$GeV'4pSM,YY7_]B*9?=
%(EcO>VP"Ng.j4fk*Lp&_.PaTQV;L+?=]4Q6=:4@"3-gh*1sdCXH8si2gAig,6*i7T1iM"M1^3)hOJ"D.%MJp0#joOJ_DVNH#8@\D
%r+8:L#(Ur2!<NF8$?dM-4ZJ(ER-`O[bJ\Lo8NMg4N[AR7TrTg-M,8@>J!$r<&&QCrqu?o5cK(+Jq\:j1+g_52%UKB>7l6lE%0(k/
%TH#GsCr;P>2@0\(HRD6#_"e2MAIG1DBF:+6QsT.2\dtYY(?c;M?2t6F!`1RAR!`3AhNa&)N+5P&@+?+C@,u%c?nZkKbVB+7/A\qp
%!VS9B%O8b,,"dBdcmd0d:iE#f^cT@<@@T%*#(CDm!.fg?!<El=)M+bn`o(5+E"Md)nA9/dYSpSoq6$)=m0UWd-ETrin@WgCdp&ls
%>6#HNA9[Fs%0/^J-Zp6C(BFpcJ9%#?+JcdR_FXbQKQ/W55B$O;!JEq8.@;iW2cr9!'I!0#";!!92I&WMLPH3EiSh=CaOZ3[M6XXQ
%%Xn,9%m,;i([en^QmHeq:Tr^!\eQJO$ss#(2us;%6=jO\kU7\Vq'_a:J/ndN_olEf0Q/Z:4KITM"*gLNO/G]a/QSYX&YZIW=Du0r
%3k]C>G8bp(Q6(=+9e1KB,^WA6:"[+o&ae8W$;_Y$6=:Va5O1*+>ZhR[bT?*PVAN"i)Z[g7^cK"KUtJTlZfs-khG)(4o$MtmR@ZKp
%D4j=nj+aM]TE5BpTaP8@q5f>jk]HsZaT-3%!!<B9M'6b(Qtg0+n-U<4SN>,R-_YJ=R0(ETcW9l4Z5W3MZ&qN'Q9VN7*qTr3!pTmR
%$YMWXbO0/8R;$:;&*V"Te3/Tm)=U^3"Q-Y+9HF(ZK>>=,1fkj2*t`F*GVE[G/7Cqn#Z@hSgP#cfaVq6$oZ.%'=V#oZR[GicD#n=P
%k4rQOB_b]p"c(]fNr-!?:;g+c%o*$)rS0n^$#0'o-%J3gjQ>6C_SF6/"7kgi%/A&j+Fntc1M(0q"jg(C^>nk7=[pTDMV-sS]/M*)
%8tQLRd,ZicSQ>KsE]BY`krPt'`biR,mF`tj;6R8pco#/k#XDp4*hN`p1Goniefl%8CV_%]8G:L5Yt$`JO&?1P"?b6Wi/nNQEc0kB
%q(bK:%6)QHP.):"XgY;Uj/QPf@-nFa6IW@VJA<<mFO-*bm4gEGSqD"/pNF_cmpPGKQKCN_g`m?$fe^;>d7WqoE%mTUBDJ9q*4UQ^
%Y"lKP%?.uPo@P_S$(r^($6O#PR:ui__^gG)JOs>]5CHWYF=F68d)#Kkn1o$q+3>Ob^Ln7`F7A!Sh\;$(Iul9\FK)`RmN"Q'RK8qI
%R:uu#n=n+":$+-VM,l;N+DSY(8cWp?jr$41,rPJ,T%f[gQ->R:4dGjNN-pVZMZupdlM0;OR)+CW(PiK)-l>3XAnD0RMV3`-TJ^DH
%\S-%cij/W8"l]W*c9/mVL2PV\:XtLjoDA/tq*)2*J+AJh&f?nl&2T@p.@mK_^&l^:nn?'I,VlZW1BfI\>lnaLV^aC<cn]V[F<$[M
%8&oVd(nXglbi%7RiZ]"oBDB=\+JEDU*#[AQ_XPA/"#e/&F#R?$fA(l="%5RjMP>27`!c#@\aV3TAd5K(R:4a,4$36RT.j5lYCZKS
%9Z,DK+`q<.@<)?;+ZOMlb.cUrbS'D!E:j3i!o!Y+I7n!nZN?5,oI@.KK`W.M**?a6^*Y+001+*L+Qr(kh#5fFAi"=Sa=p87*\fSZ
%"+Xe[7_ou4Le(#PkW(U)!*LYtZ"*m>l`^g!).4&g+'T5](X]&uBR#-!+^Va60Ugh,Hfe[=5pf3]W93N_$HVIT!YB;Wn.R\i:j?BV
%@230%g-5i"U/Kmf6qC`*!ZF0n;Dm+Yp=d-0SJJ1krJef.J,/N$q3PILPD.:YF6hoI&%3V]#kJJ2SQh)Zhg7GHfks<1T*CD=U'hd1
%$45ggb88!'!Aap]0UP#5$3>ZB^_o?AlD6,2\)2]h?]IZ.r4k%Q]FgG2J0#^BE&@.jK_^E#i8U.,#l)VG$F_T3)VsloSel@8#&4>n
%W"BXtpGIJ.'I^4+HT#5ZSXN0HqKuW95nq!K%LA^3E,rX7jjO#s4d";M9qgsV"&Q6:L"dla#>tXdgZ&h"$.hind>Xnt-jR^B[!qJY
%&RWu-fI/N2cO,R^.+8A5C?=B(=9dslPQC!#Cqp2l>/D]g9X%Jf9j59E`K8Q.Hn=PO<Ht!52r]atR>X<%&oU>)-]I$3<J$jE#&VB+
%l*8_Dn9#=O-c2Z6N%g#mO"T=U6ff?S0lPp8<J7:ZI2%JbW^.^O*U"tT^,m,bIPr^^S"Z<t&RhD7gk@GfAe6BCj.s@WV'kLjq:g2T
%^8=V<+*rLPTL\5?Od/RJ%&CjK0SL:S/HBo*(G3Ei+'Q9\[=i'&Yse9R2uO,t4G7k`9;(2>g9<qX+$eCd1Q8EPL1Xk$Zdf(\:uJfm
%iQ@Y]KpK7W1n2$k+nQ/U:MWPM-@cOZZ4Xr_['*$RNP&+qmVXIV4Y<8N(8qsu;o=u)a;Bi@PYp+.s3:k*k)%L>Ho9?A+`s+P^*R?G
%<bDtg/&(WES$G.m@?3>NJ?<3q"SPlGVuB?j>rsacn^"Sh]m7G1+1*s7][mJ;\'4#9YJUhJgl]FZc(^%Vk.t[or\:JI[#+VMk:]rI
%E7(E!M\e$MZuA<`P'/0H/7,u"l(*#MlWAW1h01O@\81><3&IOIl])`TgqD^=Q)dqMnBbA]H/u(<5B,LC*PbsfBIfL.q$SsIGVo0i
%qTd>kgMGX0g9g:1eLU&m1r$#hL-]?-Z),WaK6ZRNhS)?INZ?cf-eQ$(JJCfo2@KuITf,RPpTD04Z&'iS%idcViq/ENo#6aS7PEqs
%m,)Z^?/;cqITUg<>Hhe_S]d=g5s2S&Z\d)7k9o-[*WPd/rn0BinU9:t/Y(J,ooXTe/k@pDa8CWam^dc,r=;&S>DlEg3F8*+`&liO
%mXP0[msjRh+8Lap?[g=Zf*_Jm])1o!3%mFlKhIc9H>(RC0&)G+.LmO@3-k@*7MA#VnXog1Vgn^'s3bOEqof$.CEIr/p>hf>%s0?p
%2)T<gP3&_dgZ7eXGBi$[9gu$ZS\3P/`%V/5YC?Jcr;(pAbqK'Ws7+urrNi^+k][L/F[*NdEAI!,bZf2@WlMPc5C!%XO`HGYih+!O
%?iHPhA2Ni2^\d-mp%s7.7t:*Es5X^*oGaFunK/T.@R"mW\u>j+mXAiup7iEShsp[6r)Z,R5%rn&5OmIRA2WnTJ+hF-pri^/=+C0-
%J,L15oNT*$Z$23Ko,bMVao#+:GHP32*kXK."$c_+:O_ll_GpHUJ,J)Ob&$'U^\5(=J)_JtpNM,]NPG:q0E'U#^\dhj_4#^L:!HnP
%m/Du+:KN#'"/#A4YC-<WeA@ROkO2t>n]eiKqnN.9r-\*O?i=@3j_+S;jQZI0PppO:\#A>\Xh>PNT-+'N0E:leIJNVV.fSe\Z^^a)
%o_HOWr4i:$NPGDi?iTbFY+==Xrk:Hg;g6GiI.pjS*PD$X0E8Xks3`"ffjEZ:r9`+MT%SdGTW.t_#QOJ[hu=]5p2mIOCS>HWro1O3
%EVc=)_2nML0E0p;r6<iuKiUp8cTh?`?iAAjrqi&]Btef_"3V+56;oBUFcVNqo-aRun,2G-I,jZi$X$1L:&XaWI.<OeoR4]mY(mW0
%Q);_(iho!7V*G"62lCI8Jaf.Yo=oePZQK!U,DWD1/oPE<T_trgr7[M;r+gf><_Lfhhu;<trl:)5Gbs:hi@$VWQo@jXVS;p"G+8@*
%YPn9`554Ss;*O,+]#'Psff&NR0E9`RIVAYhT1dOZQ;)f+X8hcUII^`G#K%7ecaKgfpq8"rT3YB`kW[au1=1GM9kC*sCn&R4pXqE8
%d/D>""Pm_FeDL8Ymh!(.8Fe=$6?N7XNrqsKU&42G!d&onA\`ZZqO@?HQTtN!miF]Ug,ZKVMK[:[WhjpbXIEt]3O<NOCZipQWTK`r
%<0WkeQ\n+.Y]KeJ_p0t>R;':)&^u/9kPXidJ*G"gG<!!Ob_br]?i=7iEU_aukOZs%s4&3@nWuK<".'O9H['hI.Hfo[(I.cLhtj+_
%p_u2Rg\H6aDu][7?hqrRr9t5U*.ft:Fq1+hO'%0-^AjJEr5P*&kYM6VX6k?7r(m@^GJEY9?M`MO#IgOu>."4dY5S1bHI$B!rJf_2
%h(O2e^!E$okDR+S++F&V^@U%V>mT@/b'lIWC!W!N(LMLU1S=Wrci%$oT?mK$B0Z"A#CiuSjR*]m3H*k^pT4i"$eJ^4cRU+9peQ=4
%^!BK&r1gGPEOL'B=F/:<>Bc\fe@t8G?[V%KgAS\U`U@a)[p]S)<j/oSpHP&f\M@3g[.c#1>o@@f"X("^idnLAK0B)B+$DO/mcW6M
%_p*Ch46A3-F2dE7enkKFhfW5.SIa4k12]d0baZ@\Bu`C24n.qcO2C(bG!9$uOc4W,['alCd_"GW\7-eWbhFH!i8F;upXkm]ZL>Hg
%8i_OM<&a>/B)9VcjT^+`YMW\.`jdH<:EJR60(<'h\/ah=F$8QR\@jp#q8j*uikM,Pkt(c_#4EUfT?lVhg^>,80e8msBc,JQOp(.d
%4?K;$@9VGn=,\:j?&Yo;0A0^kXt'5S]EnMeTA=[?`t4!4):*299_/m*fQ%=W(-<:dLteEt@'!AcHR0%j6rA%\0V'"nI8$7[ajHbc
%N#sG7#FH3o+s_mY#Nm"h\FZs?9!Tl^"3G$NWPW4*b^Z4A9WT:l_1f-L0iGCcToHn[>`*[eRm>M-/*s^W\q23k[2*/Q%B8;aaCG_T
%D>A@>H7cF$Y6DXp9W+82?'MVF%4SOu`gh'/TbD$ETI>i_<L_HJE!1;Y/V/U6BB4rEma1[&e>l0b07;<1,S-+Q>+,n#U?23%;cf+b
%P308AJ0q7/A\Q1PQ"]2U&t'T4(k:6Rof!XTS>8O\@L\Kj'I9BV9i:j^'\t^L01\.uPG8&r,&KgWCt"Cn8D4B5UAi.VD+=pQduGkJ
%g51uerl-.!7g`MMN[Z[L"E%,ehcM/kBS!)K,R$b$@8bV4=JW-SN=CY;isG[]nK^OAptBWd1b%omJ^YP#-Rk4%[(o@_;NO9Y[@>_t
%.?\k]^`YsA?ioOq<[7U>MRXZY0Sl,H8D8o`UAi.VD'u@@'rcd1TPnRp8NRbA3RgGmZ*,#g--W;t]5ajh&.gE!0fh@NQ?=1hf7OYg
%!tP;P'5#%?8Ac&f7K&37$B#TDYaC"FpT10h^Tg=,c)P\A<R@tje)N_LA@WEI%`?Xb&5o,ub=N7Jb5ILMj<X$&:J!UG<eRFQ.%2:i
%5);qu5Ud"6fQ8^L]Ak#5C+hR\.8,4,Vn*8"G_gE%qVC(#AUJm4I(:j2*cjFm?=o'+GT>Mmi[gg$-sV`\_&:ea.!PgAM<UMj/fa#9
%iuC[b-:Sdm,ZWH?q4HnP;h^>ZEA8baCtXt$a#(l2ln,iPF&T%%Vg+l6\d:p,<pLn^FR1"LY-7G=\XX`l%d,HGo>@?Bo#)kIHl-?]
%_(M3*LP70R>nc`=s4ht3UW^Xs=EmqXUf-IX0f91M_6Q%%J-UEYnq<r$JA8WBa7qe.=UX"-;3:Gp-<-WLNr`j8^rh!)<54p^O#jZB
%ijS^<4,0pBR$"&b`=,M0Y@7,+U,*C830*722MUHpn8+&%)0:&Q]puKHmp9VFq8c:]H`Xpap85k/6q0/5,c?*UKksV<CdcN"8d(F/
%762tmS$\V6'P'j/O>ctKWnfLfYu*<=btjEQ)/-Ua!@cQ64li`-XUD#]`QV"]YgaMa'GGQ'1,WGY`gF,PoeC$EK`T[*b[l<pTn@oY
%,p]]?=`hMuf+'r32p<bp_3-C//tD_]-D;_P*+1U:N,K47$0Q#]JQoaj"\PiH:60ocGfE\3=[Z4"P:AH)Lhpe`8_@kEYe?0F:,chb
%_7PLDGU\THqbpuYcl#@O[-5LDj=]NOB&R>jqb1a4&_H#,Vi10RL_G5A"SurK\)437Ds@=7,e80;3gt3[fAB5j^#-J_VX=>*f5G37
%[sPmGq^q(/QM:B5%H)Eu[sNVb#B7<L>LNB_?/P)KgU?ipq#T94hIf"0gV(qdhV2c3L5^D$".7o3g[BHGen-l'R<G.Sg?cgA])g7;
%K9e7ZfVdLZJ+<)Vmp2MCq9NqprfWQ4G9&m25HlQB<O'JFZ@(c6#<2&iH05G3<QSQj7ro-BZ3i)K4FHL;l!M0ufjB!'U,>l/8<osj
%#0rIinXfLRfZ/L+=$HHJ9=l8+hWHIc)EB]pr606NGgC`opX7*2p<t,^Yn)6GA+(l@D7FdE5rA&5gl=bBNZC?*jW3f8s%BQ0qOrta
%p5pGDku45Sge5tc3IU.aN9u(5.GIPPYrF];]iaB+TD7JCI-=M$s88dDllFEC3WIp-r`%Epq!l8ZH#;.rC500Ea7m=AM-#2ho:LO"
%?)>F4I/;=LI<PA)LGk`Rq1E<$>4UU.J,M_>moA,OQ%sk]POBoLhkr^;?&(@W3WJZnkLZn>Z>fKPHf$o(hjk^XHhE.)R@:1:IINI#
%UqcEAb>5<EG5lQ\Y^69h;#$eMHL/?\]AE)34*E3j6ea`oA&%O$;\q[f_6XY*Tr(jDR(%VFn\FE7n+k%G)jdL3g@AP<r5Da@N.'cb
%X57&>@db7:Y?JU?s3]NqoLg8grSW'/R3`eFT7$TmhYi@>GdV_gr:dl'qY-R'3&YaTH[bDG^?<@en,Cg0"02iRb^]-Ka8YZ`I-*Bf
%i4o6WbHJSX`S^[6=5X&7pV-S%J,eu@^[fOnIK%-`Re'Q#J+X2aoVl3sm4Z3Qb0*$Hhr'3T>1Hl'j9*0l_=)X=k?n7\o4MjBIc2*W
%kNN#rq^4UqWX0gHi2>I2\FS[`>hJ[^:j_T[B0%,ZT_$#NY?]_mq8,en4-lnWAE/r9^0E-Tc-D*R%_ql#(K*+TptetE!9s,+T6f*"
%^&I9bIej3>$@`Kn4T4*?XO-i?^$"n-UaE2+H[k#;?3f81l$Y3.M?$':pFEG]rg=ib91/jkhtFccIf(QWo(!%Bs+-M$Jq)2*YPe1A
%rn>\_bS&;g+5?P^cqpDiKHL!tr[sFbkk,IY0h]GBH_8Fk21:5"hu3DpWC_]1bO!Xf^%ZsJTD*inQ&kn1YPdRMNi]=cH0&E2-p<(K
%H[h8EmsY4ks4qVmiW&o%+7<EsY.<bIi:*`;cfUjJqUE;8rZ".Hou"Q;f73c!]rU>Qe2Z>@DpaG4]Rbup$V.cL\dpajWr!k2a'SZA
%Dg^U>55OX+MsIGFQ`N@IcTgu!YIm#)0qYG_MV[b!NPG=FJ,$)%pua`*f@=-?iuOcharc-'K84$abe*VjLVE?(J,I?*IcWpemS-W`
%H2$rZi6,L-]0H9dSWf?sU!4Cgn<[M^b(k+7mT@1:$GQ>\^\ks,%D=E$F70!6q"!Ts:lDmB.pr+hqp2CDKBOoYQ?AdGnH85>D2P=N
%_]O?t>j&Bs,!1;-RN6f<Ed,c$($n&1GitN,oAA!c!J5OAo#:4c$@lqGc61m&+l6$l=43CSiQ4RL_?N(gYogn0I5**[Fu`nj>M5]&
%NAZksgb1-OgU8D(\EE[(<esl^".'Y>@g1A%pNI%GU5R51WD-&.Ce6\?#kQl4km2[ZnuKb)Eor!/l-'VpM7JTPCUJW?.)o6Ln+_nk
%4Yc1]%us<oBO"kflu5^@bkg]21'Ohc=#<i@rBq5k!nh3/7&X6i_ahbAbe4JY1&7rT3^g8&@5pr(@nO#m`EF?u6*$1GgP^/F&3PlX
%fNO7,>FUf0]YLf.D:t/A(DAa]3a+#1CoF%GEl5mN[8A3+:LfH,<Pgj$/o.Pn0Q:12N2__F2L(Hq2U8*D[+M8.#>u.:U/M#r^5g0s
%*B]SYP2)pO;-)Q#mLGu4fD[L5XqV)S1]V$F.3gAYH\!#C=Uq@"`)[%lVAVX)Co.5--Yg1D4*9IV\SZs4e^<sL>j'tW4b^c6fZD9(
%*p]\^@UrJL(mMcp8/=jU@<SA1o5$Gtg!aCs9NuNF#CoO%Am.a`Kp[]ZZlA;Mh*0N7f!Uq\ap8=pou1Ug`MQ)'<b3oL8!'>#e7_d'
%'=^rB2U)7tnC/enJ@1hh[D>mU/BNi7.r-"\GIoJ#+Z3o&SZRtlP$NjNclBC]U''Q;YtFgOm"bu#'O=un1PPIRNaq,E,iU2l99\l.
%^sI/A_F-n,cZ!HoR+ki9XGu;$k0*SD`G0:`3XgY.qH8h#p?##EdEC)<prI,7C7_G)9&"B(DL<XP&gq/C'NI*R\iMmOIXq+g9)4>!
%<;!4?9QEVWe5V>BI!fA\C;)NAgCCYd:!m@GXm]GQ9`o\MP[S,nW#dgmQ$Z$lV(9*m6?RB`W)Uui60mq@gcAEKP,^oEA^lBi\3,@[
%<st9o_pGum@/O)Ha/Q%I\M-'=os8qZcU+I-WTJa!<j#tlR@6a_dl09lgpSZ`bnp[6>).#T(iNW[$fGY)8amN?%=S'PPV9jP6_.N/
%#2?Xt+2>ODhgiGb%c$i>$$Q\mWFP_f0VlLVGeQLl_n1%1-9C=ZBo_+)*6(^Al"'B7^`L<3=u,F;9`d<u<n&jokCR&H#]<_50]0s2
%OL9RHD"SKt#.lIbAq]ldSGn;RYq7>>lLf%S(1Rr6ei8I.4UOk7m`(9.dg(M)WaR0h)`o)5A@lh^gc'C1E\>_$cnH0:-`fqcHXk+H
%F9"0,/uhD_cZ+@\T&HV[]FAA"!^e$!\5k*13jp%X='d<(&)[[SpD(lH@rPF.#"&MgDHdW*McYi5G[%@*Ljc$E!"N?9,T&,r\,r"7
%U1%u(.U05c)P"mdP0NKm2L=)HYDj<\2gBTP/mYIl-P-YT2US$A06Gc.gW$RX7^E/F_t-g%'.'*41_1%:<LGgL/6%/1*/95SY_FN`
%q,4B%EiCsJm'*Ak@jRZ"XW<Gkgs;65`pre`*4;0gd/dau=!oag@18S;HADK*)Q69aBu[]CX3&fP8A9^'`Za97CV^V0*Q8V:"BZiH
%'t^/t,S'd"TJ6)."[Gf-(HufdM$!t5Hu^&.<P4RNOmC)2V?YCV(=Elek!]RU2F?1-KP6a7hF`'<Ece#j-;4Sgeo]dTFMle(qLpBM
%"(+i)@fTOSG%)!FS/9/ao>3h$'jFbTl?7Dp4I"rhqfdDD;<0Tr?454BXos]/0-"`;cI92\ri=$/_!l<4BY(ZP/.Z+.*74T),`kr&
%)rMu\,RqCP2!2e2]&hs-q^D&(QPnPQ9o(D?h6n=.\EG?R7K*tOIL[q*n\LgUr&FVa3)0VK@dcje[u&TiJ%m.8,I?TN7]!PLY-0*n
%3'WNI*.9n7Zu,91f'XFB4`i+CpV@fdf\$$Xn6$^#lgNa%p>42&DC>G?!l)4J:O]M%EG97fRH4+rn(\B$6!_]XAkl)88kh*_Z8aRB
%Qn4)53+Gu-.br5cR67kH;?Ci>YkrP:k2c9pY0PJkrmV?^s,?SNCX'n?Dm`KDNT;Gofr&lHj-r"I\GdihBK,9+Sp$\us+]]Ham[9J
%SW3?'[Mqn.gER1a,,$%3p:m_3R)C/p"+%H@DGcgTMgTQ?T*)Q]2kI!`QSQmS24>CI2!7Xt4,T-]Zoqc.X?30VmC@2OnNGl22.*Ll
%W`7$-aH_%6gRiCMZ;N?b8$U9O-hL,qCXd=M?'2Zr<3?uI?9CD;`HA"iZrD03jiOdab4oYT-C5>p*$6aSYDebpl=L=5*3P5,RC'?K
%.Om-1(\\Xt=,Y%$et\H)iR'cKd+1^p6G<RIm)p1l.\n[`Bl![Rj2Gc,fJ!GSe3@+hB!c_nMUp'`[T4td.MW=):M(?5Rh6Da3CCGt
%50?gBXr.IB&)01Q'X5FDHi[_#+LnQT\#4VA&K=*'BMG3?B1IaI^7&5trPOt["':E2;P#M2(`CE-_P=u9Y/rK3iE>\E^,g"Nf2d+U
%_!3"SoN>8Sc,c.Hb`o_]$0I-P?'0QJPMN*5fegjrUf$Ps)KhN=]ub!<9dVg0LA5b,1i<%H\=6GJj5Vhf_3&2LW&To$F_uLY?;RLq
%3&U,=W)WLN@rIhdWQdTDqi-lGh6R7+obcIN:5k[LBs":s&iV9b'/R7KUUBVirYkg4JK5REHL<&cZTZq4es'+F/Zj5L;09s^&WN\%
%W>G5TUMi*`,"7L^,pe1YC,PqEA8Pd,+nsF%A/Q,:V+T^h$_t+=qUt-'g?<Kq+!>CU^-)rs>H-')Pih&/Yi55*"$1YkKjt$R1GcnE
%=ZhL&C$Y8nF_4*g&I`iC<2sl7&p"B[NM!/Er;!$iV)120e0Dr>PqNqCl3]#)oVQ=P5Jj=ER%,o,X)&*o`erR@ZXQBo_qlQhnP-if
%Eiul#QWX:=`FGX(6T8@_HsimpZ3a58j<n_#@+K@F99[n"FD7i((>:b)XFu.[Sf>62p7A4%HED[3mgr(gf$m@j%*DhXHn4JT^@g02
%KDEo0DJpSajuLHiI!Z2NDt_0,F(;l'#HUlnRA1ilUgrEtg[RiELEVrG(+9*9?hN1_hTlY"DL2#8ms.i:o,8_$ht$-5mWeGA/pZ-6
%N4/u#.cc@80/QCCh6W&CY(,<bq:*L*3/q1%ZBdkSno.lg+Z]gIk/,%F"X[m2c+Rc@$74ug2fh0QY?n1i'$#R1VMAKV<=?:uOM"SK
%bFq7BcJ13o*4J][X(&VBWNG8bqJ>c)>rH&CB8t?R7OB/YoXfiQ%8ZIV.4"utOA0$0#W+UfEptEgO*>q]5_:@d(jY`a4QKr^V:r0h
%7kHCYmOYO)A?jqP`LQ7CRp="sTTJ"Mi,qB_]$f>"qAUr\^YtNn+;G1W``pR0!Kkg#3b052nURl#%iBX/#L!XlhZW.[T9p3O*&CcY
%KC0<"]th&=(>Wlj5'bALNa9-9j-t`bg2@07i`drm2`F/M2E+9W'?'$)j0qj"hAnU/a`Y6mmEHUoM.G5S/Fb<WpO):6LlW;0l!1b2
%h]dOh5sr'N7qW=+=a2`<p9;s"I2U3a$h'Ng"uA"X@d;W`fl9:S01K;PfU+jTn$e&.GuI*!qJIK`2@N_.GqPrc+<R4(bIpNaT>ce;
%%Y;q3ms;F+e&`a%/b3TF,;T-bTmSB[]f.hD]_\5$^&ajsIJglIn3aR:D?^"j9IAmAp]6qsh%o6]&:?\blUiSGVs)sd$N/i:)uT2"
%%6bI);"d*?!<Sm,SeG9UOpnQm/+B;m2>Fi\&_"7#p%]T7K`p=n]G:53Ri6Z8kS;bad`6gU(AejDNZGLhHE<S;s4gF?cVjLdZh2BB
%PPF`7BbhW5oW)gZ4R:Lbk0>qBFf'.Y-\<O`H@<g/Wn@7Cd8E<u_?apIDZ-Eu9dN)K\tc3@+gULB-U^]g3b(V?/X%SWDo",SJWeJ1
%:ib]M4@sG[[d>7L-\35TCHmg]1+jaTBC<jo&!b>E-1U5$gI)UfJ]<&mDO/gFg]j/WC`b%Xis6Jc1Ct-6?CCcA?5?/:C?!DMf@l5/
%El7QqSpTLSs/fi3k+5l;\,JAtZl]Aq$rulKiONolho<5H`6[6&UFW6SJG*5gA=\?*N3*Lm'4:ZL%n:WYAU#oK%F8YI_3j_Qha253
%[o"m'`-MWTR"Z5k?t+@DR-9"",2t1r^s,?e^<*k!rEAW&^=I[kUIY27>q-U:1(gdpR%G3E[d>5L(*!cX->U)UeZb=ZY>m(c@<jKp
%;`@H.EdY0?Kd6eJ99oEC'5AP[/6maUV(-$6QW2[HWjIIl@0fqFbCmnU^3Ibe)pKD6Fj)aaR"0l"79FTfmG_-\FV)c"3B+]%D</q:
%<+dFW=)(Fim-D$@94S5E7WR>!+8HAl^SNODhV>V[SZ(I(/p/0aKTY_O/#0u+0gWI#'MNcd39imF7P(:/!-M+u.c",1_9K5cH?4$'
%gW.*hgA>qhQTYSVo&'9[P#J-`g*DdHr&BYG[o+^;07TH0dbYc3[cn0Q6/mkEP1Ue3Nm_LXV1tF/F3HWepLoR&?)er^NYY>\<t=@c
%QR43DCdD<)Q*q18kW/daR&JB$K#db4Ngej@,Q+*#O^;83hb!dS)t8&#H2lM+M6Ym\bk5#?eKuteeD"2$=l&]C/0M%I7:EBi5Ers!
%cafE(cAeakF.6(OCtH.P.HU?63i:DD@W@l>]^`ELhepB,gEP#nk#fV2Z$80_jV+,0Mmip/8)<;WDA.n35Ua(e3C4>56pgE5_@bV(
%q_&;M`[[=UUR+GAZh\H_o-M-Yp*Oh4)DYb8pc;&m^%d_J8X=FO`qf/,l^(Q,La22Edd1DD-odbCdhX$8136pN.rd<G1u3"+F5[Rs
%\MnXJKK1K:S7=`?F%KQ-*S;WA>45b#[,-^EMsH"5.s/\[id.u$D^hr0HIR\b^,s^tA]X3WT=l\*SD6.Ko[?X*T.E]A8=dMJULW=1
%F8iVp#.,<o4u:Uf?OMn3YqhF[)PoOP?QSViac<:DR!]n))"n)ljnOoT;WlLViFr`Z%RPXG=6@V.7oS[B68N/CB1GE=MQ(5;.l*K7
%i$%k5SC\BeK`5N&Djs,?qA]gX,"GLVZ*ubT<^UX`I[+D(`LJ\67[H^,5T,aJM7e#=;QUW?q/Yoa,dQ_-ZGg^iP%E&V7honr@NNCP
%BBZ<dc/^Oq(<C7nm(lI0;W'4N8=AMi*9m2k4t#5[ALr&23,DnI#@NnWPKP+T'l@B8na-?"*g_f]MYbk"ilf,^NM]uri-sq^jS&_G
%AFH+=f4&rdOPHm>(rbGMk`%]AY]Ibr3OA5Q:9!BPDMDOsqa\\KPcgfojn\Md_j;`.?umLZT$dgO'Dnf)R!p5t!#=ohS7Dp<W%"2u
%VV+BT-\2M.\i*lqj:2/%<MYF":iT+UL(ss61#sPJa/.bkb2e4kclfm'#8A2agVmXeBqu(Q5F/M'^WsYF3(n5+,A7&<"Jm)S$(En<
%>#lJ'EI=,K-*&NM;4hN.OMNI!0UTJd'!ko]Oss*u(XuSm_O0<*4iPT5=II!7^2@!$\%FnmWc38*K,c'k81VS,dJ<HLCqjr%'A^4Z
%73L9kTulT]o['M^):]%kbNK>/jXVX*B?E&UYS#i1W"f@)9'@6p7gs&T)/GWC8.YN"%1eR-2"%<&RuRXH5bbFnIX;FM8>U8/,Bq#Q
%?)c`S/eK$l*C^);=2=:lSKp#U"-[5;DfW-e$$`2g[Z$ZQ.-+APA>"ZHCX8JaF9qV(nbM1`ZC1KD[`ZMWFV6oi\&Y=S%QMg?J$C\:
%[O@oI`;:=_Z^DHJ0;2$,R<?(UEuB%HVR;QMbW'9mCjq.D[WUmUXV=5A%9Yqk#K,,_S,lP[`Z(qH('Z.D`DWl5>%t?+XSbE.2B"*8
%<_gN:3J=bWb1B@iV"\?/2@5lcOn5Qa:=h>k*uu@Cc<nc2rgr9FF@Gfp5/;MQ9FbO!=$-bdCn\*h\"[O.hN>h>a:Z0iR_c"k2mSl9
%<dXpE07R])p6'/nNLVG(c3lLtZB\D&XCdJoMo0huDKG]Y:"N9k<G8J?Vcq:Hmr3PNh.urGe#>5XjMoZ6n^ZJY*'H:jq)aUaG8p!0
%]KqO9+P.)>-b'Dhfgu&\fZ<%LjiMnXXgb\f^':'V[&o\),/,fd4u!DRL>:_Ycq9c0DL)O,)B9j$.QU>r^/i5):/+b:9#\5Fe#H,Y
%C?L.GAI-:ca:sa0.if(qm;nut+u>l$XeiSVBfSP/8\)`n[^):?QAhHMUg.7o>BS.t]6p$\/::>_PA0H!3\Et\&P?3XNY9=!0Lk21
%jGFl11Rq?Yc9pn)f?qr3RMVBHj3^rV>Yd_&9aoEkI#!!0(llVe&h[^,>_G"cS4$;V>Zf#^nEhJFre<C%Q_W>L&eXJ$?PgGLU!\Nt
%0UmV<[BjAT"9mie'A(ZX]][qHJReRu[dE7(V7j?\1_rH2a7l$\YhjSf)fYXggi7/#0@BD[YL3;f!D$Si>?IIS$09R/6lOinPfZ\^
%6th^G0-)=D_5Fh(_0A"j:QmVc^mJ.FO>.ca`K(5,N=Al[fZ[RhYfdOlM+PZj4\Q&b[DtcephOmY#IV$sNt)0*^l"G.d*[d`)9DK0
%O4.bQNK"%^8+q>;L6HUno^^'+S:GmR]P;#Z3&+=$XPj\!h;PqI*QHhJY\0_4@IF"BV,<i]Zc/WndJRZLrWsSBpc/*\$31'HHMFV?
%6.UKlV(d`6[kBt.moY'ZS,U]MVdCmh'`NRPB`Bed^#>$ta+pL/.KR?>`_'g@d"QtBPmGO&emHXMIPjp6$s&0Q_O,d76/b0#l*d0u
%24l`-R'o-Cq6"oAp?W!&'tk[i#mQ;95J?`B\E.4F,A1FT;Pu3(=rOOZb>P5=D,V2@'@?R%j9/,3n^5p"=LQiP.+cBhnHLX_gE>%-
%(uLa1R%52=[>P22:mJ:+/Lm[<m(BUHTJ/2U#<g^g[6=!Z%r65$3.t^U46SXs/-+<'?'!Bd9K-$?ULcDl0&(GcWmX^#,6K906!;*I
%n<M[!B9'g*UVE4!0EYK4QT%R,P>i'>mEuBOliaDT7LS)d`ub=;=IH6+ML3a`@nsm?5NHV/%ajrHD!Mq/mi4XdCRGFa[*WoK;<%=.
%7mM?((+:hT]TR!EYlcq*k8603BV^n_O@G+PGFKAFf^8D"GciW]%_`g^TumN-L&Jt`'*He4b8AuR\j]P=LcGN?1B;LWP_DKh9n(1?
%\<H%Z%6c(`^_/M.l8`D03?u<>/oktpf:O^'T$1Ook)NN_-c[0&QX2XX730h,@d[4cD%jJY_kRn@U!_<PK[AkspKcZu&EiW7$'IpB
%$=jcekGl\P9j@3EMh]ud4(L%_G<@6f?.DLN0Q#(a!2ck[e9$!q=0"hsHqkGjj*=bY_DUOpF?$2gEG:h_g>gsJM%ja#A!82P4pm>7
%`02)i%89NU:JTtGk#&'(8KW"$M\JY3]OUh]mi3q17](IKW`stlV;*KK6LFR[>"hLYY*P?VP_#1)^u-hH.uIE!:EM.uO%t_33kUR.
%q,uq7=$fPC%'`E<30?j>HlBGH>2d<AbJ]/so>BU`h$p.(QUYa"7:R$,MPf(Z"HMZ#PP[nsTj5q)7)dBA$m\LXe[BLbb_W<!Xm9^6
%D<c./q,4q3BO9u8=(&m!**I.\[T`9/bc4ejCYILlPmaG9EPP*Zg:Rm'_e#4CC#0]Y9jbG7XJ4t'KY66>OBE>(([o:Q*_A]$^Nd.g
%P,8mt^!^ucGeOM8LW1KiP=)R9I2-Gd,i[^DijF(f<EFPIfMHS_GdVR+ZrER,k1PmE_FS02"(,?aj88]"3#d0>;mPc$=A`VX/IoM+
%ZY-LE3gcN>/FK\Ung26*)ElD-VbGo6QuM`F^3%Wlj&7?d`*W,a[Zp`#_giZM,H#s[m([DZ8[>HZ>ci.T/?J@Odo7o+/lr[%jV;^6
%Uo7:oeLt?P`Q<./ROZ*=^k<-*79%\g^MUVFiB=JMLC0=:iQ5d`e>@#T:oQYr)CjZ_S@V%`N5<>UCJWWMe4bu4^I:jVg?OMW*@4iG
%X,StGI;>c`8's(nI[o#<l;`U35S*/GV9ZWkW[%>u@^S1<HR69hgO%(80R)la2J&G6c/57%\Tg,qXu93Z)BqDJHCgdLi!K5'C?/9<
%U:UWjEsf^eb&D(-HDt@EFr$B`[B[lY$ouD!m`T*A]#XBl/%*Nr9AOuHBY/RJ\Oj2+H_N:PG23ed@E\k]W!r<l38?LY2QEZEh*u6;
%l8IqYNOjE&YqGR*6i$"HaGokm.HB`.Wf@0s5?bd#RBG^f$Bja*"GkRlG5RX+%i6lBA!2ucA.rIQr*3fH@W\?o,U[@K+<<mqZqiL%
%RTf8X;5`j[aJr7=%X1^-Q4/hD[=b\YX\^EA[2HO#Gc@>U7Q+E0CACc4qeDVn7]&F4XAu6+f!_HW,OK"RGcWZ,WJsZ4A695jHX*m]
%['!E.@P!1HE4/TCFrQH_LeXtJWiIN/G\(?A9nP;:;O<ASJ;M`/#?YJLFCHdchKV;oW_H=NC]%'L<@_#.\#D;3@cs^?%MroUQcmiP
%p\9!@S$&Pci<iU(!>8E`:.6&"g'd:J98hK#BP^ib!gSp+$_qMf%$a<&J.1!L"b%G8LY6="WLl3ZCo9@WNG$j$B0d/k4M,'C&;5&H
%Wp(B.>.9lfU+@4:<JK11BaU"/Q)<a:CD/"n2*O4Z\jrhK4dp]!)h]]N02#HJP,>gHq8I*>J9B$&\\;A_;VkPZ4i#I'5&7B,&col[
%,61+"WZJ:495\4f>ch2s:$aDq1!NIs!\7BT'sY/]COi[%mE4WPd)tpEl0''A"(E8(%,^$dclld2;U?_1/Z?&VpgA!45o*9ENKQ?d
%?'srW:2lpRPSd.EO-6s^BW)nuM^;?)/g9?tQGRH"_r?rpXi)_FF:jk0aqUr,f,8BN;W2B(-qrk?@EQ^!0Vofc(:GoN:s2VW!6^Wq
%r/r!NP6;+dj=C=6],,h$.'63c_d@:?*h18o)suu!E7[t9k%S2+4"d#e;n?_X1]`B92l#*pN+tF1Wbo6%Hg/\J[DLQRfiDE+b?NT*
%-7+3.>rKf"f=k395!Om5?s39mE4Ru_MrgB><_YMp37Z%_rJ9&pm1cC:VlO\RSo,C^TX?+Sl,n\C;\?:1ZI9/+eREs\pY3\oB1CP>
%bQrQd).B^)'C9l,Y]or0;okGVqaf=V5[O*7SaMa\@'A%0]i1]$dtk\?ZB`#dD.9\IO1j"BScSQ=Xg$FP(JidNgZWG!#^u(XTs$U(
%oX/=`^31Ong/5?BHL\B0-V/'oduL:3M6ei<kuVJI`-)4q:Q:W_,8*dH/+'d-fU`B^gG;-)Wtc9A?H\\5`F,`p%(9c$_:FQ!fU<BV
%>;O*'Wt'bL]A(B9E7;3Z!t;W,0fYQ/K,J($eUYJ7USQFr_:(=!-3d[1_-edQ_,G;9L!!rZW7.+i5?,@[6`6%>mrt<u+"EsO99jln
%B5ti5Jd'28Hsbc"27r'$<%C?3M>mF\i`(M<I4`jgo%cVb20JYbRD(eN;FJdjFhB0F7>^J)%9L)`g>M:&h<ch;JS_6<USHqjb@D"R
%;TfjHDej/t#$T&JXgWuho%'e)h8o3r@4pgoEH97FM*@N\n^A#*<:YfjHUZOMKpG<ffSd=nrmC:9b\1;<^!g\4l=ur[;@QQ+p#Ir]
%a8-Ae8R3ZQ?tPm=Spf/3=AO)!KhD$\W@=*8/RLS"NQ/']MgMANbdDgSJZtD77peDZ*?@51Y?j4n0=m^+I$+15?TBtiTf4V)l[*;;
%9pO;*=JL5@<0M#r+?MQ72JO^hD.'\RK_/6A3+oVhd7UrI(dS\PPTe/2dIOM6'rDl`^:^Z?6CIeS%\`[-B;hP>k%kKUF2pi[9qo-8
%^7UA=nUi:I4]'C1_mff$`^VG9qb>[;9obSR)0Bcj^!tu1WD4:XXnAK%)c1([4-Sp1J$[sf,ZJ]3-E6iXVR#a2G3>%FS*a`E]KDD2
%Cj7fTmZ^4U^,Bu>3-8c>pqlZgYnm8nB/FX-/hRKPo+T)A,ElV)jnrek%4\+M?&F>(gKItqHLp05@6:K%ldT_,AB4rp/NaUdbcmZ7
%XGMp2il0G04(Aff"HD3353nl5dj:EELUZU[]%0#Ag[sR\I7Fb`0(j'BiUf8&r8)'I]fcJDmLIRSf'n^Zp@W"n\`6MgEiJN\rlL.J
%CUQ?B23_t2F(T*Tjch+iSs-)K:-Gk1r'DAc'oY<+Z$p?;Z[ER'%/S^UlPZ3Th:Y^J\m1GCG!A4BF6)]ea/dbH]7tX?NZU@\`0%R<
%4$'nCCj07J.IYL[lM7?ZI8BO,44Ug@B30Z<gTl1Xpj0.+Xuin"ccCdoZ+f&ab[<:'nq#5WkD&[oHh9^%cdoCMTk"%]4nb:WhrDV<
%qtKb)4F\Mi.(dMYm2Uni%sIV,lZPG'YC#hsdll[cMs#\5j7`#W%4@_u8QUV;%Jqc;DmF^b*M/Wlau\*pl&d>P9gCdq-hh`oN9mWH
%]mZZA'<E4(iloEYF^3b2Np$9t9l.o>hg486[_9LXB<AQ4CupLgF[tg59\n8eQJM5hFrD@Hdb^2$`K'W!W,L[So1\8gL>YI>o+lgM
%n"p,(kDAT([d6$mN)VH4[@Q,kJ*_")I:1;(YNF>p_J%4_h:l\l!AAbJa)g`kdjAjT_mt3gSY!#k3-tQ,FUC*/h^uJ[53$QGoLsI@
%VpDG+f&*d^@._Nkoi[i/XKPZKY3E%=m.Jm[=DQ<(qn0DhftKJIe(VgD8%VrHlAp&L2kJc"ST_)QK%8UtI`kLLnqkRcfChAf4aq^i
%e=Y9je[P:o'3UlLXG:\Ga4HTWRs&@=Y]oLQX7+KA_<ao-XP(/#5()m"Au>kD3iAoTh##>0lo_]Qe?dZ(]t%chJ,QC=Xe)0?h2e,p
%BO905F7.L'HP:MT[5I1_H=9e<\+U01a#@mPkg]@I/rmF+oO@L18GQ5C:7oT4@Ga,X@sp_RJkCB]4kZjaKBq=<*Tsajh7;Z7mI?=u
%abEQ!mrPrcH8k5?Ibe+U<i9/FPd^$udA]@9H-]Db$tOSISNCKW`RZcZYq0#/p0A0[SK)\TZ9#Di/mRUUd:r+FqCC[&]a^N!0A::"
%3jA;11YJ<?Y^/2C42Z--dl[*peihIG\ZX54l.pF)gNC5_pStq,r0=uW=J+;]onQg2G.P#Zdt>V3E&->45c7Xa,Gb965F$0NP^3pD
%_^iWQca;tZT658IKfH]n6dK\#ijn?ZPF7sOmaqg.9++jSa,^o>?)pDl:Noro(H8J@me"T:ij#DRg=2O4$E%"Sm?rsqb:Pdr*'*QU
%:od>%=D*YQn'(4,hd,-ErcI$24*P8QH=m*Eg6S;$\ThNL7&s&fXL!86lq9Ci':HHq\pOIrB22^AOP/lPJLcLZG5BuSJ%2[NVrrV7
%=r1qMY&%4$4Z>P_&4^VMV\]kdQ!8E8>sGi1:!tJ^@d1RPg=ebPFuZhWkZHHj2,@K@g(0ach2Rn9nmZi@3ZW6"2/J_Aop_Q<cYo[u
%SW16C&(\YPD`t^XHOk;2]:i/:p:9@OkQfi\40;L@m#k*kp2#;&WJ>W@q>A^2\C8.SlpLHAE,2k)HM8?EoSI1KFJqhUh.\fi$8]-N
%i7`^nh.%PkC*847a1Yu1d^\VOpE$=&FBu;C+"CcuHQ+-1p(T$7]mBe#)NSq=\a=Fcm+Hi^]4$<C<f54pi\S!0^DPH2l/:e8cW%>c
%4f&hF5BuUL4a*^QgEY:cB@fqfHjZZnhhDnB@0JQ*l!5sldOIF^$lbcCOaU*I?+U_,4tVhsIBqt`nG&^EkEDf<Wuj?k:HmP(m:[dF
%bf5rEH^kO@'saD<&(A:i]Z4a^G5oq)V&_.[%]h5j*Gk7&3k4/,cI4YAYtH%.NuQq>]k(0rdnBDgm>Xns%M+k05!?5jbEZi5Zt[P*
%XrlB+VWHQFcgTW&X6%fCf09qObBbWop>!UVnUiFN^2h6HH_TWNYq(77T5!s4VWu)0hoo3oo>?TtqoP."$g"(ur`2fRXP%RVr8uQd
%[UF[3d@k$m[gtQIf%R6tp8i8bD;*ie`r(J?r`u!.lKt-()YWfh;^Z=,jCrQ,cA&6pSis<g-iMQLH4gP,$,4XVG&?XNhK!*'R1$]p
%7o#bf\S'O^pu"3OXL"I<>M`<2hW!6jHh*"LQVJ(bS3"(W/<Qm&;b)VVrV>a-laQ5_e;bhd*UEb*k.YmuGo0c_$FkkX)L=-O,[b+U
%:M?F*6ALXfkhhp+F0>J*A:olHYmb0F1UAG"@Z8".-11\JJZJ/c,j-ACOS0Cq1T`MVok<`7V4k<K5H@t7Dd:b[5:d'7Y7arh5=qt%
%ht(29Krl4qp/XP2lD+l6VlQG?+W-e;:Y\QUO+(Y!`:Wbo5pEo6kieO2mlq<,Zm8`F-Wm8BY`<sS0"oUFCW_J,*HYpXNa.g_:W)#q
%]rges44/I0OlT#*nNPlc%1SREr]Z<=p.hYCVHkW70qcQ-$h2,e'h]A'M2#AU["iXnnSMSP@#QD)LIuuJn\h?lcoF2EVdD4$BeJHr
%jsEC`dAeRHm=go"OY&gY:1NWOEUS\e=X/D6GL#Z`ZHEGA5(L-/-[<TLd'\8?<-u!?]&q=+9;!:RA2q=aB\K$lE0=IChCVR@>Y^-p
%*<0,G-P-(%>o_jGbePZd.`de9B(E3iLcif4n@d7u.H6GrjN231YfKHV!]\,pbPJZ_k*I;GPW;r!ZFjsQXqM&k(d#./q)T"2WRO"N
%iZ1`om6:gEJ9&gjf151?0<iF6CFgYP`Ui0jUo-*($VC'.TuHehHL1)A#QN6>_4,OV]G0#rkH@>*nVo30799:"I-DQS`D%<b?cas.
%O.-qnC;-e6e>Q=S*$^?I6Yb,>1tcY73M*.Tj(DaK0o&1O>(/!<YTe)`[K?I4SFE.i(/SlJ@?U.O'hu<UZe3r;?;aRLg8Yn9kX;1p
%=e!Gn/lZm5?t;bg1G6amrA1efgcDaPcu,7NW8ceXqE!?_?:q(0GRIJ_J\Ba#k'gt\e#_42.&1$S'ACP,!UHBZ*``VehA1@nBhH`+
%BGb8fcA+[nU'bQN7_p2Ak"'u#M?m2I)0m0$`1^I^Q+WeL,=S1,EE66%i)hu0Fu\QV'oH$<pV^<-DR]rNH,nU)*AI7e@>E%GDBsrE
%S?'O"iG-ld`foi1V8C@8MqLXfQ>dG^i'u/$;C@PnAo'X&&l-3.JELGuU-HRpgms.PA5A79+!k8C!,he/_7TaQWK'!R(lN=oYu9J<
%gCs:1-bP9o[,=X?;s^7@*eRTQ)NTAq<c1:!OMPp(Z?BH%],Q?9ME5\oW575*l-AE4#4g>)a$OGe\*r/r49Gni*R;L2jV\G+0i132
%<MUnoBihb0CGD13ld+X/&hO9d8b3q\1pSr6dWlLRF%(-C;k:D2BWh8K=1BNE.jWt/7TfbAp;FNXj,)Q`6'I$3b/hm-B?G"GjpPgC
%V14YuX%CEIioW[]A+<+#p_]%=2U%RGBfLAd/K6lP0Mp+-ku[O'BoJ-%-SA7',QXOF,t3uMY#ODE>D]/@m?omVO=4N29C<.48a",o
%NgY,j7(@S@n<2,29'kI#'oQTn>c<&3h2CDaErRmmL6]]qo=!0SH6S\X4+!R=a?D=r:?AaHP!I,'_pU:Q%$q^QVd5'o(t$&RLSRYZ
%1KFla`'@BLY&b3CQa8Qc%itRoT0<^4bs+9h1HcK%[EeO!m@cQsg0&^1oBC_rB(2bn/ME;I>q)V6Y+)\/:MfI%lSsmoC`t:_=[/Un
%HFlm]]_]Ra@k>H[(AeDRZ(C_Q[.=)ZC=U1jdkJA*'?apKB#emEcK=4]s6+_7)]h-q@4^k:c+J_<X=dL.BqQ,sR*(h&Bc0K(:@hMe
%`d$&#_@]]$FJnFTfuX7Mq3Gl"^JH[e=fF,*Do8\i@!KiL_b-%#".4pX_5^r*E!Ne<U6Vk70n1"=_3;Wp\?g\$E\?n+fF2]<.]bA]
%[$NU-#cd\H2EI\%Tb07)d^-]L@sO8>\#+skE@gX2k<*C%kP8GE[</:dE9q.k-[JPEe>7lEg+ZnpUoV814@`P;<;XbbD?D/`[8o^/
%S)KVZ$;7O0OOW#omJV):>L'1=AL*6"/+Km.LL#n2Vk,BYa2Z>6n5JWu]"9,Nr!I&eF?[I5Nl`43ddO8ar%pqfAn[.u:,o6hP$$#c
%h62D1ckn'RP*+_FG?3g1*Jr5^A]WUVQmJd)T#O<CpI=Kq+Q[3nL3r/qj2@0mB4Gk,_Bhs01E3P&iE^:'8Eem"alKt"hFe02gDA``
%EQYtpd>KbX5'oGG-FB"VQa?N")R<a^*(7k5'L]QgJOmSIilR_`d?&Rhj.>%[4+eD;PDo.r6p\1!UG#q@`,%\["lu%k&.N,nK-r_!
%\s\')`U#,CmU].A#Yg%`k<ZJE3>UJ]0DEXAnZ$.1,D;r1--CR1#`[$uYXHS:d8]_Z0-U^90oRu>(+VCLn\B"W#gR1fR1<KDadXE0
%(lspTE_423>j!Q[Ln\qf*iqW?WbE*IjR]dccAQ.:1>;lRAOa9E4L'7+ni.Qtrjf13]^b`P=Ys3q[Zh8u>>.QpaDoGp.#pm_iEI(@
%r8$SMbjaI5!!#U>VbL*UUpEah,#R@UL.d]NhhOU*W*@qgXL(-=2Leo0N0WbPP)af\\GC1?kbB=0SX3j2WpJ<M-1R9R/Np*$/hOC)
%Db0"9!SorEI3^DbE-3d<fIh"+inR=re<Q-8B:RJ?_X<+oo>^+(,2VZ:Z-?`YNkj]A41$muU3X9/4-,JR&ROA5\6BeFU4mgHmTsCh
%Mo<-DMU:9r?h?bA/=lQ]Ji+m;qtSrOa^(aD^UT.rA&M2dE;")AUmk+CnemF%7&EgIAA[M\rM#Z0<-k9,:]oF@(>dWi(sf=T,`i9D
%b\_o.514gK:(!0+p[4$sO+MmDX^p52#S7"$%3@JE)3Y<RW/r1@PYU[d^HBA7JL&o$j."gH+i7!.8:e0,G4jlW72//uj"`B8PCBL7
%OLt(V2.jIb28Zj'We<K1*%T0+a>V!gcWSt(KC?B:0$5N$Tj!VO0Quocb'52J(YPpj=d+ak"1fTA^GP6eXWd`ZM?4;d<<RP.-e7I;
%"/rMAdho8?G;.h`EFPSi!NY69Nd0UZU^MF-pdu:,Y:^PQ]QoLm<-p!pQ4\]f5#EZ]E)3V;MD,uIb8R-T,r6)b"\bNGW+ArWqhXGZ
%Ut^ML@IVffB;8'NCD7s)O@J-`C71>@N<cFo5a"K,/^*3+Y&D%*Y,JLL:,YE?`qLmhgt=q!o8#@M@[=*!k%tsCC0@R.927'+NI7ht
%_c+alm1m#K1#ko"*4632qbV=a-i8+SUmE?n=D]rB.f6DM/+S&!)O6T0^$W`1Ie0gj^UI4:pZ:C7kL1GrW$`)@L2_Ne_=Q_sI;k@7
%"!OSMK+m`aoD?[W+/dOe.dBN#bnc/1IN%6XB"lrECt'!H.IhCBR0BXsPSBPt@aQE_)8RdK'eTloq4kPcP?_]&40/\n`=4:)_MWkR
%19"\Qj'J8N=#OS7723B.>PK*SBB]nM,4kYGV>[e7--/07U3Y"cS5Z4bH1+\VSmmf?Z7m;=nQbO(C5]PMW6"nchB]/qk)-8<%eGo0
%[!K@Be#A+g\6B`RRqWnXjdsHtdF0PHKCjV-*P$-H"&A$r/Zo!;]*A9piACg+Xcj$/%6I,!aQh)lRMn'C,<1u'6tEai61q(i=LK(a
%?8Xi"oT)?E;:IeT;IT[XV+e"UZL,:O?IK+M^PCLld#kg@gV1ZXr*3O<YN0_riEkX7/4W;LpMCFhVaK`5NUcSbL^3+f3p'B3M3msr
%?$Kl,1#J@:?@/rs!ZP\GZ(@>+KE_+l+_A-pLi"O'6R!'%oejJkVu?g>5i.mR/.:Nm3=EZfGaoW3fj`??7?P*1?G?dd3dg'q*bYD%
%LXBEX!6D^r?uBRVX'q*&.SRRraroo)LcF>+9&eT4b=rE%\Po[RBoIo!(sda4o&Q'S#"Dgh?%OqgNQ6cem&6qNC5dc7_gXt^][URC
%YqP3*$\`1:_AELt%;[XGn@PhM@e5!]55RKSZ]:U;Rj[%mf+'j(M01*b_]6+Br]]c\aBS.3:/f9APUjYEH)j]6EnH6UUV+AuT)3tg
%9VO4L.ZYL]#cHSl-g)e@9G^r7#-,`W#:7Rt@-aBcITjVIU;b3"'eWSP#of4`LZ,qR$.UVmo*fQZ[)/jU#=8q3Z><H:Di(gqE02U4
%#,+0E>9]cC^d(k;Gn'G+<KO<#5kl+TKbrFX4#VnnYj;_6mKs&m,[/Cj.jr_BCe%;1:DH["[Hs'.=a^GP1Sm9#_]lYPo'P@l%k0%k
%c@2eB;Xeb4@[&I"A1?@e*)iJnOfl'HM%nadNZo)SCuGV073P6iR<KXFPc?"iUI+MkPKuL!pP5Sg00B'OrAu9*Er236BD5$JO:2Gs
%no3qPb0[3,Y#3,fDD<QB-ai9MI]sHI6KK'UJAF[mCF"Y;Lu8=-G!ZDL1J[NIT'MaUI*AQ6."cj\QVG6s8n+3RP'3=*?!eMV>7WWV
%'AKrXhZr`)@S$R[R7tV?0@&_A;Z#640?R">eBSGnaf9)^n2^TL5q@lB<\Qj\:NIk=<`V[FC"-ue9]K-sb#>cpWD/#s'*s5US.,Rg
%WL/*5b=Wi)F<-RDg+hL"Co#Q'O*_Tl_V6+&rJObeb,qq4BeR.0Af4T$a/PuZ`U%4k"e;-k0)EM!?Zp3+3@<]Khs<Joj'jlq1WN=g
%p-Ufo-[L#a9PuTOi3'`BdoSY%H'2/(aKe3>-3USE&k!F06t+1P%$Gk-mJ>[(pTS3APVC4$;)0@:*trqP8o8Is;u&=1h;(b0`1Sh7
%45j7+d$W:X_1]pJ`*T>ki^B4/n*K^F;mka8GTJ\_E;RL$iO=X2hCRPm5sD/f"f&1h\1#m26dYBU&KhDKL6]m6lN0EOE(*f`A9T.&
%]m'^dN1nQSQWs@p!u88S/-@1MfW5cJ;^DOlC_)Mf6YC^c4#nZNGBX>[**MaP?aq2eiHd6TO/^jhi/,T"1^uW0dh)&*>9)FOIKCKf
%J7RU`U%.G$P[MPa.#dI4%NuJ]&\p#Y&JB59%4Xl29F+?][hI`ujURWZ&?aNoSZ6OllEm#N8ONgj`Ph=T`UECW(,H=K,*!dL%o.6[
%Ft87@Hgp9of8ZeZU*=-NCb#X2=J#GMFj*`'1Fe,d0p0h\<X=9cmu?gQS@tf9K4j(E_T_iQO=6VC:s9R!]QD.cAL3mXiGrW]CSAXP
%d"<AT)BWnX6;4@WCinL_,llAq.W$KI=NSEJX*</1?Qb%EdL@&!/TJRsI3l>\k,pOCnE##e7'&8+^rG#TMA;91(Ja\KCJ7`@"H>1`
%(HrEQjt!FUfsb2fID7.Afom$'A(*4DNfR7`-bV1fJ`(mLfJ$G_h8EKF-Q3;=]K-![=o:=*SdW/KO6dOVnEX:->NaMl'LGbP@TZO_
%!ip\OW_#L6paBQg_\qJmElQC`5dY=cE215oK+u&D[G2&Uoff6g'*9go`&FMCm;_(-at98sa2^c#*kn]]<PV(M4!1rOA.lqW[':as
%UKj]-;;Xu*9Z^06W5TGo-GWr5H'(Z<,CldlbX&!Jj,n5]Dk&\)4?9D+49R55a4#cfA/.C.[W^i8M?%GT[+:QU`LH_@,uktCTEnl,
%YAcWgV=?^K2\_2B^5*ie]Z-137_nb/d.9@YSX6.NQM7h']qBpVpdhe$*(>8@iqb->@&W0#MA&o?%s0tYRQ7'F^4m>NN*6F%o09+=
%)?MR!;9P]ZP=k?+)qFLJKET,X+/G2-]&J?':EjC"WFb;^X$_=;[]*<NfFc*N[<aG.AA+_'2*rr'9.fnHl>`HE@l_R2X/f9c_L5b3
%A8p]CkL:]']cT!+*ier8Kg,cH]oUS6)e-N]i'&kXn_P%rLfXfTai4)f^)n0eM2hC[HEMUZpV)MWf<_F5E$pP>STtt^b5/oP+$hd)
%#K<:P.SE>Vn6;bqJKQ`mhlo@X=U]Ma@7BPNF0.rVT,[4&_hpG@$Bi]-MS5&U=]XAI6@P*J[O]/GqdB*SgTH(UqlJN2A]%06lm40_
%`.2"oo?3NG9n,cOMpjuBQUarC.u#079NNBH\tCcm*?dpKnt9`5N==Te:poMSC5qaZ%]U9b;iN(&it&.*h5<",a[+IOA#c_njlV2q
%A]OAgK;qA\<5VHFIrJ5le4JPY5H%aRSAt=O#?BO(O/W=nq29m*7Dtl:m,JVV(*->%`4eD0TPDk/eZ_[5%h>TT]bI&ur<ER-6Q-*J
%<1fllO$0H<>l+dOn;f]1>&EB*!fU%>TPB<WU;4(Fo:ThYil#.9mQoC5!:h-OLA/-/W^Y7Gm+&*!EoA!;XU;t(G>P^<;IRUtI8DdZ
%AGQ.jCAE0Kgr1Xd:pk>Wjh1n!9/'39Ui2O;j4>.SHZigTbJ`3Z/#b=JU_%_%%(lk:.!5hmE-ne)ZQG_!Ob%.T`9f0PP^[$?4<C#P
%HTHdWAa+>V[[J&7$p=D&N]j7NXpCPG:KE^4B0W'S"p:HV5n]WQqr$-Ei+tE6h&*M^!G<KMP^[.aKhHBnbXk9=i7Za?MKcnC0d:A<
%=WVs82?l.1hj$.<ZSA8Glr`c9g"<3ghZ_>lQp`Yg>Mb*3nO,h4U6HEl$-sBg=ugQqQ$L3"B<.Dd45eeT>Wg=i4Chb4X^@@,3i1cf
%pRf6]"4+t@2Y^4=DMDe6J?ss_KR8jLo&/lh\sf8-ZS>Q2=.cPqSrEcr<h0u=KP+d[NMYq:<5Psr^tB'CiGd`.(uXcPWgfL9ff*tG
%-%]#,S?9/*0OVp<>$?PMPY1SELnmtWmHsE099LRc`p\Xp@j:7-KP)ffZ\>g<E3'^mi?7hbV)n(8cH_a@d4IID)]u,0mHeYjo>InB
%j)T`CKX&B?:Z^9_8sT+23BN_^aO6u!h`MijB4k^ud_"i3Cafbc)NG`ZUq%>Fm+LT0G`>rBJ`mA.NVr_oid0n8cBdhIM9S:J6O(</
%_UerH%_I,q0S]dNrqtXs`aq3=4r?#7&VYQ3@f-ihqA4s-H&b$#1&c\5LDYheg^],6+i]3n=+>uBa#VQ*I`/`cU#>,hM"/XqU;&sP
%T+H1/@,ja#`d+A!&9FW&Jf)8q$p/Tfn`q0A'Oi'5-f9rT_F9EAF0C(G(mdYA59)D<hi$D6`:u>BmB7)]f4metLDX+CHgkXc\Emp4
%%n2FA#+)-=(fu8]\cX[9;$6hGM"(_O0au"1#%.8aJJ^UU@t04M=*&!Pm>,bM1[?-A(e5T4$/Fn4Xb^tVnaaoqa!8SGKX"E?N!iZA
%4u>tk@[rGNadG8P6B&8%L%eG\PC]U1a1^>](mg7g4;osR\2AGtbJ*=+W"PPr&i$Odjgs6)(`2r5qA[A_I&GOc,0!FBV^Lj1CH!BU
%n*+tINu6JV*-cnHZ#Mn6*!=W0#@^s+>b8t[`ilSN9>n>DI.pcf+NZtm*etSfB5gMo90X1HcCU/EJ*kg0`4/pdr!d+?UE#,8!+PjO
%@6?U+;b:mmN8N8,8gRsE8qc8VLiHg^T.o;TJf%!m=oJPc7j>tK'0oNe's&<.Nfb3)!+K3M9DSb/31>7u3:WaTir[^dDSZ)Q`;"0i
%%b2cC<I*R_,K;$U7/R'p*$L(%O$"BG/F(8!`\g6M,OQY3(^FP2@E/<W0eSk3GrT9'c\u7e'lQ?rUUiYB,OQY-(dIEdUbhdiLiJ,@
%qZe:a<V7HG))3bmJ*]4*r/siW&E=<@%aX)4.s*b3%0q7[cd:YKI?7rgKb!;7dhr)p*I`DfO$\WnpM#S9LCWL`[[/@i57S^ZA&ETA
%^uNi$4E5#30L$BpNea^N(EG+pf)H=C>S1-=&9KlBdfq`1T:s/JD"plBquo-O;[JB8!H@DOd,DWGaE^@,Je"-JJU]43>\(bM&NX/:
%;u.GTpu>,l]7pg1!AATu3rJ:-V%5qKo@WOOC3m/4iV[X@:X++q3aADRq[_'4Oqld`7u-\MC^$?J?0H5V0Blp/n0@CtE#*qR%d07R
%;-Zo+UVe`=]RPMCa/^;o(EG-0,5=6Apa,5$0@8\0C(qbF%TggB4pE%QA&B%]D=9fHbAlmRk\qR^N`.rc.lpq4HLSc7E*h.;BT>;C
%L\$H?oi65b3h.imdMVuo*A0F>LSD\3Cq+_L4VAbfDo4[M*A42-*fgfG1+s/+L\'0fa3KUudG9#jMi+:AYBYG=UVloLQE^0,L(<Ao
%)s5*=$6?:&id;.qr6,uS1NYTW?Np22i9OWZV''Zk%:#8j()0;QN5lQfj[B(J?`Nq$rW(<Hm,"@G*X1WDmℑHV"SUN:.#;"Q2K6
%#pWOC;U_DFPc3_6g_F$.Pk0K:.\WAQ*5h/fU!0dbcG(iTG+B(:eqI0o'$;KnYf`)mcV'T><q:B]Z@#OV,!GO(77>tY`D%u4Khc$r
%`Hu(Hr,AGJ[6&?'B/[MXV_2oPa3F6WcI1$rr:ITs@8:+Dct"Cd*np@cTVH<NE'W96;g_Bf&NnC<ia`hDTOV"\k]jcN<dlru<,ENW
%0.D6P9?M%kHARfhqi1Y@.7B0c&Y0TL0$;qp)(9P9mhH%5.GU5#TWAS)_<X_4@Fu!ADh6hh-%CO,SV2`^W#4@8Y$g/"L@?)dfmjlk
%?07qps+[Phgquqdb<>Pe"!AmB2YM"7B>37"?B-HUpkKZpK]qY*SWT@.(#Sc;N?aT39"h&^[:8Vs1!XlIZH$F"j@Zd%Gl>qJ;,>Te
%1U*?-?JEpadA;!b`[Yok(p#[qDA.5E\Rh3Rj^V=jWMU/,]gp69g['ZTds:TihQe,J[QK4Qg*9qjc9geY7M-NpM4]m.HYU.r3PN.*
%Cu[uKM6]V&ZTLiL5(p*!PQP[M"#SS1$5Oa@<at+Ggi47pKs3j,)P[qB(f0=$f=5JV,A6ibEOb-(7M-3CIb_Vg%.?n<m1+G%%3@?n
%:i%]%/%`aq;j\_Gr=Rj0=Od3C(;@2W#"#HH+1K8>C0rFGbPNsVM*pVeVP8=Jq?pl?9H4WKHE^f4b)24OrT^S&4!aK5Ce17b(R^/h
%V;R2N0G!foX)2u97Z8]e@T0D)s&fg7o.Cn(\NL`9e0Kcpe)9R%5W=>%pgaL$QT,?q!-!;2?t!!9AEgDoi(`^GqW^+"oka=:U"Ip8
%h'Z&^)6Jq>?rJ6HqA:cs=2.#M\hZ/YGE#$E$7*PUUh^\N12#02aA$Xs"9U&r8rP!_I-f;_ph5pE(A4Ia8K=X).cqj6QFa(s=]Z3S
%QtP#[B?bu(qp6C.O@FBk*otX;Y,giSFWH9d7+^;OUd;.O8^cWt53`!2k_%C\Pn:ER;q!9HAkDYmPR<O^*ejun.$spp>%9$c7LXD'
%\=?`?n7l)l>%4MncK;]A<hWk)\gC0O;bAXboH=7AO1Xk"e2"nS%Nc7'JS^NMbEoQ=G^)0UV9a'C8X\@YQs,76CS6t8cpa-eX^>)O
%Wn(9LZ,)'O>/#/lrSuDu777`b?1"q4):8/=j-khSZM[gnb%_e5\]T7j]re#;F`HQS14Gd=[,17g+0>2]B&&+R`j8@u'mT]GSZN[R
%4n5D,5R@*P=l,"P+;h%iAMjealcOPr#Ji#)p$6=q7K%sm6O9iAicn>8C!s!=,JlF!9Zr-*OQJ3mL(!/Z\/L<t#-GMTMAL[TV.u1]
%#V3>/lRd&C5)c0#p_k%=\8rIpH%!X%aJ^]4d\7[!/tDD/(/CB,NAns0/Qcpon2]U\<d-K$BFi)lj4_$TkMGNO`$P:EN/Y=6qbA/S
%\;2BjA"f2,\jf?`GN;kgrl(QZdK/Q3e7'&0-Xo;Y*QDi?3sq;dBqhM@MhfM8g4e!<"##L$hK-;"I!bmY^R`--`G0BT.D/N9OOfVC
%D3QDA/Ce`lnMSOLV+cu-%J=Fia;!2G3*hN))#2$I,$HK=+?hh"EbJ1&<.eq!cSnp^*^p:ne>SuhD7@HDe66M>ZHH[8R(SEQTC`A)
%]<A;OFVneN:ROd&ClNo]g,a(oDpa_A`MI?u"sSe:6VeYNI]J1#ak,5YW"q;)i6Sne9DnEh^[dS'3;hLPD!G$H3^9`qQ04)"[&\GM
%pX0guYEuV!^0CU*[q3YsSSF+!><B+I)QW"umFH("l;j+6bNLj374moDW,<!tMWU7b@9JBtrQ6q\Nl?+pD*1_E>.a$nQD!(M[ckf!
%E&6qWMjp\'(jB/uH?H.C?GEr'H/,YfI(]Mo\U1Ws%\;HC3'p[=ZR5l!#NP-G*5R6k3u!W$o@+sd[NY,u(hp)VBUF`q&e,X&l5\HE
%e/0K9/m.7oYh$8PQ/V&Br6gQ9K;W`6k/d="5l25&WCZW*iUKp_h@5rki]$A,0kqZ2H(+kn%Xk7kC,.\?L/;tX),&M%m\sR<55W3o
%@K;@EdZQK>0Fe-S2;>I\d=B.='@H72K$Ke/EHF6bX6`U3K>$YiQIEI&E^rn0]86ib?,i@jaLW<(7Il"g/8eAZd*<L]ji[2DmM2gE
%TGL3lIT'p=a)03Uo'5%*/G?@0=5^1ak%aW^K"5Qb4m0^2okZA?X^1(^[=<T`@D@`sB1cqm2O[gUA"\H[/opGW<9k[?-*>'rqLm>i
%U36C"4'LC[)2@MIPEf>7.5c3;KBV")L=\S#dFdqqdE-%c$V900)2q00KAD&6dk3f:DXHM*<S2k"2)asXQq:1Z?/f'a/s>gWbN!d7
%qBgO`epA]1p@ZRoW])`lk,&X$cdmm<cP!q8f^AH\lAa<aXW(`4jC+-Pml\MJM4ZGPOZbQ?l)feUmK[S*I"%-H-9#qslP!M$GY:%`
%Mc[CNaYG*AUSe2s[YF).C?7!36e)`]jaZlYaBS3seT]72M-/PGUo?\/"NM/)(n#jAD,&UF2?B,UrL'7g>Hk5"fRq0N5P>bqJ9D=0
%L#mDn)7(Rq<GM($jF@bfLGS1mIPqc_<@/.Ub."j.0]lBm6Ve^EDb0HnI:,p3p[C0pHJ33=WC::TKhk,4+Dp]8@s!M@D;Gf5%e>F#
%Ye1r9-<7.&(p1Kg0KmTL5-SCDQG?bEm=5bM3PFm`LL=(U+-amXK.RZeBOP7RX.IW"1I:MG^%:SNk,78#cs&L!*L!!Q4t*''f7K=(
%EDE"CjHh)QcKLh=+@"1kn+X.L5lB&?U[?&'A'SVkO]Ui;6"dM1'7VSp,?d<2k5BMA^5k7\*+4k<*Ig_T*VfUV/(<1;T"5?De4BTQ
%8$;u(!<cMle><mfX;8E"TT:q1WKB@+3#gp/!FACsU<jKJ,P>!:\A1/hCgeuK,a*$:P\Pjgg>=6m6>@7&'O_##N.;q%^A!i\;Qas3
%ULt?I!G[gE_1;+DoL_CH1UG2r=T_Un;,1p<bS+(eXh*8feV.]"gD>hr&_LUBA^iu2[B1;`7PI?qqE#A;GL'PR@@o*L5bbMLqUOt9
%[2)"a2>?1$a&1qFB=ojlq;lLfL6G#RqVD2Ror13A>A6$*#$PM80S>X%Q0Dfd'Cm_H[HN!=>JKrBk0B[72U>uj]cUo&h@n,r`6b6b
%$em0p?#<qN_<$YW:"67MY",CF;A(V;%bUYtF0a@3&n.]-T$7M7T8p%u"/^!ncnO;L`mOQirCP])m<q6lI-Y("'H$;T]Yk9;ak:%2
%?g;;USaLPXT5r=8LNuFF!^S2$[q^*%[buq1fLO&&aZ+'*F4@/)`-:GYe$$5O?qf*uE(a&=eR9jQMpK.0:0NS`4/uP7H`'?JLJMeo
%6GKje2`3-FTe2XU#3(2G3gm#Cp=p;%[hd)*_qq&aj]rB(iHHX1fc"Q$?irpGG0mBXbS6KD5.q'0r+:8\Mu,KjBmjD8m=B-=,mo!r
%B<Ogu)-[lf%7f=7A>hB$\r;C%e<O"Ho[pe9oNF+*AWgE:4;X?<EXYKOV?Z^"3:Qne8WrP>BHQ%3,n0V(JA93'$Y-<)SBZ4\5]SR^
%.1;tArk9[\?PLrd/d^+P+#WP#3FH=\O#.JXkZ[%i(7dtXT:m_/_IM^d+a?/sQ';%/,Ag+u^/MpQb0N9\a>)sCclB.QBTh>;XO<<0
%`I%I6VgaG7m88":Sm]I&0stt$Cr#f0>/7P1$*82T$LE34,i0hK?Z/ujmlGp:R)e)+WPQ@lIL0YD(!G*9VZ)e3VO,)5Y^DaNB4XK(
%DpL$6,a?U1jQrqu"84SI/8;pi"Mo%"RWLff^)I^4eZqWWm0C8e,\$[_rN>L)2.cW<_\6Ar^gH+Klt*LkdP@X(k$mg/@Tj@-?k.,?
%$.n$+gVSDH%/_WA9=T023;B58UCW"*)u/DQc@cXlEO)(_B9672X?1MmVI).`\PV=TFRiWLg+Yd[!Kr:,C=I]%.^9%s=)87gjW)Q3
%(0CQC08`lII9o8[/JoKc*MWF/2JZ\=GlAar;aX&!MscKu1G7lo]XcW_\Brm/J]#nt"EV;V+c?KriW=JAR7(X<f\J_I&>P^,1,36u
%5-s6qG(md`f9EB)f*=(g[Y3#e6e>^a>BmRHqpS+G:"EY5\`7P27e#0P18<V8:M)#l1A(3;pQO!+dS:q>3t9gPBZ$3Yhe'ZkQ(*-:
%To<"pfX#J-b6'*h"["8.!*s<.ch'JK5NT]YDG7inBpm)c@Vni!IPtVBpQ,m[W]<sN?o-Hi5j0S;BU,6f6I1sPD2oHcL5UFDGUS^g
%`O%em:FD&i:[+5\D$c*f'Se)![CI0:jSf2bOm\-J6tcZQ*`%99.lbq.#?5eUq/u7&qIYKp=oq7cZgnuW#mdZsSFsc"*\ge*CqUDa
%F>[TYf[p#!`9_?P_pJ+-9qXB(PurYnS%A4@YaRePC]u2Fhblp):\DD/=*DT<)4GtueH5q>F:V(&2f3fUN&oA.]4F`s2S(If0+>E4
%@k#YI[[1AbPO/<G<dN1Y[$feMCQXE,`kgmI*=sXT(F2:CT;u*"=CHK+%0M!L5`hZUG#nRXND0TMq>E+u>I_%s81Ide_pQ-W35>/%
%YW-5"L0R47a.>f-\+;'N29s(d.;hJ'3sJ#[]#>3ad"4Ce"4*0\9Dq7g%b=(9-VYg<;FoGg"RT=SgppJ)m59.k8_8>LaEd+US)7^O
%c4WPF24l&'HZR8<2a8ZPUIlZPrsZn!ebnnrQ433cnlldP60'ofl2\FJjuV23)'E@"[dFL)jJ,DWlBCgFbno0G<Z>?nYR2]H6oS5;
%+.,\=b$QgjU"&<op1BD(Ji5bd/c8*11G=W>5lW.uIQ^P/j9$R<CW=[!Tj2<+g8mi=o2Gi.hM?<9pb0DkR?hg,=L]74:8YhPDrrps
%j>V5NZ`Xu]!TWS7nZE$`$8[F>`![Q2&a9+LNj5r`_":8\?BC.@erk_Zb2.PhTq.(tr+o\-k@!Dq[##6k:Va6fa(*WM$q3O"cdgNI
%?n;[,7fJQ)&5j9c)"U53%,eUu^-q&T-VV4=eoNOdLl(dTF\,JdW.oVjV0c5Y]oP_8L;%.WD<du6bI)tfmC_?,*_kGED(K"I&Ol2R
%C#4J1U?I$@HSsL>WDfml--[)[%%fEEoOZ,*eWIR=N>->*C96.Pf(*X3/k9Xd\%EP&h<>craAtXMO&]udY8F@'&dLRAdG;q?GJFBP
%S]651+6l#pH2B]_T@jp(-ZGm`#0u\AL+:9@jM(]G,?:TB7Rfn]R]>hsDqj68mHoa$Ce#'N6S<h1d,b9(Ks3,-TUT'KI"4<97Ndod
%5p0Fr0;Q&7:,PC5A;>WN\*2GAhjPC'3+,<<Co]G^)8#&)#aD0&&"&\sIZO_Jdb0At\Eo[!rRt]u\lY\ucE'1oN_d(0pC"=-P?<3M
%;kp&@5Yn;S0="VCKTDuG]q]X,X.Jl>#l*af2d+u8<gh:5lMu;eoGhBo*Vp?Yptg#kMBLLRNmFbk/1mnY-98(ONu\tQ0.GZAC;d-j
%ZYu?&>9Z(WVJOZ%Vu8FI(!)CY21COXF5q8Z#`+@rLcQb0iOqk3-VooF-p^g*QDgi0-"KTq(r:eF]<2arq@II"Tgq1jEtatN"3lr"
%#l:W6VGE;&Y.Z(qGQYrbBuQIGK-nrSkH>%BS[nPA7JNuKHXf6$WtfA`'7"^RH@\H&gCT@jqQU4D@Vbr48\PopD:)"mY)Et!nnI!p
%!aiR;:IKAd($r8iK5@[30qDmUj@b1Y;s>=f#KsE<^14$%1/(tR&Q?MM,hS!oa0YI0V9]97d[o\'$Z<=5qpt!kOYfF`$V:8TjX!@F
%[O+)b[MZ]Y?6^oX7FG)".$%:p'HTi$G7dEn;Gog1N?k3BZ7Jl/hR+)L09.=P^:Z_B/rnkh4W16,c]1G.otrA:2Pf,$]Bk8'>GE4]
%:HRinBo"Cu?NmuA_1mVs1cG/X%^oVLG+[Mud:J$&rU`955qbBjrTNIIaN]/d4HQ(?8^RX`#3=ArfQsd]mU;S\G+HNC(#bl*4[u-d
%Y2ie&'l['#MAQC0pgR.mRqPpU;L/]HjD":-Ra]>%8M,1gg_R]Y!%1s4*"tO0RT=.1Y<=e:2cQ*]V\H6O,;*orW#]8^=!7>#2QYDO
%of*@_O3DbVkg<&"[O^8QZ3E)'ek#A:Bkh.?I4X_%?BUQTDPimh.<$&h'X3a#IIi6>=dG[r["hAl*Jt>]bTo5[Abu(Ao$6-#'BorR
%^u6lMP`>`=9YPKfZ>24D;f'82`0pU'I`)C"\YrkkAeM/uZ(Br!ed)-32(YFO^cDInM9=??V9AdE@7!m]P8QLol?uU<T8:`&\mp2/
%it2u/SE1H%ChNjhLVNt;Z>c`RXu:e;qtc=j1uJ;[YlP$tY9`DWX:Z^!_5M,;a0b^0:%i!^?YidB9\JQg"])TAe\YKLQCa8]>%MBj
%pe=jDN7&-QplGta3iF48Q:/)\fj0T5,bs$u^CK%aq!tNG%P^Vkd8n_36S*0p28dH`fGJZkBH;[bO*'II64rZp/Z'>-49."#nL"pN
%mRrchoPK>FL+ZULY,=tQ4Y^UGiGP"V.o?e?c;Q0)C3Wj)iE47\M/GIN]fL#I\iob8:HH#*b^DgP)#.&BCtVVmA#u7?q(l3oE\I[L
%"Js.5:Qf)1nfBskP1KGhNAuK).uc8dpoTar7WD^FZVFR.opWPPS82FLclW)N3TRG8hSNU)hgIr$E9u;'fk:V$f_)T6$_>R<a@3B*
%<l%][rRpBgZ(ZIj'GlAl4pp**n8E(*[M-]0"Zc$dDqQlL@asuQg4Ac%9^33DEG24^[dk\(#o-l2q-F"/=)Bm`LjhC8,-5p]CjbS,
%l2$(LU&?tp.!!;B7$nW^Xf.-J<(]/>F@G>a\H/^c=kfWG><:'GZ_"79l]QOYB\kGed$&<oKbb6T+@Q(Z&K)X*rB>O*/Ct`BYE#+'
%#)[+&f7r?Y2PB^"Ohm$R+=E0T3CVkW;!;([;1J?k1j;m4"6F]%p'I*0Z<,+^HMe6Ge_:9t'qA;a05XAQ.qh)]l)lc'cr^[iGL#/W
%_k'OG#'S+?3H.Q!kH9-D-*_uOZQ*)Thfa7MK:QLoVJ`.+Q@S?BNR$Xt/f16G#.QIs`Or(Y+UImS^;d6T?"tUX%'P1a2R;WJrdgca
%CA<.VrBLC/2K6aXME]pP;g?JI/)WPces<R)NHuuB0L.>>:sGAe;?!;6&,&2Vr)>1'cBj714W4(tSrqFsC3sZ;XmTHJjp1p$R#gp^
%'&*u;;'QG&n<dH_*7shJ%4C$0P$?43XDY]=geWV)#1'ITbbWE5b[Z#j;(WakpYn,h[K^hIYKU*#+V1RYi)VT`r]+fr'Gs^Y5j5tg
%3k(W>l<0V`X)ge,(050$8akNj!-9h??jhu)%/Zs8-ET--_r:fl0_+-?)1q@*0l\0qq3F.^_3;-4]=q'/F.rMG,''Db^aY,XOZG.,
%BetKS.7A6Mb2SfqW5!_$``9<8a^7h%j<\<p1aLT>)&BMd5YWR4U\Dt]H4QL?[I&fA1TG*JKXJ[)!NZZ(A$_GBgN0_3goars]4tdE
%"n`Q%Qqo"c^u<lEm-'E(="btD6HVO[X1,&nE9?5C.0BDMP5P/CV8X^ZYSBdW%lPcW-?A&H3=j@BNsal_O7eoEIW[HRhu=(kfU-!X
%*Rb'N5?fsb/9osURjOVaf>.g]4sd*[B`g&ZbZVC.U6aQc;'LQ#dN=C"2Uq<b`IF+c"L'MGJ]%MOr3Ea'a/Th_$*NB4E13YUbh%.&
%nsD=2l+e:+k<Np$B.15$$I)q)R?qn@ad5,0-a<_/W+A8I92;+o8hfSLesODB#J-$K-9eeQo(,hL&tRMfNDnP2&G?;XW&6WTDkV_u
%GQMBK^Sh%[aJu@_1S"nQ;\#qirV4cE@Ea#+Oj8Do;TES?MD,kU?B:&$A7>(I8<!Zd5?7(%B7-fqXGF*2,uUMq%<Qd@m.'&mo.m9l
%q4"X,:;g)\:Z6ZDVPgssZGqc*N5l^><c;0W9NDG5d-7X?#:45Ne*]$`fsQ25T#4>6DnMCqe(<Um&6'S$8cQ<3!A*[YNn:oZQq_fu
%rdoi$J*-'o;FAp]#]FaRY$'20Qa._C)RCC2he4%#b*Lsa11mtRLoH\p[+k*3j_K4sTo@i"K]2:4o#Ul?!E5k5K8/nL9_h+PC[jXn
%aFK9+iiF_5mPn,<g?9DHp3gu0an<GM0S$D6$8$YQcOBh.<9m?ilGqmI(&Tr6bib34ZbR\3;N$U`RTg3E@DSM(eS)EhiZFc`^?Gc^
%WrZ8bRgu:Bi)'bQ@AF(.U<rK#OeoD-V-`@gHj3p(r1[DIdErnX9&QJiee0ip&IW%P>[tgkUbdZ&\L[M#\1to6A]8/a;IGum-M%uC
%c/X7?V+b.R9jB2+W2#kOIZNdQO`bZTM$DDOBp5]D)B3j-)idk(X'#pi8.)Kd`/a\fT>$=`oqqne4o6WFbF%=h1th7SP2>BU$cb0@
%K\4aknd4WQ5,k0KbokMe=`"U>(im$5Y4@iRa/Z+6*SN`(3;S<J8BjV^%r/JWPh\Zs.7)4m(=hq?/%_?eO)t"&)gkL?VX.a7B-QWD
%)n<QJo1MK=q?;dC@uLkodg6_k#HgV\U++g\"?<QW8Gu1A^!FGo`CipP?kjLe&e<@D^FpHOl#&R>K=B'5p2+&TUHOq@3`I$5[/[KQ
%ZVu38XCA3&/@;'*&QVV'MbZ6P&n1!-=/ss\^A\+\Z#sSJeroK#C(\mL:-28WG?Z4&?+qSF[7a1$jgpKpQ[Mi;^fA/R>UJs)Cl<K$
%/4!qa=PSSI]I2V-],[4:@`)OSZ995j%/T!c<5Ht"Z]7,QAft%.?i'_kSldL(MBEZ\QEs(;Y'QdDFeqhWZ?uV'oe9aFV/uT=J<bK-
%jR7'7k;<O7h^9Gd0j-8jMJQQ?9@mV`[)ueH%Fdd=J(.bA"6o]!(XRS#HmLml.^;Pb@beM4m%&!XlOIq_>-Z[!:\9m!.R?L)7u@kV
%_>3#fQ<.AUK[O,MZ=U^92(KU*n]pRb<9<^n<9doOFR=i8iF-N#pFdIfjV&:A'G9H,P=^.NCeloY;4n15Nl95KFD-VI,NG>iLG;u5
%ZgIHE,$pX?S$9=&?f:QG/K&<.*:&-+&iZ>Hf8b8Z2VU(8;\uhaX7jC;n4EMr_57=`+S70Yeu>;j.-H)'*/fE#/.s[B1<$+u!I`8=
%mLq\$X<E$nLP3e\/LFn-5e(r20XfU798)Y:/-3O6*ia254q"7F.iADJT@XZVg$a3Y:qjC85h=#AQ.M9sk1!e3hbu`=Cb;SIn[lY*
%HLdX(!Q,opfkZ.\kUTdaN&O]bl"MLO_tsZ]WPhk(CH7?rqk-XG@OjCi8>Ha^Q`o$+LmmLa7;.BPlrTdSEK_;2?C#!jGq-1:O:(QC
%6''*OW&_s+>\Jb"0^Vh/FSKOd)VPL_WEHsF$IrYbOn4+1jsa3J<ZM,-M^B8Jq>Z0HU#8.:jfk+ghmW.0r:cgh'@jV6XN0r34'jYr
%aeUijT09k+*L;oHrP-E<(KjH6[16`sBJlB3gX.o5J2Ps.!K1hPjZtjg,!]^Jicuha40WN'kmo.oK,4Zb3s^9jK6a*VpgQ^qPjr>S
%RpOUZLK)#j-;"*<V]1VBl60=q5,@CQVUI]RlWO^o#MusG.4PUK*g66iCG(_[mp8>K=Mr7^g-22,;qk(%9t-NkNHlkC7oK!KJO3I-
%s/j#J'C(%<'WLXuhp=fgLeIkMFsa*T[9#*skeCSlGNODK.&6jL<q,!Od71Ucel]V815!BcqVtR`"i+oD2/!?aO6cXI@Rd+)<,'JO
%3l!D>]q@4u2?W>#O28]:Vs*1j:kJ05J/1ZV3!;l9/2&Yr2<J]aD`7s_NHkTQ,-Xnj2!5j?`;gbGFG>_!H/*KXQ-I*8>k2BFE[K\r
%,#[KK_.Yb<CZ0##Tsd6/:HfGA/X#k<>\EI2(\39OP.g0oH8">E*mAWl'ueUZQW@k2aoE6Q]dfW>g?$H:i9FNSeKD(L[j*8X_!I1c
%\HHUhYG(>WG<=qXE`+L&?[=>V18Lq7l_?1(MM#r>'eoPZ2i?oP,6$B:JAn5PNUYZMr5=sm*Tp#83>oEXFpUc.U&1Ye;mq(.\<02f
%RK_Y+4""d9()+iS=MCo\>Qr]c(`%?q_"]jn:e@?L>%dtQd/AS>.ZjH74C-CM$:2I(!*UN6^bsp#'AN?(E[6_$dTNHL4+<,KOddsC
%ctHo_Y77*6Nqa9lkcGCEUGsN'#n7!MloDkoBu4Fs(mCeD.S$RIQ6a-DPJPu*0]m2XEgiLBLVe'WZH/bk^*R8/*.<^unAGgWd8eTf
%OJ98g>bEaA1F[t:X!*&Sa;o\iNq3Z<de0IQa=B;hc$#S$H80&c[kts#H=k>2=J,rlgJ2'N/2_b<lG;]O9bBr^?^BI43J?r_W?63C
%([W$5],R%<NFg6M3)mbY9@'H`II=`pT,DZ+)aX,9X2ss"(m':)j)2AaeK;5[Ug]$5kHY*biE:"Q8>j?O6IUQlmQD/A+83@*%*\H^
%KD/G8d9LGFS6<t^BNdYE>uWu2HR.D`BFdEFNQfN?0'5GC0$++kWN[(>p;t2:k=tZHYeoGe[<KABnFH!o-/GiDNq]<!7V6/>0)[D7
%H]N'tRtBJ$)?#:WDa6_2&\Mc8+=a#ZP]2O*XN]8PL>_#!-c4fLaiZOD]<\meIg^jI-g+5C"bM+4@*eE*_P's^e`B":%41s#SC8`7
%`WS1.paY,'X#ddRiB_uq+0]&SP)`o1:<1_aN_CGng[1cEJSM6.8i*X<YNi:,\Gd:@;/:T%;X7D7Z5kL8W+k<_*VDUWV.S$ncQ+.*
%/@O@IH^!"nHhD(nY,=<KGLBXs*K$E'SoONo:2Aaghr#;jM#A</mDW[,CYe3`?s\`H;iJq(Kk2WO[qKP$Ua'nZ=n\I43hk(lHH%4B
%M2oA-o2*?.Mu,J%7sGh?7gbl6B%n/l"_E0(Snh8#^SWb/an$ZFNWNG#/;TQ(hbFY9a51HQ0#<!&5`4X$)A.TPP*<c`qABq\]-XCf
%X,n5\`tRN7+V=oYoo=*j[e7"eKhkU2(3gfPM'F:aCsoOo_i(K4RG2%O.gX&>^DpO\`W=d-3J<"/4Fbr<QgUNm8>f[K+o*)/Y/!@3
%kh1\1hO)tdqT%jp`+D(-4n^"f2tp(U&^oGUYsIhn7Fi@]CT8IYO3jFQ?(h<(=C)K&9]-j.:0Z#23rNJC4i[nkO)\oJ*"U$:)=WJH
%!i7J\Trn'!:Hpe8aTN%I:K*S*_$oP\g+LpIlqL!P3Ai-mrpMkK:j5$E!Bnb+a=Qlfq+pr50nZV0MhLRH,(m`cp!k^=W&`PqVhX<a
%aen"S+\\[2!o-E(08%Uo^j38F+Ddgki^ISR<A;u0oH5].%WQUPPeAtt#q1Er<.jkUfs,=b9tl>'INk(L3oRuN>ipU,h$EM;'>MZb
%]XHE/Oej3-)?>fQNj5t"#a"r,`0df"Cs]N&JZpdpL7W)1G.<;sM0^a8?rE]hK^D1FSA(H.3HkQ%618I`_1[Vg#5J,-.ZY`\o3C8V
%N3CS$0irEnYg,_@^Jhi"^72Fq]V^ku]3:3.9?://+)B7o-D<(>!\B.blJ_!tjf:iJFUYb]=%/q8m`iB07JuRia6pls.ia;?NG,+A
%1FaI3b0#e<qFGb?QZsDNY&H^J?@uk";mEfr_FQ%8^IraGa4Y*\6+Mk2"h6n=PS)Im`R?a!kmXrP=?b/GCi5^=U4KZl_MTH.*W,dQ
%L4BYh]qh`9;tRs@SS=)@WDT]l:lCk0>MrTEr6?]Ad46oCe!0X:)C,,p!Vi>#gn""1,>\/Wk!jRrB]`l)QM9a+2/Rp?=b.<\'A/ga
%Jh"fcS:,Koht@rY_kRD3KDL7H$bkfP3GeS-8Z8Y@:_>kl^EiHa+LHC,)Z+iGlHQ0Of;hmJYIIs?Hmh8'%WnOpH!mjcH+d)sR#dLX
%CCUT\FB2@H$+j!i"9pirI7]A9?0G@i!s:)(lKdl!BOOkY0#^k9Ph=fWf3g/-g?\VdYN)50:5YiW?11eG#KqtqEc=lIlZJAD*OLMg
%78!FrOXO*QSQDa?&g^JM?=3Y<XAJBc+08;*g?3)f:9d,k^5go01fQNf@1OR0"#Vic4[dNf#JqNM>OOEGl5%ohVb50h[+M,fb5%3h
%S5;S^/?5ksA,G8N.Q&"7TWS4O3j!'H2c)#cr/a84M9oM5\@qn6*mOhTHjquZ.mai><V=LQ=7KCYf?k:/*,d)D90sFJ,mVi]Y[`fF
%/G*<G>X7N/\0@tjm@GNu`G_QA;$`.3H47eP&Rssm_j[_/F<eDFdk._/JP/KRP7OCr>B`$^!ZY-V]6/>H/bX9%Ksk302r2n!1"pNu
%mVTOhC<2XnDVa,j$YJ92gMYj'FA#`l-/3V/m\X1o25J`FlgCWS)C%`+Xh1'?Tfs&\D7=?U2Vit10u^S*G;n=ZDc(DaA\5G9(@8&r
%fQQTKVH[FZb&+WUDRp#MIC6c&e2Q2E7XM;Hh7C5_()VsMgTA)WDXe_dYI*,s]BL*tW5Z1#P#/9ur!?b4&2gl./?OT(."o/c>NUHj
%A:lNaj!nqT>c<#+\LL3a8'gk7i\S$=/4<P+56ejKPmt1d>/"IG4Z:S^-lL7Z0;n#ah@$UE-T<E\S8ler-.Ai0U3?s5,DE\hdgVSn
%?&\q(n93riIn\(r\3RU"5P;TsEuJUK@t!&Ppp:9*"FZpKIOs!sAnnR]bK&5=qKis.7G\o6G'qqq\WlV8Qa6!VVW:h!CF@pkLEKc*
%)C&UI#*nO'"_M9Kd38fJO8N7_THoIM/+JdCS?`d_Bl\lTX+ea[kPW&8bS\Q2"Lm73S9d'kZqdT^jQY;&dkMR=2D0)3:_DRG');<B
%Hb.0L#T28&.j@g'#V<&':jrJSdf#gdWTFk%!ac)d=>KilapT1Jh%qrp-[&`SnCWs4.d.),r>)o/Fok%M0k8GVcmS0W22!u0j4Z!8
%BZKtVR+jjL__*)M8!5PgpM&f!f*'g*FuXs0[Ze+`BoXZ.l02-dbF%lHDaIP>Od$5E:hgh[D9F-G2B4LjNFAP^#pDQDR@E)D!edTf
%LD`UrkO%Pa?SkWaN3XL#0D.CBerja+7W>1bfcOUG^oY:@9kO"S_Vi1mXiBsnrN@1<(]Fkus*9FI5Jljo+8kVC@AkoUHiJ@BrsHLZ
%A'[S]p[ij?T<E\Kg].82^e;p]iB9j6Mu7)Rm=BVZs3-!3G7WI<^9YNU[N;*GVfD_]_>fu(d2]sfaYikfS&Xh("l4`Z1[q(>5555o
%i4lY=bu"]5r\+&."98/qkPt:KJ%gEOIihtj^G1+4772=Tc@F78cPm?R_dT2#hstm27sLOf0,P2XFZY!P0=^$53!heM`oqJuh#[!/
%_FR#s_bRBg']AEdLRk":i=S37GieQMn?^TO+Q;ti6@aR+#C69$1[$-4r7atJ_!d:/nTPuYEdEglA0]>q@m*'u6H1%D%C'RHf_HTu
%YWSF>?\e\H!IP%M^BBl/V^Lg8:C6ifi/-EBn>:.Ylj$V-RscH!+U$X(B&IoBV"&a:B>EmJguIpU#DU&Z69_;+9RrTqIV6Fuh\?JX
%I3(eJf*ebWdEB%8"`V`P%#,%4T?$29"#bH35N&FM4<bV]])?M;6."j@LbO;^1=kK-#6P*YNIVQ/qZ%R&DJ.T(07]/f+E_)o>R6,D
%cbQ#;5(E'ocOIn[%=-@&q:n9qT+CG?'*t89K`#5j`s[E:,31$)ILgphcg;-qI:;W4J.ll(;!e]Qr>n`G]o35Ng$o9;*Y73mn[ia#
%"UiQhbRG"`)KP]1m+Md@!e**f*^CSc_[YJapO^e>K$LS:b`!&r,Y3H0H+`'@DD-JC]G+%@fF=4lhZ\`Qo(dn$8Kgk0nD=\0(dM&>
%DbFCL!%G7gZRZC0k6&WmqnqWE^F+sGoRYWk+BqSdqKuZ\d*'7o#5gnkJro%)3u<F_!;st[k-"fo"ME#V35>t4mY(_RcgCB<kLW%.
%-%MV<)$<*R.kp1.qYX[9e:;,gpVEifV_80j#)e2M-QI/QHpdss5Qj7.0k%iG9=VZKG\F+ncbL6K69sUWK0_270K_Tc&F<&o=3duM
%&j.5V3Zm9M!%mN0+)j"I6E^_0*k6C0&.p:O%"h>pK3&6_rX.]qpfZ5g'&3XMis%"O4:'.pYk>dH%iDk_NWOUi$c$?@on*:!4h`_X
%_!2=(]YrL2Mco+RR/l,iHpP[Xpimo0$+CQZ#Smn9!89g0$%sr;p)TBMn<t/rB`bq0^^^gVG<`YS$ou-JoEg$4Fbded_UU,\*+/g[
%7Ke"QgVL#pf>%l:LEJe^2ZR4D`"V($DL_HZRNLs9-l0U_qhSVk?3B3*/,C\+EF?f!B@fO]Kj9_h?=pR=4at-VaAFW8p`I[D=*;9K
%s3CV3.>f)G9j7La%(63p"rR3>$3)ecr\YW[Pl^%Dgjhes:0AY6_4h"c#=ooN0-&uT'nk2SFptn>>(WIu(kh0Go%N?;E1_f8_6D-@
%+K7`B+M)`j7Htfc>CL!G)&E_V"8r%_)RtuYI\5e^-BH1b#^AIFo*<Y7U.`<fkj/q%PX^73"tiEj?fS*gU6u!*;!&[hS-\qNf)U0C
%Y5t1/7N<*>(2Q;+c>ua6JGAm8c[H8*!KA=F:%6mNVkgJ8A)fQGNg+X,X9ihR`IZA9:epclY]H,!&01]6F$X;b[J[@O\,"roEe>NU
%\",])DaX:#B^:4lm/H1"-j#2O!/hP>)D!8hhsocWf[&+HCAZoKkGUjD=b1%a6XVDg)pSJsG[kGAS(+m!q#]3+ZeaR>:&YTNIolN`
%I^018r0qON47LbA^YRN,5O]$TamjO^FhTT!rsoOub:E~>
%AI9_PrivateDataEnd
\ No newline at end of file
diff --git a/docs/xen-api/xenapi-coversheet.tex b/docs/xen-api/xenapi-coversheet.tex
deleted file mode 100644
index 534a124..0000000
--- a/docs/xen-api/xenapi-coversheet.tex
+++ /dev/null
@@ -1,38 +0,0 @@
-%
-% Copyright (c) 2006-2007 XenSource, Inc.
-%
-% Permission is granted to copy, distribute and/or modify this document under
-% the terms of the GNU Free Documentation License, Version 1.2 or any later
-% version published by the Free Software Foundation; with no Invariant
-% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
-% license is included in the section entitled
-% "GNU Free Documentation License" or the file fdl.tex.
-%
-% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
-%
-
-%% Document title
-\newcommand{\doctitle}{Xen Management API}
-
-\newcommand{\coversheetlogo}{xen.eps}
-
-%% Document date
-\newcommand{\datestring}{10th January 2010}
-
-\newcommand{\releasestatement}{Stable Release}
-
-%% Document revision
-\newcommand{\revstring}{API Revision 1.0.10}
-
-%% Document authors
-\newcommand{\docauthors}{
-Ewan Mellor: & {\tt ewan@xensource.com} \\
-Richard Sharp: & {\tt richard.sharp@xensource.com} \\
-David Scott: & {\tt david.scott@xensource.com}}
-\newcommand{\legalnotice}{Copyright \copyright{} 2006-2007 XenSource, Inc.\\ \\
-Permission is granted to copy, distribute and/or modify this document under
-the terms of the GNU Free Documentation License, Version 1.2 or any later
-version published by the Free Software Foundation; with no Invariant Sections,
-no Front-Cover Texts and no Back-Cover Texts. A copy of the license is
-included in the section entitled "GNU Free Documentation License".
-}
diff --git a/docs/xen-api/xenapi-datamodel-graph.dot b/docs/xen-api/xenapi-datamodel-graph.dot
deleted file mode 100644
index d34ed39..0000000
--- a/docs/xen-api/xenapi-datamodel-graph.dot
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# Copyright (c) 2006-2007 XenSource, Inc.
-#
-# Permission is granted to copy, distribute and/or modify this document under
-# the terms of the GNU Free Documentation License, Version 1.2 or any later
-# version published by the Free Software Foundation; with no Invariant
-# Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
-# license is included in the section entitled
-# "GNU Free Documentation License" or the file fdl.tex.
-#
-
-digraph "Xen-API Class Diagram" {
-fontname="Verdana";
-
-node [ shape=box ]; session VM host network VIF PIF SR VDI VBD PBD user;
-node [ shape=box ]; XSPolicy ACMPolicy DPCI PPCI host_cpu console VTPM;
-node [ shape=box ]; DSCSI PSCSI DSCSI_HBA PSCSI_HBA cpu_pool;
-node [ shape=ellipse ]; VM_metrics VM_guest_metrics host_metrics;
-node [ shape=ellipse ]; PIF_metrics VIF_metrics VBD_metrics PBD_metrics;
-session -> host [ arrowhead="none" ]
-session -> user [ arrowhead="none" ]
-VM -> VM_metrics [ arrowhead="none" ]
-VM -> VM_guest_metrics [ arrowhead="none" ]
-VM -> console [ arrowhead="crow" ]
-host -> PBD [ arrowhead="crow", arrowtail="none" ]
-host -> host_metrics [ arrowhead="none" ]
-host -> host_cpu [ arrowhead="crow", arrowtail="none" ]
-VIF -> VM [ arrowhead="none", arrowtail="crow" ]
-VIF -> network [ arrowhead="none", arrowtail="crow" ]
-VIF -> VIF_metrics [ arrowhead="none" ]
-PIF -> host [ arrowhead="none", arrowtail="crow" ]
-PIF -> network [ arrowhead="none", arrowtail="crow" ]
-PIF -> PIF_metrics [ arrowhead="none" ]
-SR -> PBD [ arrowhead="crow", arrowtail="none" ]
-PBD -> PBD_metrics [ arrowhead="none" ]
-SR -> VDI [ arrowhead="crow", arrowtail="none" ]
-VDI -> VBD [ arrowhead="crow", arrowtail="none" ]
-VBD -> VM [ arrowhead="none", arrowtail="crow" ]
-VTPM -> VM [ arrowhead="none", arrowtail="crow" ]
-VBD -> VBD_metrics [ arrowhead="none" ]
-XSPolicy -> host [ arrowhead="none" ]
-XSPolicy -> ACMPolicy [ arrowhead="none" ]
-DPCI -> VM [ arrowhead="none", arrowtail="crow" ]
-DPCI -> PPCI [ arrowhead="none" ]
-PPCI -> host [ arrowhead="none", arrowtail="crow" ]
-DSCSI -> VM [ arrowhead="none", arrowtail="crow" ]
-DSCSI_HBA -> VM [ arrowhead="none", arrowtail="crow" ]
-DSCSI -> DSCSI_HBA [ arrowhead="none", arrowtail="crow" ]
-DSCSI -> PSCSI [ arrowhead="none" ]
-DSCSI_HBA -> PSCSI_HBA [ arrowhead="crow", arrowtail="none" ]
-PSCSI -> host [ arrowhead="none", arrowtail="crow" ]
-PSCSI_HBA -> host [ arrowhead="none", arrowtail="crow" ]
-PSCSI -> PSCSI_HBA [ arrowhead="none", arrowtail="crow" ]
-cpu_pool -> host_cpu [ arrowhead="crow", arrowtail="none" ]
-cpu_pool -> VM [ arrowhead="crow", arrowtail="none" ]
-host -> cpu_pool [ arrowhead="crow", arrowtail="none" ]
-}
diff --git a/docs/xen-api/xenapi-datamodel.tex b/docs/xen-api/xenapi-datamodel.tex
deleted file mode 100644
index 4f9ce20..0000000
--- a/docs/xen-api/xenapi-datamodel.tex
+++ /dev/null
@@ -1,20245 +0,0 @@
-%
-% Copyright (c) 2006-2007 XenSource, Inc.
-% Copyright (c) 2009 flonatel GmbH & Co. KG
-%
-% Permission is granted to copy, distribute and/or modify this document under
-% the terms of the GNU Free Documentation License, Version 1.2 or any later
-% version published by the Free Software Foundation; with no Invariant
-% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
-% license is included in the section entitled
-% "GNU Free Documentation License" or the file fdl.tex.
-%
-% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
-% Contributor: Andreas Florath
-%
-
-\chapter{API Reference}
-\label{api-reference}
-
-
-\section{Classes}
-The following classes are defined:
-
-\begin{center}\begin{tabular}{|lp{10cm}|}
-\hline
-Name & Description \\
-\hline
-{\tt session} & A session \\
-{\tt task} & A long-running asynchronous task \\
-{\tt event} & Asynchronous event registration and handling \\
-{\tt VM} & A virtual machine (or 'guest') \\
-{\tt VM\_metrics} & The metrics associated with a VM \\
-{\tt VM\_guest\_metrics} & The metrics reported by the guest (as opposed to inferred from outside) \\
-{\tt host} & A physical host \\
-{\tt host\_metrics} & The metrics associated with a host \\
-{\tt host\_cpu} & A physical CPU \\
-{\tt network} & A virtual network \\
-{\tt VIF} & A virtual network interface \\
-{\tt VIF\_metrics} & The metrics associated with a virtual network device \\
-{\tt PIF} & A physical network interface (note separate VLANs are represented as several PIFs) \\
-{\tt PIF\_metrics} & The metrics associated with a physical network interface \\
-{\tt SR} & A storage repository \\
-{\tt VDI} & A virtual disk image \\
-{\tt VBD} & A virtual block device \\
-{\tt VBD\_metrics} & The metrics associated with a virtual block device \\
-{\tt PBD} & The physical block devices through which hosts access SRs \\
-{\tt crashdump} & A VM crashdump \\
-{\tt VTPM} & A virtual TPM device \\
-{\tt console} & A console \\
-{\tt DPCI} & A pass-through PCI device \\
-{\tt PPCI} & A physical PCI device \\
-{\tt DSCSI} & A half-virtualized SCSI device \\
-{\tt DSCSI\_HBA} & A half-virtualized SCSI host bus adapter \\
-{\tt PSCSI} & A physical SCSI device \\
-{\tt PSCSI\_HBA} & A physical SCSI host bus adapter \\
-{\tt user} & A user of the system \\
-{\tt debug} & A basic class for testing \\
-{\tt XSPolicy} & A class for handling Xen Security Policies \\
-{\tt ACMPolicy} & A class for handling ACM-type policies \\
-{\tt cpu\_pool} & A container for VMs which should shared the same host\_cpu(s) \\
-\hline
-\end{tabular}\end{center}
-\section{Relationships Between Classes}
-Fields that are bound together are shown in the following table:
-\begin{center}\begin{tabular}{|ll|l|}
-\hline
-{\em object.field} & {\em object.field} & {\em relationship} \\
-
-\hline
-host.PBDs & PBD.host & many-to-one\\
-SR.PBDs & PBD.SR & many-to-one\\
-VDI.VBDs & VBD.VDI & many-to-one\\
-VDI.crash\_dumps & crashdump.VDI & many-to-one\\
-VBD.VM & VM.VBDs & one-to-many\\
-crashdump.VM & VM.crash\_dumps & one-to-many\\
-VIF.VM & VM.VIFs & one-to-many\\
-VIF.network & network.VIFs & one-to-many\\
-PIF.host & host.PIFs & one-to-many\\
-PIF.network & network.PIFs & one-to-many\\
-SR.VDIs & VDI.SR & many-to-one\\
-VTPM.VM & VM.VTPMs & one-to-many\\
-console.VM & VM.consoles & one-to-many\\
-DPCI.VM & VM.DPCIs & one-to-many\\
-PPCI.host & host.PPCIs & one-to-many\\
-DSCSI.VM & VM.DSCSIs & one-to-many\\
-DSCSI.HBA & DSCSI\_HBA.DSCSIs & one-to-many\\
-DSCSI\_HBA.VM & VM.DSCSI\_HBAs & one-to-many\\
-PSCSI.host & host.PSCSIs & one-to-many\\
-PSCSI.HBA & PSCSI\_HBA.PSCSIs & one-to-many\\
-PSCSI\_HBA.host & host.PSCSI\_HBAs & one-to-many\\
-host.resident\_VMs & VM.resident\_on & many-to-one\\
-host.host\_CPUs & host\_cpu.host & many-to-one\\
-host.resident\_cpu\_pools & cpu\_pool.resident\_on & many-to-one\\
-cpu\_pool.started\_VMs & VM.cpu\_pool & many-to-one\\
-cpu\_pool.host\_CPUs & host\_cpu.cpu\_pool & many-to-one\\
-\hline
-\end{tabular}\end{center}
-
-The following represents bound fields (as specified above) diagrammatically, using crows-foot notation to specify one-to-one, one-to-many or many-to-many
- relationships:
-
-\begin{center}\resizebox{0.8\textwidth}{!}{
-\includegraphics{xenapi-datamodel-graph}
-}\end{center}
-\
-\subsection{List of bound fields}
-\section{Types}
-\subsection{Primitives}
-The following primitive types are used to specify methods and fields in the API Reference:
-
-\begin{center}\begin{tabular}{|ll|}
-\hline
-Type & Description \\
-\hline
-String & text strings \\
-Int & 64-bit integers \\
-Float & IEEE double-precision floating-point numbers \\
-Bool & boolean \\
-DateTime & date and timestamp \\
-Ref (object name) & reference to an object of class name \\
-\hline
-\end{tabular}\end{center}
-\subsection{Higher order types}
-The following type constructors are used:
-
-\begin{center}\begin{tabular}{|ll|}
-\hline
-Type & Description \\
-\hline
-List (t) & an arbitrary-length list of elements of type t \\
-Map (a $\rightarrow$ b) & a table mapping values of type a to values of type b \\
-\hline
-\end{tabular}\end{center}
-\subsection{Enumeration types}
-The following enumeration types are used:
-
-\begin{longtable}{|ll|}
-\hline
-{\tt enum event\_operation} & \\
-\hline
-\hspace{0.5cm}{\tt add} & An object has been created \\
-\hspace{0.5cm}{\tt del} & An object has been deleted \\
-\hspace{0.5cm}{\tt mod} & An object has been modified \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
-{\tt enum console\_protocol} & \\
-\hline
-\hspace{0.5cm}{\tt vt100} & VT100 terminal \\
-\hspace{0.5cm}{\tt rfb} & Remote FrameBuffer protocol (as used in VNC) \\
-\hspace{0.5cm}{\tt rdp} & Remote Desktop Protocol \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
-{\tt enum vdi\_type} & \\
-\hline
-\hspace{0.5cm}{\tt system} & a disk that may be replaced on upgrade \\
-\hspace{0.5cm}{\tt user} & a disk that is always preserved on upgrade \\
-\hspace{0.5cm}{\tt ephemeral} & a disk that may be reformatted on upgrade \\
-\hspace{0.5cm}{\tt suspend} & a disk that stores a suspend image \\
-\hspace{0.5cm}{\tt crashdump} & a disk that stores VM crashdump information \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
-{\tt enum vm\_power\_state} & \\
-\hline
-\hspace{0.5cm}{\tt Halted} & Halted \\
-\hspace{0.5cm}{\tt Paused} & Paused \\
-\hspace{0.5cm}{\tt Running} & Running \\
-\hspace{0.5cm}{\tt Suspended} & Suspended \\
-\hspace{0.5cm}{\tt Crashed} & Crashed \\
-\hspace{0.5cm}{\tt Unknown} & Some other unknown state \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
-{\tt enum task\_allowed\_operations} & \\
-\hline
-\hspace{0.5cm}{\tt Cancel} & Cancel \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
-{\tt enum task\_status\_type} & \\
-\hline
-\hspace{0.5cm}{\tt pending} & task is in progress \\
-\hspace{0.5cm}{\tt success} & task was completed successfully \\
-\hspace{0.5cm}{\tt failure} & task has failed \\
-\hspace{0.5cm}{\tt cancelling} & task is being cancelled \\
-\hspace{0.5cm}{\tt cancelled} & task has been cancelled \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
-{\tt enum on\_normal\_exit} & \\
-\hline
-\hspace{0.5cm}{\tt destroy} & destroy the VM state \\
-\hspace{0.5cm}{\tt restart} & restart the VM \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
-{\tt enum on\_crash\_behaviour} & \\
-\hline
-\hspace{0.5cm}{\tt destroy} & destroy the VM state \\
-\hspace{0.5cm}{\tt coredump\_and\_destroy} & record a coredump and then destroy the VM state \\
-\hspace{0.5cm}{\tt restart} & restart the VM \\
-\hspace{0.5cm}{\tt coredump\_and\_restart} & record a coredump and then restart the VM \\
-\hspace{0.5cm}{\tt preserve} & leave the crashed VM as-is \\
-\hspace{0.5cm}{\tt rename\_restart} & rename the crashed VM and start a new copy \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
-{\tt enum vbd\_mode} & \\
-\hline
-\hspace{0.5cm}{\tt RO} & disk is mounted read-only \\
-\hspace{0.5cm}{\tt RW} & disk is mounted read-write \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\begin{longtable}{|ll|}
-\hline
-{\tt enum vbd\_type} & \\
-\hline
-\hspace{0.5cm}{\tt CD} & VBD will appear to guest as CD \\
-\hspace{0.5cm}{\tt Disk} & VBD will appear to guest as disk \\
-\hline
-\end{longtable}
-
-\vspace{1cm}
-\newpage
-
-\section{Error Handling}
-When a low-level transport error occurs, or a request is malformed at the HTTP
-or XML-RPC level, the server may send an XML-RPC Fault response, or the client
-may simulate the same. The client must be prepared to handle these errors,
-though they may be treated as fatal. On the wire, these are transmitted in a
-form similar to this:
-
-\begin{verbatim}
- <methodResponse>
- <fault>
- <value>
- <struct>
- <member>
- <name>faultCode</name>
- <value><int>-1</int></value>
- </member>
- <member>
- <name>faultString</name>
- <value><string>Malformed request</string></value>
- </member>
- </struct>
- </value>
- </fault>
- </methodResponse>
-\end{verbatim}
-
-All other failures are reported with a more structured error response, to
-allow better automatic response to failures, proper internationalisation of
-any error message, and easier debugging. On the wire, these are transmitted
-like this:
-
-\begin{verbatim}
- <struct>
- <member>
- <name>Status</name>
- <value>Failure</value>
- </member>
- <member>
- <name>ErrorDescription</name>
- <value>
- <array>
- <data>
- <value>MAP_DUPLICATE_KEY</value>
- <value>Customer</value>
- <value>eSpeil Inc.</value>
- <value>eSpeil Incorporated</value>
- </data>
- </array>
- </value>
- </member>
- </struct>
-\end{verbatim}
-
-Note that {\tt ErrorDescription} value is an array of string values. The
-first element of the array is an error code; the remainder of the array are
-strings representing error parameters relating to that code. In this case,
-the client has attempted to add the mapping {\tt Customer $\rightarrow$
-eSpiel Incorporated} to a Map, but it already contains the mapping
-{\tt Customer $\rightarrow$ eSpiel Inc.}, and so the request has failed.
-
-The reference below lists each possible error returned by each method.
-As well as the errors explicitly listed, any method may return low-level
-errors as described above, or any of the following generic errors:
-
-\begin{itemize}
-\item HANDLE\_INVALID
-\item INTERNAL\_ERROR
-\item MAP\_DUPLICATE\_KEY
-\item MESSAGE\_METHOD\_UNKNOWN
-\item MESSAGE\_PARAMETER\_COUNT\_MISMATCH
-\item OPERATION\_NOT\_ALLOWED
-\item PERMISSION\_DENIED
-\item SESSION\_INVALID
-\end{itemize}
-
-Each possible error code is documented in the following section.
-
-\subsection{Error Codes}
-
-\subsubsection{HANDLE\_INVALID}
-
-You gave an invalid handle. The object may have recently been deleted.
-The class parameter gives the type of reference given, and the handle
-parameter echoes the bad value given.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}HANDLE_INVALID(class, handle)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{INTERNAL\_ERROR}
-
-The server failed to handle your request, due to an internal error. The
-given message may give details useful for debugging the problem.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}INTERNAL_ERROR(message)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{MAP\_DUPLICATE\_KEY}
-
-You tried to add a key-value pair to a map, but that key is already there.
-The key, current value, and the new value that you tried to set are all
-echoed.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}MAP_DUPLICATE_KEY(key, current value, new value)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{MESSAGE\_METHOD\_UNKNOWN}
-
-You tried to call a method that does not exist. The method name that you
-used is echoed.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}MESSAGE_METHOD_UNKNOWN(method)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{MESSAGE\_PARAMETER\_COUNT\_MISMATCH}
-
-You tried to call a method with the incorrect number of parameters. The
-fully-qualified method name that you used, and the number of received and
-expected parameters are returned.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}MESSAGE_PARAMETER_COUNT_MISMATCH(method, expected, received)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{NETWORK\_ALREADY\_CONNECTED}
-
-You tried to create a PIF, but the network you tried to attach it to is
-already attached to some other PIF, and so the creation failed.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}NETWORK_ALREADY_CONNECTED(network, connected PIF)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{OPERATION\_NOT\_ALLOWED}
-
-You attempted an operation that was not allowed.
-
-\vspace{0.3cm}
-No parameters.
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{PERMISSION\_DENIED}
-
-You do not have the required permissions to perform the operation.
-
-\vspace{0.3cm}
-No parameters.
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{PIF\_IS\_PHYSICAL}
-
-You tried to destroy a PIF, but it represents an aspect of the physical
-host configuration, and so cannot be destroyed. The parameter echoes the
-PIF handle you gave.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}PIF_IS_PHYSICAL(PIF)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{SESSION\_AUTHENTICATION\_FAILED}
-
-The credentials given by the user are incorrect, so access has been denied,
-and you have not been issued a session handle.
-
-\vspace{0.3cm}
-No parameters.
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{SESSION\_INVALID}
-
-You gave an invalid session handle. It may have been invalidated by a
-server restart, or timed out. You should get a new session handle, using
-one of the session.login\_ calls. This error does not invalidate the
-current connection. The handle parameter echoes the bad value given.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}SESSION_INVALID(handle)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{SESSION\_NOT\_REGISTERED}
-
-This session is not registered to receive events. You must call
-event.register before event.next. The session handle you are using is
-echoed.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}SESSION_NOT_REGISTERED(handle)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{VALUE\_NOT\_SUPPORTED}
-
-You attempted to set a value that is not supported by this implementation.
-The fully-qualified field name and the value that you tried to set are
-returned. Also returned is a developer-only diagnostic reason.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}VALUE_NOT_SUPPORTED(field, value, reason)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{VLAN\_TAG\_INVALID}
-
-You tried to create a VLAN, but the tag you gave was invalid -- it must be
-between 0 and 4095. The parameter echoes the VLAN tag you gave.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}VLAN_TAG_INVALID(VLAN)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{VM\_BAD\_POWER\_STATE}
-
-You attempted an operation on a VM that was not in an appropriate power
-state at the time; for example, you attempted to start a VM that was
-already running. The parameters returned are the VM's handle, and the
-expected and actual VM state at the time of the call.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}VM_BAD_POWER_STATE(vm, expected, actual)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{VM\_HVM\_REQUIRED}
-
-HVM is required for this operation
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}VM_HVM_REQUIRED(vm)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{SECURITY\_ERROR}
-
-A security error occurred. The parameter provides the xen security
-error code and a message describing the error.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}SECURITY_ERROR(xserr, message)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{POOL\_BAD\_STATE}
-
-You attempted an operation on a pool that was not in an appropriate state
-at the time; for example, you attempted to activate a pool that was
-already activated.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}POOL_BAD_STATE(current pool state)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{INSUFFICIENT\_CPUS}
-
-You attempted to activate a cpu\_pool but there are not enough
-unallocated CPUs to satisfy the request.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}INSUFFICIENT_CPUS(needed cpu count, available cpu count)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{UNKOWN\_SCHED\_POLICY}
-
-The specified scheduler policy is unkown to the host.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}UNKOWN_SCHED_POLICY()\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{INVALID\_CPU}
-
-You tried to reconfigure a cpu\_pool with a CPU that is unkown to the host
-or has a wrong state.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}INVALID_CPU(message)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-\subsubsection{LAST\_CPU\_NOT\_REMOVEABLE}
-
-You tried to remove the last CPU from a cpu\_pool that has one or more
-active domains.
-
-\vspace{0.3cm}
-{\bf Signature:}
-\begin{verbatim}LAST_CPU_NOT_REMOVEABLE(message)\end{verbatim}
-\begin{center}\rule{10em}{0.1pt}\end{center}
-
-
-\newpage
-\section{Class: session}
-\subsection{Fields for class: session}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf session} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-session.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt this\_host} & host ref & Currently connected host \\
-$\mathit{RO}_\mathit{run}$ & {\tt this\_user} & user ref & Currently connected user \\
-$\mathit{RO}_\mathit{run}$ & {\tt last\_active} & int & Timestamp for last time session was active \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: session}
-\subsubsection{RPC name:~login\_with\_password}
-
-{\bf Overview:}
-Attempt to authenticate the user, returning a session\_id if successful.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (session ref) login_with_password (string uname, string pwd)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uname & Username for login. \\ \hline
-
-{\tt string } & pwd & Password for login. \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-session ref
-}
-
-
-ID of newly created session
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt SESSION\_AUTHENTICATION\_FAILED}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~logout}
-
-{\bf Overview:}
-Log out of a session.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void logout (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given session.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, session ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt session ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_this\_host}
-
-{\bf Overview:}
-Get the this\_host field of the given session.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_this_host (session_id s, session ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt session ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_this\_user}
-
-{\bf Overview:}
-Get the this\_user field of the given session.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (user ref) get_this_user (session_id s, session ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt session ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-user ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_last\_active}
-
-{\bf Overview:}
-Get the last\_active field of the given session.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_last_active (session_id s, session ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt session ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the session instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (session ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-session ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given session.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (session record) get_record (session_id s, session ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt session ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-session record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: task}
-\subsection{Fields for class: task}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf task} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-long-running asynchronous task.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt name/label} & string & a human-readable name \\
-$\mathit{RO}_\mathit{run}$ & {\tt name/description} & string & a notes field containg human-readable description \\
-$\mathit{RO}_\mathit{run}$ & {\tt status} & task\_status\_type & current status of the task \\
-$\mathit{RO}_\mathit{run}$ & {\tt session} & session ref & the session that created the task \\
-$\mathit{RO}_\mathit{run}$ & {\tt progress} & int & if the task is still pending, this field contains the estimated percentage complete (0-100). If task has completed (successfully or unsuccessfully) this should be 100. \\
-$\mathit{RO}_\mathit{run}$ & {\tt type} & string & if the task has completed successfully, this field contains the type of the encoded result (i.e. name of the class whose reference is in the result field). Undefined otherwise. \\
-$\mathit{RO}_\mathit{run}$ & {\tt result} & string & if the task has completed successfully, this field contains the result value (either Void or an object reference). Undefined otherwise. \\
-$\mathit{RO}_\mathit{run}$ & {\tt error\_info} & string Set & if the task has failed, this field contains the set of associated error strings. Undefined otherwise. \\
-$\mathit{RO}_\mathit{run}$ & {\tt allowed\_operations} & (task\_allowed\_operations) Set & Operations allowed on this task \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: task}
-\subsubsection{RPC name:~cancel}
-
-{\bf Overview:}
-Cancel this task. If task.allowed\_operations does not contain Cancel,
-then this will fail with OPERATION\_NOT\_ALLOWED. The task will show the
-status 'cancelling', and you should continue to check its status until it
-shows 'cancelled'. There is no guarantee as to the time within which this
-task will be cancelled.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void cancel (session_id s, task ref task)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & task & The task \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt OPERATION\_NOT\_ALLOWED}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the tasks known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((task ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(task ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_label}
-
-{\bf Overview:}
-Get the name/label field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_label (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_description}
-
-{\bf Overview:}
-Get the name/description field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_description (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_status}
-
-{\bf Overview:}
-Get the status field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (task_status_type) get_status (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-task\_status\_type
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_session}
-
-{\bf Overview:}
-Get the session field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (session ref) get_session (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-session ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_progress}
-
-{\bf Overview:}
-Get the progress field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_progress (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_type}
-
-{\bf Overview:}
-Get the type field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_type (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_result}
-
-{\bf Overview:}
-Get the result field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_result (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_error\_info}
-
-{\bf Overview:}
-Get the error\_info field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (string Set) get_error_info (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_allowed\_operations}
-
-{\bf Overview:}
-Get the allowed\_operations field of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((task_allowed_operations) Set) get_allowed_operations (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(task\_allowed\_operations) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the task instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (task ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-task ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given task.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (task record) get_record (session_id s, task ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt task ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-task record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_name\_label}
-
-{\bf Overview:}
-Get all the task instances with the given label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((task ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & label & label of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(task ref) Set
-}
-
-
-references to objects with match names
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: event}
-\subsection{Fields for class: event}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf event} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
-Asynchronous event registration and handling.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{ins}$ & {\tt id} & int & An ID, monotonically increasing, and local to the current session \\
-$\mathit{RO}_\mathit{ins}$ & {\tt timestamp} & datetime & The time at which the event occurred \\
-$\mathit{RO}_\mathit{ins}$ & {\tt class} & string & The name of the class of the object that changed \\
-$\mathit{RO}_\mathit{ins}$ & {\tt operation} & event\_operation & The operation that was performed \\
-$\mathit{RO}_\mathit{ins}$ & {\tt ref} & string & A reference to the object that changed \\
-$\mathit{RO}_\mathit{ins}$ & {\tt obj\_uuid} & string & The uuid of the object that changed \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: event}
-\subsubsection{RPC name:~register}
-
-{\bf Overview:}
-Registers this session with the event system. Specifying the empty list
-will register for all classes.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void register (session_id s, string Set classes)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string Set } & classes & register for events for the indicated classes \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~unregister}
-
-{\bf Overview:}
-Unregisters this session with the event system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void unregister (session_id s, string Set classes)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string Set } & classes & remove this session's registration for the indicated classes \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~next}
-
-{\bf Overview:}
-Blocking call which returns a (possibly empty) batch of events.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((event record) Set) next (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(event record) Set
-}
-
-
-the batch of events
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt SESSION\_NOT\_REGISTERED}
-
-\vspace{0.6cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: VM}
-\subsection{Fields for class: VM}
-\begin{longtable}{|llp{0.21\textwidth}p{0.33\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM} \\
-\multicolumn{4}{|l|}{\parbox{11cm}{\em Description: A
-virtual machine (or 'guest').}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt power\_state} & vm\_power\_state & Current power state of the machine \\
-$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
-$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
-$\mathit{RW}$ & {\tt user\_version} & int & a user version number for this machine \\
-$\mathit{RW}$ & {\tt is\_a\_template} & bool & true if this is a template. Template VMs can never be started, they are used only for cloning other VMs \\
-$\mathit{RW}$ & {\tt auto\_power\_on} & bool & true if this VM should be started automatically after host boot \\
-$\mathit{RO}_\mathit{run}$ & {\tt suspend\_VDI} & VDI ref & The VDI that a suspend image is stored on. (Only has meaning if VM is currently suspended) \\
-$\mathit{RO}_\mathit{run}$ & {\tt resident\_on} & host ref & the host the VM is currently resident on \\
-$\mathit{RW}$ & {\tt memory/static\_max} & int & Statically-set (i.e. absolute) maximum (bytes) \\
-$\mathit{RW}$ & {\tt memory/dynamic\_max} & int & Dynamic maximum (bytes) \\
-$\mathit{RW}$ & {\tt memory/dynamic\_min} & int & Dynamic minimum (bytes) \\
-$\mathit{RW}$ & {\tt memory/static\_min} & int & Statically-set (i.e. absolute) minimum (bytes) \\
-$\mathit{RW}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & configuration parameters for the selected VCPU policy \\
-$\mathit{RW}$ & {\tt VCPUs/max} & int & Max number of VCPUs \\
-$\mathit{RW}$ & {\tt VCPUs/at\_startup} & int & Boot number of VCPUs \\
-$\mathit{RW}$ & {\tt actions/after\_shutdown} & on\_normal\_exit & action to take after the guest has shutdown itself \\
-$\mathit{RW}$ & {\tt actions/after\_reboot} & on\_normal\_exit & action to take after the guest has rebooted itself \\
-$\mathit{RW}$ & {\tt actions/after\_crash} & on\_crash\_behaviour & action to take if the guest crashes \\
-$\mathit{RO}_\mathit{run}$ & {\tt consoles} & (console ref) Set & virtual console devices \\
-$\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & virtual network interfaces \\
-$\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & virtual block devices \\
-$\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & crash dumps associated with this VM \\
-$\mathit{RO}_\mathit{run}$ & {\tt VTPMs} & (VTPM ref) Set & virtual TPMs \\
-$\mathit{RO}_\mathit{run}$ & {\tt DPCIs} & (DPCI ref) Set & pass-through PCI devices \\
-$\mathit{RO}_\mathit{run}$ & {\tt DSCSIs} & (DSCSI ref) Set & half-virtualized SCSI devices \\
-$\mathit{RO}_\mathit{run}$ & {\tt DSCSI\_HBAs} & (DSCSI\_HBA ref) Set & half-virtualized SCSI host bus adapters \\
-$\mathit{RW}$ & {\tt PV/bootloader} & string & name of or path to bootloader \\
-$\mathit{RW}$ & {\tt PV/kernel} & string & URI of kernel \\
-$\mathit{RW}$ & {\tt PV/ramdisk} & string & URI of initrd \\
-$\mathit{RW}$ & {\tt PV/args} & string & kernel command-line arguments \\
-$\mathit{RW}$ & {\tt PV/bootloader\_args} & string & miscellaneous arguments for the bootloader \\
-$\mathit{RW}$ & {\tt HVM/boot\_policy} & string & HVM boot policy \\
-$\mathit{RW}$ & {\tt HVM/boot\_params} & (string $\rightarrow$ string) Map & HVM boot params \\
-$\mathit{RW}$ & {\tt platform} & (string $\rightarrow$ string) Map & platform-specific configuration \\
-$\mathit{RW}$ & {\tt PCI\_bus} & string & PCI bus path for pass-through devices \\
-$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
-$\mathit{RO}_\mathit{run}$ & {\tt domid} & int & domain ID (if available, -1 otherwise) \\
-$\mathit{RO}_\mathit{run}$ & {\tt is\_control\_domain} & bool & true if this is a control domain (domain 0 or a driver domain) \\
-$\mathit{RO}_\mathit{run}$ & {\tt metrics} & VM\_metrics ref & metrics associated with this VM \\
-$\mathit{RO}_\mathit{run}$ & {\tt guest\_metrics} & VM\_guest\_metrics ref & metrics associated with the running guest \\
-$\mathit{RO}_\mathit{run}$ & {\tt security/label} & string & the VM's security label \\
-\hline
-\end{longtable}
-\subsection{Parameter Details}
-\subsubsection{PV/kernel and PV/ramdisk}
-The \texttt{PV/kernel} and \texttt{PV/ramdisk} parameters should be
-specified as URIs with either a \texttt{file} or \texttt{data} scheme.
-
-The \texttt{file} scheme must be used when a file on the remote dom0
-should be used. The remote dom0 is the one where the guest system
-should be started on. Only absolute filenames are supported, i.e. the
-string must start with \texttt{file://} appended with the absolute
-path. This is typically used when the guest system use the same
-operating systems as the dom0 or there is some kind of shared storage
-for the images inside the dom0s.
-
-Note that for compatibility reasons it is possible --- but not
-recommended --- to leave out the scheme specification for
-\texttt{file}, i.e. \texttt{file:///some/path} and \texttt{/some/path}
-is equivalent.
-
-Examples (in python):
-
-Use kernel image which resides in the \texttt{/boot} directory:
-\begin{verbatim}
-xenapi.VM.create({ ...
- 'PV_kernel': 'file:///boot/vmlinuz-2.6.26-2-xen-686',
- ... })
-\end{verbatim}
-
-Use ramdisk image which resides on a (shared) nfs directory:
-\begin{verbatim}
-xenapi.VM.create({ ...
- 'PV_ramdisk': 'file:///nfs/xen/debian/5.0.1/initrd.img-2.6.26-2-xen-686'
- ... })
-\end{verbatim}
-
-When an image should be used which resides on the local system,
-i.e. the system where the XenAPI call is send from, it is possible to
-use the \texttt{data} URI scheme as described in \cite{RFC2397}. The
-media-type must be set to \texttt{application/octet-stream}.
-Currently only base64 encoding is supported. The URI must therefore
-start with \texttt{data:application/octet-stream;base64,} followed by
-the base64 encoded image.
-
-The \texttt{xen/util/fileuri.py} provides a helper function which
-takes a local filename as parameter and build up the correct URI from
-this.
-
-Examples (in python):
-
-Use kernel image specified inline:
-\begin{verbatim}
-xenapi.VM.create({ ...
- 'PV_kernel': 'data:application/octet-stream;base64,H4Zu....'
- # most of base64 encoded data is omitted
- ... })
-\end{verbatim}
-
-Using the utility function:
-\begin{verbatim}
-from xen.util.fileuri import scheme_data
-xenapi.VM.create({ ...
- 'PV_kernel': scheme_data.create_from_file(
- "/xen/guests/images/debian/5.0.1/vmlinuz-2.6.26-2-xen-686"),
- ... })
-\end{verbatim}
-
-Currently when using the \texttt{data} URI scheme, a temporary file is
-created on the remote dom0 in the directory
-\texttt{/var/run/xend/boot} which is then used for booting. When not
-used any longer the file is deleted. (Therefore reading of the
-\texttt{PV/kernel} or \texttt{PV/ramdisk} parameters when created with
-a \texttt{data} URI scheme returns a filename to a temporary file ---
-which might even not exists when querying.) This implementation might
-change in the way that the data is directly used --- without the
-indirection using a file. Therefore do not rely on the data resulting
-from a read of a variables which was set using the \texttt{data}
-scheme.
-
-Note: a mix of different schemes for the parameters is possible; e.g.
-the kernel can be specified with a \texttt{file} and the ramdisk with
-the \texttt{data} URI scheme.
-
-\subsection{RPCs associated with class: VM}
-\subsubsection{RPC name:~clone}
-
-{\bf Overview:}
-Clones the specified VM, making a new VM. Clone automatically exploits the
-capabilities of the underlying storage repository in which the VM's disk
-images are stored (e.g. Copy on Write). This function can only be called
-when the VM is in the Halted State.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) clone (session_id s, VM ref vm, string new_name)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to be cloned \\ \hline
-
-{\tt string } & new\_name & The name of the cloned VM \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-The ID of the newly created VM.
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~start}
-
-{\bf Overview:}
-Start the specified VM. This function can only be called with the VM is in
-the Halted State.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void start (session_id s, VM ref vm, bool start_paused)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to start \\ \hline
-
-{\tt bool } & start\_paused & Instantiate VM in paused state if set to true. \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}, {\tt
-VM\_HVM\_REQUIRED}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~pause}
-
-{\bf Overview:}
-Pause the specified VM. This can only be called when the specified VM is in
-the Running state.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void pause (session_id s, VM ref vm)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to pause \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~unpause}
-
-{\bf Overview:}
-Resume the specified VM. This can only be called when the specified VM is
-in the Paused state.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void unpause (session_id s, VM ref vm)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to unpause \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~clean\_shutdown}
-
-{\bf Overview:}
-Attempt to cleanly shutdown the specified VM. (Note: this may not be
-supported---e.g. if a guest agent is not installed).
-
-Once shutdown has been completed perform poweroff action specified in guest
-configuration.
-
-This can only be called when the specified VM is in the Running state.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void clean_shutdown (session_id s, VM ref vm)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to shutdown \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~clean\_reboot}
-
-{\bf Overview:}
-Attempt to cleanly shutdown the specified VM (Note: this may not be
-supported---e.g. if a guest agent is not installed).
-
-Once shutdown has been completed perform reboot action specified in guest
-configuration.
-
-This can only be called when the specified VM is in the Running state.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void clean_reboot (session_id s, VM ref vm)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to shutdown \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~hard\_shutdown}
-
-{\bf Overview:}
-Stop executing the specified VM without attempting a clean shutdown. Then
-perform poweroff action specified in VM configuration.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void hard_shutdown (session_id s, VM ref vm)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to destroy \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~hard\_reboot}
-
-{\bf Overview:}
-Stop executing the specified VM without attempting a clean shutdown. Then
-perform reboot action specified in VM configuration.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void hard_reboot (session_id s, VM ref vm)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to reboot \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~suspend}
-
-{\bf Overview:}
-Suspend the specified VM to disk. This can only be called when the
-specified VM is in the Running state.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void suspend (session_id s, VM ref vm)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to suspend \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~resume}
-
-{\bf Overview:}
-Awaken the specified VM and resume it. This can only be called when the
-specified VM is in the Suspended state.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void resume (session_id s, VM ref vm, bool start_paused)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM to resume \\ \hline
-
-{\tt bool } & start\_paused & Resume VM in paused state if set to true. \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~set\_VCPUs\_number\_live}
-
-{\bf Overview:}
-Set this VM's VCPUs/at\_startup value, and set the same value on the VM, if
-running.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_VCPUs_number_live (session_id s, VM ref self, int nvcpu)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & The VM \\ \hline
-
-{\tt int } & nvcpu & The number of VCPUs \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_VCPUs\_params\_live}
-
-{\bf Overview:}
-Add the given key-value pair to VM.VCPUs\_params, and apply that value on
-the running VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_VCPUs_params_live (session_id s, VM ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & The VM \\ \hline
-
-{\tt string } & key & The key \\ \hline
-
-{\tt string } & value & The value \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_memory\_dynamic\_max\_live}
-
-{\bf Overview:}
-Set memory\_dynamic\_max in database and on running VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_memory_dynamic_max_live (session_id s, VM ref self, int max)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & The VM \\ \hline
-
-{\tt int } & max & The memory\_dynamic\_max value \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_memory\_dynamic\_min\_live}
-
-{\bf Overview:}
-Set memory\_dynamic\_min in database and on running VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_memory_dynamic_min_live (session_id s, VM ref self, int min)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & The VM \\ \hline
-
-{\tt int } & min & The memory\_dynamic\_min value \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~send\_sysrq}
-
-{\bf Overview:}
-Send the given key as a sysrq to this VM. The key is specified as a single
-character (a String of length 1). This can only be called when the
-specified VM is in the Running state.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void send_sysrq (session_id s, VM ref vm, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM \\ \hline
-
-{\tt string } & key & The key to send \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~send\_trigger}
-
-{\bf Overview:}
-Send the named trigger to this VM. This can only be called when the
-specified VM is in the Running state.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void send_trigger (session_id s, VM ref vm, string trigger)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM \\ \hline
-
-{\tt string } & trigger & The trigger to send \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~migrate}
-
-{\bf Overview:}
-Migrate the VM to another host. This can only be called when the specified
-VM is in the Running state.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void migrate (session_id s, VM ref vm, string dest, bool live, (string -> string) Map options)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & vm & The VM \\ \hline
-
-{\tt string } & dest & The destination host \\ \hline
-
-{\tt bool } & live & Live migration \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & options & Other parameters \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VM\_BAD\_POWER\_STATE}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the VMs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VM ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VM ref) Set
-}
-
-
-A list of all the IDs of all the VMs
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_power\_state}
-
-{\bf Overview:}
-Get the power\_state field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (vm_power_state) get_power_state (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-vm\_power\_state
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_label}
-
-{\bf Overview:}
-Get the name/label field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_label (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_label}
-
-{\bf Overview:}
-Set the name/label field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_label (session_id s, VM ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_description}
-
-{\bf Overview:}
-Get the name/description field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_description (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_description}
-
-{\bf Overview:}
-Set the name/description field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_description (session_id s, VM ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_user\_version}
-
-{\bf Overview:}
-Get the user\_version field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_user_version (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_user\_version}
-
-{\bf Overview:}
-Set the user\_version field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_user_version (session_id s, VM ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_is\_a\_template}
-
-{\bf Overview:}
-Get the is\_a\_template field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_is_a_template (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_is\_a\_template}
-
-{\bf Overview:}
-Set the is\_a\_template field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_is_a_template (session_id s, VM ref self, bool value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt bool } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_auto\_power\_on}
-
-{\bf Overview:}
-Get the auto\_power\_on field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_auto_power_on (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_auto\_power\_on}
-
-{\bf Overview:}
-Set the auto\_power\_on field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_auto_power_on (session_id s, VM ref self, bool value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt bool } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_suspend\_VDI}
-
-{\bf Overview:}
-Get the suspend\_VDI field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VDI ref) get_suspend_VDI (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VDI ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_resident\_on}
-
-{\bf Overview:}
-Get the resident\_on field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_resident_on (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_memory\_static\_max}
-
-{\bf Overview:}
-Get the memory/static\_max field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_memory_static_max (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_memory\_static\_max}
-
-{\bf Overview:}
-Set the memory/static\_max field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_memory_static_max (session_id s, VM ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_memory\_dynamic\_max}
-
-{\bf Overview:}
-Get the memory/dynamic\_max field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_memory_dynamic_max (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_memory\_dynamic\_max}
-
-{\bf Overview:}
-Set the memory/dynamic\_max field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_memory_dynamic_max (session_id s, VM ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_memory\_dynamic\_min}
-
-{\bf Overview:}
-Get the memory/dynamic\_min field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_memory_dynamic_min (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_memory\_dynamic\_min}
-
-{\bf Overview:}
-Set the memory/dynamic\_min field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_memory_dynamic_min (session_id s, VM ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_memory\_static\_min}
-
-{\bf Overview:}
-Get the memory/static\_min field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_memory_static_min (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_memory\_static\_min}
-
-{\bf Overview:}
-Set the memory/static\_min field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_memory_static_min (session_id s, VM ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_params}
-
-{\bf Overview:}
-Get the VCPUs/params field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_VCPUs\_params}
-
-{\bf Overview:}
-Set the VCPUs/params field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_VCPUs_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_VCPUs\_params}
-
-{\bf Overview:}
-Add the given key-value pair to the VCPUs/params field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_VCPUs_params (session_id s, VM ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_VCPUs\_params}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the VCPUs/params
-field of the given VM. If the key is not in that Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_VCPUs_params (session_id s, VM ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_max}
-
-{\bf Overview:}
-Get the VCPUs/max field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_VCPUs_max (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_VCPUs\_max}
-
-{\bf Overview:}
-Set the VCPUs/max field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_VCPUs_max (session_id s, VM ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_at\_startup}
-
-{\bf Overview:}
-Get the VCPUs/at\_startup field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_VCPUs_at_startup (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_VCPUs\_at\_startup}
-
-{\bf Overview:}
-Set the VCPUs/at\_startup field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_VCPUs_at_startup (session_id s, VM ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_actions\_after\_shutdown}
-
-{\bf Overview:}
-Get the actions/after\_shutdown field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (on_normal_exit) get_actions_after_shutdown (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-on\_normal\_exit
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_actions\_after\_shutdown}
-
-{\bf Overview:}
-Set the actions/after\_shutdown field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_actions_after_shutdown (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt on\_normal\_exit } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_actions\_after\_reboot}
-
-{\bf Overview:}
-Get the actions/after\_reboot field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (on_normal_exit) get_actions_after_reboot (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-on\_normal\_exit
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_actions\_after\_reboot}
-
-{\bf Overview:}
-Set the actions/after\_reboot field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_actions_after_reboot (session_id s, VM ref self, on_normal_exit value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt on\_normal\_exit } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_actions\_after\_crash}
-
-{\bf Overview:}
-Get the actions/after\_crash field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (on_crash_behaviour) get_actions_after_crash (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-on\_crash\_behaviour
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_actions\_after\_crash}
-
-{\bf Overview:}
-Set the actions/after\_crash field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_actions_after_crash (session_id s, VM ref self, on_crash_behaviour value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt on\_crash\_behaviour } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_consoles}
-
-{\bf Overview:}
-Get the consoles field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((console ref) Set) get_consoles (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(console ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VIFs}
-
-{\bf Overview:}
-Get the VIFs field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VIF ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VBDs}
-
-{\bf Overview:}
-Get the VBDs field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VBD ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_crash\_dumps}
-
-{\bf Overview:}
-Get the crash\_dumps field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(crashdump ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VTPMs}
-
-{\bf Overview:}
-Get the VTPMs field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VTPM ref) Set) get_VTPMs (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VTPM ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_DPCIs}
-
-{\bf Overview:}
-Get the DPCIs field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((DPCI ref) Set) get_DPCIs (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(DPCI ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_DSCSIs}
-
-{\bf Overview:}
-Get the DSCSIs field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((DSCSI ref) Set) get_DSCSIs (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(DSCSI ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_DSCSI\_HBAs}
-
-{\bf Overview:}
-Get the DSCSI\_HBAs field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((DSCSI_HBA ref) Set) get_DSCSI_HBAs (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(DSCSI\_HBA ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PV\_bootloader}
-
-{\bf Overview:}
-Get the PV/bootloader field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_PV_bootloader (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_PV\_bootloader}
-
-{\bf Overview:}
-Set the PV/bootloader field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_PV_bootloader (session_id s, VM ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PV\_kernel}
-
-{\bf Overview:}
-Get the PV/kernel field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_PV_kernel (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_PV\_kernel}
-
-{\bf Overview:}
-Set the PV/kernel field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_PV_kernel (session_id s, VM ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PV\_ramdisk}
-
-{\bf Overview:}
-Get the PV/ramdisk field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_PV_ramdisk (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_PV\_ramdisk}
-
-{\bf Overview:}
-Set the PV/ramdisk field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_PV_ramdisk (session_id s, VM ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PV\_args}
-
-{\bf Overview:}
-Get the PV/args field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_PV_args (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_PV\_args}
-
-{\bf Overview:}
-Set the PV/args field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_PV_args (session_id s, VM ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PV\_bootloader\_args}
-
-{\bf Overview:}
-Get the PV/bootloader\_args field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_PV_bootloader_args (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_PV\_bootloader\_args}
-
-{\bf Overview:}
-Set the PV/bootloader\_args field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_PV_bootloader_args (session_id s, VM ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_HVM\_boot\_policy}
-
-{\bf Overview:}
-Get the HVM/boot\_policy field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_HVM_boot_policy (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_HVM\_boot\_policy}
-
-{\bf Overview:}
-Set the HVM/boot\_policy field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_HVM_boot_policy (session_id s, VM ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_HVM\_boot\_params}
-
-{\bf Overview:}
-Get the HVM/boot\_params field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_HVM_boot_params (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_HVM\_boot\_params}
-
-{\bf Overview:}
-Set the HVM/boot\_params field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_HVM_boot_params (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_HVM\_boot\_params}
-
-{\bf Overview:}
-Add the given key-value pair to the HVM/boot\_params field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_HVM_boot_params (session_id s, VM ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_HVM\_boot\_params}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the HVM/boot\_params
-field of the given VM. If the key is not in that Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_HVM_boot_params (session_id s, VM ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_platform}
-
-{\bf Overview:}
-Get the platform field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_platform (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_platform}
-
-{\bf Overview:}
-Set the platform field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_platform (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_platform}
-
-{\bf Overview:}
-Add the given key-value pair to the platform field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_platform (session_id s, VM ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_platform}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the platform field of
-the given VM. If the key is not in that Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_platform (session_id s, VM ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PCI\_bus}
-
-{\bf Overview:}
-Get the PCI\_bus field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_PCI_bus (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_PCI\_bus}
-
-{\bf Overview:}
-Set the PCI\_bus field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_PCI_bus (session_id s, VM ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_other\_config}
-
-{\bf Overview:}
-Get the other\_config field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_other\_config}
-
-{\bf Overview:}
-Set the other\_config field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_other_config (session_id s, VM ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_other\_config}
-
-{\bf Overview:}
-Add the given key-value pair to the other\_config field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_other_config (session_id s, VM ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_other\_config}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the other\_config
-field of the given VM. If the key is not in that Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_other_config (session_id s, VM ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_domid}
-
-{\bf Overview:}
-Get the domid field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_domid (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_is\_control\_domain}
-
-{\bf Overview:}
-Get the is\_control\_domain field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_is_control_domain (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_metrics}
-
-{\bf Overview:}
-Get the metrics field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM_metrics ref) get_metrics (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM\_metrics ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_guest\_metrics}
-
-{\bf Overview:}
-Get the guest\_metrics field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM_guest_metrics ref) get_guest_metrics (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM\_guest\_metrics ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_security\_label}
-
-{\bf Overview:}
-Get the security label field of the given VM. Refer to the XSPolicy class
-for the format of the security label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_security_label (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_security\_label}
-
-{\bf Overview:}
-Set the security label field of the given VM. Refer to the XSPolicy class
-for the format of the security label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int set_security_label (session_id s, VM ref self, string
-security_label, string old_label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-{\tt string } & security\_label & security label for the VM \\ \hline
-{\tt string } & old\_label & Label value that the security label \\
-& & must currently have for the change to succeed.\\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-Returns the ssidref in case of an VM that is currently running or
-paused, zero in case of a dormant VM (halted, suspended).
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new VM instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) create (session_id s, VM record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified VM. The VM is completely removed from the system.
-This function can only be called when the VM is in the Halted State.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the VM instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM record) get_record (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_name\_label}
-
-{\bf Overview:}
-Get all the VM instances with the given label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VM ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & label & label of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VM ref) Set
-}
-
-
-references to objects with match names
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_cpu\_pool}
-
-{\bf Overview:}
-Get the cpu\_pool field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((cpu_pool ref) Set) get_cpu_pool (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(cpu\_pool ref) Set
-}
-
-
-references to cpu\_pool objects.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_pool\_name}
-
-{\bf Overview:}
-Get the pool\_name field of the given VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_cpu_pool (session_id s, VM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-name of cpu pool to use
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~cpu\_pool\_migrate}
-
-{\bf Overview:}
-Migrate the VM to another cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void cpu_pool_migrate (session_id s, VM ref self, cpu_pool ref pool)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-{\tt cpu\_pool ref} & pool & reference to new cpu\_pool \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt POOL\_BAD\_STATE, VM\_BAD\_POWER\_STATE}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_pool\_name}
-
-{\bf Overview:}
-Set cpu pool name to use for next activation.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_pool_name (session_id s, VM ref self, string pool\_name)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM ref } & self & reference to the object \\ \hline
-{\tt string} & pool\_name & New pool name \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-
-
-
-\vspace{1cm}
-\newpage
-\section{Class: VM\_metrics}
-\subsection{Fields for class: VM\_metrics}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_metrics} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
-The metrics associated with a VM.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt memory/actual} & int & Guest's actual memory (bytes) \\
-$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/number} & int & Current number of VCPUs \\
-$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/utilisation} & (int $\rightarrow$ float) Map & Utilisation for all of guest's current VCPUs \\
-$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/CPU} & (int $\rightarrow$ int) Map & VCPU to PCPU map \\
-$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/params} & (string $\rightarrow$ string) Map & The live equivalent to VM.VCPUs\_params \\
-$\mathit{RO}_\mathit{run}$ & {\tt VCPUs/flags} & (int $\rightarrow$ string Set) Map & CPU flags (blocked,online,running) \\
-$\mathit{RO}_\mathit{run}$ & {\tt state} & string Set & The state of the guest, eg blocked, dying etc \\
-$\mathit{RO}_\mathit{run}$ & {\tt start\_time} & datetime & Time at which this VM was last booted \\
-$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: VM\_metrics}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the VM\_metrics instances known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VM_metrics ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VM\_metrics ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_memory\_actual}
-
-{\bf Overview:}
-Get the memory/actual field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_memory_actual (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_number}
-
-{\bf Overview:}
-Get the VCPUs/number field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_VCPUs_number (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_utilisation}
-
-{\bf Overview:}
-Get the VCPUs/utilisation field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((int -> float) Map) get_VCPUs_utilisation (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(int $\rightarrow$ float) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_CPU}
-
-{\bf Overview:}
-Get the VCPUs/CPU field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((int -> int) Map) get_VCPUs_CPU (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(int $\rightarrow$ int) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_params}
-
-{\bf Overview:}
-Get the VCPUs/params field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_VCPUs_params (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VCPUs\_flags}
-
-{\bf Overview:}
-Get the VCPUs/flags field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((int -> string Set) Map) get_VCPUs_flags (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(int $\rightarrow$ string Set) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_state}
-
-{\bf Overview:}
-Get the state field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (string Set) get_state (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_start\_time}
-
-{\bf Overview:}
-Get the start\_time field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} datetime get_start_time (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-datetime
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_last\_updated}
-
-{\bf Overview:}
-Get the last\_updated field of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} datetime get_last_updated (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-datetime
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the VM\_metrics instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM\_metrics ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given VM\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM_metrics record) get_record (session_id s, VM_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM\_metrics record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: VM\_guest\_metrics}
-\subsection{Fields for class: VM\_guest\_metrics}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VM\_guest\_metrics} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
-The metrics reported by the guest (as opposed to inferred from outside).}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt os\_version} & (string $\rightarrow$ string) Map & version of the OS \\
-$\mathit{RO}_\mathit{run}$ & {\tt PV\_drivers\_version} & (string $\rightarrow$ string) Map & version of the PV drivers \\
-$\mathit{RO}_\mathit{run}$ & {\tt memory} & (string $\rightarrow$ string) Map & free/used/total memory \\
-$\mathit{RO}_\mathit{run}$ & {\tt disks} & (string $\rightarrow$ string) Map & disk configuration/free space \\
-$\mathit{RO}_\mathit{run}$ & {\tt networks} & (string $\rightarrow$ string) Map & network configuration \\
-$\mathit{RO}_\mathit{run}$ & {\tt other} & (string $\rightarrow$ string) Map & anything else \\
-$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: VM\_guest\_metrics}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the VM\_guest\_metrics instances known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VM_guest_metrics ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VM\_guest\_metrics ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given VM\_guest\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, VM_guest_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_os\_version}
-
-{\bf Overview:}
-Get the os\_version field of the given VM\_guest\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_os_version (session_id s, VM_guest_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PV\_drivers\_version}
-
-{\bf Overview:}
-Get the PV\_drivers\_version field of the given VM\_guest\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_PV_drivers_version (session_id s, VM_guest_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_memory}
-
-{\bf Overview:}
-Get the memory field of the given VM\_guest\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_memory (session_id s, VM_guest_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_disks}
-
-{\bf Overview:}
-Get the disks field of the given VM\_guest\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_disks (session_id s, VM_guest_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_networks}
-
-{\bf Overview:}
-Get the networks field of the given VM\_guest\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_networks (session_id s, VM_guest_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_other}
-
-{\bf Overview:}
-Get the other field of the given VM\_guest\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_other (session_id s, VM_guest_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_last\_updated}
-
-{\bf Overview:}
-Get the last\_updated field of the given VM\_guest\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} datetime get_last_updated (session_id s, VM_guest_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-datetime
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the VM\_guest\_metrics instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM_guest_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM\_guest\_metrics ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given VM\_guest\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM_guest_metrics record) get_record (session_id s, VM_guest_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VM\_guest\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM\_guest\_metrics record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: host}
-\subsection{Fields for class: host}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-physical host.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
-$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
-$\mathit{RO}_\mathit{run}$ & {\tt API\_version/major} & int & major version number \\
-$\mathit{RO}_\mathit{run}$ & {\tt API\_version/minor} & int & minor version number \\
-$\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor} & string & identification of vendor \\
-$\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor\_implementation} & (string $\rightarrow$ string) Map & details of vendor implementation \\
-$\mathit{RO}_\mathit{run}$ & {\tt enabled} & bool & True if the host is currently enabled \\
-$\mathit{RO}_\mathit{run}$ & {\tt software\_version} & (string $\rightarrow$ string) Map & version strings \\
-$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
-$\mathit{RO}_\mathit{run}$ & {\tt capabilities} & string Set & Xen capabilities \\
-$\mathit{RO}_\mathit{run}$ & {\tt cpu\_configuration} & (string $\rightarrow$ string) Map & The CPU configuration on this host. May contain keys such as ``nr\_nodes'', ``sockets\_per\_node'', ``cores\_per\_socket'', or ``threads\_per\_core'' \\
-$\mathit{RO}_\mathit{run}$ & {\tt sched\_policy} & string & Scheduler policy currently in force on this host \\
-$\mathit{RO}_\mathit{run}$ & {\tt supported\_bootloaders} & string Set & a list of the bootloaders installed on the machine \\
-$\mathit{RO}_\mathit{run}$ & {\tt resident\_VMs} & (VM ref) Set & list of VMs currently resident on host \\
-$\mathit{RW}$ & {\tt logging} & (string $\rightarrow$ string) Map & logging configuration \\
-$\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & physical network interfaces \\
-$\mathit{RW}$ & {\tt suspend\_image\_sr} & SR ref & The SR in which VDIs for suspend images are created \\
-$\mathit{RW}$ & {\tt crash\_dump\_sr} & SR ref & The SR in which VDIs for crash dumps are created \\
-$\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
-$\mathit{RO}_\mathit{run}$ & {\tt PPCIs} & (PPCI ref) Set & physical PCI devices \\
-$\mathit{RO}_\mathit{run}$ & {\tt PSCSIs} & (PSCSI ref) Set & physical SCSI devices \\
-$\mathit{RO}_\mathit{run}$ & {\tt PSCSI\_HBAs} & (PSCSI\_HBA ref) Set & physical SCSI host bus adapters \\
-$\mathit{RO}_\mathit{run}$ & {\tt host\_CPUs} & (host\_cpu ref) Set & The physical CPUs on this host \\
-$\mathit{RO}_\mathit{run}$ & {\tt metrics} & host\_metrics ref & metrics associated with this host \\
-$\mathit{RO}_\mathit{run}$ & {\tt resident\_cpu\_pools} & (cpu\_pool ref) Set & list of cpu\_pools currently resident on the host \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: host}
-\subsubsection{RPC name:~disable}
-
-{\bf Overview:}
-Puts the host into a state in which no new VMs can be started. Currently
-active VMs on the host continue to execute.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void disable (session_id s, host ref host)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & host & The Host to disable \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~enable}
-
-{\bf Overview:}
-Puts the host into a state in which new VMs can be started.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void enable (session_id s, host ref host)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & host & The Host to enable \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~shutdown}
-
-{\bf Overview:}
-Shutdown the host. (This function can only be called if there are no
-currently running VMs on the host and it is disabled.).
-
- \noindent {\bf Signature:}
-\begin{verbatim} void shutdown (session_id s, host ref host)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & host & The Host to shutdown \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~reboot}
-
-{\bf Overview:}
-Reboot the host. (This function can only be called if there are no
-currently running VMs on the host and it is disabled.).
-
- \noindent {\bf Signature:}
-\begin{verbatim} void reboot (session_id s, host ref host)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & host & The Host to reboot \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~dmesg}
-
-{\bf Overview:}
-Get the host xen dmesg.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string dmesg (session_id s, host ref host)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & host & The Host to query \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-dmesg string
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~dmesg\_clear}
-
-{\bf Overview:}
-Get the host xen dmesg, and clear the buffer.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string dmesg_clear (session_id s, host ref host)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & host & The Host to query \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-dmesg string
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_log}
-
-{\bf Overview:}
-Get the host's log file.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_log (session_id s, host ref host)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & host & The Host to query \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-The contents of the host's primary log file
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~send\_debug\_keys}
-
-{\bf Overview:}
-Inject the given string as debugging keys into Xen.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void send_debug_keys (session_id s, host ref host, string keys)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & host & The host \\ \hline
-
-{\tt string } & keys & The keys to send \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~list\_methods}
-
-{\bf Overview:}
-List all supported methods.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (string Set) list_methods (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string Set
-}
-
-
-The name of every supported method.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the hosts known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((host ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(host ref) Set
-}
-
-
-A list of all the IDs of all the hosts
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_label}
-
-{\bf Overview:}
-Get the name/label field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_label (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_label}
-
-{\bf Overview:}
-Set the name/label field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_label (session_id s, host ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_description}
-
-{\bf Overview:}
-Get the name/description field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_description (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_description}
-
-{\bf Overview:}
-Set the name/description field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_description (session_id s, host ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_API\_version\_major}
-
-{\bf Overview:}
-Get the API\_version/major field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_API_version_major (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_API\_version\_minor}
-
-{\bf Overview:}
-Get the API\_version/minor field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_API_version_minor (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_API\_version\_vendor}
-
-{\bf Overview:}
-Get the API\_version/vendor field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_API_version_vendor (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_API\_version\_vendor\_implementation}
-
-{\bf Overview:}
-Get the API\_version/vendor\_implementation field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_API_version_vendor_implementation (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_enabled}
-
-{\bf Overview:}
-Get the enabled field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_enabled (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_software\_version}
-
-{\bf Overview:}
-Get the software\_version field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_software_version (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_other\_config}
-
-{\bf Overview:}
-Get the other\_config field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_other\_config}
-
-{\bf Overview:}
-Set the other\_config field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_other_config (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_other\_config}
-
-{\bf Overview:}
-Add the given key-value pair to the other\_config field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_other_config (session_id s, host ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_other\_config}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the other\_config
-field of the given host. If the key is not in that Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_other_config (session_id s, host ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_capabilities}
-
-{\bf Overview:}
-Get the capabilities field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (string Set) get_capabilities (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_cpu\_configuration}
-
-{\bf Overview:}
-Get the cpu\_configuration field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_cpu_configuration (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_sched\_policy}
-
-{\bf Overview:}
-Get the sched\_policy field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_sched_policy (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_supported\_bootloaders}
-
-{\bf Overview:}
-Get the supported\_bootloaders field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (string Set) get_supported_bootloaders (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_resident\_VMs}
-
-{\bf Overview:}
-Get the resident\_VMs field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VM ref) Set) get_resident_VMs (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VM ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_logging}
-
-{\bf Overview:}
-Get the logging field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_logging (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_logging}
-
-{\bf Overview:}
-Set the logging field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_logging (session_id s, host ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_logging}
-
-{\bf Overview:}
-Add the given key-value pair to the logging field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_logging (session_id s, host ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_logging}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the logging field of
-the given host. If the key is not in that Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_logging (session_id s, host ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PIFs}
-
-{\bf Overview:}
-Get the PIFs field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PIF ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_suspend\_image\_sr}
-
-{\bf Overview:}
-Get the suspend\_image\_sr field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (SR ref) get_suspend_image_sr (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-SR ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_suspend\_image\_sr}
-
-{\bf Overview:}
-Set the suspend\_image\_sr field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_suspend_image_sr (session_id s, host ref self, SR ref value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt SR ref } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_crash\_dump\_sr}
-
-{\bf Overview:}
-Get the crash\_dump\_sr field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (SR ref) get_crash_dump_sr (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-SR ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_crash\_dump\_sr}
-
-{\bf Overview:}
-Set the crash\_dump\_sr field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_crash_dump_sr (session_id s, host ref self, SR ref value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-{\tt SR ref } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PBDs}
-
-{\bf Overview:}
-Get the PBDs field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PBD ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PPCIs}
-
-{\bf Overview:}
-Get the PPCIs field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PPCI ref) Set) get_PPCIs (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PPCI ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PSCSIs}
-
-{\bf Overview:}
-Get the PSCSIs field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PSCSI ref) Set) get_PSCSIs (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PSCSI ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PSCSI\_HBAs}
-
-{\bf Overview:}
-Get the PSCSI\_HBAs field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PSCSI_HBA ref) Set) get_PSCSI_HBAs (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PSCSI\_HBA ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_host\_CPUs}
-
-{\bf Overview:}
-Get the host\_CPUs field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((host_cpu ref) Set) get_host_CPUs (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(host\_cpu ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_metrics}
-
-{\bf Overview:}
-Get the metrics field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host_metrics ref) get_metrics (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host\_metrics ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the host instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host record) get_record (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_name\_label}
-
-{\bf Overview:}
-Get all the host instances with the given label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((host ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & label & label of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(host ref) Set
-}
-
-
-references to objects with match names
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_resident\_cpu\_pools}
-
-{\bf Overview:}
-Get the resident\_cpu\_pools field of the given host.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((cpu_pool ref) Set) get_resident_cpu_pools (session_id s, host ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(cpu\_pool ref) Set
-}
-
-
-references to all known cpu\_pools.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-
-\vspace{1cm}
-\newpage
-\section{Class: host\_metrics}
-\subsection{Fields for class: host\_metrics}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_metrics} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
-The metrics associated with a host.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt memory/total} & int & Host's total memory (bytes) \\
-$\mathit{RO}_\mathit{run}$ & {\tt memory/free} & int & Host's free memory (bytes) \\
-$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: host\_metrics}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the host\_metrics instances known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((host_metrics ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(host\_metrics ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given host\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, host_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_memory\_total}
-
-{\bf Overview:}
-Get the memory/total field of the given host\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_memory_total (session_id s, host_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_memory\_free}
-
-{\bf Overview:}
-Get the memory/free field of the given host\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_memory_free (session_id s, host_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_last\_updated}
-
-{\bf Overview:}
-Get the last\_updated field of the given host\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} datetime get_last_updated (session_id s, host_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-datetime
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the host\_metrics instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host\_metrics ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given host\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host_metrics record) get_record (session_id s, host_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host\_metrics record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: host\_cpu}
-\subsection{Fields for class: host\_cpu}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf host\_cpu} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A physical CPU}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the host the CPU is in \\
-$\mathit{RO}_\mathit{run}$ & {\tt number} & int & the number of the physical CPU within the host \\
-$\mathit{RO}_\mathit{run}$ & {\tt vendor} & string & the vendor of the physical CPU \\
-$\mathit{RO}_\mathit{run}$ & {\tt speed} & int & the speed of the physical CPU \\
-$\mathit{RO}_\mathit{run}$ & {\tt modelname} & string & the model name of the physical CPU \\
-$\mathit{RO}_\mathit{run}$ & {\tt stepping} & string & the stepping of the physical CPU \\
-$\mathit{RO}_\mathit{run}$ & {\tt flags} & string & the flags of the physical CPU (a decoded version of the features field) \\
-$\mathit{RO}_\mathit{run}$ & {\tt features} & string & the physical CPU feature bitmap \\
-$\mathit{RO}_\mathit{run}$ & {\tt utilisation} & float & the current CPU utilisation \\
-$\mathit{RO}_\mathit{run}$ & {\tt cpu\_pool} & (cpu\_pool ref) Set & reference to cpu\_pool the cpu belongs to \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: host\_cpu}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the host\_cpus known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((host_cpu ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(host\_cpu ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_host}
-
-{\bf Overview:}
-Get the host field of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_host (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_number}
-
-{\bf Overview:}
-Get the number field of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_number (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_vendor}
-
-{\bf Overview:}
-Get the vendor field of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_vendor (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_speed}
-
-{\bf Overview:}
-Get the speed field of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_speed (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_modelname}
-
-{\bf Overview:}
-Get the modelname field of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_modelname (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_stepping}
-
-{\bf Overview:}
-Get the stepping field of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_stepping (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_flags}
-
-{\bf Overview:}
-Get the flags field of the given host\_cpu. As of this version of the
-API, the semantics of the returned string are explicitly unspecified,
-and may change in the future.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_flags (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_features}
-
-{\bf Overview:}
-Get the features field of the given host\_cpu. As of this version of the
-API, the semantics of the returned string are explicitly unspecified,
-and may change in the future.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_features (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_utilisation}
-
-{\bf Overview:}
-Get the utilisation field of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} float get_utilisation (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-float
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the host\_cpu instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host_cpu ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host\_cpu ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host_cpu record) get_record (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host\_cpu record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_cpu\_pool}
-
-{\bf Overview:}
-Get the cpu\_pool field of the given host\_cpu.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((cpu_pool) Set) get_cpu_pool (session_id s, host_cpu ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt host\_cpu ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(cpu\_pool) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_unassigned\_cpus}
-
-{\bf Overview:}
-Get a reference to all cpus that are not assigend to any cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((host_cpu) Set) get_unassigned_cpus (session_id s)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(host\_cpu ref) Set
-}
-
-
-Set of free (not assigned) cpus
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-
-
-\vspace{1cm}
-\newpage
-\section{Class: network}
-\subsection{Fields for class: network}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf network} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-virtual network.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
-$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
-$\mathit{RO}_\mathit{run}$ & {\tt VIFs} & (VIF ref) Set & list of connected vifs \\
-$\mathit{RO}_\mathit{run}$ & {\tt PIFs} & (PIF ref) Set & list of connected pifs \\
-$\mathit{RW}$ & {\tt default\_gateway} & string & default gateway \\
-$\mathit{RW}$ & {\tt default\_netmask} & string & default netmask \\
-$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: network}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the networks known to the system
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((network ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(network ref) Set
-}
-
-
-A list of all the IDs of all the networks
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_label}
-
-{\bf Overview:}
-Get the name/label field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_label (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_label}
-
-{\bf Overview:}
-Set the name/label field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_label (session_id s, network ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_description}
-
-{\bf Overview:}
-Get the name/description field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_description (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_description}
-
-{\bf Overview:}
-Set the name/description field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_description (session_id s, network ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VIFs}
-
-{\bf Overview:}
-Get the VIFs field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VIF ref) Set) get_VIFs (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VIF ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PIFs}
-
-{\bf Overview:}
-Get the PIFs field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PIF ref) Set) get_PIFs (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PIF ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_default\_gateway}
-
-{\bf Overview:}
-Get the default\_gateway field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_default_gateway (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_default\_gateway}
-
-{\bf Overview:}
-Set the default\_gateway field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_default_gateway (session_id s, network ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_default\_netmask}
-
-{\bf Overview:}
-Get the default\_netmask field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_default_netmask (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_default\_netmask}
-
-{\bf Overview:}
-Set the default\_netmask field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_default_netmask (session_id s, network ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_other\_config}
-
-{\bf Overview:}
-Get the other\_config field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_other\_config}
-
-{\bf Overview:}
-Set the other\_config field of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_other_config (session_id s, network ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_other\_config}
-
-{\bf Overview:}
-Add the given key-value pair to the other\_config field of the given
-network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_other_config (session_id s, network ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_other\_config}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the other\_config
-field of the given network. If the key is not in that Map, then do
-nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_other_config (session_id s, network ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new network instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (network ref) create (session_id s, network record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-network ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified network instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the network instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (network ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-network ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given network.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (network record) get_record (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-network record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_name\_label}
-
-{\bf Overview:}
-Get all the network instances with the given label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((network ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & label & label of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(network ref) Set
-}
-
-
-references to objects with match names
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: VIF}
-\subsection{Fields for class: VIF}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-virtual network interface.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RW}$ & {\tt device} & string & name of network device as exposed to guest e.g. eth0 \\
-$\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this vif is connected \\
-$\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & virtual machine to which this vif is connected \\
-$\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of virtual interface, as exposed to guest \\
-$\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
-$\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the device currently attached (erased on reboot) \\
-$\mathit{RO}_\mathit{run}$ & {\tt status\_code} & int & error/success code associated with last attach-operation (erased on reboot) \\
-$\mathit{RO}_\mathit{run}$ & {\tt status\_detail} & string & error/success information associated with last attach-operation status (erased on reboot) \\
-$\mathit{RO}_\mathit{run}$ & {\tt runtime\_properties} & (string $\rightarrow$ string) Map & Device runtime properties \\
-$\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\
-$\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\
-$\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VIF \\
-$\mathit{RO}_\mathit{run}$ & {\tt metrics} & VIF\_metrics ref & metrics associated with this VIF \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: VIF}
-\subsubsection{RPC name:~plug}
-
-{\bf Overview:}
-Hotplug the specified VIF, dynamically attaching it to the running VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void plug (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & The VIF to hotplug \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~unplug}
-
-{\bf Overview:}
-Hot-unplug the specified VIF, dynamically unattaching it from the running
-VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void unplug (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & The VIF to hot-unplug \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the VIFs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VIF ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VIF ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_device}
-
-{\bf Overview:}
-Get the device field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_device (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_device}
-
-{\bf Overview:}
-Set the device field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_device (session_id s, VIF ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_network}
-
-{\bf Overview:}
-Get the network field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (network ref) get_network (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-network ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VM}
-
-{\bf Overview:}
-Get the VM field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_VM (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_MAC}
-
-{\bf Overview:}
-Get the MAC field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_MAC (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_MAC}
-
-{\bf Overview:}
-Set the MAC field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_MAC (session_id s, VIF ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_MTU}
-
-{\bf Overview:}
-Get the MTU field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_MTU (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_MTU}
-
-{\bf Overview:}
-Set the MTU field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_MTU (session_id s, VIF ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_currently\_attached}
-
-{\bf Overview:}
-Get the currently\_attached field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_currently_attached (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_status\_code}
-
-{\bf Overview:}
-Get the status\_code field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_status_code (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_status\_detail}
-
-{\bf Overview:}
-Get the status\_detail field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_status_detail (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_runtime\_properties}
-
-{\bf Overview:}
-Get the runtime\_properties field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_qos\_algorithm\_type}
-
-{\bf Overview:}
-Get the qos/algorithm\_type field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_qos_algorithm_type (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_qos\_algorithm\_type}
-
-{\bf Overview:}
-Set the qos/algorithm\_type field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_qos_algorithm_type (session_id s, VIF ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_qos\_algorithm\_params}
-
-{\bf Overview:}
-Get the qos/algorithm\_params field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_qos\_algorithm\_params}
-
-{\bf Overview:}
-Set the qos/algorithm\_params field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_qos_algorithm_params (session_id s, VIF ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_qos\_algorithm\_params}
-
-{\bf Overview:}
-Add the given key-value pair to the qos/algorithm\_params field of the
-given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_qos_algorithm_params (session_id s, VIF ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the
-qos/algorithm\_params field of the given VIF. If the key is not in that
-Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VIF ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_qos\_supported\_algorithms}
-
-{\bf Overview:}
-Get the qos/supported\_algorithms field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_metrics}
-
-{\bf Overview:}
-Get the metrics field of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VIF_metrics ref) get_metrics (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VIF\_metrics ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_security\_label}
-
-{\bf Overview:}
-Set the security label of the given VIF. Refer to the XSPolicy class
-for the format of the security label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_security_label (session_id s, VIF ref self, string
-security_label, string old_label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-{\tt string } & security\_label & New value of the security label \\ \hline
-{\tt string } & old\_label & Label value that the security label \\
-& & must currently have for the change to succeed.\\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_security\_label}
-
-{\bf Overview:}
-Get the security label of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_security_label (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the given field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new VIF instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VIF ref) create (session_id s, VIF record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VIF ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified VIF instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the VIF instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VIF ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given VIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VIF record) get_record (session_id s, VIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VIF record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: VIF\_metrics}
-\subsection{Fields for class: VIF\_metrics}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VIF\_metrics} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
-The metrics associated with a virtual network device.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
-$\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
-$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: VIF\_metrics}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the VIF\_metrics instances known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VIF_metrics ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VIF\_metrics ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given VIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, VIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_io\_read\_kbs}
-
-{\bf Overview:}
-Get the io/read\_kbs field of the given VIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} float get_io_read_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-float
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_io\_write\_kbs}
-
-{\bf Overview:}
-Get the io/write\_kbs field of the given VIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} float get_io_write_kbs (session_id s, VIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-float
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_last\_updated}
-
-{\bf Overview:}
-Get the last\_updated field of the given VIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} datetime get_last_updated (session_id s, VIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-datetime
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the VIF\_metrics instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VIF\_metrics ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given VIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VIF_metrics record) get_record (session_id s, VIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VIF\_metrics record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: PIF}
-\subsection{Fields for class: PIF}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-physical network interface (note separate VLANs are represented as several
-PIFs).}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RW}$ & {\tt device} & string & machine-readable name of the interface (e.g. eth0) \\
-$\mathit{RO}_\mathit{ins}$ & {\tt network} & network ref & virtual network to which this pif is connected \\
-$\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine to which this pif is connected \\
-$\mathit{RW}$ & {\tt MAC} & string & ethernet MAC address of physical interface \\
-$\mathit{RW}$ & {\tt MTU} & int & MTU in octets \\
-$\mathit{RW}$ & {\tt VLAN} & int & VLAN tag for all traffic passing through this interface \\
-$\mathit{RO}_\mathit{run}$ & {\tt metrics} & PIF\_metrics ref & metrics associated with this PIF \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: PIF}
-\subsubsection{RPC name:~create\_VLAN}
-
-{\bf Overview:}
-Create a VLAN interface from an existing physical interface.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PIF ref) create_VLAN (session_id s, string device, network ref network, host ref host, int VLAN)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & device & physical interface on which to crate the VLAN interface \\ \hline
-
-{\tt network ref } & network & network to which this interface should be connected \\ \hline
-
-{\tt host ref } & host & physical machine to which this PIF is connected \\ \hline
-
-{\tt int } & VLAN & VLAN tag for the new interface \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PIF ref
-}
-
-
-The reference of the created PIF object
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt VLAN\_TAG\_INVALID}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the interface (provided it is a synthetic interface like a VLAN;
-fail if it is a physical interface).
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & the PIF object to destroy \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt PIF\_IS\_PHYSICAL}
-
-\vspace{0.6cm}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the PIFs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PIF ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PIF ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_device}
-
-{\bf Overview:}
-Get the device field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_device (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_device}
-
-{\bf Overview:}
-Set the device field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_device (session_id s, PIF ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_network}
-
-{\bf Overview:}
-Get the network field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (network ref) get_network (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-network ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_host}
-
-{\bf Overview:}
-Get the host field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_host (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_MAC}
-
-{\bf Overview:}
-Get the MAC field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_MAC (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_MAC}
-
-{\bf Overview:}
-Set the MAC field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_MAC (session_id s, PIF ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_MTU}
-
-{\bf Overview:}
-Get the MTU field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_MTU (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_MTU}
-
-{\bf Overview:}
-Set the MTU field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_MTU (session_id s, PIF ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VLAN}
-
-{\bf Overview:}
-Get the VLAN field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_VLAN (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_VLAN}
-
-{\bf Overview:}
-Set the VLAN field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_VLAN (session_id s, PIF ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_metrics}
-
-{\bf Overview:}
-Get the metrics field of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PIF_metrics ref) get_metrics (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PIF\_metrics ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the PIF instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PIF ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PIF ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given PIF.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PIF record) get_record (session_id s, PIF ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PIF record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: PIF\_metrics}
-\subsection{Fields for class: PIF\_metrics}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PIF\_metrics} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
-The metrics associated with a physical network interface.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
-$\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
-$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: PIF\_metrics}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the PIF\_metrics instances known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PIF_metrics ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PIF\_metrics ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given PIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, PIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_io\_read\_kbs}
-
-{\bf Overview:}
-Get the io/read\_kbs field of the given PIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} float get_io_read_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-float
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_io\_write\_kbs}
-
-{\bf Overview:}
-Get the io/write\_kbs field of the given PIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} float get_io_write_kbs (session_id s, PIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-float
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_last\_updated}
-
-{\bf Overview:}
-Get the last\_updated field of the given PIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} datetime get_last_updated (session_id s, PIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-datetime
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the PIF\_metrics instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PIF_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PIF\_metrics ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given PIF\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PIF_metrics record) get_record (session_id s, PIF_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PIF\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PIF\_metrics record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: SR}
-\subsection{Fields for class: SR}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf SR} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-storage repository.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
-$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
-$\mathit{RO}_\mathit{run}$ & {\tt VDIs} & (VDI ref) Set & managed virtual disks \\
-$\mathit{RO}_\mathit{run}$ & {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_allocation} & int & sum of virtual\_sizes of all VDIs in this storage repository (in bytes) \\
-$\mathit{RO}_\mathit{run}$ & {\tt physical\_utilisation} & int & physical space currently utilised on this storage repository (in bytes). Note that for sparse disk formats, physical\_utilisation may be less than virtual\_allocation \\
-$\mathit{RO}_\mathit{ins}$ & {\tt physical\_size} & int & total physical size of the repository (in bytes) \\
-$\mathit{RO}_\mathit{ins}$ & {\tt type} & string & type of the storage repository \\
-$\mathit{RO}_\mathit{ins}$ & {\tt content\_type} & string & the type of the SR's content, if required (e.g. ISOs) \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: SR}
-\subsubsection{RPC name:~get\_supported\_types}
-
-{\bf Overview:}
-Return a set of all the SR types supported by the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (string Set) get_supported_types (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string Set
-}
-
-
-the supported SR types
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the SRs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((SR ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(SR ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_label}
-
-{\bf Overview:}
-Get the name/label field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_label (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_label}
-
-{\bf Overview:}
-Set the name/label field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_label (session_id s, SR ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_description}
-
-{\bf Overview:}
-Get the name/description field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_description (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_description}
-
-{\bf Overview:}
-Set the name/description field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_description (session_id s, SR ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VDIs}
-
-{\bf Overview:}
-Get the VDIs field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VDI ref) Set) get_VDIs (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VDI ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PBDs}
-
-{\bf Overview:}
-Get the PBDs field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PBD ref) Set) get_PBDs (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PBD ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_allocation}
-
-{\bf Overview:}
-Get the virtual\_allocation field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_allocation (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_physical\_utilisation}
-
-{\bf Overview:}
-Get the physical\_utilisation field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_physical_utilisation (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_physical\_size}
-
-{\bf Overview:}
-Get the physical\_size field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_physical_size (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_type}
-
-{\bf Overview:}
-Get the type field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_type (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_content\_type}
-
-{\bf Overview:}
-Get the content\_type field of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_content_type (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the SR instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (SR ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-SR ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given SR.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (SR record) get_record (session_id s, SR ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt SR ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-SR record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_name\_label}
-
-{\bf Overview:}
-Get all the SR instances with the given label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((SR ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & label & label of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(SR ref) Set
-}
-
-
-references to objects with match names
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: VDI}
-\subsection{Fields for class: VDI}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VDI} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-virtual disk image.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RW}$ & {\tt name/label} & string & a human-readable name \\
-$\mathit{RW}$ & {\tt name/description} & string & a notes field containg human-readable description \\
-$\mathit{RO}_\mathit{ins}$ & {\tt SR} & SR ref & storage repository in which the VDI resides \\
-$\mathit{RO}_\mathit{run}$ & {\tt VBDs} & (VBD ref) Set & list of vbds that refer to this disk \\
-$\mathit{RO}_\mathit{run}$ & {\tt crash\_dumps} & (crashdump ref) Set & list of crash dumps that refer to this disk \\
-$\mathit{RW}$ & {\tt virtual\_size} & int & size of disk as presented to the guest (in bytes). Note that, depending on storage backend type, requested size may not be respected exactly \\
-$\mathit{RO}_\mathit{run}$ & {\tt physical\_utilisation} & int & amount of physical space that the disk image is currently taking up on the storage repository (in bytes) \\
-$\mathit{RO}_\mathit{ins}$ & {\tt type} & vdi\_type & type of the VDI \\
-$\mathit{RW}$ & {\tt sharable} & bool & true if this disk may be shared \\
-$\mathit{RW}$ & {\tt read\_only} & bool & true if this disk may ONLY be mounted read-only \\
-$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
-$\mathit{RO}_\mathit{run}$ & {\tt security/label} & string & the VM's security label \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: VDI}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the VDIs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VDI ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VDI ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_label}
-
-{\bf Overview:}
-Get the name/label field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_label (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_label}
-
-{\bf Overview:}
-Set the name/label field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_label (session_id s, VDI ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_description}
-
-{\bf Overview:}
-Get the name/description field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_description (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_description}
-
-{\bf Overview:}
-Set the name/description field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_description (session_id s, VDI ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_SR}
-
-{\bf Overview:}
-Get the SR field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (SR ref) get_SR (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-SR ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VBDs}
-
-{\bf Overview:}
-Get the VBDs field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VBD ref) Set) get_VBDs (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VBD ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_crash\_dumps}
-
-{\bf Overview:}
-Get the crash\_dumps field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((crashdump ref) Set) get_crash_dumps (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(crashdump ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_size}
-
-{\bf Overview:}
-Get the virtual\_size field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_size (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_virtual\_size}
-
-{\bf Overview:}
-Set the virtual\_size field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_virtual_size (session_id s, VDI ref self, int value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-{\tt int } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_physical\_utilisation}
-
-{\bf Overview:}
-Get the physical\_utilisation field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_physical_utilisation (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_type}
-
-{\bf Overview:}
-Get the type field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (vdi_type) get_type (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-vdi\_type
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_sharable}
-
-{\bf Overview:}
-Get the sharable field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_sharable (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_sharable}
-
-{\bf Overview:}
-Set the sharable field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_sharable (session_id s, VDI ref self, bool value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-{\tt bool } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_read\_only}
-
-{\bf Overview:}
-Get the read\_only field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_read_only (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_read\_only}
-
-{\bf Overview:}
-Set the read\_only field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_read_only (session_id s, VDI ref self, bool value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-{\tt bool } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_other\_config}
-
-{\bf Overview:}
-Get the other\_config field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_other\_config}
-
-{\bf Overview:}
-Set the other\_config field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_other_config (session_id s, VDI ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_other\_config}
-
-{\bf Overview:}
-Add the given key-value pair to the other\_config field of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_other_config (session_id s, VDI ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_other\_config}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the other\_config
-field of the given VDI. If the key is not in that Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_other_config (session_id s, VDI ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_security\_label}
-
-{\bf Overview:}
-Set the security label of the given VDI. Refer to the XSPolicy class
-for the format of the security label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_security_label (session_id s, VDI ref self, string
-security_label, string old_label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-{\tt string } & security\_label & New value of the security label \\ \hline
-{\tt string } & old\_label & Label value that the security label \\
-& & must currently have for the change to succeed.\\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_security\_label}
-
-{\bf Overview:}
-Get the security label of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_security_label (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the given field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new VDI instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VDI ref) create (session_id s, VDI record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VDI ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified VDI instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the VDI instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VDI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VDI ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given VDI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VDI record) get_record (session_id s, VDI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VDI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VDI record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_name\_label}
-
-{\bf Overview:}
-Get all the VDI instances with the given label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VDI ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & label & label of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VDI ref) Set
-}
-
-
-references to objects with match names
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: VBD}
-\subsection{Fields for class: VBD}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-virtual block device.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
-$\mathit{RO}_\mathit{ins}$ & {\tt VDI} & VDI ref & the virtual disk \\
-$\mathit{RW}$ & {\tt device} & string & device seen by the guest e.g. hda1 \\
-$\mathit{RW}$ & {\tt bootable} & bool & true if this VBD is bootable \\
-$\mathit{RW}$ & {\tt mode} & vbd\_mode & the mode the VBD should be mounted with \\
-$\mathit{RW}$ & {\tt type} & vbd\_type & how the VBD will appear to the guest (e.g. disk or CD) \\
-$\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the device currently attached (erased on reboot) \\
-$\mathit{RO}_\mathit{run}$ & {\tt status\_code} & int & error/success code associated with last attach-operation (erased on reboot) \\
-$\mathit{RO}_\mathit{run}$ & {\tt status\_detail} & string & error/success information associated with last attach-operation status (erased on reboot) \\
-$\mathit{RO}_\mathit{run}$ & {\tt runtime\_properties} & (string $\rightarrow$ string) Map & Device runtime properties \\
-$\mathit{RW}$ & {\tt qos/algorithm\_type} & string & QoS algorithm to use \\
-$\mathit{RW}$ & {\tt qos/algorithm\_params} & (string $\rightarrow$ string) Map & parameters for chosen QoS algorithm \\
-$\mathit{RO}_\mathit{run}$ & {\tt qos/supported\_algorithms} & string Set & supported QoS algorithms for this VBD \\
-$\mathit{RO}_\mathit{run}$ & {\tt metrics} & VBD\_metrics ref & metrics associated with this VBD \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: VBD}
-\subsubsection{RPC name:~media\_change}
-
-{\bf Overview:}
-Change the media in the device for CDROM-like devices only. For other
-devices, detach the VBD and attach a new one.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void media_change (session_id s, VBD ref vbd, VDI ref vdi)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & vbd & The vbd representing the CDROM-like device \\ \hline
-
-{\tt VDI ref } & vdi & The new VDI to 'insert' \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~plug}
-
-{\bf Overview:}
-Hotplug the specified VBD, dynamically attaching it to the running VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void plug (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & The VBD to hotplug \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~unplug}
-
-{\bf Overview:}
-Hot-unplug the specified VBD, dynamically unattaching it from the running
-VM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void unplug (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & The VBD to hot-unplug \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the VBDs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VBD ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VBD ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VM}
-
-{\bf Overview:}
-Get the VM field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_VM (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VDI}
-
-{\bf Overview:}
-Get the VDI field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VDI ref) get_VDI (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VDI ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_device}
-
-{\bf Overview:}
-Get the device field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_device (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_device}
-
-{\bf Overview:}
-Set the device field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_device (session_id s, VBD ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_bootable}
-
-{\bf Overview:}
-Get the bootable field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_bootable (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_bootable}
-
-{\bf Overview:}
-Set the bootable field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_bootable (session_id s, VBD ref self, bool value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-{\tt bool } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_mode}
-
-{\bf Overview:}
-Get the mode field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (vbd_mode) get_mode (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-vbd\_mode
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_mode}
-
-{\bf Overview:}
-Set the mode field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_mode (session_id s, VBD ref self, vbd_mode value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-{\tt vbd\_mode } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_type}
-
-{\bf Overview:}
-Get the type field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (vbd_type) get_type (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-vbd\_type
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_type}
-
-{\bf Overview:}
-Set the type field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_type (session_id s, VBD ref self, vbd_type value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-{\tt vbd\_type } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_currently\_attached}
-
-{\bf Overview:}
-Get the currently\_attached field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_currently_attached (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_status\_code}
-
-{\bf Overview:}
-Get the status\_code field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_status_code (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_status\_detail}
-
-{\bf Overview:}
-Get the status\_detail field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_status_detail (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_runtime\_properties}
-
-{\bf Overview:}
-Get the runtime\_properties field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_qos\_algorithm\_type}
-
-{\bf Overview:}
-Get the qos/algorithm\_type field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_qos_algorithm_type (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_qos\_algorithm\_type}
-
-{\bf Overview:}
-Set the qos/algorithm\_type field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_qos_algorithm_type (session_id s, VBD ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_qos\_algorithm\_params}
-
-{\bf Overview:}
-Get the qos/algorithm\_params field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_qos_algorithm_params (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_qos\_algorithm\_params}
-
-{\bf Overview:}
-Set the qos/algorithm\_params field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_qos_algorithm_params (session_id s, VBD ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_qos\_algorithm\_params}
-
-{\bf Overview:}
-Add the given key-value pair to the qos/algorithm\_params field of the
-given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_qos_algorithm_params (session_id s, VBD ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_qos\_algorithm\_params}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the
-qos/algorithm\_params field of the given VBD. If the key is not in that
-Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_qos_algorithm_params (session_id s, VBD ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_qos\_supported\_algorithms}
-
-{\bf Overview:}
-Get the qos/supported\_algorithms field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (string Set) get_qos_supported_algorithms (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_metrics}
-
-{\bf Overview:}
-Get the metrics field of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VBD_metrics ref) get_metrics (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VBD\_metrics ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new VBD instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VBD ref) create (session_id s, VBD record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VBD ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified VBD instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the VBD instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VBD ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given VBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VBD record) get_record (session_id s, VBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VBD record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: VBD\_metrics}
-\subsection{Fields for class: VBD\_metrics}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VBD\_metrics} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
-The metrics associated with a virtual block device.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt io/read\_kbs} & float & Read bandwidth (KiB/s) \\
-$\mathit{RO}_\mathit{run}$ & {\tt io/write\_kbs} & float & Write bandwidth (KiB/s) \\
-$\mathit{RO}_\mathit{run}$ & {\tt last\_updated} & datetime & Time at which this information was last updated \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: VBD\_metrics}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the VBD\_metrics instances known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((VBD_metrics ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(VBD\_metrics ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given VBD\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, VBD_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_io\_read\_kbs}
-
-{\bf Overview:}
-Get the io/read\_kbs field of the given VBD\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} float get_io_read_kbs (session_id s, VBD_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-float
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_io\_write\_kbs}
-
-{\bf Overview:}
-Get the io/write\_kbs field of the given VBD\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} float get_io_write_kbs (session_id s, VBD_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-float
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_last\_updated}
-
-{\bf Overview:}
-Get the last\_updated field of the given VBD\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} datetime get_last_updated (session_id s, VBD_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-datetime
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the VBD\_metrics instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VBD_metrics ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VBD\_metrics ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given VBD\_metrics.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VBD_metrics record) get_record (session_id s, VBD_metrics ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VBD\_metrics ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VBD\_metrics record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: PBD}
-\subsection{Fields for class: PBD}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PBD} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em
-The physical block devices through which hosts access SRs.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{ins}$ & {\tt host} & host ref & physical machine on which the pbd is available \\
-$\mathit{RO}_\mathit{ins}$ & {\tt SR} & SR ref & the storage repository that the pbd realises \\
-$\mathit{RO}_\mathit{ins}$ & {\tt device\_config} & (string $\rightarrow$ string) Map & a config string to string map that is provided to the host's SR-backend-driver \\
-$\mathit{RO}_\mathit{run}$ & {\tt currently\_attached} & bool & is the SR currently attached on this host? \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: PBD}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the PBDs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PBD ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PBD ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given PBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, PBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_host}
-
-{\bf Overview:}
-Get the host field of the given PBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_host (session_id s, PBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_SR}
-
-{\bf Overview:}
-Get the SR field of the given PBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (SR ref) get_SR (session_id s, PBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-SR ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_device\_config}
-
-{\bf Overview:}
-Get the device\_config field of the given PBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_device_config (session_id s, PBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_currently\_attached}
-
-{\bf Overview:}
-Get the currently\_attached field of the given PBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_currently_attached (session_id s, PBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new PBD instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PBD ref) create (session_id s, PBD record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PBD record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PBD ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified PBD instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, PBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the PBD instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PBD ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PBD ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given PBD.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PBD record) get_record (session_id s, PBD ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PBD ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PBD record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: crashdump}
-\subsection{Fields for class: crashdump}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf crashdump} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-VM crashdump.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
-$\mathit{RO}_\mathit{ins}$ & {\tt VDI} & VDI ref & the virtual disk \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: crashdump}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified crashdump.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, crashdump ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt crashdump ref } & self & The crashdump to destroy \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the crashdumps known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((crashdump ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(crashdump ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given crashdump.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, crashdump ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt crashdump ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VM}
-
-{\bf Overview:}
-Get the VM field of the given crashdump.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_VM (session_id s, crashdump ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt crashdump ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VDI}
-
-{\bf Overview:}
-Get the VDI field of the given crashdump.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VDI ref) get_VDI (session_id s, crashdump ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt crashdump ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VDI ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the crashdump instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (crashdump ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-crashdump ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given crashdump.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (crashdump record) get_record (session_id s, crashdump ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt crashdump ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-crashdump record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: VTPM}
-\subsection{Fields for class: VTPM}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VTPM} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-virtual TPM device.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{ins}$ & {\tt VM} & VM ref & the virtual machine \\
-$\mathit{RO}_\mathit{ins}$ & {\tt backend} & VM ref & the domain where the backend is located \\
-$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: VTPM}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given VTPM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, VTPM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VTPM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VM}
-
-{\bf Overview:}
-Get the VM field of the given VTPM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_VM (session_id s, VTPM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VTPM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_backend}
-
-{\bf Overview:}
-Get the backend field of the given VTPM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_backend (session_id s, VTPM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VTPM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_other\_config}
-
-{\bf Overview:}
-Get the other\_config field of the given VTPM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, VTPM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VTPM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_other\_config}
-
-{\bf Overview:}
-Set the other\_config field of the given VTPM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_other_config (session_id s, VTPM ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VTPM ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_runtime\_properties}
-
-{\bf Overview:}
-Get the runtime\_properties field of the given VTPM.
-
-\noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, VTPM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VTPM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new VTPM instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VTPM ref) create (session_id s, VTPM record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VTPM record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VTPM ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified VTPM instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, VTPM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VTPM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the VTPM instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VTPM ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VTPM ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given VTPM.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VTPM record) get_record (session_id s, VTPM ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt VTPM ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VTPM record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: console}
-\subsection{Fields for class: console}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf console} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-console.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt protocol} & console\_protocol & the protocol used by this console \\
-$\mathit{RO}_\mathit{run}$ & {\tt location} & string & URI for the console service \\
-$\mathit{RO}_\mathit{run}$ & {\tt VM} & VM ref & VM to which this console is attached \\
-$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: console}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the consoles known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((console ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(console ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given console.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, console ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_protocol}
-
-{\bf Overview:}
-Get the protocol field of the given console.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (console_protocol) get_protocol (session_id s, console ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-console\_protocol
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_location}
-
-{\bf Overview:}
-Get the location field of the given console.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_location (session_id s, console ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VM}
-
-{\bf Overview:}
-Get the VM field of the given console.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_VM (session_id s, console ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_other\_config}
-
-{\bf Overview:}
-Get the other\_config field of the given console.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, console ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_other\_config}
-
-{\bf Overview:}
-Set the other\_config field of the given console.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_other_config (session_id s, console ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_other\_config}
-
-{\bf Overview:}
-Add the given key-value pair to the other\_config field of the given
-console.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_other_config (session_id s, console ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to add \\ \hline
-
-{\tt string } & value & Value to add \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_other\_config}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the other\_config
-field of the given console. If the key is not in that Map, then do
-nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_other_config (session_id s, console ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-{\tt string } & key & Key to remove \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new console instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (console ref) create (session_id s, console record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-console ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified console instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, console ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the console instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (console ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-console ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given console.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (console record) get_record (session_id s, console ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt console ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-console record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: DPCI}
-\subsection{Fields for class: DPCI}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf DPCI} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-pass-through PCI device.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{inst}$ & {\tt VM} & VM ref & the virtual machine \\
-$\mathit{RO}_\mathit{inst}$ & {\tt PPCI} & PPCI ref & the physical PCI device \\
-$\mathit{RO}_\mathit{inst}$ & {\tt hotplug\_slot} & int & the slot number to which this PCI device is inserted \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_domain} & int & the virtual domain number \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_bus} & int & the virtual bus number \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_slot} & int & the virtual slot number \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_func} & int & the virtual func number \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_name} & string & the virtual PCI name \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: DPCI}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the DPCIs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((DPCI ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(DPCI ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VM}
-
-{\bf Overview:}
-Get the VM field of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_VM (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PPCI}
-
-{\bf Overview:}
-Get the PPCI field of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PPCI ref) get_PPCI (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PPCI ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_hotplug\_slot}
-
-{\bf Overview:}
-Get the hotplug\_slot field of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_hotplug_slot (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_domain}
-
-{\bf Overview:}
-Get the virtual\_domain field of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_domain (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_bus}
-
-{\bf Overview:}
-Get the virtual\_bus field of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_bus (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_slot}
-
-{\bf Overview:}
-Get the virtual\_slot field of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_slot (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_func}
-
-{\bf Overview:}
-Get the virtual\_func field of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_func (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_name}
-
-{\bf Overview:}
-Get the virtual\_name field of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_virtual_name (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new DPCI instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DPCI ref) create (session_id s, DPCI record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DPCI ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified DPCI instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the DPCI instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DPCI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DPCI ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given DPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DPCI record) get_record (session_id s, DPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DPCI record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: PPCI}
-\subsection{Fields for class: PPCI}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PPCI} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-physical PCI device.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the physical machine to which this PPCI is connected \\
-$\mathit{RO}_\mathit{run}$ & {\tt domain} & int & the domain number \\
-$\mathit{RO}_\mathit{run}$ & {\tt bus} & int & the bus number \\
-$\mathit{RO}_\mathit{run}$ & {\tt slot} & int & the slot number \\
-$\mathit{RO}_\mathit{run}$ & {\tt func} & int & the func number \\
-$\mathit{RO}_\mathit{run}$ & {\tt name} & string & the PCI name \\
-$\mathit{RO}_\mathit{run}$ & {\tt vendor\_id} & int & the vendor ID \\
-$\mathit{RO}_\mathit{run}$ & {\tt vendor\_name} & string & the vendor name \\
-$\mathit{RO}_\mathit{run}$ & {\tt device\_id} & int & the device ID \\
-$\mathit{RO}_\mathit{run}$ & {\tt device\_name} & string & the device name \\
-$\mathit{RO}_\mathit{run}$ & {\tt revision\_id} & int & the revision ID \\
-$\mathit{RO}_\mathit{run}$ & {\tt class\_code} & int & the class code \\
-$\mathit{RO}_\mathit{run}$ & {\tt class\_name} & string & the class name \\
-$\mathit{RO}_\mathit{run}$ & {\tt subsystem\_vendor\_id} & int & the subsystem vendor ID \\
-$\mathit{RO}_\mathit{run}$ & {\tt subsystem\_vendor\_name} & string & the subsystem vendor name \\
-$\mathit{RO}_\mathit{run}$ & {\tt subsystem\_id} & int & the subsystem ID \\
-$\mathit{RO}_\mathit{run}$ & {\tt subsystem\_name} & string & the subsystem name \\
-$\mathit{RO}_\mathit{run}$ & {\tt driver} & string & the driver name \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: PPCI}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the PPCIs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PPCI ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PPCI ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_host}
-
-{\bf Overview:}
-Get the host field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_host (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_domain}
-
-{\bf Overview:}
-Get the domain field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_domain (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_bus}
-
-{\bf Overview:}
-Get the bus field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_bus (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_slot}
-
-{\bf Overview:}
-Get the slot field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_slot (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_func}
-
-{\bf Overview:}
-Get the func field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_func (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name}
-
-{\bf Overview:}
-Get the name field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_vendor\_id}
-
-{\bf Overview:}
-Get the vendor\_id field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_vendor_id (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_vendor\_name}
-
-{\bf Overview:}
-Get the vendor\_name field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_vendor_name (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_device\_id}
-
-{\bf Overview:}
-Get the device\_id field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_device_id (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_device\_name}
-
-{\bf Overview:}
-Get the device\_name field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_device_name (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_revision\_id}
-
-{\bf Overview:}
-Get the revision\_id field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_revision_id (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_class\_code}
-
-{\bf Overview:}
-Get the class\_code field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_class_code (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_class\_name}
-
-{\bf Overview:}
-Get the class\_name field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_class_name (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_subsystem\_vendor\_id}
-
-{\bf Overview:}
-Get the subsystem\_vendor\_id field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_subsystem_vendor_id (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_subsystem\_vendor\_name}
-
-{\bf Overview:}
-Get the subsystem\_vendor\_name field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_subsystem_vendor_name (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_subsystem\_id}
-
-{\bf Overview:}
-Get the subsystem\_id field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_subsystem_id (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_subsystem\_name}
-
-{\bf Overview:}
-Get the subsystem\_name field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_subsystem_name (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_driver}
-
-{\bf Overview:}
-Get the driver field of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_driver (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the PPCI instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PPCI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PPCI ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given PPCI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PPCI record) get_record (session_id s, PPCI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PPCI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PPCI record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: DSCSI}
-\subsection{Fields for class: DSCSI}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf DSCSI} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-half-virtualized SCSI device.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{inst}$ & {\tt VM} & VM ref & the virtual machine \\
-$\mathit{RO}_\mathit{inst}$ & {\tt PSCSI} & PSCSI ref & the physical SCSI device \\
-$\mathit{RO}_\mathit{run}$ & {\tt HBA} & DSCSI\_HBA ref & the half-virtualized SCSI host bus adapter \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_host} & int & the virtual host number \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_channel} & int & the virtual channel number \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_target} & int & the virtual target number \\
-$\mathit{RO}_\mathit{run}$ & {\tt virtual\_lun} & int & the virtual logical unit number \\
-$\mathit{RO}_\mathit{inst}$ & {\tt virtual\_HCTL} & string & the virtual HCTL \\
-$\mathit{RO}_\mathit{run}$ & {\tt runtime\_properties} & (string $\rightarrow$ string) Map & Device runtime properties \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: DSCSI}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the DSCSIs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((DSCSI ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(DSCSI ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VM}
-
-{\bf Overview:}
-Get the VM field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_VM (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PSCSI}
-
-{\bf Overview:}
-Get the PSCSI field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PSCSI ref) get_PSCSI (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PSCSI ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_HBA}
-
-{\bf Overview:}
-Get the HBA field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DSCSI_HBA ref) get_HBA (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DSCSI\_HBA ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_host}
-
-{\bf Overview:}
-Get the virtual\_host field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_host (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_channel}
-
-{\bf Overview:}
-Get the virtual\_channel field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_channel (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_target}
-
-{\bf Overview:}
-Get the virtual\_target field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_target (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_lun}
-
-{\bf Overview:}
-Get the virtual\_lun field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_lun (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_HCTL}
-
-{\bf Overview:}
-Get the virtual\_HCTL field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_virtual_HCTL (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_runtime\_properties}
-
-{\bf Overview:}
-Get the runtime\_properties field of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_runtime_properties (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new DSCSI instance, and create a new DSCSI\_HBA instance as needed
-that the new DSCSI instance connects to, and return the handle of the new
-DSCSI instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DSCSI ref) create (session_id s, DSCSI record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DSCSI ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified DSCSI instance, and destroy a DSCSI\_HBA instance as
-needed that the specified DSCSI instance connects to.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the DSCSI instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DSCSI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DSCSI ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given DSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DSCSI record) get_record (session_id s, DSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DSCSI record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: DSCSI\_HBA}
-\subsection{Fields for class: DSCSI\_HBA}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf DSCSI\_HBA} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-half-virtualized SCSI host bus adapter.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{inst}$ & {\tt VM} & VM ref & the virtual machine \\
-$\mathit{RO}_\mathit{run}$ & {\tt PSCSI\_HBAs} & (PSCSI\_HBA ref) Set & the physical SCSI HBAs \\
-$\mathit{RO}_\mathit{run}$ & {\tt DSCSIs} & (DSCSI ref) Set & the half-virtualized SCSI devices which are connected to this DSCSI HBA \\
-$\mathit{RO}_\mathit{inst}$ & {\tt virtual\_host} & int & the virtual host number \\
-$\mathit{RO}_\mathit{inst}$ & {\tt assignment\_mode} & string & the assignment mode of the half-virtualized SCSI devices which are connected to this DSCSI HBA \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: DSCSI\_HBA}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the DSCSI HBAs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((DSCSI_HBA ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(DSCSI\_HBA ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given DSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, DSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VM}
-
-{\bf Overview:}
-Get the VM field of the given DSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (VM ref) get_VM (session_id s, DSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-VM ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PSCSI\_HBAs}
-
-{\bf Overview:}
-Get the PSCSI\_HBAs field of the given DSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PSCSI_HBA ref) Set) get_PSCSI_HBAs (session_id s, DSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PSCSI\_HBA ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_DSCSIs}
-
-{\bf Overview:}
-Get the DSCSIs field of the given DSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((DSCSI ref) Set) get_DSCSIs (session_id s, DSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(DSCSI ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_virtual\_host}
-
-{\bf Overview:}
-Get the virtual\_host field of the given DSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_virtual_host (session_id s, DSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_assignment\_mode}
-
-{\bf Overview:}
-Get the assignment\_mode field of the given DSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_assignment_mode (session_id s, DSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new DSCSI\_HBA instance, and create new DSCSI instances of
-half-virtualized SCSI devices which are connected to the half-virtualized
-SCSI host bus adapter, and return the handle of the new DSCSI\_HBA instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DSCSI_HBA ref) create (session_id s, DSCSI_HBA record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI\_HBA record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DSCSI\_HBA ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified DSCSI\_HBA instance, and destroy DSCSI instances of
-half-virtualized SCSI devices which are connected to the half-virtualized SCSI
-host bus adapter.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, DSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the DSCSI\_HBA instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DSCSI_HBA ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DSCSI\_HBA ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given DSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (DSCSI_HBA record) get_record (session_id s, DSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt DSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-DSCSI\_HBA record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: PSCSI}
-\subsection{Fields for class: PSCSI}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PSCSI} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-physical SCSI device.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the physical machine to which this PSCSI is connected \\
-$\mathit{RO}_\mathit{run}$ & {\tt HBA} & PSCSI\_HBA ref & the physical SCSI host bus adapter \\
-$\mathit{RO}_\mathit{run}$ & {\tt physical\_host} & int & the physical host number \\
-$\mathit{RO}_\mathit{run}$ & {\tt physical\_channel} & int & the physical channel number \\
-$\mathit{RO}_\mathit{run}$ & {\tt physical\_target} & int & the physical target number \\
-$\mathit{RO}_\mathit{run}$ & {\tt physical\_lun} & int & the physical logical unit number \\
-$\mathit{RO}_\mathit{run}$ & {\tt physical\_HCTL} & string & the physical HCTL \\
-$\mathit{RO}_\mathit{run}$ & {\tt vendor\_name} & string & the vendor name \\
-$\mathit{RO}_\mathit{run}$ & {\tt model} & string & the model \\
-$\mathit{RO}_\mathit{run}$ & {\tt type\_id} & int & the SCSI type ID \\
-$\mathit{RO}_\mathit{run}$ & {\tt type} & string & the SCSI type \\
-$\mathit{RO}_\mathit{run}$ & {\tt dev\_name} & string & the SCSI device name (e.g. sda or st0) \\
-$\mathit{RO}_\mathit{run}$ & {\tt sg\_name} & string & the SCSI generic device name (e.g. sg0) \\
-$\mathit{RO}_\mathit{run}$ & {\tt revision} & string & the revision \\
-$\mathit{RO}_\mathit{run}$ & {\tt scsi\_id} & string & the SCSI ID \\
-$\mathit{RO}_\mathit{run}$ & {\tt scsi\_level} & int & the SCSI level \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: PSCSI}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the PSCSIs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PSCSI ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PSCSI ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_host}
-
-{\bf Overview:}
-Get the host field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_host (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_HBA}
-
-{\bf Overview:}
-Get the HBA field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PSCSI_HBA ref) get_HBA (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PSCSI\_HBA ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_physical\_host}
-
-{\bf Overview:}
-Get the physical\_host field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_physical_host (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_physical\_channel}
-
-{\bf Overview:}
-Get the physical\_channel field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_physical_channel (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_physical\_target}
-
-{\bf Overview:}
-Get the physical\_target field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_physical_target (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_physical\_lun}
-
-{\bf Overview:}
-Get the physical\_lun field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_physical_lun (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_physical\_HCTL}
-
-{\bf Overview:}
-Get the physical\_HCTL field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_physical_HCTL (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_vendor\_name}
-
-{\bf Overview:}
-Get the vendor\_name field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_vendor_name (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_model}
-
-{\bf Overview:}
-Get the model field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_model (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_type\_id}
-
-{\bf Overview:}
-Get the type\_id field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_type_id (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_type}
-
-{\bf Overview:}
-Get the type field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_type (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_dev\_name}
-
-{\bf Overview:}
-Get the dev\_name field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_dev_name (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_sg\_name}
-
-{\bf Overview:}
-Get the sg\_name field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_sg_name (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_revision}
-
-{\bf Overview:}
-Get the revision field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_revision (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_scsi\_id}
-
-{\bf Overview:}
-Get the scsi\_id field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_scsi_id (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_scsi\_level}
-
-{\bf Overview:}
-Get the scsi\_level field of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_scsi_level (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the PSCSI instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PSCSI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PSCSI ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given PSCSI.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PSCSI record) get_record (session_id s, PSCSI ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PSCSI record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: PSCSI\_HBA}
-\subsection{Fields for class: PSCSI\_HBA}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PSCSI\_HBA} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-physical SCSI host bus adapter.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{run}$ & {\tt host} & host ref & the physical machine to which this PSCSI HBA is connected \\
-$\mathit{RO}_\mathit{run}$ & {\tt physical\_host} & int & the physical host number \\
-$\mathit{RO}_\mathit{run}$ & {\tt PSCSIs} & (PSCSI ref) Set & the physical SCSI devices which are connected to this PSCSI HBA \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: PSCSI\_HBA}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the PSCSI HBAs known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PSCSI_HBA ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PSCSI\_HBA ref) Set
-}
-
-
-references to all objects
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given PSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, PSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_host}
-
-{\bf Overview:}
-Get the host field of the given PSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_host (session_id s, PSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_physical\_host}
-
-{\bf Overview:}
-Get the physical\_host field of the given PSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_physical_host (session_id s, PSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_PSCSIs}
-
-{\bf Overview:}
-Get the PSCSIs field of the given PSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((PSCSI ref) Set) get_PSCSIs (session_id s, PSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(PSCSI ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the PSCSI HBA instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PSCSI_HBA ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PSCSI\_HBA ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given PSCSI HBA.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (PSCSI_HBA record) get_record (session_id s, PSCSI_HBA ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt PSCSI\_HBA ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-PSCSI\_HBA record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: user}
-\subsection{Fields for class: user}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf user} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
-user of the system.}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier/object reference \\
-$\mathit{RO}_\mathit{ins}$ & {\tt short\_name} & string & short name (e.g. userid) \\
-$\mathit{RW}$ & {\tt fullname} & string & full name \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: user}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given user.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, user ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt user ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_short\_name}
-
-{\bf Overview:}
-Get the short\_name field of the given user.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_short_name (session_id s, user ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt user ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_fullname}
-
-{\bf Overview:}
-Get the fullname field of the given user.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_fullname (session_id s, user ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt user ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_fullname}
-
-{\bf Overview:}
-Set the fullname field of the given user.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_fullname (session_id s, user ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt user ref } & self & reference to the object \\ \hline
-
-{\tt string } & value & New value to set \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new user instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (user ref) create (session_id s, user record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt user record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-user ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified user instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, user ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt user ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the user instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (user ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-user ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given user.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (user record) get_record (session_id s, user ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt user ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-user record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\vspace{1cm}
-\newpage
-\section{Class: XSPolicy}
-\subsection{Fields for class: XSPolicy}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf XSPolicy} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A Xen Security Policy}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier / object reference \\
-$\mathit{RW}$ & {\tt repr} & string & representation of policy, i.e., XML \\
-$\mathit{RO}_\mathit{run}$ & {\tt type} & xs\_type & type of the policy \\
-$\mathit{RO}_\mathit{run}$ & {\tt flags} & xs\_instantiationflags & policy
-status flags \\
-\hline
-\end{longtable}
-\subsection{Semantics of the class: XSPolicy}
-
-The XSPolicy class is used for administering Xen Security policies. Through
-this class a new policy can be uploaded to the system, loaded into the
-Xen hypervisor for enforcement and be set as the policy that the
-system is automatically loading when the machine is started.
-
-This class returns information about the currently administered policy,
-including a reference to the policy. This reference can then be used with
-policy-specific classes, i.e., the ACMPolicy class, to allow retrieval of
-information or changes to be made to a particular policy.
-
-\subsection{Structure and datatypes of class: XSPolicy}
-
-Format of the security label:
-
-A security label consist of the three different parts {\it policy type},
-{\it policy name} and {\it label} separated with colons. To specify
-the virtual machine label for an ACM-type policy {\it xm-test}, the
-security label string would be {\it ACM:xm-test:blue}, where blue
-denotes the virtual machine's label. The format of resource labels is
-the same.\\[0.5cm]
-The following flags are used by this class:
-
-\begin{longtable}{|l|l|l|}
-\hline
-{\tt xs\_type} & value & meaning \\
-\hline
-\hspace{0.5cm}{\tt XS\_POLICY\_ACM} & (1 $<<$ 0) & ACM-type policy \\
-\hline
-\end{longtable}
-
-\begin{longtable}{|l|l|l|}
-\hline
-{\tt xs\_instantiationflags} & value & meaning \\
-\hline
-\hspace{0.5cm}{\tt XS\_INST\_NONE} & 0 & do nothing \\
-\hspace{0.5cm}{\tt XS\_INST\_BOOT} & (1 $<<$ 0) & make system boot with this policy \\
-\hspace{0.5cm}{\tt XS\_INST\_LOAD} & (1 $<<$ 1) & load policy immediately \\
-\hline
-\end{longtable}
-
-\begin{longtable}{|l|l|l|}
-\hline
-{\tt xs\_policystate} & type & meaning \\
-\hline
-\hspace{0.5cm}{\tt xserr} & int & Error code from operation (if applicable) \\
-\hspace{0.5cm}{\tt xs\_ref} & XSPolicy ref & reference to the XS policy as returned by the API \\
-\hspace{0.5cm}{\tt repr} & string & representation of the policy, i.e., XML \\
-\hspace{0.5cm}{\tt type} & xs\_type & the type of the policy \\
-\hspace{0.5cm}{\tt flags } & xs\_instantiationflags & instantiation flags of the policy \\
-\hspace{0.5cm}{\tt version} & string & version of the policy \\
-\hspace{0.5cm}{\tt errors} & string & Base64-encoded sequence of integer tuples consisting \\
-& & of (error code, detail); will be returned as part \\
-& & of the xs\_setpolicy function. \\
-\hline
-\end{longtable}
-
-\subsection{Additional RPCs associated with class: XSPolicy}
-\subsubsection{RPC name:~get\_xstype}
-
-{\bf Overview:}
-Return the Xen Security Policy types supported by this system
-
- \noindent {\bf Signature:}
-\begin{verbatim} xs_type get_xstype (session_id s)\end{verbatim}
-
- \noindent {\bf Return Type:}
-{\tt
-xs\_type
-}
-
-flags representing the supported Xen security policy types
- \vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_xspolicy}
-
-{\bf Overview:}
-Set the current XSPolicy. This function can also be be used for updating of
-an existing policy whose name must be equivalent to the one of the
-currently running policy.
-
-\noindent {\bf Signature:}
-\begin{verbatim} xs_policystate set_xspolicy (session_id s, xs_type type, string repr,
-xs_instantiationflags flags, bool overwrite)\end{verbatim}
-
-\noindent{\bf Arguments:}
-
-\vspace{0.3cm}
-
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt xs\_type } & type & the type of policy \\ \hline
-{\tt string} & repr & representation of the policy, i.e., XML \\ \hline
-{\tt xs\_instantiationflags} & flags & flags for the setting of the policy \\ \hline
-{\tt bool} & overwrite & whether to overwrite an existing policy \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
-
- \noindent {\bf Return Type:}
-{\tt
-xs\_policystate
-}
-
-
-State information about the policy. In case an error occurred, the 'xs\_err'
-field contains the error code. The 'errors' may contain further information
-about the error.
- \vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~reset\_xspolicy}
-
-{\bf Overview:}
-Attempt to reset the system's policy by installing the default policy.
-Since this function is implemented as an update to the current policy, it
-underlies the same restrictions. This function may fail if for example
-other domains than Domain-0 are running and use a different label than
-Domain-0
-
-\noindent {\bf Signature:}
-\begin{verbatim} xs_policystate reset_xspolicy (session_id s, xs_type type)
-\end{verbatim}
-
-\noindent{\bf Arguments:}
-
-\vspace{0.3cm}
-
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt xs\_type } & type & the type of policy \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
-
- \noindent {\bf Return Type:}
-{\tt
-xs\_policystate
-}
-
-
-State information about the policy. In case an error occurred, the 'xs\_err'
-field contains the error code. The 'errors' may contain further information
-about the error.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_xspolicy}
-
-{\bf Overview:}
-Get information regarding the currently set Xen Security Policy
-
- \noindent {\bf Signature:}
-\begin{verbatim} xs_policystate get_xspolicy (session_id s)\end{verbatim}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-xs\_policystate
-}
-
-
-Policy state information.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~rm\_xsbootpolicy}
-
-{\bf Overview:}
-Remove any policy from the default boot configuration.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void rm_xsbootpolicy (session_id s)\end{verbatim}
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_labeled\_resources}
-
-{\bf Overview:}
-Get a list of resources that have been labeled.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_labeled_resources (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-A map of resources with their labels.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_resource\_label}
-
-{\bf Overview:}
-Label the given resource with the given label. An empty label removes any label
-from the resource.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_resource_label (session_id s, string resource, string
-label, string old_label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & resource & resource to label \\ \hline
-{\tt string } & label & label for the resource \\ \hline
-{\tt string } & old\_label & Optional label value that the security label \\
-& & must currently have for the change to succeed. \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_resource\_label}
-
-{\bf Overview:}
-Get the label of the given resource.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_resource_label (session_id s, string resource)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & resource & resource to label \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-The label of the given resource.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~can\_run}
-
-{\bf Overview:}
-Check whether a VM with the given security label could run on the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int can_run (session_id s, string security_label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & security\_label & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-Error code indicating whether a VM with the given security label could run.
-If zero, it can run.
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:} {\tt SECURITY\_ERROR}
-
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the XSPolicies known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((XSPolicy ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(XSPolicy ref) Set
-}
-
-
-A list of all the IDs of all the XSPolicies
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given XSPolicy.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, XSPolicy ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt XSPolicy ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record of the referenced XSPolicy.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (XSPolicy record) get_record (session_id s, xs_ref xspolicy)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt xs ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-XSPolicy record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\newpage
-\section{Class: ACMPolicy}
-\subsection{Fields for class: ACMPolicy}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf ACMPolicy} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em An ACM Security Policy}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier / object reference \\
-$\mathit{RW}$ & {\tt repr} & string & representation of policy, in XML \\
-$\mathit{RO}_\mathit{run}$ & {\tt type} & xs\_type & type of the policy \\
-$\mathit{RO}_\mathit{run}$ & {\tt flags} & xs\_instantiationflags & policy
-status flags \\
-\hline
-\end{longtable}
-
-\subsection{Structure and datatypes of class: ACMPolicy}
-
-\vspace{0.5cm}
-The following data structures are used:
-
-\begin{longtable}{|l|l|l|}
-\hline
-{\tt RIP acm\_policyheader} & type & meaning \\
-\hline
-\hspace{0.5cm}{\tt policyname} & string & name of the policy \\
-\hspace{0.5cm}{\tt policyurl } & string & URL of the policy \\
-\hspace{0.5cm}{\tt date} & string & data of the policy \\
-\hspace{0.5cm}{\tt reference} & string & reference of the policy \\
-\hspace{0.5cm}{\tt namespaceurl} & string & namespaceurl of the policy \\
-\hspace{0.5cm}{\tt version} & string & version of the policy \\
-\hline
-\end{longtable}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_header}
-
-{\bf Overview:}
-Get the referenced policy's header information.
-
- \noindent {\bf Signature:}
-\begin{verbatim} acm_policyheader get_header (session_id s, xs ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt xs ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-acm\_policyheader
-}
-
-
-The policy's header information.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_xml}
-
-{\bf Overview:}
-Get the XML representation of the given policy.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_XML (session_id s, xs ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt xs ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-XML representation of the referenced policy
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_map}
-
-{\bf Overview:}
-Get the mapping information of the given policy.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_map (session_id s, xs ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt xs ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-Mapping information of the referenced policy.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_binary}
-
-{\bf Overview:}
-Get the binary policy representation of the referenced policy.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_binary (session_id s, xs ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt xs ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-Base64-encoded representation of the binary policy.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_enforced\_binary}
-
-{\bf Overview:}
-Get the binary policy representation of the currently enforced ACM policy.
-In case the default policy is loaded in the hypervisor, a policy may be
-managed by xend that is not yet loaded into the hypervisor.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_enforced_binary (session_id s, xs ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt xs ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-Base64-encoded representation of the binary policy.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_VM\_ssidref}
-
-{\bf Overview:}
-Get the ACM ssidref of the given virtual machine.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_VM_ssidref (session_id s, vm ref vm)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt vm ref } & vm & reference to a valid VM \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-The ssidref of the given virtual machine.
-
-\vspace{0.3cm}
-
-\noindent{\bf Possible Error Codes:}
- {\tt HANDLE\_INVALID, VM\_BAD\_POWER\_STATE, SECURITY\_ERROR}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the ACMPolicies known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((ACMPolicy ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(ACMPolicy ref) Set
-}
-
-
-A list of all the IDs of all the ACMPolicies
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given ACMPolicy.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, ACMPolicy ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt ACMPolicy ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record of the referenced ACMPolicy.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (XSPolicy record) get_record (session_id s, xs_ref xspolicy)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt xs ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-XSPolicy record
-}
-
-
-all fields from the object
-
-\newpage
-\section{Class: debug}
-\subsection{Fields for class: debug}
-{\bf Class debug has no fields.}
-\subsection{RPCs associated with class: debug}
-\subsubsection{RPC name:~get\_all}
-
-{\bf Overview:}
-Return a list of all the debug records known to the system
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((debug ref) Set) get_all (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(debug ref) Set
-}
-
-
-A list of all the IDs of all the debug records
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~return\_failure}
-
-{\bf Overview:}
-Return an API 'successful' failure.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void return_failure (session_id s)\end{verbatim}
-
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new debug instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (debug ref) create (session_id s, debug record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt debug record } & args & All constructor arguments \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-debug ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified debug instance.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, debug ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt debug ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the debug instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (debug ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-debug ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given debug.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (debug record) get_record (session_id s, debug ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt debug ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-debug record
-}
-
-
-all fields from the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-
-\newpage
-\section{Class: cpu\_pool}
-\subsection{Fields for class: cpu\_pool}
-\begin{longtable}{|lllp{0.38\textwidth}|}
-\hline
-\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf cpu\_pool} \\
-\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A CPU pool}} \\
-\hline
-Quals & Field & Type & Description \\
-\hline
-$\mathit{RO}_\mathit{run}$ & {\tt uuid} & string & unique identifier / object reference \\
-$\mathit{RW}$ & {\tt name\_label} & string & name of cpu\_pool \\
-$\mathit{RW}$ & {\tt name\_description} & string & cpu\_pool description \\
-$\mathit{RO}_\mathit{run}$ & {\tt resident\_on} & host ref & the host the cpu\_pool is currently resident on \\
-$\mathit{RW}$ & {\tt auto\_power\_on} & bool & True if this cpu\_pool should be activated automatically after host boot \\
-$\mathit{RO}_\mathit{run}$ & {\tt started\_VMs} & (VM ref) Set & list of VMs currently started in this cpu\_pool \\
-$\mathit{RW}$ & {\tt ncpu} & integer & number of host\_CPUs requested for this cpu\_pool at next start \\
-$\mathit{RW}$ & {\tt sched\_policy} & string & scheduler policy on this cpu\_pool \\
-$\mathit{RW}$ & {\tt proposed\_CPUs} & (string) Set & list of proposed host\_CPUs to assign at next activation \\
-$\mathit{RO}_\mathit{run}$ & {\tt host\_CPUs} & (VM ref) Set & list of host\_cpus currently assigned to this cpu\_pool \\
-$\mathit{RO}_\mathit{run}$ & {\tt activated} & bool & True if this cpu\_pool is activated \\
-$\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\
-\hline
-\end{longtable}
-\subsection{RPCs associated with class: cpu\_pool}
-\subsubsection{RPC name:~activate}
-
-{\bf Overview:}
-Activate the cpu\_pool and assign the given CPUs to it.
-CPUs specified in field proposed\_CPUs, that are not existing or not free, are
-ignored. If value of ncpu is greater than the number of CPUs in field
-proposed\_CPUs, additional free CPUs are assigned to the cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void activate (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-\vspace{0.3cm}
-
-\noindent {\bf Possible Error Codes:}
- {\tt POOL\_BAD\_STATE, INSUFFICIENT\_CPUS, UNKOWN\_SCHED\_POLICY}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~create}
-
-{\bf Overview:}
-Create a new cpu\_pool instance, and return its handle.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (cpu_pool ref) create (session_id s, cpu_pool record args)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool record } & args & All constructor arguments \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-cpu\_pool ref
-}
-
-
-reference to the newly created object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~deactivate}
-
-{\bf Overview:}
-Deactivate the cpu\_pool and release all CPUs assigned to it.
-This function can only be called if there are no domains active in the
-cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void deactivate (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-\vspace{0.3cm}
-
-\noindent {\bf Possible Error Codes:} {\tt POOL\_BAD\_STATE}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~destroy}
-
-{\bf Overview:}
-Destroy the specified cpu\_pool. The cpu\_pool is completely removed from the
-system.
-This function can only be called if the cpu\_pool is deactivated.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void destroy (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-\vspace{0.3cm}
-
-\noindent {\bf Possible Error Codes:} {\tt POOL\_BAD\_STATE}
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_host\_CPU\_live}
-
-
-{\bf Overview:}
-Add a additional CPU immediatly to the cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_host_CPU_live (session_id s, cpu_pool ref self, host_cpu ref host_cpu)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt host\_cpu ref } & host\_cpu & CPU to add \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-\vspace{0.3cm}
-
-\noindent {\bf Possible Error Codes:}
- {\tt POOL\_BAD\_STATE, INVALID\_CPU}
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_host\_CPU\_live}
-
-
-{\bf Overview:}
-Remove a CPU immediatly from the cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_host_CPU_live (session_id s, cpu_pool ref self, host_cpu ref host_cpu)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt host\_cpu ref } & host\_cpu & CPU to remove \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-\vspace{0.3cm}
-
-\noindent {\bf Possible Error Codes:}
- {\tt POOL\_BAD\_STATE, INVALID\_CPU, LAST\_CPU\_NOT\_REMOVEABLE}
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_all}
-
-
-{\bf Overview:}
-Return a list of all the cpu pools known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((cpu_pool ref) Set) get_all (session_id s)\end{verbatim}
-
-
- \noindent {\bf Return Type:}
-{\tt
-(cpu\_pool ref) Set
-}
-A list of all the IDs of the cpu pools.
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_all\_records}
-
-
-{\bf Overview:}
-Return a map of all the cpu pool records known to the system.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (((cpu_pool ref) -> (cpu_pool record)) Map) get_all_records (session_id s)\end{verbatim}
-
-
- \noindent {\bf Return Type:}
-{\tt
-((cpu\_pool ref) $\rightarrow$ (cpu\_pool record)) Map
-}
-A map of all the cpu pool records indexed by cpu pool ref.
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_name\_label}
-
-{\bf Overview:}
-Get all the cpu\_pool instances with the given label.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((cpu_pool ref) Set) get_by_name_label (session_id s, string label)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & label & label of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(cpu\_pool ref) Set
-}
-
-
-references to objects with matching names
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_by\_uuid}
-
-{\bf Overview:}
-Get a reference to the cpu\_pool instance with the specified UUID.
-
- \noindent {\bf Signature:}
-\begin{verbatim} (cpu_pool ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt string } & uuid & UUID of object to return \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-cpu\_pool ref
-}
-
-
-reference to the object
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_activated}
-
-
-{\bf Overview:}
-Return the activation state of the cpu\_pool object.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_activated (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-Returns {\bf true} if cpu\_pool is active.
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_auto\_power\_on}
-
-
-{\bf Overview:}
-Return the auto power attribute of the cpu\_pool object.
-
- \noindent {\bf Signature:}
-\begin{verbatim} bool get_auto_power_on (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-bool
-}
-Returns {\bf true} if cpu\_pool has to be activated on xend start.
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_host\_CPUs}
-
-
-{\bf Overview:}
-Return the list of host\_cpu refs assigned to the cpu\_pool object.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((host_cpu ref) Set) get_host_CPUs (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(host\_cpu ref) Set
-}
-Returns a list of references of all host cpus assigned to the cpu\_pool.
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_description}
-
-{\bf Overview:}
-Get the name/description field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_description (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_name\_label}
-
-{\bf Overview:}
-Get the name/label field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_name_label (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_ncpu}
-
-{\bf Overview:}
-Get the ncpu field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} int get_ncpu (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-int
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_proposed\_CPUs}
-
-{\bf Overview:}
-Get the proposed\_CPUs field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} ((string) Set) get_proposed_CPUs (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-(string) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_other\_config}
-
-{\bf Overview:}
-Get the other\_config field of the given cpu\_pool.
-
-\noindent {\bf Signature:}
-\begin{verbatim} ((string -> string) Map) get_other_config (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-(string $\rightarrow$ string) Map
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_record}
-
-{\bf Overview:}
-Get a record containing the current state of the given cpu\_pool.
-
-\noindent {\bf Signature:}
-\begin{verbatim} (cpu_pool record) get_record (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-cpu\_pool record
-}
-
-
-all fields of the object.
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_resident\_on}
-
-{\bf Overview:}
-Get the resident\_on field of the given cpu\_pool.
-
-\noindent {\bf Signature:}
-\begin{verbatim} (host ref) get_resident_on (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-host ref
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_sched\_policy}
-
-{\bf Overview:}
-Get the sched\_policy field of the given cpu\_pool.
-
-\noindent {\bf Signature:}
-\begin{verbatim} string get_sched_policy (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_started\_VMs}
-
-{\bf Overview:}
-Get the started\_VMs field of the given cpu\_pool.
-
-\noindent {\bf Signature:}
-\begin{verbatim} ((VM ref) Set) get_started_VMs (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-(VM ref) Set
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_uuid}
-
-{\bf Overview:}
-Get the uuid field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} string get_uuid (session_id s, cpu_pool ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_auto\_power\_on}
-
-{\bf Overview:}
-Set the auto\_power\_on field of the given cpu\_pool.
-
-\noindent {\bf Signature:}
-\begin{verbatim} void set_auto_power_on (session_id s, cpu_pool ref self, bool value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt bool } & value & new auto\_power\_on value \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-void
-}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_proposed\_CPUs}
-
-{\bf Overview:}
-Set the proposed\_CPUs field of the given cpu\_pool.
-
-\noindent {\bf Signature:}
-\begin{verbatim} void set_proposed_CPUs (session_id s, cpu_pool ref self, string Set cpus)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt string Set } & cpus & Set of preferred CPU (numbers) to use \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-void
-}
-\vspace{0.3cm}
-
-\noindent {\bf Possible Error Codes:}
- {\tt POOL\_BAD\_STATE}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:add\_to\_proposed\_CPUs}
-
-{\bf Overview:}
-Add a CPU (number) to the proposed\_CPUs field of the given cpu\_pool.
-
-\noindent {\bf Signature:}
-\begin{verbatim} void add_to_proposed_CPUs (session_id s, cpu_pool ref self, integer cpu)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt integer } & cpu & Number of CPU to add \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-void
-}
-\vspace{0.3cm}
-
-\noindent {\bf Possible Error Codes:}
- {\tt POOL\_BAD\_STATE}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:remove\_from\_proposed\_CPUs}
-
-{\bf Overview:}
-Remove a CPU (number) from the proposed\_CPUs field of the given cpu\_pool.
-
-\noindent {\bf Signature:}
-\begin{verbatim} void remove_from_proposed_CPUs (session_id s, cpu_pool ref self, integer cpu)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt integer } & cpu & Number of CPU to remove \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-void
-}
-\vspace{0.3cm}
-
-\noindent {\bf Possible Error Codes:}
- {\tt POOL\_BAD\_STATE}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_name\_label}
-
-{\bf Overview:}
-Set the name/label field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_name_label (session_id s, cpu_pool ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt string } & value & New value to set \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_ncpu}
-
-{\bf Overview:}
-Set the ncpu field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_ncpu (session_id s, cpu_pool ref self, integer value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt integer } & value & Number of cpus to use \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-\vspace{0.3cm}
-
-\noindent {\bf Possible Error Codes:}
- {\tt POOL\_BAD\_STATE}
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_other\_config}
-
-{\bf Overview:}
-Set the other\_config field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_other_config (session_id s, cpu_pool ref self, (string -> string) Map value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt (string $\rightarrow$ string) Map } & value & New value to set \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~add\_to\_other\_config}
-
-{\bf Overview:}
-Add the given key-value pair to the other\_config field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void add_to_other_config (session_id s, cpu_pool ref self, string key, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt string } & key & Key to add \\ \hline
-{\tt string } & value & Value to add \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~remove\_from\_other\_config}
-
-{\bf Overview:}
-Remove the given key and its corresponding value from the other\_config
-field of the given cpu\_pool. If the key is not in that Map, then do nothing.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void remove_from_other_config (session_id s, cpu_pool ref self, string key)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt string } & key & Key to remove \\ \hline
-\end{tabular}
-
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_sched\_policy}
-
-{\bf Overview:}
-Set the sched\_policy field of the given cpu\_pool.
-
- \noindent {\bf Signature:}
-\begin{verbatim} void set_sched_policy (session_id s, cpu_pool ref self, string new_sched_policy)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
-\hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt cpu\_pool ref } & self & reference to the object \\ \hline
-{\tt string } & new\_sched\_policy & New value to set \\ \hline
-\end{tabular}
-\vspace{0.3cm}
-
-\noindent {\bf Return Type:}
-{\tt
-void
-}
-
-
diff --git a/docs/xen-api/xenapi.tex b/docs/xen-api/xenapi.tex
deleted file mode 100644
index b59b706..0000000
--- a/docs/xen-api/xenapi.tex
+++ /dev/null
@@ -1,60 +0,0 @@
-%
-% Copyright (c) 2006-2007 XenSource, Inc.
-%
-% Permission is granted to copy, distribute and/or modify this document under
-% the terms of the GNU Free Documentation License, Version 1.2 or any later
-% version published by the Free Software Foundation; with no Invariant
-% Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
-% license is included in the section entitled
-% "GNU Free Documentation License" or the file fdl.tex.
-%
-% Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
-%
-
-\documentclass{report}
-
-\usepackage{a4}
-\usepackage{graphics}
-\usepackage{longtable}
-\usepackage{fancyhdr}
-\usepackage{hyperref}
-\usepackage{array}
-
-\setlength\topskip{0cm}
-\setlength\topmargin{0cm}
-\setlength\oddsidemargin{0cm}
-\setlength\evensidemargin{0cm}
-\setlength\parindent{0pt}
-
-%% Parameters for coversheet:
-\input{xenapi-coversheet}
-
-\begin{document}
-
-% The coversheet itself
-\include{coversheet}
-
-% The revision history
-\include{revision-history}
-
-% Table of contents
-\tableofcontents
-
-
-% ... and off we go!
-
-\chapter{Introduction}
-
-This document contains a description of the Xen Management API---an interface for
-remotely configuring and controlling virtualised guests running on a
-Xen-enabled host.
-
-\input{presentation}
-
-\include{wire-protocol}
-\include{vm-lifecycle}
-\include{xenapi-datamodel}
-\include{fdl}
-\include{bibliography}
-
-\end{document}
--
1.7.2.5
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH V2 3/5] docs: drop doxygen stuff
2013-01-21 9:32 [PATCH 0/5 V2] install into /usr/local and docs/configure Ian Campbell
2013-01-21 9:33 ` [PATCH V2 1/5] tools+stubdom: install under /usr/local by default Ian Campbell
2013-01-21 9:33 ` [PATCH V2 2/5] docs: Remove xen-api docs Ian Campbell
@ 2013-01-21 9:33 ` Ian Campbell
2013-01-24 13:24 ` Roger Pau Monné
2013-01-21 9:33 ` [PATCH V2 4/5] docs: check for documentation generation tools in docs/configure Ian Campbell
2013-01-21 9:33 ` [PATCH V2 5/5] build: cleanup configure detritus at toplevel and stubdom Ian Campbell
4 siblings, 1 reply; 14+ messages in thread
From: Ian Campbell @ 2013-01-21 9:33 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Campbell
In the 300+ page PDF this produces I couldn't see anything which
wasn't the autogenerated doxygen boilerplate stuff.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
docs/Docs.mk | 1 -
docs/Doxyfile | 1218 ----------------------------------------------------
docs/Doxyfilter | 16 -
docs/Makefile | 13 -
docs/html.sty | 887 --------------------------------------
docs/pythfilter.py | 658 ----------------------------
6 files changed, 0 insertions(+), 2793 deletions(-)
delete mode 100644 docs/Doxyfile
delete mode 100644 docs/Doxyfilter
delete mode 100644 docs/html.sty
delete mode 100644 docs/pythfilter.py
diff --git a/docs/Docs.mk b/docs/Docs.mk
index dcc8a21..db3c19d 100644
--- a/docs/Docs.mk
+++ b/docs/Docs.mk
@@ -1,6 +1,5 @@
FIG2DEV := fig2dev
LATEX2HTML := latex2html
-DOXYGEN := doxygen
POD2MAN := pod2man
POD2HTML := pod2html
POD2TEXT := pod2text
diff --git a/docs/Doxyfile b/docs/Doxyfile
deleted file mode 100644
index 8ac4451..0000000
--- a/docs/Doxyfile
+++ /dev/null
@@ -1,1218 +0,0 @@
-# Doxyfile 1.4.2
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = Xen Python Tools
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = api/tools/python
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish,
-# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese,
-# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
-# Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE = English
-
-# This tag can be used to specify the encoding used in the generated output.
-# The encoding is not always determined by the language that is chosen,
-# but also whether or not the output is meant for Windows or non-Windows users.
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
-# forces the Windows encoding (this is the default for the Windows binary),
-# whereas setting the tag to NO uses a Unix-style encoding (the default for
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF = YES
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = YES
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
-# only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = YES
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = YES
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation.
-
-SHOW_DIRECTORIES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from the
-# version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the progam writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = YES
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = ../tools/python/xen/
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
-
-FILE_PATTERNS = *.py *.c
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-
-EXCLUDE_PATTERNS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER = "sh ./Doxyfilter ../tools/python"
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = YES
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = YES
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
-# powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
-
-CALL_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that a graph may be further truncated if the graph's
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
-# the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, which results in a white background.
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
diff --git a/docs/Doxyfilter b/docs/Doxyfilter
deleted file mode 100644
index 6a6d50f..0000000
--- a/docs/Doxyfilter
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-#
-# Doxyfilter <source-root> <filename>
-#
-
-dir=$(dirname "$0")
-
-PYFILTER="$dir/pythfilter.py"
-
-if [ "${2/.py/}" != "$2" ]
-then
- python "$PYFILTER" -r "$1" -f "$2"
-else
- cat "$2"
-fi
diff --git a/docs/Makefile b/docs/Makefile
index 620a296..053d7af 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -27,9 +27,6 @@ all: build
.PHONY: build
build: html txt man-pages figs
-.PHONY: dev-docs
-dev-docs: python-dev-docs
-
.PHONY: html
html: $(DOC_HTML) html/index.html
@@ -45,15 +42,6 @@ figs:
set -x; $(MAKE) -C figs ; else \
echo "fig2dev (transfig) not installed; skipping figs."; fi
-.PHONY: python-dev-docs
-python-dev-docs:
- @mkdir -v -p api/tools/python
- @set -e ; if which $(DOXYGEN) 1>/dev/null 2>/dev/null; then \
- echo "Running doxygen to generate Python tools APIs ... "; \
- $(DOXYGEN) Doxyfile; \
- $(MAKE) -C api/tools/python/latex ; else \
- echo "Doxygen not installed; skipping python-dev-docs."; fi
-
.PHONY: man-pages
man-pages:
@if which $(POD2MAN) 1>/dev/null 2>/dev/null; then \
@@ -76,7 +64,6 @@ clean:
rm -rf .word_count *.aux *.dvi *.bbl *.blg *.glo *.idx *~
rm -rf *.ilg *.log *.ind *.toc *.bak core
rm -rf html txt
- rm -rf api
rm -rf man5
rm -rf man1
diff --git a/docs/html.sty b/docs/html.sty
deleted file mode 100644
index b5f8fbb..0000000
--- a/docs/html.sty
+++ /dev/null
@@ -1,887 +0,0 @@
-%
-% $Id: html.sty,v 1.23 1998/02/26 10:32:24 latex2html Exp $
-% LaTeX2HTML Version 96.2 : html.sty
-%
-% This file contains definitions of LaTeX commands which are
-% processed in a special way by the translator.
-% For example, there are commands for embedding external hypertext links,
-% for cross-references between documents or for including raw HTML.
-% This file includes the comments.sty file v2.0 by Victor Eijkhout
-% In most cases these commands do nothing when processed by LaTeX.
-%
-% Place this file in a directory accessible to LaTeX (i.e., somewhere
-% in the TEXINPUTS path.)
-%
-% NOTE: This file works with LaTeX 2.09 or (the newer) LaTeX2e.
-% If you only have LaTeX 2.09, some complex LaTeX2HTML features
-% like support for segmented documents are not available.
-
-% Changes:
-% See the change log at end of file.
-
-
-% Exit if the style file is already loaded
-% (suggested by Lee Shombert <las@potomac.wash.inmet.com>
-\ifx \htmlstyloaded\relax \endinput\else\let\htmlstyloaded\relax\fi
-\makeatletter
-
-\providecommand{\latextohtml}{\LaTeX2\texttt{HTML}}
-
-
-%%% LINKS TO EXTERNAL DOCUMENTS
-%
-% This can be used to provide links to arbitrary documents.
-% The first argumment should be the text that is going to be
-% highlighted and the second argument a URL.
-% The hyperlink will appear as a hyperlink in the HTML
-% document and as a footnote in the dvi or ps files.
-%
-\newcommand{\htmladdnormallinkfoot}[2]{#1\footnote{#2}}
-
-
-% This is an alternative definition of the command above which
-% will ignore the URL in the dvi or ps files.
-\newcommand{\htmladdnormallink}[2]{#1}
-
-
-% This command takes as argument a URL pointing to an image.
-% The image will be embedded in the HTML document but will
-% be ignored in the dvi and ps files.
-%
-\newcommand{\htmladdimg}[1]{}
-
-
-%%% CROSS-REFERENCES BETWEEN (LOCAL OR REMOTE) DOCUMENTS
-%
-% This can be used to refer to symbolic labels in other Latex
-% documents that have already been processed by the translator.
-% The arguments should be:
-% #1 : the URL to the directory containing the external document
-% #2 : the path to the labels.pl file of the external document.
-% If the external document lives on a remote machine then labels.pl
-% must be copied on the local machine.
-%
-%e.g. \externallabels{http://cbl.leeds.ac.uk/nikos/WWW/doc/tex2html/latex2html}
-% {/usr/cblelca/nikos/tmp/labels.pl}
-% The arguments are ignored in the dvi and ps files.
-%
-\newcommand{\externallabels}[2]{}
-
-
-% This complements the \externallabels command above. The argument
-% should be a label defined in another latex document and will be
-% ignored in the dvi and ps files.
-%
-\newcommand{\externalref}[1]{}
-
-
-% Suggested by Uffe Engberg (http://www.brics.dk/~engberg/)
-% This allows the same effect for citations in external bibliographies.
-% An \externallabels command must be given, locating a labels.pl file
-% which defines the location and keys used in the external .html file.
-%
-\newcommand{\externalcite}{\nocite}
-
-
-%%% HTMLRULE
-% This command adds a horizontal rule and is valid even within
-% a figure caption.
-% Here we introduce a stub for compatibility.
-\newcommand{\htmlrule}{\protect\HTMLrule}
-\newcommand{\HTMLrule}{\@ifstar\htmlrulestar\htmlrulestar}
-\newcommand{\htmlrulestar}[1]{}
-
-% This command adds information within the <BODY> ... </BODY> tag
-%
-\newcommand{\bodytext}[1]{}
-\newcommand{\htmlbody}{}
-
-
-%%% HYPERREF
-% Suggested by Eric M. Carol <eric@ca.utoronto.utcc.enfm>
-% Similar to \ref but accepts conditional text.
-% The first argument is HTML text which will become ``hyperized''
-% (underlined).
-% The second and third arguments are text which will appear only in the paper
-% version (DVI file), enclosing the fourth argument which is a reference to a label.
-%
-%e.g. \hyperref{using the tracer}{using the tracer (see Section}{)}{trace}
-% where there is a corresponding \label{trace}
-%
-\newcommand{\hyperref}{\hyperrefx[ref]}
-\def\hyperrefx[#1]{{\def\next{#1}%
- \def\tmp{ref}\ifx\next\tmp\aftergroup\hyperrefref
- \else\def\tmp{pageref}\ifx\next\tmp\aftergroup\hyperpageref
- \else\def\tmp{page}\ifx\next\tmp\aftergroup\hyperpageref
- \else\def\tmp{noref}\ifx\next\tmp\aftergroup\hypernoref
- \else\def\tmp{no}\ifx\next\tmp\aftergroup\hypernoref
- \else\typeout{*** unknown option \next\space to hyperref ***}%
- \fi\fi\fi\fi\fi}}
-\newcommand{\hyperrefref}[4]{#2\ref{#4}#3}
-\newcommand{\hyperpageref}[4]{#2\pageref{#4}#3}
-\newcommand{\hypernoref}[3]{#2}
-
-
-%%% HYPERCITE --- added by RRM
-% Suggested by Stephen Simpson <simpson@math.psu.edu>
-% effects the same ideas as in \hyperref, but for citations.
-% It does not allow an optional argument to the \cite, in LaTeX.
-%
-% \hypercite{<html-text>}{<LaTeX-text>}{<opt-text>}{<key>}
-%
-% uses the pre/post-texts in LaTeX, with a \cite{<key>}
-%
-% \hypercite[ext]{<html-text>}{<LaTeX-text>}{<key>}
-%
-% uses the pre/post-texts in LaTeX, with a \nocite{<key>}
-% the actual reference comes from an \externallabels file.
-%
-\newcommand{\hypercite}{\hypercitex[int]}
-\def\hypercitex[#1]{{\def\next{#1}%
- \def\tmp{int}\ifx\next\tmp\aftergroup\hyperciteint
- \else\def\tmp{cite}\ifx\next\tmp\aftergroup\hyperciteint
- \else\def\tmp{ext}\ifx\next\tmp\aftergroup\hyperciteext
- \else\def\tmp{nocite}\ifx\next\tmp\aftergroup\hyperciteext
- \else\def\tmp{no}\ifx\next\tmp\aftergroup\hyperciteext
- \else\typeout{*** unknown option \next\space to hypercite ***}%
- \fi\fi\fi\fi\fi}}
-\newcommand{\hyperciteint}[4]{#2{\def\tmp{#3}\def\emptyopt{}%
- \ifx\tmp\emptyopt\cite{#4}\else\cite[#3]{#4}\fi}}
-\newcommand{\hyperciteext}[3]{#2\nocite{#3}}
-
-
-
-%%% HTMLREF
-% Reference in HTML version only.
-% Mix between \htmladdnormallink and \hyperref.
-% First arg is text for in both versions, second is label for use in HTML
-% version.
-\newcommand{\htmlref}[2]{#1}
-
-%%% HTMLCITE
-% Reference in HTML version only.
-% Mix between \htmladdnormallink and \hypercite.
-% First arg is text for in both versions, second is citation for use in HTML
-% version.
-\newcommand{\htmlcite}[2]{#1}
-
-
-%%% HTMLIMAGE
-% This command can be used inside any environment that is converted
-% into an inlined image (eg a "figure" environment) in order to change
-% the way the image will be translated. The argument of \htmlimage
-% is really a string of options separated by commas ie
-% [scale=<scale factor>],[external],[thumbnail=<reduction factor>
-% The scale option allows control over the size of the final image.
-% The ``external'' option will cause the image not to be inlined
-% (images are inlined by default). External images will be accessible
-% via a hypertext link.
-% The ``thumbnail'' option will cause a small inlined image to be
-% placed in the caption. The size of the thumbnail depends on the
-% reduction factor. The use of the ``thumbnail'' option implies
-% the ``external'' option.
-%
-% Example:
-% \htmlimage{scale=1.5,external,thumbnail=0.2}
-% will cause a small thumbnail image 1/5th of the original size to be
-% placed in the final document, pointing to an external image 1.5
-% times bigger than the original.
-%
-\newcommand{\htmlimage}[1]{}
-
-
-% \htmlborder causes a border to be placed around an image or table
-% when the image is placed within a <TABLE> cell.
-\newcommand{\htmlborder}[1]{}
-
-% Put \begin{makeimage}, \end{makeimage} around LaTeX to ensure its
-% translation into an image.
-% This shields sensitive text from being translated.
-\newenvironment{makeimage}{}{}
-
-
-% A dummy environment that can be useful to alter the order
-% in which commands are processed, in LaTeX2HTML
-\newenvironment{tex2html_deferred}{}{}
-
-
-%%% HTMLADDTONAVIGATION
-% This command appends its argument to the buttons in the navigation
-% panel. It is ignored by LaTeX.
-%
-% Example:
-% \htmladdtonavigation{\htmladdnormallink
-% {\htmladdimg{http://server/path/to/gif}}
-% {http://server/path}}
-\newcommand{\htmladdtonavigation}[1]{}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Comment.sty version 2.0, 19 June 1992
-% selectively in/exclude pieces of text: the user can define new
-% comment versions, and each is controlled separately.
-% This style can be used with plain TeX or LaTeX, and probably
-% most other packages too.
-%
-% Examples of use in LaTeX and TeX follow \endinput
-%
-% Author
-% Victor Eijkhout
-% Department of Computer Science
-% University Tennessee at Knoxville
-% 104 Ayres Hall
-% Knoxville, TN 37996
-% USA
-%
-% eijkhout@cs.utk.edu
-%
-% Usage: all text included in between
-% \comment ... \endcomment
-% or \begin{comment} ... \end{comment}
-% is discarded. The closing command should appear on a line
-% of its own. No starting spaces, nothing after it.
-% This environment should work with arbitrary amounts
-% of comment.
-%
-% Other 'comment' environments are defined by
-% and are selected/deselected with
-% \includecomment{versiona}
-% \excludecoment{versionb}
-%
-% These environments are used as
-% \versiona ... \endversiona
-% or \begin{versiona} ... \end{versiona}
-% with the closing command again on a line of its own.
-%
-% Basic approach:
-% to comment something out, scoop up every line in verbatim mode
-% as macro argument, then throw it away.
-% For inclusions, both the opening and closing comands
-% are defined as noop
-%
-% Changed \next to \html@next to prevent clashes with other sty files
-% (mike@emn.fr)
-% Changed \html@next to \htmlnext so the \makeatletter and
-% \makeatother commands could be removed (they were causing other
-% style files - changebar.sty - to crash) (nikos@cbl.leeds.ac.uk)
-% Changed \htmlnext back to \html@next...
-
-\def\makeinnocent#1{\catcode`#1=12 }
-\def\csarg#1#2{\expandafter#1\csname#2\endcsname}
-
-\def\ThrowAwayComment#1{\begingroup
- \def\CurrentComment{#1}%
- \let\do\makeinnocent \dospecials
- \makeinnocent\^^L% and whatever other special cases
- \endlinechar`\^^M \catcode`\^^M=12 \xComment}
-{\catcode`\^^M=12 \endlinechar=-1 %
- \gdef\xComment#1^^M{\def\test{#1}\edef\test{\meaning\test}
- \csarg\ifx{PlainEnd\CurrentComment Test}\test
- \let\html@next\endgroup
- \else \csarg\ifx{LaLaEnd\CurrentComment Test}\test
- \edef\html@next{\endgroup\noexpand\end{\CurrentComment}}
- \else \csarg\ifx{LaInnEnd\CurrentComment Test}\test
- \edef\html@next{\endgroup\noexpand\end{\CurrentComment}}
- \else \let\html@next\xComment
- \fi \fi \fi \html@next}
-}
-
-\def\includecomment
- #1{\expandafter\def\csname#1\endcsname{}%
- \expandafter\def\csname end#1\endcsname{}}
-\def\excludecomment
- #1{\expandafter\def\csname#1\endcsname{\ThrowAwayComment{#1}}%
- {\escapechar=-1\relax
- \edef\tmp{\string\\end#1}%
- \csarg\xdef{PlainEnd#1Test}{\meaning\tmp}%
- \edef\tmp{\string\\end\string\{#1\string\}}%
- \csarg\xdef{LaLaEnd#1Test}{\meaning\tmp}%
- \edef\tmp{\string\\end \string\{#1\string\}}%
- \csarg\xdef{LaInnEnd#1Test}{\meaning\tmp}%
- }}
-
-\excludecomment{comment}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% end Comment.sty
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%
-% Alternative code by Robin Fairbairns, 22 September 1997
-%
-\newcommand\@gobbleenv{\let\reserved@a\@currenvir\@gobble@nv}
-\long\def\@gobble@nv#1\end#2{\def\reserved@b{#2}%
- \ifx\reserved@a\reserved@b
- \edef\reserved@a{\noexpand\end{\reserved@a}}%
- \expandafter\reserved@a
- \else
- \expandafter\@gobble@nv
- \fi}
-
-\renewcommand{\excludecomment}[1]{%
- \csname newenvironment\endcsname{#1}{\@gobbleenv}{}}
-
-%%% RAW HTML
-%
-% Enclose raw HTML between a \begin{rawhtml} and \end{rawhtml}.
-% The html environment ignores its body
-%
-\excludecomment{rawhtml}
-
-
-%%% HTML ONLY
-%
-% Enclose LaTeX constructs which will only appear in the
-% HTML output and will be ignored by LaTeX with
-% \begin{htmlonly} and \end{htmlonly}
-%
-\excludecomment{htmlonly}
-% Shorter version
-\newcommand{\html}[1]{}
-
-% for images.tex only
-\excludecomment{imagesonly}
-
-%%% LaTeX ONLY
-% Enclose LaTeX constructs which will only appear in the
-% DVI output and will be ignored by latex2html with
-%\begin{latexonly} and \end{latexonly}
-%
-\newenvironment{latexonly}{}{}
-% Shorter version
-\newcommand{\latex}[1]{#1}
-
-
-%%% LaTeX or HTML
-% Combination of \latex and \html.
-% Say \latexhtml{this should be latex text}{this html text}
-%
-%\newcommand{\latexhtml}[2]{#1}
-\long\def\latexhtml#1#2{#1}
-
-
-%%% tracing the HTML conversions
-% This alters the tracing-level within the processing
-% performed by latex2html by adjusting $VERBOSITY
-% (see latex2html.config for the appropriate values)
-%
-\newcommand{\htmltracing}[1]{}
-\newcommand{\htmltracenv}[1]{}
-
-
-%%% \strikeout for HTML only
-% uses <STRIKE>...</STRIKE> tags on the argument
-% LaTeX just gobbles it up.
-\newcommand{\strikeout}[1]{}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% JCL - stop input here if LaTeX2e is not present
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ifx\if@compatibility\undefined
- %LaTeX209
- \makeatother\relax\expandafter\endinput
-\fi
-\if@compatibility
- %LaTeX2e in LaTeX209 compatibility mode
- \makeatother\relax\expandafter\endinput
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Start providing LaTeX2e extension:
-% This is currently:
-% - additional optional argument for \htmladdimg
-% - support for segmented documents
-%
-
-\ProvidesPackage{html}
- [1996/12/22 v1.1 hypertext commands for latex2html (nd, hws, rrm)]
-%%%%MG
-
-% This command takes as argument a URL pointing to an image.
-% The image will be embedded in the HTML document but will
-% be ignored in the dvi and ps files. The optional argument
-% denotes additional HTML tags.
-%
-% Example: \htmladdimg[ALT="portrait" ALIGN=CENTER]{portrait.gif}
-%
-\renewcommand{\htmladdimg}[2][]{}
-
-%%% HTMLRULE for LaTeX2e
-% This command adds a horizontal rule and is valid even within
-% a figure caption.
-%
-% This command is best used with LaTeX2e and HTML 3.2 support.
-% It is like \hrule, but allows for options via key--value pairs
-% as follows: \htmlrule[key1=value1, key2=value2, ...] .
-% Use \htmlrule* to suppress the <BR> tag.
-% Eg. \htmlrule[left, 15, 5pt, "none", NOSHADE] produces
-% <BR CLEAR="left"><HR NOSHADE SIZE="15">.
-% Renew the necessary part.
-\renewcommand{\htmlrulestar}[1][all]{}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% renew some definitions to allow optional arguments
-%
-% The description of the options is missing, as yet.
-%
-\renewcommand{\latextohtml}{\textup{\LaTeX2\texttt{HTML}}}
-\renewcommand{\htmladdnormallinkfoot}[3][]{#2\footnote{#3}}
-\renewcommand{\htmladdnormallink}[3][]{#2}
-\renewcommand{\htmlbody}[1][]{}
-\renewcommand{\hyperref}[1][ref]{\hyperrefx[#1]}
-\renewcommand{\hypercite}[1][int]{\hypercitex[#1]}
-\renewcommand{\htmlref}[3][]{#2}
-\renewcommand{\htmlcite}[1]{#1\htmlcitex}
-\newcommand{\htmlcitex}[2][]{{\def\tmp{#1}\ifx\tmp\@empty\else~[#1]\fi}}
-\renewcommand{\htmlimage}[2][]{}
-\renewcommand{\htmlborder}[2][]{}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% HTML HTMLset HTMLsetenv
-%
-% These commands do nothing in LaTeX, but can be used to place
-% HTML tags or set Perl variables during the LaTeX2HTML processing;
-% They are intended for expert use only.
-
-\newcommand{\HTMLcode}[2][]{}
-\ifx\undefined\HTML\newcommand{\HTML}[2][]{}\else
-\typeout{*** Warning: \string\HTML\space had an incompatible definition ***}%
-\typeout{*** instead use \string\HTMLcode\space for raw HTML code ***}%
-\fi
-\newcommand{\HTMLset}[3][]{}
-\newcommand{\HTMLsetenv}[3][]{}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% The following commands pertain to document segmentation, and
-% were added by Herbert Swan <dprhws@edp.Arco.com> (with help from
-% Michel Goossens <goossens@cern.ch>):
-%
-%
-% This command inputs internal latex2html tables so that large
-% documents can to partitioned into smaller (more manageable)
-% segments.
-%
-\newcommand{\internal}[2][internals]{}
-
-%
-% Define a dummy stub \htmlhead{}. This command causes latex2html
-% to define the title of the start of a new segment. It is not
-% normally placed in the user's document. Rather, it is passed to
-% latex2html via a .ptr file written by \segment.
-%
-\newcommand{\htmlhead}[3][]{}
-
-% In the LaTeX2HTML version this will eliminate the title line
-% generated by a \segment command, but retains the title string
-% for use in other places.
-%
-\newcommand{\htmlnohead}{}
-
-
-% In the LaTeX2HTML version this put a URL into a <BASE> tag
-% within the <HEAD>...</HEAD> portion of a document.
-%
-\newcommand{\htmlbase}[1]{}
-%
-
-%
-% The dummy command \endpreamble is needed by latex2html to
-% mark the end of the preamble in document segments that do
-% not contain a \begin{document}
-%
-\newcommand{\startdocument}{}
-
-
-% \tableofchildlinks, \htmlinfo
-% by Ross Moore --- extensions dated 27 September 1997
-%
-% These do nothing in LaTeX but for LaTeX2HTML they mark
-% where the table of child-links and info-page should be placed,
-% when the user wants other than the default.
-% \tableofchildlinks % put mini-TOC at this location
-% \tableofchildlinks[off] % not on current page
-% \tableofchildlinks[none] % not on current and subsequent pages
-% \tableofchildlinks[on] % selectively on current page
-% \tableofchildlinks[all] % on current and all subsequent pages
-% \htmlinfo % put info-page at this location
-% \htmlinfo[off] % no info-page in current document
-% \htmlinfo[none] % no info-page in current document
-% *-versions omit the preceding <BR> tag.
-%
-\newcommand{\tableofchildlinks}{%
- \@ifstar\tableofchildlinksstar\tableofchildlinksstar}
-\newcommand{\tableofchildlinksstar}[1][]{}
-
-\newcommand{\htmlinfo}{\@ifstar\htmlinfostar\htmlinfostar}
-\newcommand{\htmlinfostar}[1][]{}
-
-
-% This redefines \begin to allow for an optional argument
-% which is used by LaTeX2HTML to specify `style-sheet' information
-
-\let\realLaTeX@begin=\begin
-\renewcommand{\begin}[1][]{\realLaTeX@begin}
-
-
-%
-% Allocate a new set of section counters, which will get incremented
-% for "*" forms of sectioning commands, and for a few miscellaneous
-% commands.
-%
-
-\newcounter{lpart}
-\newcounter{lchapter}[part]
-\@ifundefined{c@chapter}%
- {\let\Hchapter\relax \newcounter{lsection}[part]}%
- {\let\Hchapter=\chapter \newcounter{lsection}[chapter]}
-\newcounter{lsubsection}[section]
-\newcounter{lsubsubsection}[subsection]
-\newcounter{lparagraph}[subsubsection]
-\newcounter{lsubparagraph}[paragraph]
-\newcounter{lequation}
-
-%
-% Redefine "*" forms of sectioning commands to increment their
-% respective counters.
-%
-\let\Hpart=\part
-%\let\Hchapter=\chapter
-\let\Hsection=\section
-\let\Hsubsection=\subsection
-\let\Hsubsubsection=\subsubsection
-\let\Hparagraph=\paragraph
-\let\Hsubparagraph=\subparagraph
-\let\Hsubsubparagraph=\subsubparagraph
-
-\ifx\c@subparagraph\undefined
- \newcounter{lsubsubparagraph}[lsubparagraph]
-\else
- \newcounter{lsubsubparagraph}[subparagraph]
-\fi
-
-%
-% The following definitions are specific to LaTeX2e:
-% (They must be commented out for LaTeX 2.09)
-%
-\renewcommand{\part}{\@ifstar{\stepcounter{lpart}%
- \bgroup\def\tmp{*}\H@part}{\bgroup\def\tmp{}\H@part}}
-\newcommand{\H@part}[1][]{\def\tmp@a{#1}\check@align
- \expandafter\egroup\expandafter\Hpart\tmp}
-
-\ifx\Hchapter\relax\else
- \def\chapter{\resetsections \@ifstar{\stepcounter{lchapter}%
- \bgroup\def\tmp{*}\H@chapter}{\bgroup\def\tmp{}\H@chapter}}\fi
-\newcommand{\H@chapter}[1][]{\def\tmp@a{#1}\check@align
- \expandafter\egroup\expandafter\Hchapter\tmp}
-
-\renewcommand{\section}{\resetsubsections
- \@ifstar{\stepcounter{lsection}\bgroup\def\tmp{*}%
- \H@section}{\bgroup\def\tmp{}\H@section}}
-\newcommand{\H@section}[1][]{\def\tmp@a{#1}\check@align
- \expandafter\egroup\expandafter\Hsection\tmp}
-
-\renewcommand{\subsection}{\resetsubsubsections
- \@ifstar{\stepcounter{lsubsection}\bgroup\def\tmp{*}%
- \H@subsection}{\bgroup\def\tmp{}\H@subsection}}
-\newcommand{\H@subsection}[1][]{\def\tmp@a{#1}\check@align
- \expandafter\egroup\expandafter\Hsubsection\tmp}
-
-\renewcommand{\subsubsection}{\resetparagraphs
- \@ifstar{\stepcounter{lsubsubsection}\bgroup\def\tmp{*}%
- \H@subsubsection}{\bgroup\def\tmp{}\H@subsubsection}}
-\newcommand{\H@subsubsection}[1][]{\def\tmp@a{#1}\check@align
- \expandafter\egroup\expandafter\Hsubsubsection\tmp}
-
-\renewcommand{\paragraph}{\resetsubparagraphs
- \@ifstar{\stepcounter{lparagraph}\bgroup\def\tmp{*}%
- \H@paragraph}{\bgroup\def\tmp{}\H@paragraph}}
-\newcommand\H@paragraph[1][]{\def\tmp@a{#1}\check@align
- \expandafter\egroup\expandafter\Hparagraph\tmp}
-
-\renewcommand{\subparagraph}{\resetsubsubparagraphs
- \@ifstar{\stepcounter{lsubparagraph}\bgroup\def\tmp{*}%
- \H@subparagraph}{\bgroup\def\tmp{}\H@subparagraph}}
-\newcommand\H@subparagraph[1][]{\def\tmp@a{#1}\check@align
- \expandafter\egroup\expandafter\Hsubparagraph\tmp}
-
-\ifx\Hsubsubparagraph\relax\else\@ifundefined{subsubparagraph}{}{%
-\def\subsubparagraph{%
- \@ifstar{\stepcounter{lsubsubparagraph}\bgroup\def\tmp{*}%
- \H@subsubparagraph}{\bgroup\def\tmp{}\H@subsubparagraph}}}\fi
-\newcommand\H@subsubparagraph[1][]{\def\tmp@a{#1}\check@align
- \expandafter\egroup\expandafter\Hsubsubparagraph\tmp}
-
-\def\check@align{\def\empty{}\ifx\tmp@a\empty
- \else\def\tmp@b{center}\ifx\tmp@a\tmp@b\let\tmp@a\empty
- \else\def\tmp@b{left}\ifx\tmp@a\tmp@b\let\tmp@a\empty
- \else\def\tmp@b{right}\ifx\tmp@a\tmp@b\let\tmp@a\empty
- \else\expandafter\def\expandafter\tmp@a\expandafter{\expandafter[\tmp@a]}%
- \fi\fi\fi \def\empty{}\ifx\tmp\empty\let\tmp=\tmp@a \else
- \expandafter\def\expandafter\tmp\expandafter{\expandafter*\tmp@a}%
- \fi\fi}
-%
-\def\resetsections{\setcounter{section}{0}\setcounter{lsection}{0}%
- \reset@dependents{section}\resetsubsections }
-\def\resetsubsections{\setcounter{subsection}{0}\setcounter{lsubsection}{0}%
- \reset@dependents{subsection}\resetsubsubsections }
-\def\resetsubsubsections{\setcounter{subsubsection}{0}\setcounter{lsubsubsection}{0}%
- \reset@dependents{subsubsection}\resetparagraphs }
-%
-\def\resetparagraphs{\setcounter{lparagraph}{0}\setcounter{lparagraph}{0}%
- \reset@dependents{paragraph}\resetsubparagraphs }
-\def\resetsubparagraphs{\ifx\c@subparagraph\undefined\else
- \setcounter{subparagraph}{0}\fi \setcounter{lsubparagraph}{0}%
- \reset@dependents{subparagraph}\resetsubsubparagraphs }
-\def\resetsubsubparagraphs{\ifx\c@subsubparagraph\undefined\else
- \setcounter{subsubparagraph}{0}\fi \setcounter{lsubsubparagraph}{0}}
-%
-\def\reset@dependents#1{\begingroup\let \@elt \@stpelt
- \csname cl@#1\endcsname\endgroup}
-%
-%
-% Define a helper macro to dump a single \secounter command to a file.
-%
-\newcommand{\DumpPtr}[2]{%
-\count255=\arabic{#1}\def\dummy{dummy}\def\tmp{#2}%
-\ifx\tmp\dummy\else\advance\count255 by \arabic{#2}\fi
-\immediate\write\ptrfile{%
-\noexpand\setcounter{#1}{\number\count255}}}
-
-%
-% Define a helper macro to dump all counters to the file.
-% The value for each counter will be the sum of the l-counter
-% actual LaTeX section counter.
-% Also dump an \htmlhead{section-command}{section title} command
-% to the file.
-%
-\newwrite\ptrfile
-\def\DumpCounters#1#2#3#4{%
-\begingroup\let\protect=\noexpand
-\immediate\openout\ptrfile = #1.ptr
-\DumpPtr{part}{lpart}%
-\ifx\Hchapter\relax\else\DumpPtr{chapter}{lchapter}\fi
-\DumpPtr{section}{lsection}%
-\DumpPtr{subsection}{lsubsection}%
-\DumpPtr{subsubsection}{lsubsubsection}%
-\DumpPtr{paragraph}{lparagraph}%
-\DumpPtr{subparagraph}{lsubparagraph}%
-\DumpPtr{equation}{lequation}%
-\DumpPtr{footnote}{dummy}%
-\def\tmp{#4}\ifx\tmp\@empty
-\immediate\write\ptrfile{\noexpand\htmlhead{#2}{#3}}\else
-\immediate\write\ptrfile{\noexpand\htmlhead[#4]{#2}{#3}}\fi
-\dumpcitestatus \dumpcurrentcolor
-\immediate\closeout\ptrfile
-\endgroup }
-
-
-%% interface to natbib.sty
-
-\def\dumpcitestatus{}
-\def\loadcitestatus{\def\dumpcitestatus{%
- \ifciteindex\immediate\write\ptrfile{\noexpand\citeindextrue}%
- \else\immediate\write\ptrfile{\noexpand\citeindexfalse}\fi }%
-}
-\@ifpackageloaded{natbib}{\loadcitestatus}{%
- \AtBeginDocument{\@ifpackageloaded{natbib}{\loadcitestatus}{}}}
-
-
-%% interface to color.sty
-
-\def\dumpcurrentcolor{}
-\def\loadsegmentcolors{%
- \let\real@pagecolor=\pagecolor
- \let\pagecolor\segmentpagecolor
- \let\segmentcolor\color
- \ifx\current@page@color\undefined \def\current@page@color{{}}\fi
- \def\dumpcurrentcolor{\bgroup\def\@empty@{{}}%
- \expandafter\def\expandafter\tmp\space####1@{\def\thiscol{####1}}%
- \ifx\current@color\@empty@\def\thiscol{}\else
- \expandafter\tmp\current@color @\fi
- \immediate\write\ptrfile{\noexpand\segmentcolor{\thiscol}}%
- \ifx\current@page@color\@empty@\def\thiscol{}\else
- \expandafter\tmp\current@page@color @\fi
- \immediate\write\ptrfile{\noexpand\segmentpagecolor{\thiscol}}%
- \egroup}%
- \global\let\loadsegmentcolors=\relax
-}
-
-% These macros are needed within images.tex since this inputs
-% the <segment>.ptr files for a segment, so that counters are
-% colors are synchronised.
-%
-\newcommand{\segmentpagecolor}[1][]{%
- \@ifpackageloaded{color}{\loadsegmentcolors\bgroup
- \def\tmp{#1}\ifx\@empty\tmp\def\next{[]}\else\def\next{[#1]}\fi
- \expandafter\segmentpagecolor@\next}%
- {\@gobble}}
-\def\segmentpagecolor@[#1]#2{\def\tmp{#1}\def\tmpB{#2}%
- \ifx\tmpB\@empty\let\next=\egroup
- \else
- \let\realendgroup=\endgroup
- \def\endgroup{\edef\next{\noexpand\realendgroup
- \def\noexpand\current@page@color{\current@color}}\next}%
- \ifx\tmp\@empty\real@pagecolor{#2}\def\model{}%
- \else\real@pagecolor[#1]{#2}\def\model{[#1]}%
- \fi
- \edef\next{\egroup\def\noexpand\current@page@color{\current@page@color}%
- \noexpand\real@pagecolor\model{#2}}%
- \fi\next}
-%
-\newcommand{\segmentcolor}[2][named]{\@ifpackageloaded{color}%
- {\loadsegmentcolors\segmentcolor[#1]{#2}}{}}
-
-\@ifpackageloaded{color}{\loadsegmentcolors}{\let\real@pagecolor=\@gobble
- \AtBeginDocument{\@ifpackageloaded{color}{\loadsegmentcolors}{}}}
-
-
-% Define the \segment[align]{file}{section-command}{section-title} command,
-% and its helper macros. This command does four things:
-% 1) Begins a new LaTeX section;
-% 2) Writes a list of section counters to file.ptr, each
-% of which represents the sum of the LaTeX section
-% counters, and the l-counters, defined above;
-% 3) Write an \htmlhead{section-title} command to file.ptr;
-% 4) Inputs file.tex.
-
-\def\segment{\@ifstar{\@@htmls}{\@@html}}
-\def\endsegment{}
-\newcommand{\@@htmls}[1][]{\@@htmlsx{#1}}
-\newcommand{\@@html}[1][]{\@@htmlx{#1}}
-\def\@@htmlsx#1#2#3#4{\csname #3\endcsname* {#4}%
- \DumpCounters{#2}{#3*}{#4}{#1}\input{#2}}
-\def\@@htmlx#1#2#3#4{\csname #3\endcsname {#4}%
- \DumpCounters{#2}{#3}{#4}{#1}\input{#2}}
-
-\makeatother
-\endinput
-
-
-% Modifications:
-%
-% (The listing of Initiales see Changes)
-
-% $Log: html.sty,v $
-% Revision 1.23 1998/02/26 10:32:24 latex2html
-% -- use \providecommand for \latextohtml
-% -- implemented \HTMLcode to do what \HTML did previously
-% \HTML still works, unless already defined by another package
-% -- fixed problems remaining with undefined \chapter
-% -- defined \endsegment
-%
-% Revision 1.22 1997/12/05 11:38:18 RRM
-% -- implemented an optional argument to \begin for style-sheet info.
-% -- modified use of an optional argument with sectioning-commands
-%
-% Revision 1.21 1997/11/05 10:28:56 RRM
-% -- replaced redefinition of \@htmlrule with \htmlrulestar
-%
-% Revision 1.20 1997/10/28 02:15:58 RRM
-% -- altered the way some special html-macros are defined, so that
-% star-variants are explicitly defined for LaTeX
-% -- it is possible for these to occur within images.tex
-% e.g. \htmlinfostar \htmlrulestar \tableofchildlinksstar
-%
-% Revision 1.19 1997/10/11 05:47:48 RRM
-% -- allow the dummy {tex2html_nowrap} environment in LaTeX
-% use it to make its contents be evaluated in environment order
-%
-% Revision 1.18 1997/10/04 06:56:50 RRM
-% -- uses Robin Fairbairns' code for ignored environments,
-% replacing the previous comment.sty stuff.
-% -- extensions to the \tableofchildlinks command
-% -- extensions to the \htmlinfo command
-%
-% Revision 1.17 1997/07/08 11:23:39 RRM
-% include value of footnote counter in .ptr files for segments
-%
-% Revision 1.16 1997/07/03 08:56:34 RRM
-% use \textup within the \latextohtml macro
-%
-% Revision 1.15 1997/06/15 10:24:58 RRM
-% new command \htmltracenv as environment-ordered \htmltracing
-%
-% Revision 1.14 1997/06/06 10:30:37 RRM
-% - new command: \htmlborder puts environment into a <TABLE> cell
-% with a border of specified width, + other attributes.
-% - new commands: \HTML for setting arbitrary HTML tags, with attributes
-% \HTMLset for setting Perl variables, while processing
-% \HTMLsetenv same as \HTMLset , but it gets processed
-% as if it were an environment.
-% - new command: \latextohtml --- to set the LaTeX2HTML name/logo
-% - fixed some remaining problems with \segmentcolor & \segmentpagecolor
-%
-% Revision 1.13 1997/05/19 13:55:46 RRM
-% alterations and extra options to \hypercite
-%
-% Revision 1.12 1997/05/09 12:28:39 RRM
-% - Added the optional argument to \htmlhead, also in \DumpCounters
-% - Implemented \HTMLset as a no-op in LaTeX.
-% - Fixed a bug in accessing the page@color settings.
-%
-% Revision 1.11 1997/03/26 09:32:40 RRM
-% - Implements LaTeX versions of \externalcite and \hypercite commands.
-% Thanks to Uffe Engberg and Stephen Simpson for the suggestions.
-%
-% Revision 1.10 1997/03/06 07:37:58 RRM
-% Added the \htmltracing command, for altering $VERBOSITY .
-%
-% Revision 1.9 1997/02/17 02:26:26 RRM
-% - changes to counter handling (RRM)
-% - shuffled around some definitions
-% - changed \htmlrule of 209 mode
-%
-% Revision 1.8 1997/01/26 09:04:12 RRM
-% RRM: added optional argument to sectioning commands
-% \htmlbase sets the <BASE HREF=...> tag
-% \htmlinfo and \htmlinfo* allow the document info to be positioned
-%
-% Revision 1.7 1997/01/03 12:15:44 L2HADMIN
-% % - fixes to the color and natbib interfaces
-% % - extended usage of \hyperref, via an optional argument.
-% % - extended use comment environments to allow shifting expansions
-% % e.g. within \multicolumn (`bug' reported by Luc De Coninck).
-% % - allow optional argument to: \htmlimage, \htmlhead,
-% % \htmladdimg, \htmladdnormallink, \htmladdnormallinkfoot
-% % - added new commands: \htmlbody, \htmlnohead
-% % - added new command: \tableofchildlinks
-%
-% Revision 1.6 1996/12/25 03:04:54 JCL
-% added patches to segment feature from Martin Wilck
-%
-% Revision 1.5 1996/12/23 01:48:06 JCL
-% o introduced the environment makeimage, which may be used to force
-% LaTeX2HTML to generate an image from the contents.
-% There's no magic, all what we have now is a defined empty environment
-% which LaTeX2HTML will not recognize and thus pass it to images.tex.
-% o provided \protect to the \htmlrule commands to allow for usage
-% within captions.
-%
-% Revision 1.4 1996/12/21 19:59:22 JCL
-% - shuffled some entries
-% - added \latexhtml command
-%
-% Revision 1.3 1996/12/21 12:22:59 JCL
-% removed duplicate \htmlrule, changed \htmlrule back not to create a \hrule
-% to allow occurrence in caption
-%
-% Revision 1.2 1996/12/20 04:03:41 JCL
-% changed occurrence of \makeatletter, \makeatother
-% added new \htmlrule command both for the LaTeX2.09 and LaTeX2e
-% sections
-%
-%
-% jcl 30-SEP-96
-% - Stuck the commands commonly used by both LaTeX versions to the top,
-% added a check which stops input or reads further if the document
-% makes use of LaTeX2e.
-% - Introduced rrm's \dumpcurrentcolor and \bodytext
-% hws 31-JAN-96 - Added support for document segmentation
-% hws 10-OCT-95 - Added \htmlrule command
-% jz 22-APR-94 - Added support for htmlref
-% nd - Created
diff --git a/docs/pythfilter.py b/docs/pythfilter.py
deleted file mode 100644
index 3054f7c..0000000
--- a/docs/pythfilter.py
+++ /dev/null
@@ -1,658 +0,0 @@
-#!/usr/bin/env python
-
-# pythfilter.py v1.5.5, written by Matthias Baas (baas@ira.uka.de)
-
-# Doxygen filter which can be used to document Python source code.
-# Classes (incl. methods) and functions can be documented.
-# Every comment that begins with ## is literally turned into an
-# Doxygen comment. Consecutive comment lines are turned into
-# comment blocks (-> /** ... */).
-# All the stuff is put inside a namespace with the same name as
-# the source file.
-
-# Conversions:
-# ============
-# ##-blocks -> /** ... */
-# "class name(base): ..." -> "class name : public base {...}"
-# "def name(params): ..." -> "name(params) {...}"
-
-# Changelog:
-# 21.01.2003: Raw (r"") or unicode (u"") doc string will now be properly
-# handled. (thanks to Richard Laager for the patch)
-# 22.12.2003: Fixed a bug where no function names would be output for "def"
-# blocks that were not in a class.
-# (thanks to Richard Laager for the patch)
-# 12.12.2003: Implemented code to handle static and class methods with
-# this logic: Methods with "self" as the first argument are
-# non-static. Methods with "cls" are Python class methods,
-# which translate into static methods for Doxygen. Other
-# methods are assumed to be static methods. As should be
-# obvious, this logic doesn't take into account if the method
-# is actually setup as a classmethod() or a staticmethod(),
-# just if it follows the normal conventions.
-# (thanks to Richard Laager for the patch)
-# 11.12.2003: Corrected #includes to use os.path.sep instead of ".". Corrected
-# namespace code to use "::" instead of ".".
-# (thanks to Richard Laager for the patch)
-# 11.12.2003: Methods beginning with two underscores that end with
-# something other than two underscores are considered private
-# and are handled accordingly.
-# (thanks to Richard Laager for the patch)
-# 03.12.2003: The first parameter of class methods (self) is removed from
-# the documentation.
-# 03.11.2003: The module docstring will be used as namespace documentation
-# (thanks to Joe Bronkema for the patch)
-# 08.07.2003: Namespaces get a default documentation so that the namespace
-# and its contents will show up in the generated documentation.
-# 05.02.2003: Directories will be delted during synchronization.
-# 31.01.2003: -f option & filtering entire directory trees.
-# 10.08.2002: In base classes the '.' will be replaced by '::'
-# 18.07.2002: * and ** will be translated into arguments
-# 18.07.2002: Argument lists may contain default values using constructors.
-# 18.06.2002: Support for ## public:
-# 21.01.2002: from ... import will be translated to "using namespace ...;"
-# TODO: "from ... import *" vs "from ... import names"
-# TODO: Using normal imports: name.name -> name::name
-# 20.01.2002: #includes will be placed in front of the namespace
-
-######################################################################
-
-# The program is written as a state machine with the following states:
-#
-# - OUTSIDE The current position is outside any comment,
-# class definition or function.
-#
-# - BUILD_COMMENT Begins with first "##".
-# Ends with the first token that is no "##"
-# at the same column as before.
-#
-# - BUILD_CLASS_DECL Begins with "class".
-# Ends with ":"
-# - BUILD_CLASS_BODY Begins just after BUILD_CLASS_DECL.
-# The first following token (which is no comment)
-# determines indentation depth.
-# Ends with a token that has a smaller indendation.
-#
-# - BUILD_DEF_DECL Begins with "def".
-# Ends with ":".
-# - BUILD_DEF_BODY Begins just after BUILD_DEF_DECL.
-# The first following token (which is no comment)
-# determines indentation depth.
-# Ends with a token that has a smaller indendation.
-
-import getopt
-import glob
-import os.path
-import re
-import shutil
-import string
-import sys
-import token
-import tokenize
-
-from stat import *
-
-OUTSIDE = 0
-BUILD_COMMENT = 1
-BUILD_CLASS_DECL = 2
-BUILD_CLASS_BODY = 3
-BUILD_DEF_DECL = 4
-BUILD_DEF_BODY = 5
-IMPORT = 6
-IMPORT_OP = 7
-IMPORT_APPEND = 8
-
-# Output file stream
-outfile = sys.stdout
-
-# Output buffer
-outbuffer = []
-
-out_row = 1
-out_col = 0
-
-# Variables used by rec_name_n_param()
-name = ""
-param = ""
-doc_string = ""
-record_state = 0
-bracket_counter = 0
-
-# Tuple: (row,column)
-class_spos = (0,0)
-def_spos = (0,0)
-import_spos = (0,0)
-
-# Which import was used? ("import" or "from")
-import_token = ""
-
-# Comment block buffer
-comment_block = []
-comment_finished = 0
-
-# Imported modules
-modules = []
-
-# Program state
-stateStack = [OUTSIDE]
-
-# Keep track of whether module has a docstring
-module_has_docstring = False
-
-# Keep track of member protection
-protection_level = "public"
-private_member = False
-
-# Keep track of the module namespace
-namespace = ""
-
-######################################################################
-# Output string s. '\n' may only be at the end of the string (not
-# somewhere in the middle).
-#
-# In: s - String
-# spos - Startpos
-######################################################################
-def output(s,spos, immediate=0):
- global outbuffer, out_row, out_col, outfile
-
- os = string.rjust(s,spos[1]-out_col+len(s))
-
- if immediate:
- outfile.write(os)
- else:
- outbuffer.append(os)
-
- assert -1 == string.find(s[0:-2], "\n"), s
-
- if (s[-1:]=="\n"):
- out_row = out_row+1
- out_col = 0
- else:
- out_col = spos[1]+len(s)
-
-
-######################################################################
-# Records a name and parameters. The name is either a class name or
-# a function name. Then the parameter is either the base class or
-# the function parameters.
-# The name is stored in the global variable "name", the parameters
-# in "param".
-# The variable "record_state" holds the current state of this internal
-# state machine.
-# The recording is started by calling start_recording().
-#
-# In: type, tok
-######################################################################
-def rec_name_n_param(type, tok):
- global record_state,name,param,doc_string,bracket_counter
- s = record_state
- # State 0: Do nothing.
- if (s==0):
- return
- # State 1: Remember name.
- elif (s==1):
- name = tok
- record_state = 2
- # State 2: Wait for opening bracket or colon
- elif (s==2):
- if (tok=='('):
- bracket_counter = 1
- record_state=3
- if (tok==':'): record_state=4
- # State 3: Store parameter (or base class) and wait for an ending bracket
- elif (s==3):
- if (tok=='*' or tok=='**'):
- tok=''
- if (tok=='('):
- bracket_counter = bracket_counter+1
- if (tok==')'):
- bracket_counter = bracket_counter-1
- if bracket_counter==0:
- record_state=4
- else:
- param=param+tok
- # State 4: Look for doc string
- elif (s==4):
- if (type==token.NEWLINE or type==token.INDENT or type==token.SLASHEQUAL):
- return
- elif (tok==":"):
- return
- elif (type==token.STRING):
- while tok[:1]=='r' or tok[:1]=='u':
- tok=tok[1:]
- while tok[:1]=='"':
- tok=tok[1:]
- while tok[-1:]=='"':
- tok=tok[:-1]
- doc_string=tok
- record_state=0
-
-######################################################################
-# Starts the recording of a name & param part.
-# The function rec_name_n_param() has to be fed with tokens. After
-# the necessary tokens are fed the name and parameters can be found
-# in the global variables "name" und "param".
-######################################################################
-def start_recording():
- global record_state,param,name, doc_string
- record_state=1
- name=""
- param=""
- doc_string=""
-
-######################################################################
-# Test if recording is finished
-######################################################################
-def is_recording_finished():
- global record_state
- return record_state==0
-
-######################################################################
-## Gather comment block
-######################################################################
-def gather_comment(type,tok,spos):
- global comment_block,comment_finished
- if (type!=tokenize.COMMENT):
- comment_finished = 1
- else:
- # Output old comment block if a new one is started.
- if (comment_finished):
- print_comment(spos)
- comment_finished=0
- if (tok[0:2]=="##" and tok[0:3]!="###"):
- append_comment_lines(tok[2:])
-
-######################################################################
-## Output comment block and empty buffer.
-######################################################################
-def print_comment(spos):
- global comment_block,comment_finished
- if (comment_block!=[]):
- output("/** ",spos)
- for c in comment_block:
- output(c,spos)
- output("*/\n",spos)
- comment_block = []
- comment_finished = 0
-
-######################################################################
-def set_state(s):
- global stateStack
- stateStack[len(stateStack)-1]=s
-
-######################################################################
-def get_state():
- global stateStack
- return stateStack[len(stateStack)-1]
-
-######################################################################
-def push_state(s):
- global stateStack
- stateStack.append(s)
-
-######################################################################
-def pop_state():
- global stateStack
- stateStack.pop()
-
-
-######################################################################
-def tok_eater(type, tok, spos, epos, line):
- global stateStack,name,param,class_spos,def_spos,import_spos
- global doc_string, modules, import_token, module_has_docstring
- global protection_level, private_member
- global out_row
-
- while out_row + 1 < spos[0]:
- output("\n", (0, 0))
-
- rec_name_n_param(type,tok)
- if (string.replace(string.strip(tok)," ","")=="##private:"):
- protection_level = "private"
- output("private:\n",spos)
- elif (string.replace(string.strip(tok)," ","")=="##protected:"):
- protection_level = "protected"
- output("protected:\n",spos)
- elif (string.replace(string.strip(tok)," ","")=="##public:"):
- protection_level = "public"
- output("public:\n",spos)
- else:
- gather_comment(type,tok,spos)
-
- state = get_state()
-
-# sys.stderr.write("%d: %s\n"%(state, tok))
-
- # OUTSIDE
- if (state==OUTSIDE):
- if (tok=="class"):
- start_recording()
- class_spos = spos
- push_state(BUILD_CLASS_DECL)
- elif (tok=="def"):
- start_recording()
- def_spos = spos
- push_state(BUILD_DEF_DECL)
- elif (tok=="import") or (tok=="from"):
- import_token = tok
- import_spos = spos
- modules = []
- push_state(IMPORT)
- elif (spos[1] == 0 and tok[:3] == '"""'):
- # Capture module docstring as namespace documentation
- module_has_docstring = True
- append_comment_lines("\\namespace %s\n" % namespace)
- append_comment_lines(tok[3:-3])
- print_comment(spos)
-
- # IMPORT
- elif (state==IMPORT):
- if (type==token.NAME):
- modules.append(tok)
- set_state(IMPORT_OP)
- # IMPORT_OP
- elif (state==IMPORT_OP):
- if (tok=="."):
- set_state(IMPORT_APPEND)
- elif (tok==","):
- set_state(IMPORT)
- else:
- for m in modules:
- output('#include "'+m.replace('.',os.path.sep)+'.py"\n', import_spos, immediate=1)
- if import_token=="from":
- output('using namespace '+m.replace('.', '::')+';\n', import_spos)
- pop_state()
- # IMPORT_APPEND
- elif (state==IMPORT_APPEND):
- if (type==token.NAME):
- modules[len(modules)-1]+="."+tok
- set_state(IMPORT_OP)
- # BUILD_CLASS_DECL
- elif (state==BUILD_CLASS_DECL):
- if (is_recording_finished()):
- s = "class "+name
- if (param!=""): s = s+" : public "+param.replace('.','::')
- if (doc_string!=""):
- append_comment_lines(doc_string)
- print_comment(class_spos)
- output(s+"\n",class_spos)
- output("{\n",(class_spos[0]+1,class_spos[1]))
- protection_level = "public"
- output(" public:\n",(class_spos[0]+2,class_spos[1]))
- set_state(BUILD_CLASS_BODY)
- # BUILD_CLASS_BODY
- elif (state==BUILD_CLASS_BODY):
- if (type!=token.INDENT and type!=token.NEWLINE and type!=40 and
- type!=tokenize.NL and type!=tokenize.COMMENT and
- (spos[1]<=class_spos[1])):
- output("}; // end of class\n",(out_row+1,class_spos[1]))
- pop_state()
- elif (tok=="def"):
- start_recording()
- def_spos = spos
- push_state(BUILD_DEF_DECL)
- # BUILD_DEF_DECL
- elif (state==BUILD_DEF_DECL):
- if (is_recording_finished()):
- param = param.replace("\n", " ")
- param = param.replace("=", " = ")
- params = param.split(",")
- if BUILD_CLASS_BODY in stateStack:
- if len(name) > 1 \
- and name[0:2] == '__' \
- and name[len(name)-2:len(name)] != '__' \
- and protection_level != 'private':
- private_member = True
- output(" private:\n",(def_spos[0]+2,def_spos[1]))
-
- if (doc_string != ""):
- append_comment_lines(doc_string)
-
- print_comment(def_spos)
-
- output_function_decl(name, params)
-# output("{\n",(def_spos[0]+1,def_spos[1]))
- set_state(BUILD_DEF_BODY)
- # BUILD_DEF_BODY
- elif (state==BUILD_DEF_BODY):
- if (type!=token.INDENT and type!=token.NEWLINE \
- and type!=40 and type!=tokenize.NL \
- and (spos[1]<=def_spos[1])):
-# output("} // end of method/function\n",(out_row+1,def_spos[1]))
- if private_member and protection_level != 'private':
- private_member = False
- output(" " + protection_level + ":\n",(def_spos[0]+2,def_spos[1]))
- pop_state()
-# else:
-# output(tok,spos)
-
-
-def output_function_decl(name, params):
- global def_spos
-
- # Do we document a class method? then remove the 'self' parameter
- if params[0] == 'self':
- preamble = ''
- params = params[1:]
- else:
- preamble = 'static '
- if params[0] == 'cls':
- params = params[1:]
-
- param_string = string.join(params, ", Type ")
-
- if param_string == '':
- param_string = '(' + param_string + ');\n'
- else:
- param_string = '(Type ' + param_string + ');\n'
-
- output(preamble, def_spos)
- output(name, def_spos)
- output(param_string, def_spos)
-
-
-def append_comment_lines(lines):
- map(append_comment_line, doc_string.split('\n'))
-
-paramRE = re.compile(r'(@param \w+):')
-
-def append_comment_line(line):
- global paramRE
-
- comment_block.append(paramRE.sub(r'\1', line) + '\n')
-
-def dump(filename):
- f = open(filename)
- r = f.readlines()
- for s in r:
- sys.stdout.write(s)
-
-def filter(filename):
- global name, module_has_docstring, source_root
-
- path,name = os.path.split(filename)
- root,ext = os.path.splitext(name)
-
- if source_root and path.find(source_root) == 0:
- path = path[len(source_root):]
-
- if path[0] == os.sep:
- path = path[1:]
-
- ns = path.split(os.sep)
- else:
- ns = []
-
- ns.append(root)
-
- for n in ns:
- output("namespace " + n + " {\n",(0,0))
-
- # set module name for tok_eater to use if there's a module doc string
- name = root
-
-# sys.stderr.write('Filtering "'+filename+'"...')
- f = open(filename)
- tokenize.tokenize(f.readline, tok_eater)
- f.close()
- print_comment((0,0))
-
- output("\n",(0,0))
-
- for n in ns:
- output("} // end of namespace\n",(0,0))
-
- if not module_has_docstring:
- # Put in default namespace documentation
- output('/** \\namespace '+root+' \n',(0,0))
- output(' \\brief Module "%s" */\n'%(root),(0,0))
-
- for s in outbuffer:
- outfile.write(s)
-
-
-def filterFile(filename, out=sys.stdout):
- global outfile
-
- outfile = out
-
- try:
- root,ext = os.path.splitext(filename)
-
- if ext==".py":
- filter(filename)
- else:
- dump(filename)
-
-# sys.stderr.write("OK\n")
- except IOError,e:
- sys.stderr.write(e[1]+"\n")
-
-
-######################################################################
-
-# preparePath
-def preparePath(path):
- """Prepare a path.
-
- Checks if the path exists and creates it if it does not exist.
- """
- if not os.path.exists(path):
- parent = os.path.dirname(path)
- if parent!="":
- preparePath(parent)
- os.mkdir(path)
-
-# isNewer
-def isNewer(file1,file2):
- """Check if file1 is newer than file2.
-
- file1 must be an existing file.
- """
- if not os.path.exists(file2):
- return True
- return os.stat(file1)[ST_MTIME]>os.stat(file2)[ST_MTIME]
-
-# convert
-def convert(srcpath, destpath):
- """Convert a Python source tree into a C+ stub tree.
-
- All *.py files in srcpath (including sub-directories) are filtered
- and written to destpath. If destpath exists, only the files
- that have been modified are filtered again. Files that were deleted
- from srcpath are also deleted in destpath if they are still present.
- The function returns the number of processed *.py files.
- """
- count=0
- sp = os.path.join(srcpath,"*")
- sfiles = glob.glob(sp)
- dp = os.path.join(destpath,"*")
- dfiles = glob.glob(dp)
- leftovers={}
- for df in dfiles:
- leftovers[os.path.basename(df)]=1
-
- for srcfile in sfiles:
- basename = os.path.basename(srcfile)
- if basename in leftovers:
- del leftovers[basename]
-
- # Is it a subdirectory?
- if os.path.isdir(srcfile):
- sdir = os.path.join(srcpath,basename)
- ddir = os.path.join(destpath,basename)
- count+=convert(sdir, ddir)
- continue
- # Check the extension (only *.py will be converted)
- root, ext = os.path.splitext(srcfile)
- if ext.lower()!=".py":
- continue
-
- destfile = os.path.join(destpath,basename)
- if destfile==srcfile:
- print "WARNING: Input and output names are identical!"
- sys.exit(1)
-
- count+=1
-# sys.stdout.write("%s\015"%(srcfile))
-
- if isNewer(srcfile, destfile):
- preparePath(os.path.dirname(destfile))
-# out=open(destfile,"w")
-# filterFile(srcfile, out)
-# out.close()
- os.system("python %s -f %s>%s"%(sys.argv[0],srcfile,destfile))
-
- # Delete obsolete files in destpath
- for df in leftovers:
- dname=os.path.join(destpath,df)
- if os.path.isdir(dname):
- try:
- shutil.rmtree(dname)
- except:
- print "Can't remove obsolete directory '%s'"%dname
- else:
- try:
- os.remove(dname)
- except:
- print "Can't remove obsolete file '%s'"%dname
-
- return count
-
-
-######################################################################
-######################################################################
-######################################################################
-
-filter_file = False
-source_root = None
-
-try:
- opts, args = getopt.getopt(sys.argv[1:], "hfr:", ["help"])
-except getopt.GetoptError,e:
- print e
- sys.exit(1)
-
-for o,a in opts:
- if o=="-f":
- filter_file = True
-
- if o=="-r":
- source_root = os.path.abspath(a)
-
-if filter_file:
- # Filter the specified file and print the result to stdout
- filename = string.join(args)
- filterFile(os.path.abspath(filename))
-else:
-
- if len(args)!=2:
- sys.stderr.write("%s options input output\n"%(os.path.basename(sys.argv[0])))
- sys.exit(1)
-
- # Filter an entire Python source tree
- print '"%s" -> "%s"\n'%(args[0],args[1])
- c=convert(args[0],args[1])
- print "%d files"%(c)
-
--
1.7.2.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH V2 4/5] docs: check for documentation generation tools in docs/configure.
2013-01-21 9:32 [PATCH 0/5 V2] install into /usr/local and docs/configure Ian Campbell
` (2 preceding siblings ...)
2013-01-21 9:33 ` [PATCH V2 3/5] docs: drop doxygen stuff Ian Campbell
@ 2013-01-21 9:33 ` Ian Campbell
2013-01-24 13:24 ` Roger Pau Monné
2013-01-21 9:33 ` [PATCH V2 5/5] build: cleanup configure detritus at toplevel and stubdom Ian Campbell
4 siblings, 1 reply; 14+ messages in thread
From: Ian Campbell @ 2013-01-21 9:33 UTC (permalink / raw)
To: xen-devel
Cc: Fioravante, Matthew E., Ian Campbell, Matt Wilson,
Roger Pau Monné
It is sometimes hard to discover all the optional tools that should be
on a system to build all available Xen documentation. By checking for
documentation generation tools at ./configure time and displaying a
warning, Xen packagers will more easily learn about new optional build
dependencies, like markdown, when they are introduced.
Based on a patch by Matt Wilson. Changed to use a separate
docs/configure which is called from the top-level in the same manner
as stubdoms.
Rerun autogen.sh and "git add docs/configure" after applying this patch.
Signed-off-by: Matt Wilson <msw@amazon.com>
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Matt Wilson <msw@amazon.com>
(For the change to introduce docs/configure)
Cc: "Fioravante, Matthew E." <Matthew.Fioravante@jhuapl.edu>
Cc: Roger Pau Monné <roger.pau@citrix.com>
---
Applies on top of Matthew's "Add autoconf to stubdom" and "Add a top
level configure script".
v2: - Update .*ignore
---
.gitignore | 4 +++
.hgignore | 6 ++++
README | 2 +-
autogen.sh | 15 ++++++++----
config/Docs.mk.in | 13 ++++++++++
docs/Docs.mk | 6 ----
docs/Makefile | 66 +++++++++++++++++++++++++++++++++++++--------------
docs/configure.ac | 20 +++++++++++++++
docs/figs/Makefile | 2 +-
m4/docs_tool.m4 | 17 +++++++++++++
10 files changed, 120 insertions(+), 31 deletions(-)
create mode 100644 config/Docs.mk.in
delete mode 100644 docs/Docs.mk
create mode 100644 docs/configure.ac
create mode 100644 m4/docs_tool.m4
diff --git a/.gitignore b/.gitignore
index 462e291..e96db57 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,6 +35,9 @@ config/Toplevel.mk
build-*
dist/*
+docs/autom4te.cache/
+docs/config.log
+docs/config.status
docs/*.aux
docs/*.dvi
docs/*.log
@@ -132,6 +135,7 @@ tools/config.status
tools/config.cache
config/Tools.mk
config/Stubdom.mk
+config/Docs.mk
tools/blktap2/daemon/blktapctrl
tools/blktap2/drivers/img2qcow
tools/blktap2/drivers/lock-util
diff --git a/.hgignore b/.hgignore
index 3024ef1..5efd72c 100644
--- a/.hgignore
+++ b/.hgignore
@@ -32,6 +32,10 @@
^config/Toplevel\.mk
^build-.*$
^dist/.*$
+^docs/autom4te\.cache$
+^docs/config\.log$
+^docs/config\.status
+^docs/config/Toplevel\.mk
^docs/.*\.aux$
^docs/.*\.dvi$
^docs/.*\.log$
@@ -322,6 +326,8 @@
^tools/config\.status$
^tools/config\.cache$
^config/Tools\.mk$
+^config/Stubdom\.mk$
+^config/Docs\.mk$
^xen/\.banner.*$
^xen/BLOG$
^xen/System.map$
diff --git a/README b/README
index 5c335b9..6c4742f 100644
--- a/README
+++ b/README
@@ -57,7 +57,6 @@ provided by your OS distributor:
* GNU gettext
* 16-bit x86 assembler, loader and compiler (dev86 rpm or bin86 & bcc debs)
* ACPI ASL compiler (iasl)
- * markdown
In addition to the above there are a number of optional build
prerequisites. Omitting these will cause the related features to be
@@ -66,6 +65,7 @@ disabled at compile time:
ocaml-findlib). Required to build ocaml components which
includes the alternative ocaml xenstored.
* cmake (if building vtpm stub domains)
+ * markdown
Second, you need to acquire a suitable kernel for use in domain 0. If
possible you should use a kernel provided by your OS distributor. If
diff --git a/autogen.sh b/autogen.sh
index 1456d94..b5c9688 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,7 +1,12 @@
#!/bin/sh -e
autoconf
-cd tools
-autoconf
-autoheader
-cd ../stubdom
-autoconf
+( cd tools
+ autoconf
+ autoheader
+)
+( cd stubdom
+ autoconf
+)
+( cd docs
+ autoconf
+)
diff --git a/config/Docs.mk.in b/config/Docs.mk.in
new file mode 100644
index 0000000..024ef20
--- /dev/null
+++ b/config/Docs.mk.in
@@ -0,0 +1,13 @@
+# Prefix and install folder
+prefix := @prefix@
+PREFIX := $(prefix)
+exec_prefix := @exec_prefix@
+libdir := @libdir@
+LIBDIR := $(libdir)
+
+# Tools
+FIG2DEV := @FIG2DEV@
+POD2MAN := @POD2MAN@
+POD2HTML := @POD2HTML@
+POD2TEXT := @POD2TEXT@
+MARKDOWN := @MARKDOWN@
diff --git a/docs/Docs.mk b/docs/Docs.mk
deleted file mode 100644
index db3c19d..0000000
--- a/docs/Docs.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-FIG2DEV := fig2dev
-LATEX2HTML := latex2html
-POD2MAN := pod2man
-POD2HTML := pod2html
-POD2TEXT := pod2text
-MARKDOWN := markdown
diff --git a/docs/Makefile b/docs/Makefile
index 053d7af..fdebae8 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -2,7 +2,7 @@
XEN_ROOT=$(CURDIR)/..
include $(XEN_ROOT)/Config.mk
-include $(XEN_ROOT)/docs/Docs.mk
+-include $(XEN_ROOT)/config/Docs.mk
VERSION = xen-unstable
@@ -32,21 +32,27 @@ html: $(DOC_HTML) html/index.html
.PHONY: txt
txt:
- @if which $(POD2TEXT) 1>/dev/null 2>/dev/null; then \
- $(MAKE) $(DOC_TXT); else \
- echo "pod2text not installed; skipping text outputs."; fi
+ifdef POD2TEXT
+ $(MAKE) $(DOC_TXT)
+else
+ @echo "pod2text not installed; skipping text outputs."
+endif
.PHONY: figs
figs:
- @set -e ; if which $(FIG2DEV) 1>/dev/null 2>/dev/null; then \
- set -x; $(MAKE) -C figs ; else \
- echo "fig2dev (transfig) not installed; skipping figs."; fi
+ifdef FIG2DEV
+ set -x; $(MAKE) -C figs
+else
+ @echo "fig2dev (transfig) not installed; skipping figs."
+endif
.PHONY: man-pages
man-pages:
- @if which $(POD2MAN) 1>/dev/null 2>/dev/null; then \
- $(MAKE) $(DOC_MAN1) $(DOC_MAN5); else \
- echo "pod2man not installed; skipping man-pages."; fi
+ifdef POD2MAN
+ $(MAKE) $(DOC_MAN1) $(DOC_MAN5)
+else
+ @echo "pod2man not installed; skipping man-pages."
+endif
man1/%.1: man/%.pod.1 Makefile
$(INSTALL_DIR) $(@D)
@@ -69,6 +75,8 @@ clean:
.PHONY: distclean
distclean: clean
+ rm -rf ../config/Docs.mk config.log config.status config.cache \
+ autom4te.cache
.PHONY: install
install: all
@@ -84,30 +92,40 @@ html/index.html: $(DOC_HTML) ./gen-html-index INDEX
perl -w -- ./gen-html-index -i INDEX html $(DOC_HTML)
html/%.html: %.markdown
- @$(INSTALL_DIR) $(@D)
- @set -e ; if which $(MARKDOWN) 1>/dev/null 2>/dev/null; then \
- echo "Running markdown to generate $*.html ... "; \
+ $(INSTALL_DIR) $(@D)
+ifdef MARKDOWN
+ @echo "Running markdown to generate $*.html ... "
$(MARKDOWN) $< > $@.tmp ; \
- $(call move-if-changed,$@.tmp,$@) ; else \
- echo "markdown not installed; skipping $*.html."; fi
+ $(call move-if-changed,$@.tmp,$@)
+else
+ @echo "markdown not installed; skipping $*.html."
+endif
html/%.txt: %.txt
- @$(INSTALL_DIR) $(@D)
+ $(INSTALL_DIR) $(@D)
cp $< $@
html/man/%.1.html: man/%.pod.1 Makefile
$(INSTALL_DIR) $(@D)
+ifdef POD2HTML
$(POD2HTML) --infile=$< --outfile=$@.tmp
$(call move-if-changed,$@.tmp,$@)
+else
+ @echo "pod2html not installed; skipping $<."
+endif
html/man/%.5.html: man/%.pod.5 Makefile
$(INSTALL_DIR) $(@D)
+ifdef POD2HTML
$(POD2HTML) --infile=$< --outfile=$@.tmp
$(call move-if-changed,$@.tmp,$@)
+else
+ @echo "pod2html not installed; skipping $<."
+endif
html/hypercall/index.html: ./xen-headers
rm -rf $(@D)
- @$(INSTALL_DIR) $(@D)
+ $(INSTALL_DIR) $(@D)
./xen-headers -O $(@D) \
-T 'arch-x86_64 - Xen public headers' \
-X arch-ia64 -X arch-x86_32 -X xen-x86_32 -X arch-arm \
@@ -127,11 +145,23 @@ txt/%.txt: %.markdown
txt/man/%.1.txt: man/%.pod.1 Makefile
$(INSTALL_DIR) $(@D)
+ifdef POD2TEXT
$(POD2TEXT) $< $@.tmp
$(call move-if-changed,$@.tmp,$@)
+else
+ @echo "pod2text not installed; skipping $<."
+endif
txt/man/%.5.txt: man/%.pod.5 Makefile
$(INSTALL_DIR) $(@D)
+ifdef POD2TEXT
$(POD2TEXT) $< $@.tmp
$(call move-if-changed,$@.tmp,$@)
-
+else
+ @echo "pod2text not installed; skipping $<."
+endif
+
+ifeq (,$(findstring clean,$(MAKECMDGOALS)))
+$(XEN_ROOT)/config/Docs.mk:
+ $(error You have to run ./configure before building docs)
+endif
diff --git a/docs/configure.ac b/docs/configure.ac
new file mode 100644
index 0000000..ea0552e
--- /dev/null
+++ b/docs/configure.ac
@@ -0,0 +1,20 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.67])
+AC_INIT([Xen Hypervisor Documentation], m4_esyscmd([../version.sh ../xen/Makefile]),
+ [xen-devel@lists.xen.org], [xen], [http://www.xen.org/])
+AC_CONFIG_SRCDIR([misc/xen-command-line.markdown])
+AC_CONFIG_FILES([../config/Docs.mk])
+AC_CONFIG_AUX_DIR([../])
+
+# M4 Macro includes
+m4_include([../m4/docs_tool.m4])
+
+AX_DOCS_TOOL_PROG([FIG2DEV], [fig2dev])
+AX_DOCS_TOOL_PROG([POD2MAN], [pod2man])
+AX_DOCS_TOOL_PROG([POD2HTML], [pod2html])
+AX_DOCS_TOOL_PROG([POD2TEXT], [pod2text])
+AX_DOCS_TOOL_PROGS([MARKDOWN], [markdown], [markdown markdown_py])
+
+AC_OUTPUT()
diff --git a/docs/figs/Makefile b/docs/figs/Makefile
index 5ecdae3..e128a43 100644
--- a/docs/figs/Makefile
+++ b/docs/figs/Makefile
@@ -1,7 +1,7 @@
XEN_ROOT=$(CURDIR)/../..
include $(XEN_ROOT)/Config.mk
-include $(XEN_ROOT)/docs/Docs.mk
+-include $(XEN_ROOT)/config/Docs.mk
TARGETS= network-bridge.png network-basic.png
diff --git a/m4/docs_tool.m4 b/m4/docs_tool.m4
new file mode 100644
index 0000000..3e8814a
--- /dev/null
+++ b/m4/docs_tool.m4
@@ -0,0 +1,17 @@
+AC_DEFUN([AX_DOCS_TOOL_PROG], [
+dnl
+ AC_ARG_VAR([$1], [Path to $2 tool])
+ AC_PATH_PROG([$1], [$2])
+ AS_IF([! test -x "$ac_cv_path_$1"], [
+ AC_MSG_WARN([$2 is not available so some documentation won't be built])
+ ])
+])
+
+AC_DEFUN([AX_DOCS_TOOL_PROGS], [
+dnl
+ AC_ARG_VAR([$1], [Path to $2 tool])
+ AC_PATH_PROGS([$1], [$3])
+ AS_IF([! test -x "$ac_cv_path_$1"], [
+ AC_MSG_WARN([$2 is not available so some documentation won't be built])
+ ])
+])
--
1.7.2.5
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH V2 5/5] build: cleanup configure detritus at toplevel and stubdom
2013-01-21 9:32 [PATCH 0/5 V2] install into /usr/local and docs/configure Ian Campbell
` (3 preceding siblings ...)
2013-01-21 9:33 ` [PATCH V2 4/5] docs: check for documentation generation tools in docs/configure Ian Campbell
@ 2013-01-21 9:33 ` Ian Campbell
2013-01-24 13:20 ` Roger Pau Monné
4 siblings, 1 reply; 14+ messages in thread
From: Ian Campbell @ 2013-01-21 9:33 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Campbell
These files were left over after
$ git clean -f -dx
$ ./configure
$ make distclean
and picked up by a subsequent.
$ git clean -f -dx
Ensure that these files are also correctly ignored.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
.gitignore | 6 ++++--
.hgignore | 6 ++++--
Makefile | 1 +
stubdom/Makefile | 1 +
4 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index e96db57..125a582 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,6 +31,7 @@ stubdom/*.tar.gz
autom4te.cache/
config.log
config.status
+config.cache
config/Toplevel.mk
build-*
@@ -101,10 +102,11 @@ patches/tmp/*
pristine-*
ref-*
tmp-*
-stubdom/autom4te.cache
+stubdom/autom4te.cache/
stubdom/binutils-*
stubdom/config.log
stubdom/config.status
+stubdom/config.cache
stubdom/cross-root-*
stubdom/gcc-*
stubdom/include
@@ -128,7 +130,7 @@ stubdom/ioemu/
stubdom/stubdompath.sh
stubdom/vtpm/vtpm_manager.h
tools/*/build/lib*/*.py
-tools/autom4te.cache
+tools/autom4te.cache/
tools/config.h
tools/config.log
tools/config.status
diff --git a/.hgignore b/.hgignore
index 5efd72c..74fd424 100644
--- a/.hgignore
+++ b/.hgignore
@@ -28,8 +28,9 @@
(^|/)(GTAGS|GPATH|GSYMS|GRTAGS)$
^autom4te\.cache$
^config\.log$
-^config\.status
-^config/Toplevel\.mk
+^config\.status$
+^config\.cache$
+^config/Toplevel\.mk$
^build-.*$
^dist/.*$
^docs/autom4te\.cache$
@@ -101,6 +102,7 @@
^stubdom/binutils-.*$
^stubdom/config\.log$
^stubdom/config\.status$
+^stubdom/config\.cache$
^stubdom/cross-root-.*$
^stubdom/gcc-.*$
^stubdom/include$
diff --git a/Makefile b/Makefile
index aa3c7bd..2d3ed82 100644
--- a/Makefile
+++ b/Makefile
@@ -167,6 +167,7 @@ endif
rm -rf dist patches/tmp
for i in $(ALLKERNELS) ; do $(MAKE) $$i-delete ; done
rm -rf patches/*/.makedep
+ rm -rf config.log config.status config.cache autom4te.cache
# Linux name for GNU distclean
.PHONY: mrproper
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 64ee6e2..09f6943 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -548,6 +548,7 @@ downloadclean: patchclean
.PHONY: distclean
distclean: downloadclean
-rm ../config/Stubdom.mk
+ rm -rf config.log config.status config.cache autom4te.cache
ifeq (,$(findstring clean,$(MAKECMDGOALS)))
$(XEN_ROOT)/config/Stubdom.mk:
--
1.7.2.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH V2 1/5] tools+stubdom: install under /usr/local by default.
2013-01-21 9:33 ` [PATCH V2 1/5] tools+stubdom: install under /usr/local by default Ian Campbell
@ 2013-01-24 13:03 ` Ian Campbell
0 siblings, 0 replies; 14+ messages in thread
From: Ian Campbell @ 2013-01-24 13:03 UTC (permalink / raw)
To: xen-devel@lists.xen.org; +Cc: Ian Jackson, Matt Wilson, Roger Pau Monné
On Mon, 2013-01-21 at 09:33 +0000, Ian Campbell wrote:
> This is the defacto (or FHS mandated?) standard location for software
> built from source, in order to avoid clashing with packaged software
> which is installed under /usr/bin etc.
>
> I think there is benefit in having Xen's install behave more like the
> majority of other OSS software out there.
>
> The major downside here is in the transition from 4.2 to 4.3 where
> people who have built from source will innevitably discover breakage
> because 4.3 no longer overwrites stuff in /usr like it used to so they
> pickup old stale bits from /usr instead of new stuff from /usr/local.
>
> Packages will use ./configure --prefix=/usr or whatever helper macro
> their package manager gives them. I have confirmed that doing this
> results in the same list of installed files as before this patch was
> applied.
>
> The hypervisor remains in /boot/ and there is no intention to move it.
>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> Acked-by: Matt Wilson <msw@amazon.com>
Applied this one, can someone ack 2,3 and 5 please...
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH V2 5/5] build: cleanup configure detritus at toplevel and stubdom
2013-01-21 9:33 ` [PATCH V2 5/5] build: cleanup configure detritus at toplevel and stubdom Ian Campbell
@ 2013-01-24 13:20 ` Roger Pau Monné
0 siblings, 0 replies; 14+ messages in thread
From: Roger Pau Monné @ 2013-01-24 13:20 UTC (permalink / raw)
To: Ian Campbell; +Cc: xen-devel@lists.xen.org
On 21/01/13 10:33, Ian Campbell wrote:
> These files were left over after
> $ git clean -f -dx
> $ ./configure
> $ make distclean
> and picked up by a subsequent.
> $ git clean -f -dx
>
> Ensure that these files are also correctly ignored.
>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH V2 2/5] docs: Remove xen-api docs
2013-01-21 9:33 ` [PATCH V2 2/5] docs: Remove xen-api docs Ian Campbell
@ 2013-01-24 13:23 ` Roger Pau Monné
2013-01-25 9:06 ` Ian Campbell
0 siblings, 1 reply; 14+ messages in thread
From: Roger Pau Monné @ 2013-01-24 13:23 UTC (permalink / raw)
To: Ian Campbell; +Cc: xen-devel@lists.xen.org
On 21/01/13 10:33, Ian Campbell wrote:
> This document is about an old unmaintained version of the XenAPI,
> which bears little to no relation to what is implemented in xapi and
> which is only partially implemented in xend (which is deprecated). The
> doc hasn't seen much in the way of updates since 2009.
>
> Anyone who is actually interested can continue to use the version
> which was in 4.2.
>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH V2 3/5] docs: drop doxygen stuff
2013-01-21 9:33 ` [PATCH V2 3/5] docs: drop doxygen stuff Ian Campbell
@ 2013-01-24 13:24 ` Roger Pau Monné
0 siblings, 0 replies; 14+ messages in thread
From: Roger Pau Monné @ 2013-01-24 13:24 UTC (permalink / raw)
To: Ian Campbell; +Cc: xen-devel@lists.xen.org
On 21/01/13 10:33, Ian Campbell wrote:
> In the 300+ page PDF this produces I couldn't see anything which
> wasn't the autogenerated doxygen boilerplate stuff.
>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH V2 4/5] docs: check for documentation generation tools in docs/configure.
2013-01-21 9:33 ` [PATCH V2 4/5] docs: check for documentation generation tools in docs/configure Ian Campbell
@ 2013-01-24 13:24 ` Roger Pau Monné
0 siblings, 0 replies; 14+ messages in thread
From: Roger Pau Monné @ 2013-01-24 13:24 UTC (permalink / raw)
To: Ian Campbell; +Cc: Fioravante, Matthew E., Matt Wilson, xen-devel@lists.xen.org
On 21/01/13 10:33, Ian Campbell wrote:
> It is sometimes hard to discover all the optional tools that should be
> on a system to build all available Xen documentation. By checking for
> documentation generation tools at ./configure time and displaying a
> warning, Xen packagers will more easily learn about new optional build
> dependencies, like markdown, when they are introduced.
>
> Based on a patch by Matt Wilson. Changed to use a separate
> docs/configure which is called from the top-level in the same manner
> as stubdoms.
>
> Rerun autogen.sh and "git add docs/configure" after applying this patch.
>
> Signed-off-by: Matt Wilson <msw@amazon.com>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> Acked-by: Matt Wilson <msw@amazon.com>
> (For the change to introduce docs/configure)
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH V2 2/5] docs: Remove xen-api docs
2013-01-24 13:23 ` Roger Pau Monné
@ 2013-01-25 9:06 ` Ian Campbell
2013-01-25 9:29 ` Roger Pau Monné
0 siblings, 1 reply; 14+ messages in thread
From: Ian Campbell @ 2013-01-25 9:06 UTC (permalink / raw)
To: Roger Pau Monne; +Cc: xen-devel@lists.xen.org
On Thu, 2013-01-24 at 13:23 +0000, Roger Pau Monne wrote:
> On 21/01/13 10:33, Ian Campbell wrote:
> > This document is about an old unmaintained version of the XenAPI,
> > which bears little to no relation to what is implemented in xapi and
> > which is only partially implemented in xend (which is deprecated). The
> > doc hasn't seen much in the way of updates since 2009.
> >
> > Anyone who is actually interested can continue to use the version
> > which was in 4.2.
> >
> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Applied, along with #3 & 4, thanks.
"build: cleanup configure detritus at toplevel and stubdom" is still
left to be acked by someone though.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH V2 2/5] docs: Remove xen-api docs
2013-01-25 9:06 ` Ian Campbell
@ 2013-01-25 9:29 ` Roger Pau Monné
2013-01-25 10:06 ` Ian Campbell
0 siblings, 1 reply; 14+ messages in thread
From: Roger Pau Monné @ 2013-01-25 9:29 UTC (permalink / raw)
To: Ian Campbell; +Cc: xen-devel@lists.xen.org
On 25/01/13 10:06, Ian Campbell wrote:
> On Thu, 2013-01-24 at 13:23 +0000, Roger Pau Monne wrote:
>> On 21/01/13 10:33, Ian Campbell wrote:
>>> This document is about an old unmaintained version of the XenAPI,
>>> which bears little to no relation to what is implemented in xapi and
>>> which is only partially implemented in xend (which is deprecated). The
>>> doc hasn't seen much in the way of updates since 2009.
>>>
>>> Anyone who is actually interested can continue to use the version
>>> which was in 4.2.
>>>
>>> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
>> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
>
> Applied, along with #3 & 4, thanks.
>
> "build: cleanup configure detritus at toplevel and stubdom" is still
> left to be acked by someone though.
I've also acked this one yesterday, see:
http://marc.info/?l=xen-devel&m=135903369813001
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH V2 2/5] docs: Remove xen-api docs
2013-01-25 9:29 ` Roger Pau Monné
@ 2013-01-25 10:06 ` Ian Campbell
0 siblings, 0 replies; 14+ messages in thread
From: Ian Campbell @ 2013-01-25 10:06 UTC (permalink / raw)
To: Roger Pau Monne; +Cc: xen-devel@lists.xen.org
On Fri, 2013-01-25 at 09:29 +0000, Roger Pau Monne wrote:
> On 25/01/13 10:06, Ian Campbell wrote:
> > On Thu, 2013-01-24 at 13:23 +0000, Roger Pau Monne wrote:
> >> On 21/01/13 10:33, Ian Campbell wrote:
> >>> This document is about an old unmaintained version of the XenAPI,
> >>> which bears little to no relation to what is implemented in xapi and
> >>> which is only partially implemented in xend (which is deprecated). The
> >>> doc hasn't seen much in the way of updates since 2009.
> >>>
> >>> Anyone who is actually interested can continue to use the version
> >>> which was in 4.2.
> >>>
> >>> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> >> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> >
> > Applied, along with #3 & 4, thanks.
> >
> > "build: cleanup configure detritus at toplevel and stubdom" is still
> > left to be acked by someone though.
>
> I've also acked this one yesterday, see:
> http://marc.info/?l=xen-devel&m=135903369813001
Thanks, I missed this somehow, will apply....
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-01-25 10:06 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-21 9:32 [PATCH 0/5 V2] install into /usr/local and docs/configure Ian Campbell
2013-01-21 9:33 ` [PATCH V2 1/5] tools+stubdom: install under /usr/local by default Ian Campbell
2013-01-24 13:03 ` Ian Campbell
2013-01-21 9:33 ` [PATCH V2 2/5] docs: Remove xen-api docs Ian Campbell
2013-01-24 13:23 ` Roger Pau Monné
2013-01-25 9:06 ` Ian Campbell
2013-01-25 9:29 ` Roger Pau Monné
2013-01-25 10:06 ` Ian Campbell
2013-01-21 9:33 ` [PATCH V2 3/5] docs: drop doxygen stuff Ian Campbell
2013-01-24 13:24 ` Roger Pau Monné
2013-01-21 9:33 ` [PATCH V2 4/5] docs: check for documentation generation tools in docs/configure Ian Campbell
2013-01-24 13:24 ` Roger Pau Monné
2013-01-21 9:33 ` [PATCH V2 5/5] build: cleanup configure detritus at toplevel and stubdom Ian Campbell
2013-01-24 13:20 ` Roger Pau Monné
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).