Deploying to gh-pages from @ espressif/esp-protocols@dc8b916561 🚀

This commit is contained in:
gabsuren committed 2023-01-13 13:59:52 +00:00
1 parent 3e44d105df
commit 95461f42ea
266 files changed
+104081 -785

No files matched your search

+4
View File
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 3e1f9a796b8690072fa1da67e6b114f2
tags: 549b3d6d0415232fb7e35403b330ff49
+42
View File
@@ -0,0 +1,42 @@
ASIO port
=========
Overview
--------
Asio is a cross-platform C++ library, see https://think-async.com/Asio/. It provides a consistent asynchronous model using a modern C++ approach.
ASIO documentation
^^^^^^^^^^^^^^^^^^
Please refer to the original asio documentation at https://think-async.com/Asio/Documentation.
Asio also comes with a number of examples which could be find under Documentation/Examples on that web site.
Supported features
^^^^^^^^^^^^^^^^^^
ESP platform port currently supports only network asynchronous socket operations; does not support serial port.
SSL/TLS support is disabled by default and could be enabled in component configuration menu by choosing TLS library from
- mbedTLS with OpenSSL translation layer (default option)
- wolfSSL
SSL support is very basic at this stage and it does include following features:
- Verification callbacks
- DH property files
- Certificates/private keys file APIs
Internal asio settings for ESP include
- EXCEPTIONS are enabled in ASIO if enabled in menuconfig
- TYPEID is enabled in ASIO if enabled in menuconfig
Application Example
-------------------
ESP examples are based on standard asio :example:`examples <../examples>`:
- :example:`udp_echo_server <../examples/udp_echo_server>`
- :example:`tcp_echo_server <../examples/tcp_echo_server>`
- :example:`asio_chat <../examples/asio_chat>`
- :example:`ssl_client_server <../examples/ssl_client_server>`
Please refer to the specific example README.md for details
Binary file not shown.
Binary file not shown.
+906
View File
@@ -0,0 +1,906 @@
/*
* basic.css
* ~~~~~~~~~
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/* -- main layout ----------------------------------------------------------- */
div.clearer {
clear: both;
}
div.section::after {
display: block;
content: '';
clear: left;
}
/* -- relbar ---------------------------------------------------------------- */
div.related {
width: 100%;
font-size: 90%;
}
div.related h3 {
display: none;
}
div.related ul {
margin: 0;
padding: 0 0 0 10px;
list-style: none;
}
div.related li {
display: inline;
}
div.related li.right {
float: right;
margin-right: 5px;
}
/* -- sidebar --------------------------------------------------------------- */
div.sphinxsidebarwrapper {
padding: 10px 5px 0 10px;
}
div.sphinxsidebar {
float: left;
width: 230px;
margin-left: -100%;
font-size: 90%;
word-wrap: break-word;
overflow-wrap : break-word;
}
div.sphinxsidebar ul {
list-style: none;
}
div.sphinxsidebar ul ul,
div.sphinxsidebar ul.want-points {
margin-left: 20px;
list-style: square;
}
div.sphinxsidebar ul ul {
margin-top: 0;
margin-bottom: 0;
}
div.sphinxsidebar form {
margin-top: 10px;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
div.sphinxsidebar #searchbox form.search {
overflow: hidden;
}
div.sphinxsidebar #searchbox input[type="text"] {
float: left;
width: 80%;
padding: 0.25em;
box-sizing: border-box;
}
div.sphinxsidebar #searchbox input[type="submit"] {
float: left;
width: 20%;
border-left: none;
padding: 0.25em;
box-sizing: border-box;
}
img {
border: 0;
max-width: 100%;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li p.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
margin-left: auto;
margin-right: auto;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable {
width: 100%;
}
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable ul {
margin-top: 0;
margin-bottom: 0;
list-style-type: none;
}
table.indextable > tbody > tr > td > ul {
padding-left: 0em;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
div.modindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
div.genindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
/* -- domain module index --------------------------------------------------- */
table.modindextable td {
padding: 2px;
border-collapse: collapse;
}
/* -- general body styles --------------------------------------------------- */
div.body {
min-width: 450px;
max-width: 800px;
}
div.body p, div.body dd, div.body li, div.body blockquote {
-moz-hyphens: auto;
-ms-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}
a.headerlink {
visibility: hidden;
}
a.brackets:before,
span.brackets > a:before{
content: "[";
}
a.brackets:after,
span.brackets > a:after {
content: "]";
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink,
caption:hover > a.headerlink,
p.caption:hover > a.headerlink,
div.code-block-caption:hover > a.headerlink {
visibility: visible;
}
div.body p.caption {
text-align: inherit;
}
div.body td {
text-align: left;
}
.first {
margin-top: 0 !important;
}
p.rubric {
margin-top: 30px;
font-weight: bold;
}
img.align-left, figure.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, figure.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, figure.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
img.align-default, figure.align-default, .figure.align-default {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-default {
text-align: center;
}
.align-right {
text-align: right;
}
/* -- sidebars -------------------------------------------------------------- */
div.sidebar,
aside.sidebar {
margin: 0 0 0.5em 1em;
border: 1px solid #ddb;
padding: 7px;
background-color: #ffe;
width: 40%;
float: right;
clear: right;
overflow-x: auto;
}
p.sidebar-title {
font-weight: bold;
}
div.admonition, div.topic, blockquote {
clear: left;
}
/* -- topics ---------------------------------------------------------------- */
div.topic {
border: 1px solid #ccc;
padding: 7px;
margin: 10px 0 10px 0;
}
p.topic-title {
font-size: 1.1em;
font-weight: bold;
margin-top: 10px;
}
/* -- admonitions ----------------------------------------------------------- */
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 7px;
}
div.admonition dt {
font-weight: bold;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
div.body p.centered {
text-align: center;
margin-top: 25px;
}
/* -- content of sidebars/topics/admonitions -------------------------------- */
div.sidebar > :last-child,
aside.sidebar > :last-child,
div.topic > :last-child,
div.admonition > :last-child {
margin-bottom: 0;
}
div.sidebar::after,
aside.sidebar::after,
div.topic::after,
div.admonition::after,
blockquote::after {
display: block;
content: '';
clear: both;
}
/* -- tables ---------------------------------------------------------------- */
table.docutils {
margin-top: 10px;
margin-bottom: 10px;
border: 0;
border-collapse: collapse;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
table.align-default {
margin-left: auto;
margin-right: auto;
}
table caption span.caption-number {
font-style: italic;
}
table caption span.caption-text {
}
table.docutils td, table.docutils th {
padding: 1px 8px 1px 5px;
border-top: 0;
border-left: 0;
border-right: 0;
border-bottom: 1px solid #aaa;
}
table.footnote td, table.footnote th {
border: 0 !important;
}
th {
text-align: left;
padding-right: 5px;
}
table.citation {
border-left: solid 1px gray;
margin-left: 1px;
}
table.citation td {
border-bottom: none;
}
th > :first-child,
td > :first-child {
margin-top: 0px;
}
th > :last-child,
td > :last-child {
margin-bottom: 0px;
}
/* -- figures --------------------------------------------------------------- */
div.figure, figure {
margin: 0.5em;
padding: 0.5em;
}
div.figure p.caption, figcaption {
padding: 0.3em;
}
div.figure p.caption span.caption-number,
figcaption span.caption-number {
font-style: italic;
}
div.figure p.caption span.caption-text,
figcaption span.caption-text {
}
/* -- field list styles ----------------------------------------------------- */
table.field-list td, table.field-list th {
border: 0 !important;
}
.field-list ul {
margin: 0;
padding-left: 1em;
}
.field-list p {
margin: 0;
}
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
/* -- hlist styles ---------------------------------------------------------- */
table.hlist {
margin: 1em 0;
}
table.hlist td {
vertical-align: top;
}
/* -- object description styles --------------------------------------------- */
.sig {
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
}
.sig-name, code.descname {
background-color: transparent;
font-weight: bold;
}
.sig-name {
font-size: 1.1em;
}
code.descname {
font-size: 1.2em;
}
.sig-prename, code.descclassname {
background-color: transparent;
}
.optional {
font-size: 1.3em;
}
.sig-paren {
font-size: larger;
}
.sig-param.n {
font-style: italic;
}
/* C++ specific styling */
.sig-inline.c-texpr,
.sig-inline.cpp-texpr {
font-family: unset;
}
.sig.c .k, .sig.c .kt,
.sig.cpp .k, .sig.cpp .kt {
color: #0033B3;
}
.sig.c .m,
.sig.cpp .m {
color: #1750EB;
}
.sig.c .s, .sig.c .sc,
.sig.cpp .s, .sig.cpp .sc {
color: #067D17;
}
/* -- other body styles ----------------------------------------------------- */
ol.arabic {
list-style: decimal;
}
ol.loweralpha {
list-style: lower-alpha;
}
ol.upperalpha {
list-style: upper-alpha;
}
ol.lowerroman {
list-style: lower-roman;
}
ol.upperroman {
list-style: upper-roman;
}
:not(li) > ol > li:first-child > :first-child,
:not(li) > ul > li:first-child > :first-child {
margin-top: 0px;
}
:not(li) > ol > li:last-child > :last-child,
:not(li) > ul > li:last-child > :last-child {
margin-bottom: 0px;
}
ol.simple ol p,
ol.simple ul p,
ul.simple ol p,
ul.simple ul p {
margin-top: 0;
}
ol.simple > li:not(:first-child) > p,
ul.simple > li:not(:first-child) > p {
margin-top: 0;
}
ol.simple p,
ul.simple p {
margin-bottom: 0;
}
dl.footnote > dt,
dl.citation > dt {
float: left;
margin-right: 0.5em;
}
dl.footnote > dd,
dl.citation > dd {
margin-bottom: 0em;
}
dl.footnote > dd:after,
dl.citation > dd:after {
content: "";
clear: both;
}
dl.field-list {
display: grid;
grid-template-columns: fit-content(30%) auto;
}
dl.field-list > dt {
font-weight: bold;
word-break: break-word;
padding-left: 0.5em;
padding-right: 5px;
}
dl.field-list > dt:after {
content: ":";
}
dl.field-list > dd {
padding-left: 0.5em;
margin-top: 0em;
margin-left: 0em;
margin-bottom: 0em;
}
dl {
margin-bottom: 15px;
}
dd > :first-child {
margin-top: 0px;
}
dd ul, dd table {
margin-bottom: 10px;
}
dd {
margin-top: 3px;
margin-bottom: 10px;
margin-left: 30px;
}
dl > dd:last-child,
dl > dd:last-child > :last-child {
margin-bottom: 0;
}
dt:target, span.highlighted {
background-color: #fbe54e;
}
rect.highlighted {
fill: #fbe54e;
}
dl.glossary dt {
font-weight: bold;
font-size: 1.1em;
}
.versionmodified {
font-style: italic;
}
.system-message {
background-color: #fda;
padding: 5px;
border: 3px solid red;
}
.footnote:target {
background-color: #ffa;
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
.guilabel, .menuselection {
font-family: sans-serif;
}
.accelerator {
text-decoration: underline;
}
.classifier {
font-style: oblique;
}
.classifier:before {
font-style: normal;
margin: 0 0.5em;
content: ":";
display: inline-block;
}
abbr, acronym {
border-bottom: dotted 1px;
cursor: help;
}
/* -- code displays --------------------------------------------------------- */
pre {
overflow: auto;
overflow-y: hidden; /* fixes display issues on Chrome browsers */
}
pre, div[class*="highlight-"] {
clear: both;
}
span.pre {
-moz-hyphens: none;
-ms-hyphens: none;
-webkit-hyphens: none;
hyphens: none;
white-space: nowrap;
}
div[class*="highlight-"] {
margin: 1em 0;
}
td.linenos pre {
border: 0;
background-color: transparent;
color: #aaa;
}
table.highlighttable {
display: block;
}
table.highlighttable tbody {
display: block;
}
table.highlighttable tr {
display: flex;
}
table.highlighttable td {
margin: 0;
padding: 0;
}
table.highlighttable td.linenos {
padding-right: 0.5em;
}
table.highlighttable td.code {
flex: 1;
overflow: hidden;
}
.highlight .hll {
display: block;
}
div.highlight pre,
table.highlighttable pre {
margin: 0;
}
div.code-block-caption + div {
margin-top: 0;
}
div.code-block-caption {
margin-top: 1em;
padding: 2px 5px;
font-size: small;
}
div.code-block-caption code {
background-color: transparent;
}
table.highlighttable td.linenos,
span.linenos,
div.highlight span.gp { /* gp: Generic.Prompt */
user-select: none;
-webkit-user-select: text; /* Safari fallback only */
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */
}
div.code-block-caption span.caption-number {
padding: 0.1em 0.3em;
font-style: italic;
}
div.code-block-caption span.caption-text {
}
div.literal-block-wrapper {
margin: 1em 0;
}
code.xref, a code {
background-color: transparent;
font-weight: bold;
}
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
background-color: transparent;
}
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
font-family: sans-serif;
}
div.viewcode-block:target {
margin: -1px -10px;
padding: 0 10px;
}
/* -- math display ---------------------------------------------------------- */
img.math {
vertical-align: middle;
}
div.body div.math p {
text-align: center;
}
span.eqno {
float: right;
}
span.eqno a.headerlink {
position: absolute;
z-index: 1;
}
div.math:hover a.headerlink {
visibility: visible;
}
/* -- printout stylesheet --------------------------------------------------- */
@media print {
div.document,
div.documentwrapper,
div.bodywrapper {
margin: 0 !important;
width: 100%;
}
div.sphinxsidebar,
div.related,
div.footer,
#top-link {
display: none;
}
}
+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-check" width="44" height="44" viewBox="0 0 24 24" stroke-width="2" stroke="#22863a" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M5 12l5 5l10 -10" />
</svg>

After

Width:  |  Height:  |  Size: 313 B

+7
View File
@@ -0,0 +1,7 @@
/*!
* clipboard.js v2.0.8
* https://clipboardjs.com/
*
* Licensed MIT © Zeno Rocha
*/
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},i="";return"string"==typeof t?(e=t,n="rtl"===document.documentElement.getAttribute("dir"),(o=document.createElement("textarea")).style.fontSize="12pt",o.style.border="0",o.style.padding="0",o.style.margin="0",o.style.position="absolute",o.style[n?"right":"left"]="-9999px",n=window.pageYOffset||document.documentElement.scrollTop,o.style.top="".concat(n,"px"),o.setAttribute("readonly",""),o.value=e,o=o,r.container.appendChild(o),i=c()(o),a("copy"),o.remove()):(i=c()(t),a("copy")),i};function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==r(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?l(t,{container:o}):e?"cut"===n?f(e):l(e,{container:o}):void 0};function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=m(n);return t=o?(t=m(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==d(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function m(t){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function v(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var o=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return l(t,e)}},{key:"cut",value:function(t){return f(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,t=s({action:this.action(e),container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?"success":"error",{action:this.action,text:t,trigger:e,clearSelection:function(){e&&e.focus(),documenLine truncated
+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-copy" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="#000000" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<rect x="8" y="8" width="12" height="12" rx="2" />
<path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2" />
</svg>

After

Width:  |  Height:  |  Size: 411 B

+93
View File
@@ -0,0 +1,93 @@
/* Copy buttons */
button.copybtn {
position: absolute;
display: flex;
top: .3em;
right: .3em;
width: 1.7em;
height: 1.7em;
opacity: 0;
transition: opacity 0.3s, border .3s, background-color .3s;
user-select: none;
padding: 0;
border: none;
outline: none;
border-radius: 0.4em;
/* The colors that GitHub uses */
border: #1b1f2426 1px solid;
background-color: #f6f8fa;
color: #57606a;
}
button.copybtn.success {
border-color: #22863a;
color: #22863a;
}
button.copybtn svg {
stroke: currentColor;
width: 1.5em;
height: 1.5em;
padding: 0.1em;
}
div.highlight {
position: relative;
}
.highlight:hover button.copybtn {
opacity: 1;
}
.highlight button.copybtn:hover {
background-color: rgb(235, 235, 235);
}
.highlight button.copybtn:active {
background-color: rgb(187, 187, 187);
}
/**
* A minimal CSS-only tooltip copied from:
* https://codepen.io/mildrenben/pen/rVBrpK
*
* To use, write HTML like the following:
*
* <p class="o-tooltip--left" data-tooltip="Hey">Short</p>
*/
.o-tooltip--left {
position: relative;
}
.o-tooltip--left:after {
opacity: 0;
visibility: hidden;
position: absolute;
content: attr(data-tooltip);
padding: .2em;
font-size: .8em;
left: -.2em;
background: grey;
color: white;
white-space: nowrap;
z-index: 2;
border-radius: 2px;
transform: translateX(-102%) translateY(0);
transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1);
}
.o-tooltip--left:hover:after {
display: block;
opacity: 1;
visibility: visible;
transform: translateX(-100%) translateY(0);
transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1);
transition-delay: .5s;
}
/* By default the copy button shouldn't show up when printing a page */
@media print {
button.copybtn {
display: none;
}
}
+220
View File
@@ -0,0 +1,220 @@
// Localization support
const messages = {
'en': {
'copy': 'Copy',
'copy_to_clipboard': 'Copy to clipboard',
'copy_success': 'Copied!',
'copy_failure': 'Failed to copy',
},
'es' : {
'copy': 'Copiar',
'copy_to_clipboard': 'Copiar al portapapeles',
'copy_success': '¡Copiado!',
'copy_failure': 'Error al copiar',
},
'de' : {
'copy': 'Kopieren',
'copy_to_clipboard': 'In die Zwischenablage kopieren',
'copy_success': 'Kopiert!',
'copy_failure': 'Fehler beim Kopieren',
},
'fr' : {
'copy': 'Copier',
'copy_to_clipboard': 'Copié dans le presse-papier',
'copy_success': 'Copié !',
'copy_failure': 'Échec de la copie',
},
'ru': {
'copy': 'Скопировать',
'copy_to_clipboard': 'Скопировать в буфер',
'copy_success': 'Скопировано!',
'copy_failure': 'Не удалось скопировать',
},
'zh-CN': {
'copy': '复制',
'copy_to_clipboard': '复制到剪贴板',
'copy_success': '复制成功!',
'copy_failure': '复制失败',
},
'it' : {
'copy': 'Copiare',
'copy_to_clipboard': 'Copiato negli appunti',
'copy_success': 'Copiato!',
'copy_failure': 'Errore durante la copia',
}
}
let locale = 'en'
if( document.documentElement.lang !== undefined
&& messages[document.documentElement.lang] !== undefined ) {
locale = document.documentElement.lang
}
let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT;
if (doc_url_root == '#') {
doc_url_root = '';
}
/**
* SVG files for our copy buttons
*/
let iconCheck = `<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-check" width="44" height="44" viewBox="0 0 24 24" stroke-width="2" stroke="#22863a" fill="none" stroke-linecap="round" stroke-linejoin="round">
<title>${messages[locale]['copy_success']}</title>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M5 12l5 5l10 -10" />
</svg>`
// If the user specified their own SVG use that, otherwise use the default
let iconCopy = ``;
if (!iconCopy) {
iconCopy = `<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-copy" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="#000000" fill="none" stroke-linecap="round" stroke-linejoin="round">
<title>${messages[locale]['copy_to_clipboard']}</title>
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<rect x="8" y="8" width="12" height="12" rx="2" />
<path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2" />
</svg>`
}
/**
* Set up copy/paste for code blocks
*/
const runWhenDOMLoaded = cb => {
if (document.readyState != 'loading') {
cb()
} else if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', cb)
} else {
document.attachEvent('onreadystatechange', function() {
if (document.readyState == 'complete') cb()
})
}
}
const codeCellId = index => `codecell${index}`
// Clears selected text since ClipboardJS will select the text when copying
const clearSelection = () => {
if (window.getSelection) {
window.getSelection().removeAllRanges()
} else if (document.selection) {
document.selection.empty()
}
}
// Changes tooltip text for two seconds, then changes it back
const temporarilyChangeTooltip = (el, oldText, newText) => {
el.setAttribute('data-tooltip', newText)
el.classList.add('success')
setTimeout(() => el.setAttribute('data-tooltip', oldText), 2000)
setTimeout(() => el.classList.remove('success'), 2000)
}
// Changes the copy button icon for two seconds, then changes it back
const temporarilyChangeIcon = (el) => {
el.innerHTML = iconCheck;
setTimeout(() => {el.innerHTML = iconCopy}, 2000)
}
const addCopyButtonToCodeCells = () => {
// If ClipboardJS hasn't loaded, wait a bit and try again. This
// happens because we load ClipboardJS asynchronously.
if (window.ClipboardJS === undefined) {
setTimeout(addCopyButtonToCodeCells, 250)
return
}
// Add copybuttons to all of our code cells
const codeCells = document.querySelectorAll('div.highlight pre')
codeCells.forEach((codeCell, index) => {
const id = codeCellId(index)
codeCell.setAttribute('id', id)
const clipboardButton = id =>
`<button class="copybtn o-tooltip--left" data-tooltip="${messages[locale]['copy']}" data-clipboard-target="#${id}">
${iconCopy}
</button>`
codeCell.insertAdjacentHTML('afterend', clipboardButton(id))
})
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
// Callback when a copy button is clicked. Will be passed the node that was clicked
// should then grab the text and replace pieces of text that shouldn't be used in output
function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") {
var regexp;
var match;
// Do we check for line continuation characters and "HERE-documents"?
var useLineCont = !!lineContinuationChar
var useHereDoc = !!hereDocDelim
// create regexp to capture prompt and remaining line
if (isRegexp) {
regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)')
} else {
regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)')
}
const outputLines = [];
var promptFound = false;
var gotLineCont = false;
var gotHereDoc = false;
const lineGotPrompt = [];
for (const line of textContent.split('\n')) {
match = line.match(regexp)
if (match || gotLineCont || gotHereDoc) {
promptFound = regexp.test(line)
lineGotPrompt.push(promptFound)
if (removePrompts && promptFound) {
outputLines.push(match[2])
} else {
outputLines.push(line)
}
gotLineCont = line.endsWith(lineContinuationChar) & useLineCont
if (line.includes(hereDocDelim) & useHereDoc)
gotHereDoc = !gotHereDoc
} else if (!onlyCopyPromptLines) {
outputLines.push(line)
} else if (copyEmptyLines && line.trim() === '') {
outputLines.push(line)
}
}
// If no lines with the prompt were found then just use original lines
if (lineGotPrompt.some(v => v === true)) {
textContent = outputLines.join('\n');
}
// Remove a trailing newline to avoid auto-running when pasting
if (textContent.endsWith("\n")) {
textContent = textContent.slice(0, -1)
}
return textContent
}
var copyTargetText = (trigger) => {
var target = document.querySelector(trigger.attributes['data-clipboard-target'].value);
return formatCopyText(target.innerText, '', false, true, true, true, '', '')
}
// Initialize with a callback so we can modify the text before copy
const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText})
// Update UI with error/success messages
clipboard.on('success', event => {
clearSelection()
temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success'])
temporarilyChangeIcon(event.trigger)
})
clipboard.on('error', event => {
temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure'])
})
}
runWhenDOMLoaded(addCopyButtonToCodeCells)
+58
View File
@@ -0,0 +1,58 @@
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}
// Callback when a copy button is clicked. Will be passed the node that was clicked
// should then grab the text and replace pieces of text that shouldn't be used in output
export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") {
var regexp;
var match;
// Do we check for line continuation characters and "HERE-documents"?
var useLineCont = !!lineContinuationChar
var useHereDoc = !!hereDocDelim
// create regexp to capture prompt and remaining line
if (isRegexp) {
regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)')
} else {
regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)')
}
const outputLines = [];
var promptFound = false;
var gotLineCont = false;
var gotHereDoc = false;
const lineGotPrompt = [];
for (const line of textContent.split('\n')) {
match = line.match(regexp)
if (match || gotLineCont || gotHereDoc) {
promptFound = regexp.test(line)
lineGotPrompt.push(promptFound)
if (removePrompts && promptFound) {
outputLines.push(match[2])
} else {
outputLines.push(line)
}
gotLineCont = line.endsWith(lineContinuationChar) & useLineCont
if (line.includes(hereDocDelim) & useHereDoc)
gotHereDoc = !gotHereDoc
} else if (!onlyCopyPromptLines) {
outputLines.push(line)
} else if (copyEmptyLines && line.trim() === '') {
outputLines.push(line)
}
}
// If no lines with the prompt were found then just use original lines
if (lineGotPrompt.some(v => v === true)) {
textContent = outputLines.join('\n');
}
// Remove a trailing newline to avoid auto-running when pasting
if (textContent.endsWith("\n")) {
textContent = textContent.slice(0, -1)
}
return textContent
}
+1
View File
@@ -0,0 +1 @@
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,.wy-nav-top a,.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-coLine truncated
+358
View File
@@ -0,0 +1,358 @@
/*
* doctools.js
* ~~~~~~~~~~~
*
* Sphinx JavaScript utilities for all documentation.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/**
* select a different prefix for underscore
*/
$u = _.noConflict();
/**
* make the code below compatible with browsers without
* an installed firebug like debugger
if (!window.console || !console.firebug) {
var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
"dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
"profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {};
}
*/
/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
}
return decodeURIComponent(x.replace(/\+/g, ' '));
};
/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;
/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};
/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};
/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}
/**
* Small JavaScript module for the documentation.
*/
var Documentation = {
init : function() {
this.fixFirefoxAnchorBug();
this.highlightSearchWords();
this.initIndexTable();
this.initOnKeyListeners();
},
/**
* i18n support
*/
TRANSLATIONS : {},
PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
LOCALE : 'unknown',
// gettext and ngettext don't access this so that the functions
// can safely bound to a different name (_ = Documentation.gettext)
gettext : function(string) {
var translated = Documentation.TRANSLATIONS[string];
if (typeof translated === 'undefined')
return string;
return (typeof translated === 'string') ? translated : translated[0];
},
ngettext : function(singular, plural, n) {
var translated = Documentation.TRANSLATIONS[singular];
if (typeof translated === 'undefined')
return (n == 1) ? singular : plural;
return translated[Documentation.PLURALEXPR(n)];
},
addTranslations : function(catalog) {
for (var key in catalog.messages)
this.TRANSLATIONS[key] = catalog.messages[key];
this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
this.LOCALE = catalog.locale;
},
/**
* add context elements like header anchor links
*/
addContextElements : function() {
$('div[id] > :header:first').each(function() {
$('<a class="headerlink">\u00B6</a>').
attr('href', '#' + this.id).
attr('title', _('Permalink to this headline')).
appendTo(this);
});
$('dt[id]').each(function() {
$('<a class="headerlink">\u00B6</a>').
attr('href', '#' + this.id).
attr('title', _('Permalink to this definition')).
appendTo(this);
});
},
/**
* workaround a firefox stupidity
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
*/
fixFirefoxAnchorBug : function() {
if (document.location.hash && $.browser.mozilla)
window.setTimeout(function() {
document.location.href += '';
}, 10);
},
/**
* highlight the search words provided in the url in the text
*/
highlightSearchWords : function() {
var params = $.getQueryParameters();
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
if (terms.length) {
var body = $('div.body');
if (!body.length) {
body = $('body');
}
window.setTimeout(function() {
$.each(terms, function() {
body.highlightText(this.toLowerCase(), 'highlighted');
});
}, 10);
$('<p class="highlight-link"><a href="javascript:Documentation.' +
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
.appendTo($('#searchbox'));
}
},
/**
* init the domain index toggle buttons
*/
initIndexTable : function() {
var togglers = $('img.toggler').click(function() {
var src = $(this).attr('src');
var idnum = $(this).attr('id').substr(7);
$('tr.cg-' + idnum).toggle();
if (src.substr(-9) === 'minus.png')
$(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
else
$(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
}).css('display', '');
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
togglers.click();
}
},
/**
* helper function to hide the search marks again
*/
hideSearchWords : function() {
$('#searchbox .highlight-link').fadeOut(300);
$('span.highlighted').removeClass('highlighted');
var url = new URL(window.location);
url.searchParams.delete('highlight');
window.history.replaceState({}, '', url);
},
/**
* helper function to focus on search bar
*/
focusSearchBar : function() {
$('input[name=q]').first().focus();
},
/**
* make the url absolute
*/
makeURL : function(relativeURL) {
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
},
/**
* get the current relative url
*/
getCurrentURL : function() {
var path = document.location.pathname;
var parts = path.split(/\//);
$.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
if (this === '..')
parts.pop();
});
var url = parts.join('/');
return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
},
initOnKeyListeners: function() {
// only install a listener if it is really needed
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS)
return;
$(document).keydown(function(event) {
var activeElementType = document.activeElement.tagName;
// don't navigate when in search box, textarea, dropdown or button
if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT'
&& activeElementType !== 'BUTTON') {
if (event.altKey || event.ctrlKey || event.metaKey)
return;
if (!event.shiftKey) {
switch (event.key) {
case 'ArrowLeft':
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS)
break;
var prevHref = $('link[rel="prev"]').prop('href');
if (prevHref) {
window.location.href = prevHref;
return false;
}
break;
case 'ArrowRight':
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS)
break;
var nextHref = $('link[rel="next"]').prop('href');
if (nextHref) {
window.location.href = nextHref;
return false;
}
break;
case 'Escape':
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS)
break;
Documentation.hideSearchWords();
return false;
}
}
// some keyboard layouts may need Shift to get /
switch (event.key) {
case '/':
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS)
break;
Documentation.focusSearchBar();
return false;
}
}
});
}
};
// quick alias for translations
_ = Documentation.gettext;
$(document).ready(function() {
Documentation.init();
});
+14
View File
@@ -0,0 +1,14 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: 'latest',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
FILE_SUFFIX: '.html',
LINK_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false,
SHOW_SEARCH_SUMMARY: true,
ENABLE_SEARCH_SHORTCUTS: true,
};
+77
View File
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 593.3 134.2" style="enable-background:new 0 0 593.3 134.2;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FF3034;}
.st1{fill:#666565;}
.st2{enable-background:new ;}
.st3{fill:#FFFEFE;}
.st4{fill:none;stroke:#E71D16;stroke-width:3;stroke-miterlimit:10;}
</style>
<g id="XMLID_230_">
<path id="XMLID_28_" class="st0" d="M61.7,90.5c0,3.6-2.9,6.5-6.5,6.5s-6.5-2.9-6.5-6.5s2.9-6.5,6.5-6.5S61.7,86.9,61.7,90.5"/>
<path id="XMLID_27_" class="st0" d="M118.9,83.7C114.7,54,91.1,30.4,61.4,26.2c-3.5,1.8-6.7,4.2-9.5,6.9v6.3
c29.7,0,53.8,24.1,53.8,53.8h6.3C114.7,90.4,117,87.2,118.9,83.7"/>
<path id="XMLID_26_" class="st0" d="M123.8,63.8c0-23.5-19.1-42.6-42.6-42.6c-1.5,0-2.9,0.1-4.4,0.2l-1,2.8
c20.9,7.3,37.5,23.9,44.9,44.8l2.8-1C123.7,66.7,123.8,65.3,123.8,63.8"/>
<path id="XMLID_25_" class="st0" d="M81.1,96.1c1-10.6-3.7-20.4-11.6-26.4c-4.2-3.2-9.2-5.2-14.8-5.8c-1.5-0.2-2.5-1.4-2.4-2.9
c0.1-1.3,1.2-2.3,2.6-2.4c0.1,0,0.2,0,0.3,0c6,0.6,11.6,2.7,16.2,6c10,6.9,16.1,19,14.8,32c-0.2,2.1-0.6,4-1.2,6l7.7,2.2
c2.3-0.7,4.5-1.5,6.7-2.5c0.5-2.9,0.9-6,0.9-9.1c0-24.4-18-44.6-41.4-48c-2.8-0.4-5.7-0.4-7.7,0.1c-7.2,1.8-12.5,8.3-12.5,16.1
c0,7.4,4.8,13.7,11.5,15.8c1.3,0.4,3.2,0.6,4.2,0.7l0,0c7.3,1.3,12.9,7.7,12.9,15.3c0,3.1-0.9,6-2.5,8.4l5.3,3.4
c2.6,0.7,5.2,1.1,7.9,1.3C79.7,103.2,80.8,99.8,81.1,96.1"/>
<path id="XMLID_24_" class="st0" d="M81.7,114.4c-13.5,0-26.2-5.3-35.8-14.8C36.3,90,31.1,77.3,31.1,63.8S36.4,37.6,45.9,28
c0.7-0.7,2-0.7,2.7,0s0.7,2,0,2.7c-8.8,8.8-13.7,20.6-13.7,33.1S39.8,88,48.6,96.9c8.8,8.8,20.6,13.7,33.1,13.7s24.2-4.9,33.1-13.7
c0.7-0.7,2-0.7,2.7,0s0.7,2,0,2.7C107.9,109.1,95.2,114.4,81.7,114.4"/>
</g>
<g>
<path id="XMLID_226_" class="st1" d="M250.7,102.8V32.1c5.2,0,12.6,0,22.1,0c3,0,6-0.1,8.3,0c3.9,0.1,6.7,0.8,9.8,3.8
c2.6,2.5,3.3,5.1,3.5,8.5c0,2.7,0,5.9,0,9.8c0,1.9,0,3.7,0,5.5c0,1.9,0.1,2.1-0.1,3.6c-0.4,3.9-2,6.1-3.7,8
c-1.5,1.7-3.3,2.8-6.1,3.3c-2.5,0.4-6,0.3-9.5,0.3c-3.7,0-11,0-14.6,0l-0.1,27.9C260.3,102.8,250.7,102.8,250.7,102.8z M260.2,66.5
h12.4c1.9,0,4.1,0.1,6.3-0.1c1.7-0.2,3.3-0.4,4.3-1.3c2.3-2.2,1.9-5.3,1.9-10c0-2,0-3.7-0.1-5.5c-0.1-1.5,0.3-5.4-1.5-7.3
c-1.9-2-4.2-1.7-5.8-1.7c-1.7,0-3.3,0-5,0h-12.4L260.2,66.5z M272.8,32.1c3,0,5.8-0.1,8.3,0c3.9,0.1,6.7,0.8,9.8,3.8"/>
<path id="XMLID_223_" class="st1" d="M349.7,102.9h-10.3c0,0-3-15.5-4.4-20.8c-1.3-4.8-3.2-6.8-4.5-7.5c-1.7-0.9-3.4-1.1-5.1-1.1
l-12.6-0.1l0.1,29.4h-9.1V32.4c5.3,0,12.5,0,22,0c2.1,0,4.2,0,6.2,0c1.8,0,3.8,0,5.2,0.3c2.9,0.7,4.1,1.6,5.6,3.1
c3.1,3.2,3.2,8.9,3.2,16.7c0,5.2,0.2,11.4-1.5,14.3c-1.4,2.5-3.4,3.4-7.1,4.2H337c4.4,1.2,6.7,4.1,7.8,10L349.7,102.9z M312.9,65.2
h12.5c2.4,0,6.3,0.2,8.5-0.3c0.9-0.2,1.4-0.6,1.8-1.1c0.4-0.5,0.5-1.1,0.7-1.8c0.3-2.1,0.2-5.5,0.2-8.5c0-2.2,0-4.7-0.1-7.1
c0-1.9-0.4-3.5-1.3-4.4c-1.2-1.2-2.6-1.2-4.8-1.3c-1.7-0.1-3.8,0-5.4,0l-12.3,0.1L312.9,65.2z"/>
<g>
<path class="st1" d="M188.6,94.2l-0.1,8.7c-5.7,0-14.6,0-27.3,0c-3.9,0-7.1-1.1-9.3-3.4c-2.3-2.3-3.5-5.4-3.5-9.2V44.8
c0.1-3.9,1.2-7,3.5-9.2c2.3-2.3,5.4-3.4,9.3-3.4c12.6,0,21.7,0.1,27.3,0.1V41h-25.7c-1.9,0-3.2,0.5-3.9,1.5c-0.8,1-1.2,2.7-1.2,5
v14.1h26.9v8.3h-26.9v17.9c0,2.4,0.4,4.1,1.2,5c0.8,1,2.1,1.5,3.9,1.5L188.6,94.2z"/>
<path class="st1" d="M396.5,94.1l-0.1,8.7c-5.7,0-14.6,0-27.3,0c-3.9,0-7.1-1.1-9.3-3.4c-2.3-2.3-3.5-5.4-3.5-9.2V44.6
c0.1-3.9,1.2-7,3.5-9.2c2.3-2.3,5.4-3.4,9.3-3.4c12.6,0,21.7,0.1,27.3,0.1v8.7h-25.7c-1.9,0-3.2,0.5-3.9,1.5c-0.8,1-1.2,2.7-1.2,5
v14.1h26.9v8.3h-26.9v17.9c0,2.4,0.4,4.1,1.2,5c0.8,1,2.1,1.5,3.9,1.5L396.5,94.1z"/>
<image style="display:none;overflow:visible;enable-background:new ;" width="183" height="304" xlink:href="F2A76EEE96E44F61.png" transform="matrix(0.2353 0 0 0.2353 253.0778 31.2379)">
</image>
<image style="display:none;overflow:visible;enable-background:new ;" width="196" height="304" xlink:href="F2A76EEE96E44F63.png" transform="matrix(0.2339 0 0 0.2339 307.7243 31.4485)">
</image>
<path class="st1" d="M519.1,102.7h-9.3V32.3h9.3V102.7z"/>
<path class="st1" d="M568,40.8h-24.1c-2.2,0-3.7,0.5-4.6,1.5s-1.3,2.7-1.3,5v15.2h26.1v8.3H538v31.8h-9.3V45.3
c0-4.1,1.2-7.4,3.5-9.7s5.5-3.4,9.4-3.4c12.3,0,20.8,0,26.4,0.1V40.8z"/>
</g>
<path id="XMLID_221_" class="st1" d="M225.4,71.5c-3.7-0.1-13.6,0.3-16.6-0.3c-4.6-0.8-7.3-2.8-9.2-6.1c-1.9-3.3-1.4-9.1-1.4-14.4
c0-5.7-0.1-9.7,1.5-12.8c0.6-1.2,1.2-2.1,2.3-3c3.5-3.1,9.5-2.6,17.4-2.6c7.5,0,12.9-0.1,18.5,0v8.5c-4.9,0-13.2-0.1-20.4-0.1
c-2.8,0-5.5-0.1-7.4,0.3c-0.4,0.1-0.6,0.2-0.9,0.4c-0.4,0.2-0.7,0.6-1,1c-0.7,1.3-0.7,3.2-0.7,5.3c0,2.3-0.2,10.5,0.5,11.6
c1.2,2,2.7,2,4.8,2c1.3,0,5.2,0,7.8,0c3.1,0,6.7,0,8.2,0.2c2.6,0.3,4.7,1,6.2,1.8c2.1,1.1,3.2,2.4,4.3,4.2c1.2,2.1,1.4,4.2,1.4,6.9
c0,2,0,4.7,0,6.9c0,2.5,0.1,7.1-0.3,9.6c-0.6,4.4-2.1,7.2-4.4,9.1c-1.7,1.4-3.8,2.3-6.7,2.6c-1.5,0.2-3.3,0.2-5.3,0.2
c-1.5,0-3.2,0-5,0c-6.6,0-14.2,0-20.9,0V94c12.2,0,20,0,20.8,0c1.6,0,6.1,0,7.1,0c2.1,0,3.1-0.1,4-1c0.9-0.8,1-2.2,1-4.2
c0-0.4,0-2.7,0-4.9c0-1.9,0-3.7,0-4.1c0-2.6,0.2-5.3-1.1-6.7C228.8,71.7,227.9,71.5,225.4,71.5z"/>
<path id="XMLID_214_" class="st1" d="M433.3,71.5c-3.7-0.1-13.6,0.3-16.6-0.3c-4.6-0.8-7.3-2.8-9.2-6.1c-1.9-3.3-1.4-9.1-1.4-14.4
c0-5.7-0.1-9.7,1.5-12.8c0.6-1.2,1.2-2.1,2.3-3c3.5-3.1,9.5-2.6,17.4-2.6c7.5,0,12.9-0.1,18.5,0v8.5c-4.9,0-13.2-0.1-20.4-0.1
c-2.8,0-5.5-0.1-7.4,0.3c-0.4,0.1-0.6,0.2-0.9,0.4c-0.4,0.2-0.7,0.6-1,1c-0.7,1.3-0.7,3.2-0.7,5.3c0,2.3-0.2,10.5,0.5,11.6
c1.2,2,2.7,2,4.8,2c1.3,0,5.2,0,7.8,0c3.1,0,6.7,0,8.2,0.2c2.6,0.3,4.7,1,6.2,1.8c2.1,1.1,3.1,2.2,4.2,4.2c1.2,2.1,1.5,4.2,1.5,6.9
c0,2,0,4.7,0,6.9c0,2.5,0.1,7.1-0.3,9.6c-0.6,4.4-2.1,7.2-4.4,9.1c-1.7,1.4-3.8,2.3-6.7,2.6c-1.5,0.2-3.3,0.2-5.3,0.2
c-1.5,0-3.2,0-5,0c-6.6,0-14.2,0-20.9,0V94c12.2,0,20,0,20.8,0c1.6,0,6.1,0,7.1,0c2.1,0,3.1-0.1,4-1c0.9-0.8,1-2.2,1-4.2
c0-0.4,0-2.7,0-4.9c0-1.9,0-3.7,0-4.1c0-2.6,0.2-5.3-1.1-6.7C436.7,71.7,435.8,71.5,433.3,71.5z"/>
<path id="XMLID_212_" class="st1" d="M484.6,71.5c-3.7-0.1-13.6,0.3-16.6-0.3c-4.6-0.8-7.3-2.8-9.2-6.1c-1.9-3.3-1.4-9.1-1.4-14.4
c0-5.7-0.1-9.7,1.5-12.8c0.6-1.2,1.2-2.1,2.3-3c3.5-3.1,9.5-2.6,17.4-2.6c7.5,0,12.9-0.1,18.5,0v8.5c-4.9,0-13.2-0.1-20.4-0.1
c-2.8,0-5.5-0.1-7.4,0.3c-0.4,0.1-0.6,0.2-0.9,0.4c-0.4,0.2-0.7,0.6-1,1c-0.7,1.3-0.7,3.2-0.7,5.3c0,2.3-0.2,10.5,0.5,11.6
c1.2,2,2.7,2,4.8,2c1.3,0,5.2,0,7.8,0c3.1,0,6.7,0,8.2,0.2c2.6,0.3,4.7,1,6.2,1.8c2.1,1.1,3.1,2.2,4.2,4.2c1.2,2.1,1.5,4.2,1.5,6.9
c0,2,0,4.7,0,6.9c0,2.5,0.1,7.1-0.3,9.6c-0.6,4.4-2.1,7.2-4.4,9.1c-1.7,1.4-3.8,2.3-6.7,2.6c-1.5,0.2-3.3,0.2-5.3,0.2
c-1.5,0-3.2,0-5,0c-6.6,0-14.2,0-20.9,0V94c12.2,0,20,0,20.8,0c1.6,0,6.1,0,7.1,0c2.1,0,3.1-0.1,4-1c0.9-0.8,1-2.2,1-4.2
c0-0.4,0-2.7,0-4.9c0-1.9,0-3.7,0-4.1c0-2.6,0.2-5.3-1.1-6.7C488,71.7,487.1,71.5,484.6,71.5z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

+785
View File
@@ -0,0 +1,785 @@
%PDF-1.5␍%âãÏÓ
1 0 obj␍<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R]/Order 6 0 R/RBGroups[]>>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>>␍endobj␍2 0 obj␍<</Length 24952/Subtype/XML/Type/Metadata>>stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c067 79.157747, 2015/03/30-23:40:42 ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
<xmp:CreatorTool>Adobe Illustrator CC 2015 (Macintosh)</xmp:CreatorTool>
<xmp:CreateDate>2018-07-17T18:09:55+08:00</xmp:CreateDate>
<xmp:ModifyDate>2018-07-17T18:09:55+08:00</xmp:ModifyDate>
<xmp:MetadataDate>2018-07-17T18:09:55+08:00</xmp:MetadataDate>
<xmp:Thumbnails>
<rdf:Alt>
<rdf:li rdf:parseType="Resource">
<xmpGImg:width>256</xmpGImg:width>
<xmpGImg:height>256</xmpGImg:height>
<xmpGImg:format>JPEG</xmpGImg:format>
<xmpGImg:image>/9j/4AAQSkZJRgABAgEAkACQAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAkAAAAAEA&#xA;AQCQAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7&#xA;FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX&#xA;Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8Q/Pz8+Na8h6zp+i+X4bOe8lgNzftdq8nBWbjCqiOSOhP&#xA;BieVdqYCWUY28r/6G5/M/wD5ZNJ/6R5/+q+DiZcARFl/zl/+Yccym70vSriDfmiR3ETnbaj+s4G/&#xA;+SceJeBk+lf85lW7ShdW8sPHFTeW0uhI1a/77kjjHT/Lx4kcDP8Ay5/zkz+VGstHHNfy6RcSEgRa&#xA;hEY1BHjLGZYVG37TjDbHhL0vTNW0vVbRLzTLyG+tHFUnt5FljPyZCRhQisVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVSfzR5w8s+VdOOo+YNQi0+1rRWkJLO1CeMca1d2oOign&#xA;FWI6b/zkP+T9/snmGOB6043MM8Peg+J4wm/XrgtNFmek+Z/LWsAHSNWs9RqK/wCi3EU2w6/YZsKE&#xA;zxV2KvMPzL/5x+8neetQl1e4mudP1uVFRryF/Ujb0wFXnDJVaBR+wV8cBCRKnz151/5xl/Mby6sl&#xA;xYQpr9gm/qWIPrgVI+K3b46/6nLBTMSeSyxSwyNFKjRyoeLo4KsCOxB6ZFktxV2KphonmHXdCvFv&#xA;dG1C40+6Ug+rbSNGTQ1o3EjkPY7YVp7d5F/5y18y6eY7XzdZrrFoKA3tuFgu1G9SyikUnbb4PmcP&#xA;EwMX0f5L/MPyh5zsjdeXtRjuuABntj8FxFUkD1Imo61INDSh7HJMSGR4odirsVdirsVdirsVdirs&#xA;VdirsVdirsVdiqC1rWdM0XSrrVdUuFtdPs0MtxO/RVHy3JJ2AG5O2Kvn3y7/AM5ZW9z5+uLfVrYW&#xA;vk+6ZYbC44/v7fiaCaahPJZK/EB9nalaGotlwvoyGaGeGOeCRZYZVDxSoQysrCqsrDYgjocLFfir&#xA;w/8ANz/nJfRvLLTaP5WEWra4pKTXJPK0tmHWpX+9cHbiDQdz2wEshG3yl5i8z+YPMmpPqWu38uoX&#xA;snWWZq0H8qKKKi/5KgDIswEswJXRySRuHjYo6mqspIIPsRirM/Ln50fmf5e4Lp/mG6aBBRba6YXU&#xA;QHgEnEnH/Y0w2jhD1ryp/wA5hahFwh81aIlwgADXmnMY326kwyllYn2dRh4mJg9r8m/nN+XPm4pF&#xA;pWrxpev00+6/0e4rXoqvQOf9QtkrYkM2xQwvz/8AlB5E88pz1qx4agF4x6pakQ3SgEbF6MsgoKAS&#xA;KwG9KYKSDT5g/Mn/AJxs86+Ullv9Mrr+ixjk9xbIVuIlABJltwXNBv8AEhYUFW44CGYk8iyLJ2Ku&#xA;xVF6Tq+qaPqEOo6XdS2V9btyhuIWKOp+Y7HuO+FX05+Un/OUlrfmHRvPbJaXdFSHXFASCVun+kKA&#xA;BE3+WPg8QuSBazF9EI6uodCGVgCrA1BB6EHCxbxV2KuxV2KuxV2KuxV2KuxV2KuxVpmVVLMQqqKs&#xA;x2AA7nFXxj/zkF+c0nnTVzoujzH/AAvp0n7tl2F1MuxmbxQb+mPp+USWyIY9+Tv5Sap+YevGEM1r&#xA;olnRtTvwK0B6RR12Mj9vAbnsCAFJp9yaPo+m6NpdrpWmQLbWFnGIreBOiovz3J8SeuTa3hf/ADlZ&#xA;+YXmTQbPTPL2kT/VLfWIp3v7iOomZEKqIlb9lW5HlTc9NhWoJZRD5PyDY7FXYq7FXYq7FXAkGo64&#xA;q9K8if8AOQP5i+UjFAt7+ldLjoPqF+WlAUVFI5a+olK7UNPbDbExfS35d/8AOQ3kPziY7SSb9C6y&#xA;9ALC8ZQrse0M+yP8jxb/ACckCwIp6hhQ8o/NP/nHjyl50E+o2Cro3mN+Tm8hX9zPITX/AEmIbEk1&#xA;q60bep5dMBCRKnyP528heaPJertpmv2bW8pqbedfignQH7cMg2Ybj3HcA7ZEhsBtj2BLsVdir2j8&#xA;kf8AnIO/8nyQ6H5ieS88sMQkUm7y2dSByTqWiHdO37PgZAsTF9hWN9Z39nBe2U6XNpcostvcRMGR&#xA;0YVVlYbEEZJrVsVdirsVdirsVdirsVdirsVdirwL/nKP81n0bS18maRNw1LU4+eqTIfiitTsIxTo&#xA;03f/ACf9bASyiHzR5J8n6t5w8y2WgaWtbm7ejSt9iKMbySvT9lF3/Ab5EMyaffHknydo3k/y3aaD&#xA;pMfG2tl+OQgc5ZT9uWQjqzH+nQZNqTzFXzF/zmbbxrc+UrgV9SRL+NvCkZtyP+ThyMmcHzZkWbsV&#xA;dirsVdirsVdirsVdir138sP+cj/N/lForDVmfXNBWi/V5n/0iFdh+5mapooGyNt4cckCxMX1l5K8&#xA;++VvOmlDUtAvVuYxQTwH4ZoWIrwljO6n8D2JyTWQjPM/lXy/5o0iXSNeskvrCUhvTeoKuKgPG60Z&#xA;HFTRlNcVfHP5xfkJr3kOaXU7HnqXlVnAjvQKy24c0VLoKABueIkA4safZJC5AhsEreVYGTsVdir2&#xA;j/nHz87ZPJ9+nl7XJi3li9k/dyuSfqczn7YqdomP2x2+141kCxkH2Ojq6h0IZWAKsDUEHoQck1t4&#xA;q7FXYq7FXYq7FXYq7FUn84eaNP8AK3lnUfMGoH/RtPhMpQGhd+kcanxdyFHzxV+fPmTzBqXmLXb7&#xA;W9Tk9W+v5WmmbsK9FXwVVoqjsBkG0B9e/wDONv5Xr5T8prreoQ8de1xFlk5D4obU/FFFuKgt9t/e&#xA;g/ZyQDCRt7DhYuxV5x+cP5M235lfoj19VfTP0T9Y48IRN6n1n0utXSnH0fxwEJBp5nP/AM4ZWxA9&#xA;DzY6HevqWIcHw6XCUwcLLjSK8/5w683oD9S13T5z2Eyzwj/hVmx4V42Iax/zjV+b2mq0i6Sl/EnV&#xA;rOeKQ/QjFJD9C40niDz/AFny35h0Sb0dZ0y606WtAl1DJCT8uYWv0YE2l2BLsVdirsVdirsVTXyz&#xA;5p1/yxq0WraHeyWV7CdnQ/Cy1qUkU/C6HurCmFBD7D/Jz8/dE89RppepCPTPM6rva8qQ3PEbtblj&#xA;WvcxncDxFTkgWsinqlxb29zby21zEk1vMjRzQyKHR0cUZWU1BBBoQcKHyT+ev/OPNx5ba48yeVIX&#xA;n8vUaW9sgeUlmK7sv7Tw7+5Uddt8iQzjJ4TkWbsVdir6n/5xb/Ns31qvkTWZh9btELaHM7fFLCgq&#xA;1vv+1EBVP8io/ZyYLXIPonCxdirsVdirsVdirsVdir5g/wCcu/PbSXWneSrST93CBf6oAertVYIz&#xA;/qrycj/KXwyJZxDzj8gPy+HnLz/bLdRepo+lUvdRqKqwQ/uoj/xkfqP5QcACZF9zZNrdirsVQN9r&#xA;2h2BIvtRtbQjqJ5o4zv0+0RiqBh89+SJpDFD5h0ySRTxZEvLdmB8CA/XFU5gngniWWCRZYmrxkQh&#xA;lNDQ0I264qvxVSurS1u7d7e6hS4t5BSSGVQ6MAa7qwIOKvNPNn/OOH5W+YfUlj046PePU/WNOb0V&#xA;5HpWEhoaV8FHzwUkSLwzzv8A84qeeNFEt1oEsfmCxSrCKMejdhev90xKvT/Ick/y4KZiTxi8sryy&#xA;uZLW9gktrmI8ZYJkaORT4MrAELine truncated
</rdf:li>
</rdf:Alt>
</xmp:Thumbnails>
<xmpTPg:NPages>1</xmpTPg:NPages>
<xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
<xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
<xmpTPg:MaxPageSize rdf:parseType="Resource">
<stDim:w>56.333333</stDim:w>
<stDim:h>57.333333</stDim:h>
<stDim:unit>Pixels</stDim:unit>
</xmpTPg:MaxPageSize>
<xmpTPg:PlateNames>
<rdf:Seq>
<rdf:li>Black</rdf:li>
</rdf:Seq>
</xmpTPg:PlateNames>
<xmpTPg:SwatchGroups>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<xmpG:groupName>默认色�组</xmpG:groupName>
<xmpG:groupType>0</xmpG:groupType>
</rdf:li>
</rdf:Seq>
</xmpTPg:SwatchGroups>
<dc:format>application/pdf</dc:format>
<dc:title>
<rdf:Alt>
<rdf:li xml:lang="x-default">黑鱼白底</rdf:li>
</rdf:Alt>
</dc:title>
<xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
<xmpMM:DocumentID>xmp.did:279a03ea-f3e7-40a3-ae53-771dd64b883e</xmpMM:DocumentID>
<xmpMM:InstanceID>uuid:c3a85fc4-4db4-b943-8504-bfeab2b33386</xmpMM:InstanceID>
<xmpMM:OriginalDocumentID>uuid:f45c532c-a658-3748-b74d-0cf5e658e16a</xmpMM:OriginalDocumentID>
<xmpMM:DerivedFrom rdf:parseType="Resource">
<stRef:instanceID>uuid:28112cc2-f74a-0b45-b4e8-5de3f55b3424</stRef:instanceID>
<stRef:documentID>uuid:f45c532c-a658-3748-b74d-0cf5e658e16a</stRef:documentID>
<stRef:originalDocumentID>uuid:f45c532c-a658-3748-b74d-0cf5e658e16a</stRef:originalDocumentID>
<stRef:renditionClass>proof:pdf</stRef:renditionClass>
</xmpMM:DerivedFrom>
<xmpMM:History>
<rdf:Seq>
<rdf:li rdf:parseType="Resource">
<stEvt:action>saved</stEvt:action>
<stEvt:instanceID>xmp.iid:279a03ea-f3e7-40a3-ae53-771dd64b883e</stEvt:instanceID>
<stEvt:when>2018-07-17T18:09:54+08:00</stEvt:when>
<stEvt:softwareAgent>Adobe Illustrator CC 2015 (Macintosh)</stEvt:softwareAgent>
<stEvt:changed>/</stEvt:changed>
</rdf:li>
</rdf:Seq>
</xmpMM:History>
<pdf:Producer>Adobe PDF library 15.00</pdf:Producer>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>␍endstream␍endobj␍3 0 obj␍<</Count 1/Kids[7 0 R]/Type/Pages>>␍endobj␍7 0 obj␍<</ArtBox[0.0 0.0 56.3333 57.3333]/BleedBox[0.0 0.0 56.3333 57.3333]/Contents 8 0 R/LastModified(D:20180717180955+08'00')/MediaBox[0.0 0.0 56.3333 57.3333]/Parent 3 0 R/PieceInfo<</Illustrator 9 0 R>>/Resources<</ExtGState<</GS0 10 0 R>>/Properties<</MC0 5 0 R>>>>/Thumb 11 0 R/TrimBox[0.0 0.0 56.3333 57.3333]/Type/Page>>␍endobj␍8 0 obj␍<</Filter/FlateDecode/Length 39113>>stream
H‰DWË®\·ÜÏWœ˜Ù|o£l‰á…×� 'q$ÃRø÷S�>70ä¹U‡l’Íîêæ»¿¼¿Þ}x_®?ýùýõ(—ÿû×ãÝ_?}ûøé÷ÿü÷oŸ¯oÿ|¼ûî§rýýß0櫵~�¥ŸoŸ¿<¾âƒpó×v=âóÏ×oo†x”W)ûúãj¯hçúpÅõ+þ}=žíµë5Û«õ~ÍùZ½^Ïü…•Ÿ?¦•Ší}Åÿýwì×Ù-WŸ×Ç/õåñ,¯Ó¯g`þ¼>®I¸Ë1ë¯0nGø´¸a·Õ¸4ãÉïåU;Qʼnš‡@?[`nÁÉ…q¬¶÷„½ÐN…Ù&¸¶`T¢Ñ�PÛ‹pFSS'F(5œk žªÁ»sñ*G†OÝ‚1µÃ£¹ñê_û«¬*8¹ÿŽCÁuô5b ¬Ø
!Íu»6GØèŠþê:.N²5ØGÀf'Ñl!´ñ ¸êÄòES·@]C`wÁÖeç,¡ÁÃ�WSpnÁÚ=vÁÐ*“°Émua7jSh …êkO”•©␍Œ×Æ�×â’¥y{Á(Axflt�-8�€utÁɈÀœQ7&¶ÎÁ ÛÕ×Þ‡`Åf‡Î†°f¼ÀDÂQ5x%œ›Y‚K7Ü]–�b~Û¿X@w±_•GÇÚÆ†&aŒ!¨‹Ãzž:»>öé�»hêXžzli*jÏ«F#\{ò<Ø‹Bí¼zä^Bpð6°—j¸°ÀÃlÊ«Š¬›AlßTf¥¾�±ŒÛÒô©}��õ¥;¬E;Þçï†ñçUj~§vצùtâèË8ö$nrpG÷ÆÃßgÉù« ¯ü¼áÀ­Ø«HJ›?3qåõñ˜»™hqDDé&:³‚U.‚ �è#m0ÿIŒ5L¸–Äô¡¡YÃ#v QlãØ†5÷‰ýËPf1Ï_rÊÔÆê}3�zž™aÂËÂ%GF‘ÝÃÄŠ$ÙôÊH¢5Û8>>D„«Â-Òà‰ZA"ïÊчˆ¶�÷áá EîWϘ–С$‘!•ØGÄ©9¢3zå¦abÈ_MûAí¤—šáÎ –<GkÀIuèï�NêID�"¶R¤2ùIti•_4œd9GÆ3y餲M,Š'�”&ö8ÂÃõi¿ms©ÔÔ¥${ÊKÕD0|é%G³=DÔœá{‡JÖ0«pÞòÊMÀ%ª£ TÏ@,I3ˆÃzG§8„‘ù‡6§âA„’˜NqÖ0ݧˆ6Œ»lBïc5ó61O±K»Øæ¹êÑ%Á¾ä<uˆ>ÇDÑ%E B™•›9%g¬üÞ¿8²3íäá„–�£ÂF¢î´°©±<ao&Nóˆ®ä ¤~·�)IQ•68‘BDš8««ÖÔ[´@ô"â$1–GX#@Ìí³&±*GY,b++¸¿0qèaîÏCuCÁíè¢AT5XX^‰"’RG- §y�Æ«1#˜¦W®¡ºNK-M.ê3'–±—§Œ™#Îê"–
W@cY·ùA¡¢2†ùa³•¿- å"~»ÄŽ0Mð;ìrüÁ’¡–KĬq¯BÐ�}::¤6M2‰{ä5U ,—œÊp ösa¢2üð{Z7”þèÒ «2ˆX+‰½EH"¸ÚœÑŒÇ°…urÂl&ÎÊ]PÕãeq¨Ã±µo(ÂI›‡=ˆé¡¤ »'!fÅ�ùò}PáŽp=ÓDÈÒßî†äÉ»Èÿ‘x{ÆrCÊfSø” סÑٹČ´¯#Ï[np5³¦9u7 Ò- äjYGS�Øþ¡v†Dk7ÁNĨITVÌ T­$ާlekWmTÕì�x ’¥ŒV�›(’„,”ÿÃ%]WœÚÀ´Ü0€�ÖÓ¢b¾™PÆ,±³©±Î°£BÄ[˜™aÛ¸;GÇI -3ÐO±œ�ᘙns˜çŽä©~‡:°ÕÃ7g[)æì&v÷€•3â¤{ÕùR.¥Þ ô £‚Å1ÑWj\Ï h©“ã^$RIÛN’
*iI¢¨¡xØ¡„¾­Î=‰�ò=ë\Õÿ‹a¢•Œîa\ãŽn¾<Y8}VäÃvJqæÓ¨»0�;¥fV®}çàpmë©Û¥­Ìu§uw½<9`dQ^·‰.÷ñÝ‘ÚѦKl[9%º‰[ž"\ÖÃTô÷H–N³OØI°? 1j*âlžÒzŽåd/rë²|Ë\Û·ro÷3=•=;¢yët)î€F™w¹ðŒ–åcu÷Lõ­âT¥œ»D¹Q³PôfS¼¹Ê…»ÃaÏUëÛCgª›š*ö�Y±wN)wq�¬¥5¤3®ØÃmëº t�llï®—;ß“6jÏÞ¸eŸ ¦žeîî=²CÏF÷dhÖ¬0L„cbÞ=’Â>9 ©ÿfe_&*UŽï¤»Ÿ)ºx¶ —û°åÌvЧŸ<|�¸%‚@n�-;µÞm¢ù°µšA-‰ê7PÙÙ–¢WÜiÙrî¡Wk•›Ô¢gÖìÙöŽ!ÜÝ(#oŠÆ·žãƒ-×�õêýJt§8�ôèÀjvÞËoXç'ÛÒîWhäøÎ»Új¦Ýì7}o=±òç|{.0wf+³ˆ©AˆÄ:Ë“!S0›ad—[™Y|á0ÜPMîñ´û¤8èø]eóÉSž+U0?Õ¸ ³{ºTøUÆíQ* ƒÏ£)½õ;�ÁŒC÷|;6K8tMÌp{²$–ôÌ—á¡sF6ž|œ²Ü Õd¿^¡øÀÓË…ôýÉGZ3^Só{ä÷Á2;Ô ³˜W¿�("Ây¹ÈìÖ�mã!Þ*ãLV~HÌIÌÇðX9žùødǵ�Yôžœj¬þN 9‰!sÕ�:*î>óSY„n˜Ì␍º0góu<y¶Ã¤êk�ïUs»¢ÑÏă*é Ço*x·øk°8Ò¹[PNg1]h+!·ZkÀ¥øØÎ¦x)X·š6 ¿™�ªêXò½¸%Ý€MÞA¢ª?É'"¸³#ÊÖcɇ€EO8Ä«}ù¢csGÝÐ{óócêy ¸ôlbpR3^ÚbSJ‡M5Á&]æ¶`ëv‘'Š/6Þ|Á␍•ÜgÍWÐÐ�°xjÐQ|΄` Á­v1Ô—„!Ô§ê#Fp(»Ãžo9Ï-<|QCÿù�€ØBZ–µèFu†BCÜ4°ÈO(Bë*øã�_?>¾>Ê5  Ö1õóLøíÓãçë7|æõúáQtw\M�±W\¿âß÷×ã+>{¦¢o›W@z'óñ‹æÿ�ê2Ç•ôÈ�°ß§¨ <!÷åaœqÚÐýÅdVcЀô‚nÅ%üý‹ëåk½ÉéåÇ»‹ˆ—`È |/?YÅò3U¡rêɽC¥C@fBÅKÁ;¹xJžÔ,G{÷nk|ï½wåQGÄÎ@˜_u¹™[¯"ñ.1îÀm@B4¡k¥N¶è nýPŠDžw�“Yº�°ÒNUæ[²R�RÅ`4ƒBóRq,ú/�ÝrŸe'<â¥ÑJ_+ÉÜ(¤Rмã¢:‚ÎDWœ@ÈÅŸÿ3»þOŒ»Ó«!³Š<Zâ“eâ1Ä£J�™±ëJ
‚@Ä~ËkE/ºq™R␍«àÎZ‚‹´x{Z0ÔµâëhÓXÿÀ¹vª´¶…”¡
û¤fƒ5å@=� h)Ϲjºp–½4L.0ZBRádýÂÒÚu_4†“ ª 4.(ÚAu&–õ�)¸Õ}ÅÁ®Pú‡š Ú¤B{ÓAß.JwŸFW] ûGH7¥¦ES~‡whoÿTíÓ\¬½éŽ
{�´4VjЛ¬ri¦ÒžÖ[¼zG‚*¸òu�ü2nZHg4kÓÊ×·–߇:¾¥è
¼t�wåù{øû¶~CIÄþèj}=2J:„í©öÐ)Ê-ä´›:Få€lp´Î1ÞñÛɯ�Ñ™´õú‘ˆŒRËC¶Dö+m°'B‹¡y<9!ÒDMh¢’uÊÈáV"ŒìASµü¾Õê“ÂG †&‹Š8îìÂÃ
Z¢²*äÌEîj?Î.Ÿu?Õ_ïÊÕ°‚1n»ÁÜŠ…i1Î�|c†sãF2³Áj¥lM­“™ƒ\exs›íÂÀ(‚~x“z;&(+ûé␍ãÄ‚
XÉ‹ÕS
ü¬4´kÃ�è2\°BQع_mÀ†ÖfÒ*%œø’®'õ­G|,½=oP5 4RsyË␍ú 7 “J;ß…|©2§™Åˆ„†‚õ W^dH*a}␍pôo°cÇH-]†Ûj–žÌd…DÒnê}[n·¡·ø)ÃJŒù/²=å6b´Ò”ã­xš z�)3RÔ‚Þ‡Þ;Ó7zX”¾ÊzfÙù 4y¦Ýó £xŬ=␍<£æLF7†É“Æ
Nþ¶e␍Ó­–¸i¯pÍ–ºþ
ÜÖM,7µ7á‚q¡{âXVf3­¤aˆ%Cèg Ck[3ç„aá
ZÑLÃV˜Û—~HU~©ø'W¬ðX+␍],-ÃŒ’g‚%=g„gæÁð]pˆ2“QÜ¡<DN(Øy‰hAå$CÍäºÖ-¢†‰Òo­·b7Æ~g8ãU?ywlXÑÏÕï-;Ȉ4SwläÇÛ ۦµ_`&j´HgUÇÐÂ�d•ÈH†Ý„$2Á ä�ªP†ù5@Ý2¬¯áVŸ¹S 4Ï%m憅%Ã�t”�‡+ÅjÂ5�k™i8\ªœ3T·!ˆ‚)rB|ÈУçßâFðñ¥™sk6îT·[Ïp·␍;$#á[6œ”CŠÖ´áË¢¨Ä�œ&”‘è6!Ó-0x
Ç“ó;EˆÝÜÁO€Mk†‰†u}ÄLgNwF ÑPñÚñ–µŸ�x¨‚¦ì„‰á䙋aOøyŸŽîy¢~�|ÒDê¡x/ñ8åÏd¶ëàö5,‘<†ü¡º Ïœ8Œžìm,¾c&ÝÌ`ýµº¯\Ñ74” ºÚx¢ÑSJuúç+¯ ‡^_—Ë÷€æýs÷ÄÅß³!èªçE“áêã␍}¿'OÕ†òÝ›+²¥cq� °®ç†»Lå>c†öõœ|Hò¥ðßÖï°Í~ÑhËŒuÊ‹F9Þ’-£…$‡±‚ÿÉánœß”˜Aa3ØÛ•â#ß¡¤‰3úxIR‚åÚz¹zâ’y¿ôUétO§:óP¥÷0£ßcPÆ&ôÌ
Èu“ØûÐiføu^Íñ£0$§)>'ûÈ+Â^Ý%F{[ê°¡�ÿ«ìf)†S|K]ÏàlkîqÉËôžG9�a“~˜¸vwÔG¾Í*C�³Üa¿”Ö³?JË ±ê½¤—ø¶=R¬Ý+Z %¼&ú|␍­Ìkü¦Òó¢f õžxe±þÃú‘Øøn¨Óêcµ×Bî␍}ÚÂ{CÁ´×1Vˆž^_O™!‹Z}]Ç4)Yôí:5TP)ïŒÒ­ÎÎ}ÍŽl·ø:ßvhA·f^àAßú ‚çëôbí|¸\"Q�ÝW¤ód ¸yû|·ÊŒLClëÐ�Úø84¬ÛïLzÌ£oE©V¿c<ùq–Ïèí)OÇåæ,vF[GäTKô»[Ú²áÌwhåŒý&2¤Ô²,_õi­ª>Ï„ñ»eÿqÖ|DK…!xNh_y§|å䪴O#'¼º7s%ãᓌ§x¼YyÆtGÞ'CIîúªÌ¾=Ñ´wfë1!Õ§K‹ç³,C´ï°áÌg8±v{xy›O€ÏÛ|z»ß˜è2 h²ùîÓÛµÆL˜gôhæ3␍gÄTùìê92Ýn/ȦÍ,1fŒ©o–èŒZº|¼-•
ÐååÍ#E½„ËÿL0D]—g·H`q×y¸’ÛÇ38Ê!†ÂЯmë␍_ÈunO-‹ž—×B&2ûÎo‡<hž]ð)Íö½U,Ô½b”·bÆOýVÜ•a®ñ ÜzS#�”ËêÛR¨o�½Þ$‹>æìÏJ¸£:¥Â°–␍­=r�£¾+†|ÉQß‹ŽÚïPf;ŽªïZ&]vFX$K`�â&d|†¿×à%™Ú(ÛJ®§:î«eæÑ+¸ÂÝ¢/ýÁp�_ÑS÷©Úkm~]#†Eo¸þE\Êñã,1”7Ä]‘ÄúCasX�oc´€Síí–MpˆºôÓ2 ›Î•„U©�ü $ØOsoË’ý& öÁE"ö„_jÀe˜É�Þý Ísí±Á#y0΋ôüÚ*[ëʯ¼\tÙ'µ¤#çË_](Ò3E€uáø ºG ­¬7„žÓý¢1C°Õ2SÏøsÈéâžÞv9[õ¿6õ; •¨¤Õ̾¾<¨Ðg¢ŸÑÃM\÷œfx_â¹óéFL¨ªå`×i%ù­äiæSçÇ!‡¢³vÀ¾�)ªD»ÌOAM·rÊ5o­(A'¾aQž©TÃgÃ/¯OR0|ªpÕ{@\DMî€Û{[€EÁ*>¹téÖâÁÁp*=Ë«wyS/.¯£ `¯¹·wמojrØ�ŠnÌÀU´'ÜZ~¯*!ád¨áIGx†PòÞÚP‘Q6ß‘ø¨•þ ÂFâ
Œ¡ |Šþû¿_ÿú�þýóÑõ¯~:sˆ4ÖTî’]ÿýí¥¿%†”^í㟚LùÐ?öFp’␍ξ«NðNB¶æÃÑ��Å x½Þ¥æ@T²ix˜§2�'t1�¶£²™à¬~…C‘G�‘[ü9Sáèí=H˜øxy2–d8b0Q†—ϹVý}^nƒ$/ÐÓSD“œwfiï2º�¨8—GÀ©zqñÁoT–‹¨˜�'n9ªyÊп¡š™)R Ò }�ü5}T4ù‡KÞVB ñq5<]÷
��ÄŽ!O5Åĵ×踯4Ó(ÐåÚ,¾à*³T³ †ÉF,jæ¹X<ñ¹XЩ¯Oì…ø Ìet§Ñèœ$�'…NéÖéÀ°W_»vÀÁ£¶KH‰ÃêyÔòÁ׉Ð-äénª!©àáÅÃ%Oïpe^µø†H ëXÛª°·—ŽKåV©F+Ž�žH‡E ÝmÇWÿrZ`|½ÿ]-9¶%5p^«¸¨§tþ½Z ±BH�ÔLØ>ñqj=u…Oþn¦ŽXúzÕõ–š'›¦
ƒ ޝ4S� Ά«��ÀL̬*pþ²;Ÿ-¸‡‰¤èÔà)
dŠjåUûÒÃQ¨‰3)5Wé…œLM½þF’‚ÀhF³¦!é]zDœ…4›Æ!ž@ž-ã®jÚb)=ß–½�’aBr‰Ç¨‘¦0SJ4sTYÃÃ))‰¯žíHâI•uAñ¥Vxµcž¬—¡2kžœØS²P?y² •‡È¼ ñTy#Sx£”~éá´Ò�×ãgív”È�ãí®Ò r=?uu6‚’º"¤H
Æõò™CØEc¹…ÇŒ¼‚Ó�¿AÒ»F³ÇH›kñ”Ö°xŸÂÊa
l™ ‹¥?ÂWxü’_LµWÙ]t K,˜ZpÔí1*°ZM:ÂÐÖ
øŒô1á€x�^#jQ¯ðöÜdœ`×'§1j]!ŠYÙô¸ž1Ì~¡´eÀDŠÌ ±Ò2É#07Ž—Ü»Fø•Qåg80·—¸ºiæÃò&yÓ�½ø3h"¯G‰¶t%
8—¨N½5
^iÍœ §ÐPŽ
ˆ©ém¥S˜ÊÖU<Àòƒ…×›¤ˆ”©¢ËâOÉ(¨Ã�½°Àaº°™Y v¹ìqA¨ES%GѪWBÆDWàH=*…R�+%Ç$º^4³¦tUÎ)Ê$ÚÂ]´.ë€%2“J4tŠF˜Tl?¬]#Nóˆ}kĹ^ãøU¨¨B�Œ:h²ßxÀé„DW�P‘1Ѻ°},M *P•1p½„=3OW|u>&i�3j␍Ú ®…%˜p:á€ù�õ_{ˆVТNy§Œwl6êr�ˆ*E�À)L)ô5 ”ÓìÝ�>¼fŽ
ø¯ïŽº÷)`Êvÿr`òœô¬]Hé L‰␍ænvK"N°ßb.³Ö0ƒ2—§§¼s¦N«°âWr[› Ž¯±Ôð”LQ®{‰õFtÞggÕƼ
ص0ùÃ�4“!@™ÑY¥5b-JÜ¡ºÝ9¿eš˜ê=*�¥Àò«¡<(‰;k°–‚&lBf¾‹#÷݇’T� ç&àÞ
tëBTk�Ùk1ö!µF¼%0X]Ý[ÜVkú‡ÓœL©®O]»tƒ Ä;&c`¼]‹ªóšIúÝdôÿ€è3`~( ]ùv&ÜûLÚV†ê´Ó~„Y\„¢t0­Ï]KDµŠ!OÀ”JÓºÛ/s.½¨õ-{Ëu7*èÖµ�Ì6ã—®�)]­Íbg3³VŸÕ {«£F´]ûõêàÙk�ÐÌ]Ts×Ë rÓý{™¹ÑÐÓêbø1Yìž.I2xz£ÕŒy-‡ÒÎ!␍ë›k ð´@Ú®phQÞc×m{‰éâºþl«ÒPb¹°$ÛáÀ)ÖÞÉZõòåÀ�áŽ�cW„b‘h<,!‹sAÏVœîƒ—FŠÔ¢|ïåâ%µ¨îe=�Õð¬ï{iå¨ïkHJ¯{^•t ïªÃÑ4TÙ"ë¡£/®ê¬W×r9‹Kn†^¼pì'vþPKÈ}ì¢ );\Ê|ôe4â‡ß4>²¾“£hŠÞü6ä¾rÎDZW«ç
m7Mp¶à:5x±Y±␍¥Ï)\­h©êe«tÊ[‹µ#7š»z£²7`�3-6p½¾ÛÕÝ
/MŸ·ºóÜš>öë½Sv¶¯ê‹=4>F5Ö–Z¾EI–ÐúU"…Ït$ÖYé�p?y±Ø»–øÏ
ekò|eèóx¦óä?pÈ’~/‘ŽUsŽòS*‹èî]bDü|wùÞ³dÛd›ÄuÔb#gÔj2™¸ŽV°-M�'O³ ·[ø�ÆÓ�aU8T' Œô]Ü'¿Ô K¢Öõu=É]³ç�&'ÑŽ*”¹Fw³Š
8¢\ÍÖ·E¥ð¤)Ã}µú®ž†U«9 ¬h*€\Q/Ç*<+j<4|êÚQÒ$4Ü—==ç7ý–•>ÅõÄ!Y¡g#äq¿éäl¦š¤%��bJ­VçF%“hËÊP€>Ê%ŠÝ*‰o‰v L6…zÚ!†L—Eþ•"¤¯eo}¨¦»8¶›MÎ��U�ÛÌuܶ®õé¯[¯Ê‚´T>•ðhõ€¨N
~\¼èÅÈ»Ö`@ÓûæïjžÙ‘P␍ýóë_ùúã«}©b|ÖÖÿ¾ þçï_ýüŸù_|~û¢Ý¼Ÿÿ~†téŸ?ýó/üûÓçë|ö …÷›ÈÓAýWõ·ß5ÿ÷/m??­´φœhbiÁŽßƒ_§æB˜üºÅ ü™š{”ú¼„”½Æ.¤v“óúÀÄx,±!€RÄèàFB¾Eðâ‡0'†aáµR&a*Eø¤¸c䢀ï¿?/M™(~¤ô(8ð†Hø÷u6>ïë¼\éÞZiÁc uA:íÙ2<àê4¼�_§¬“µ„ªÓâÞÀ 〉”QÚ…uúÃÈÒ°ÆÀÜàãn4�åtJ5–:KȰvÁຕ†;¯TÙ7©‘PA„?–x]�¿Ó^F�„NVY’SøÑ6€Œ5~?ݰƒgÐûbHd´b¨Ù¢‘´0\¸^¤÷¬…÷à×á×cçàן�X¦,#r/jJ^Ž›¢RR4ö?åü¾§ºˆu¼àÀ,TÌ)8‰VZh¹ �U oA¹vMŸ—ê�cÄwóH±EaOÐ’< O±á…p·8ï}Õâ~I·jðì|�‹KNd)’a/Å5QC1EA¬YÛÞÉ�³×>99uI³eãu²D ;:Š‚Í©HžÊ7vÀƱH´J.ì�ä !¹Ôb7> O‰ÉšNƤÖìË8»ð‘ᤘÂ÷dålã¾qÌ”¥l’§Æó*©˜}ßx@<6{¬«î(ÁÙƒ}>°<nœ=:␍shxŠÈ)ëÐ{ØâÅΔ}¤ן0÷¥ ÈÏæMáGA;-RaÈRvâwÓfœZïL�?Yß/JB&¥æ'o{¨ï§j8NwøCê!¿sŠï)Ÿ|])%Iy5␍׬_oC1fÞL¿ª¨ÕxS*;¿ŸïDW7_ @Ô‚ûá¸ήÀòŠT S+l³Sá|ä5£ðIíy×­ƒjÖOÌd@2ÇS{v?—Ëbû#�uî�Ç)=퀎AÁùÝGSöy#´ä¹o…dsB!ù¥$ûð[íÅ␍�Iº„#Cu‹®íi)Ì"¥<¨nYÒ”&äÌ
°
éRî äÖ¢Ç/ÎÜàoE!µ š¢1ŠY�ÁGC)¹F™ �øa>&D'oÂ�ú sÖQ½_­°–÷`FW1!–ö<ûV {‹[?d:P`®4¦˜vò¾›?%v߈ º¢ÿ¬wžRh4¨é^jt°õ(KwMÓÛzÆÑ”Sù·Ôƒ*ò­ANGÀÂî[oŽmSÉ==¨µxsôÖ }F­±%瘵 iR�WÛL�?'Å‹zÑ·ÏChžå{â5¸uG…@Ö}Ù&öVªš�‰ÛïTñ…ÙX€{=
Þ tÓÉÖoDâ8ýG¾… �÷ò~¶ ˜¯ÊAàXð5@ ½½þÁ×èQ:�¯�ýzü”.!Í\>FiÞ+ÀŠ@¿Q%âpÕ©5gÑÆÿ¨®’$ËŽ¶÷)ê¿"r<†ÃGðÆ‹öÂ÷ßX�eGGt}x9’ ~t°Ðñ±Ëk“ëÚd÷4M-'J‰/åÚõÜž?:hb5dƒU#NG"¤Þ�¶…:à3Ú…wD–Ó ©;Ò¹®¤æÜiÏØa¬ð.G݃�“¦$«ðx(mü9)'£ß›‹b{¬fÔ®3`,cãèi/êb8ò)BÂa«–¸CKxè6Žmš2ò\.ò¦#%~5í2W�˜��ø³ÞL–è@Ö“q—$c8DÑÔ‡q0TÆÒiÇ&-iÐpPý©£”ŒmV ÷M{4�l V³¥’é5½w\/e&¹!ÎH’�™iDYâ–lŒZmÙX:(/éH>•hD+¯5yz2X>°OFˆfØ�í&¨ÛP´ ‰ËÓ!XŸïÚ$a�Hb0Òt0ë¬5<èýæãµ¶t”Í7#TçÕÀ XCh<ìÛÝ3¤ó„H{¹fÌ@&A׌±k†mâ÷%Rˆ·—jCDzQ#ši�¾+/©b”neþîÚ¦zñ\?™{¦Ç'ù½ §¬’\ªº20½ÖPvòJV•7å˜Ó³6o,:v•û‰EêŸ:œŽ^ŽÉ“âÒ^ŽAŠK¿E}H·µ] b¡3o!B'›ð
Ig{(EùcÒ£á "§R�ŽË5eîš2MSÆÇ›$é>¯Ô²[�è)—½F´ÔÓ³ 9õvt¤»ä»`}‡`OHƒªCÈVL Eß ÷Õ±t%{rÉÑÜttJrG­Ù\kø*
“`›QÆV–Êó<Ncé€ÓnMÉΣµr ‘älç–}’ž!t–;ä‰sñåÇcc9fÊØìWÚSj\ÑOù,␍°»2[5e55l}•° sRÚïÎæ°^2ñ°w<çéŽÍnqŸ'LÖU÷ÇϨhù&ÈqK,mÜêpQ ␍®çOñvW’*ìáüþ£¾(s(Ïnچ؜ï·}(0>eÊ�^‚�ìIòlÁÊáS#«gãݪ²ˆÓç5S)T]a;N}„�aóTUžv—]²ÉZ)ñ€ª²ç-E|°.ã“æÆ :g¥�£1:¥Á ›ŒN­6yDg×wGE0:5ÝÀˈN&Æ␍0:?Ÿã×k.?ÏQ=Ãl38ÕvÐÛi®ÁÏV£'­ÞË“k·V‰ƒ␍È›¯‡ANQ‰¯´™sä˲²ÑÈ&ÐuØc–Í6␍ÑÏÆÓÍÂâ²€Ä7Ó^Æõ«e"ô¯¯ñâÆÎ�ö¾Õ¸±¥Bv5ƒ$$D`ÕúÕƒÌZ ƒŒšNPJ\Ú€7lŒäö3|©ßx×hÀÂ\}<ökSùxí×Çeü!DW³„÷¶úNáé•Ð]g ª«Ý:âK"9iKˆ«é¤␍ôüã9Cݽ(ªY§lHÑïL©&?ÂÓf©›z²°çâj–aŽ¡Äãy­6¼VHÂÑí»,#ë!Ij·N\GSZ6¡þž6ù O!G邊Mól³W¼Qðéö2Y£¸¼çW<GqËšP ¸[$ï•DÃÕN¯ˆ½·Àìüê–+^²Øåצì–Iµòi‚ý°�mŸ¸(l€V…mç„}��°GÔÙ€|š²YöÆØùD€A¼?ìãhŠ¢`r;¼BM¨bؽ¦Š>lXvÚxØ#šà$°ãóˆ–½#͵r76°÷ÍÓRÉX ØämLî°9ÞJÓFQÞ°3‚ :@!ìo»UävN9M}_q[-ž␍öé¹Þ|ØÇXØaþ°¤üü°Vòx%Û-mCZ<;ÐöÕðÿ_¿ýñÛïø÷ÏŠ)bu8ÊŸ¥ùçߊÿ%à‘Š]‡ RR¸MHÙªãÀ:zZþ̤ž‘¨0òÀ�€˜(ov{žæèªÇ‘æä×ÉG@¨è‘ÖMÉçõšH:#plÏ�ú âÑ…°¥—˜Ï[ðXæ Ües|í¦I^¶§1ùí¶Ü…*,Òó ›‚ƒ,O8.Yäx‚Ä‚É$—ŽüD|ÜÒ´2·H¿­|–½ÉÚ¾rÓã$ùµó•nãà»óëÝ”7–rO:¨vR␍éõîw4]­�)7—~És¸m(¾è 6!"sµÙC‡–½ZHÙOX"}ÔzìLÈFµßž’Íò8ŒÉ0È•¥F#5¬é‡Z“èwpÇèn²«À1”·)αlS�å3—[]ßW6r@ui‰šd␍u—I{d•®7”:IÝh§’‡ ²_ß‘ ¨§å;G“ì©#ç\! ú9{óíví
eÕ¡ÈCGBÎ}ÏfŽò¯Á¤8aS‚P¥ú �*ìeöœnÎßl|‰à#ì3e§4ŸQ¨  “ ʆ'ªZ9nO§CËàžl²<̰aW™€GúBW— ŒzAHØF­Bh�ßÙ8ÆâKÉV3VƒjÃ)Ø­†àXkFbÎïGŸ—çô ínÌ›VjLCâŒN§HpI�R” yIÇ2Àë©ä¸^|$mu<ìœÞÀ-�‰”Ä óÍ,ä¥á“eØ™Àô]$ÉÓS¸§mñý=cCV�UÔn´½dO {Î)T÷p”mª-¨␍ž¶=Q´ùœŸ]ʃ™nûÕ-€hb»¨N%Ž5ñO·�{Œ˜”&köLafÊS8ö-‰iøe?}Ê™
‡Y©Î=åné¸GS¢ž©ºy±+^ý•2b“<Qº5Ûféð‹Èz{Â1]r”EÙ4MÉÔ#<`1'nV[sÈ3d´jɘW`G{¯ÒcS6hŸ×¤�p'W,a©æˆTÁ¦6# È G‰Cä8pÁM¨ñ+ÚÜ¥)'á„<p ÔªÆ—y‡¥\E8‘ÐpŒlU‘ÈÛ€¦¼GUí�EáØÔÛxÇ‹øù¨Ò†Ãr/Œ”›rx¦âÕ5eF\�ÌÝéXg¤’ƒŽãåà>F¶¦Št6DÍÁ\p<›¹ {Ä“Ã�+ÁŽ"64×÷•ÔbÒ1p$·˜¤%ì;Ëqx¯¥j¥p‚+Ãa‘Àp ¤ün|¶IGf›±EÕ”¬
Bw]UhÄ '1QäjÄ�†ˆ0xpT³ït ^�:¢Flæ4ê;�Ž3#�|K«„ƒ¿œjã¦C]ÚG„ãò.” q¢Å¢c—Í&©i-¬x8nFõDk‚*{„ÝCƒ 8ƒ*;6½Ò&pØ*Ȩ́©ô/Ã,Œ¡(²ÖáÈÖÖÙ³Ñ^‘J¬læ6—Id“éË*Þl¤c�ò„€rª�áFM°J¯Ö¸Ñ°(!œ×‰)¨A†™í‘¥ƒè␍GvŽp0—nIVw‚a,1$ éDðàs:îIÇYrx€Õ±Ã‘wC¦-ê·FèûÔA’õ®S�ˆ)3×tî‘+€T\çyN¤!¨ƒŽ<Å–º‚cö±âX3o‚ ;�Iö´pÜt¬¦M樷ÏpDL®D’žŽÏUk\©F3X”O˰ÓqÞ¢'oÛýÿÃü¿K5␍rÔEÐI)cêfëÖG ÌücÖˆ~b“‘ïyã»Í´×�=[…„ž§ÜÈŒ
>i.‡c7]+僾4Å‚ˆ‘]×°hk «[Ƕ,HC‹­rmÄÅzP ³Ñ5¢W‚3÷I’/Á÷Ð1Úìé˜MMº'␍Acx“¬"ßLÇ©®–œÝr8¿«øWÐJâ<·bÀ�BÝFlŸzØP«u×—ääa—«PF$6ìÉx…ºûíUx´dήMN¯b¾næ{Uµ/·ûee– ¢Uw+S!% ¸P§áŸÈ4À_PÐ$žŠ;囹—š£¨ÐˆÏ"±m•²‹Õ&]ï§­ñW§Æ�S�¬ËJ'>î’BgÕˆ‰É\ûÝOI§7HÄúÊj=›6n¸T’Ó‘dÝQ@„F¸tKZ’¶ª‘\êB2]ÿI§ÌKW3¶rÀý€N½jòw»z¸?éÒ[ •cT;[Ü7Ëñ%M2Å´+±Y7N*”m~æ”æÔ¯·ú,‹›M«:óh’ÀÇ•:l·(�S‚ÐVj‰Õ XÈ*ÞÑ+AÓº:ÛW°<xi³$Ä+!>8–ê÷–,™ÏÚýÓ)ãJÝïQk4”"¯5›&rœ×Ç–> á}%@>¢
°,}Œ5 1UpñχgÎYkÞá
âS´1=%¬›e�v2nü(ž&•6rwË=·ÿÎT•‹:«„"»
€•®ƒ½�±3‡V•Ñpëé$p}pø¦!ób`…|ßy¥^yI4z©Ô¯ä?•Û.Í áS¦¾E†01ø”‘ÀòžÉ[ÔÙ h¾å«)ƒ'…ý¤y£ÕÁã¦á¢šc<Jý¯Ð|ÿ�»èUÿfp¢€Á£�ÏVMiŠÓTÂbðž©‹�á˜&äßr-¡|êt…ÔʇÀ6‘KÀLñ¿TO|êÏ
=–Uû�‰Ïé­g¼j½uÆ|c>u:Œ)¹"×PkRßÒWXëh`‚NV¦%�xñ™0sÞA7“k† €–_¥þ–Má=ñqw�`çâã®2°¯k„[5ÝéÕm–;Ýàb<Äýìêögh)õ˜ey¾O÷—ˆLàãÝZ£á{|¼¼À®wåëeÕPŸn‘©Áúz>¬“$}«TŸæTÌ&È·Y5ctà ¥Æ—p§èL#,‰›·,éM=ÀÊûkj.¼è™ñ†Bç=÷h°pÀk"@␍ÉkÜ#UϼO4ZÜ/Í$ÔÙbq[]␍Äý ¯dÖˆ�ÍðÆmx¾ëðn�o3ã"æaL�OBž[uf=Õ>72�cZ[~¶–§Ī&Z
í÷ó²±=Ý2†x÷ÈøÅûÎOuôopZí¬ãKÌñç�î±?_«c£ý9pŠX#hb‘8ù”À½j`G>Â!£Ö¶#&␍ˆÈ{½ÊYÐÐÈu
œsr*ò „ãä¸jEl9–tˆüô]%;[vî)ðÙ¥†ã4†Ììõ+’{J¤)xX0ÄÈ_Çä¯íäÊLR�Aäw;µ4ž*wÕ)j±~ž¢ä)"LBêÍ<<“r”(´lÕP²%”m5‰ ëÖ ¨âºD¡C¼j/ËÅ T¥xE*M�0ßVôP?Æ™ÿ�ÊŒæÔüúû¯¿þj?ü¯ÿüù2ÿß8ÒÀÿò3~þ‰ÿÿôóë_øÙƒ¿]ø³þö‡æÿ¡¹\9”´Œ¼‹™Q z_X§ò…¿ VÀ%/ÃÎs'�6‹Kq·ÃÉ žön¸o'[“!œ ALàè‘êƒ/w"?DJœ¿ùö›<Rbçg©7Èdâ³èJ·ÂÃT/ÃÀ–!j2XüíµüÊlLøÑsLâ-åé¸K}7%÷§ëpw¬²üi/FgåWNg·�×r°{dùÎ�Þ`-ï“·DjGEŸüõ‰L†¯”$5>9ßu{´A:�ˆRA¸±pߦcœVñÉF#cJâË–‚|Œ£âÝDŒ»Æïg¦­õHü¤âúÞe3d 9ä ˆÛ­QBâ~wµ¡?Ø•]ɹêÇÏÈ>©¼mi ;㛨6ý¾gÎ?¤}¼{X£°ƒpŒü�Š�=Óeà÷òÑžY¤F�Ö¤Á(NŽžK]{;çBO@␍7söáÝ�ú‰U£Ðlå$g¯¤`½#f¹)¹Hmj6šòcÔ7¦=ÐáÒøûrþ¡@‡pÚ€=—âéB].Ô÷›� tÿ™KPq—î;ãI­Ù~³�Dy„Dßq&à’¤wþJÕ;,o)ÒÇ‹ãÒšâëÕ uŽ”nv}\â”xŽ“¿_ý¼#§?H€ñi”Ø‘€ïîçðZH0ªs§%îxZÏφä|^#^œ¡zIqÎG ¡Ý²;t³’á¸7;̾25Õ�.mæ*�ý”FtI=ãáßovôyååÚM5°©úwÙÖ§]"^«$S·<·P”_,`Ù`ÎOdM¹Ö™2¶)ÓéZ_)¹~dc_z–8ÖÄMÌÒ�Pƒœ”!kg\¹ƒß­@·&s¹Š9€Ó*vÑwáøŸÎ=KÀü”𻚒® ijˆ¯ ˜T€Á>Qš5�x¤"␍ £hªÅßm¶€�#¦„F´J=Ò òf9
à`G+ ļ
“¡�@G¯Ò€#¾½\Õõ€÷ʺi 2ZÆL-ıGÌ `å}#ÇÁ ÎçûÖ”û>C í`©ÔüGyìõ7�‡„0M1ÝzÀJƒsUÕñuQ§ðÒÿùýbViË‚]õŒV·"SïÕ5eù]iüx¸é;€ä p£^àב³"cI¨pçðÅÌå í àHA¿£éú}gkÒ1²· ù
Äopy®­j%:Á‘ '0€‰îïƒ×¶d¶�ÚД¬
R¿º«ÐÈ!`>×V€,ò4â␍�XG�jŽ“ÀäѨ#jÄaNÓbz�-ÙGZÅÿ
ª�—%€e9:Ø–��F¶ØNÅ } ñuŒ£ŠðòU¯„M AU<§&pÓ4¹€k" wlfñõ4•þ#0ÇH€ïCÀŠ"kÀ²ÿàx;•XÙÌ-|\!™M‘Ó—U|4þŽ™À¹Úåµ€
ªíá¹&X¥Ok<Û%„@ð8žr¼rDˆ½t—"æÒ+iÃÃêA2ôSš€!ÜÏ ¼›ÀÝÂÀê8òlKŽÀ«ú}šu�d½kWÓoÊÌÚ÷ÌÐTBûœ¹O¤!Z�ÜÅ‘º°z�ØÞÖÊ“ Cç6Ù=‡�—ÀnúÈš5âõeÀoò$’DË×Uk<©¾¦»(¯–ÏÞå2kÑkàûìùÿsÄÿ.qeÔAÆS|êdûŠÖ§ ,DüsÕˆ~ý‘™÷ùüûXïço¶z:‘»Ý(t…ˆŸ´B¸—8MÇJyÀGßš2ÜÈ‘]Ç{eâ¼£m�,HÃá­rmú`Ý­„ÙÑ+Á™ûl’_‚Ÿ©mÐŒXMÍvÏ6�MR°ŠD­øe:¢ŒHl(Ø“ñ
u÷Û«ðhÉœ]#š&œ^Å|ÝÌ÷ªj_n÷ËÊ.,A DªîV¦BJ@q/þ NÃ?‘i€¿  I<wÞMS/5GQ¡ŸEbÛ*e«MºÞO[ã¯N� § Y—•N|Ü9$…Ϊ“¹ö)ºž’No�ˆõ•Õz26mÜp©$§#%Ⱥ£€�pé"–´$mU#¹Ô…dºþ5’N™—®flå6€û�zÕäïvõpÒ¥-¶*Ǩv¶¸o–ãK š&dŠhWb³nœT(5ÚüÌ)Í©_oõY7›VuæÑ$��+uØnQ§¡­Ô«°�U¼£W‚ ¦uu¶¯`yðÒfIˆWB|&p,Õï-Y2Ÿµû§SÆ•ºß£Öh(E^k6Mä8¯�-}$@Âðª«$7´e·Íï*<` JÕ/#øƒ,à!A& ð³ÿAHŠ:/�ÛÒ©^␍ÉèËö#²€T¢ÁÒ§Àx£4¦
þåå™óG’$9od1­FÌœ2’7KÒŽvl7nŠÐ˜i#w·TÑKøïLU©¨³Š(UàXVÄ6Ú™9”ª´"¡§³�ËÑ£‡1/éXCºï¼b¯|$
=3õ+úOæ¶‹E3CJó[dƒ¡vì�ötß"ÏF‹f,_M Þrô£æ�RÁµà"›£ÅþO®Ðòý; "NÑ«þá˜MŽ3ʼúÙª)M¶E%$ß™¼83¦ ûo©’P†Úª�\ùб³‘ÁKŽiò¿TO õ'…˪}AF0±�b=íàS+Ö¶c†Ú
cŠ®H5Ôšä·ÔÉõáhè�¬DJöþì35`zâ‹A5ã5‡ Í»’aË¿¦ð�Ü]#ˆ\ î*ûºF$TS�^-Ñf©Ó�^Œ@ÜO®®�c‚–DQÁ,ÉØŸêψL`ðn­Ñ°ƒçìŠ+£çª!?Ýt §ëÿÑÑØLëÖt ¢šS6A�±Y5#º‘”#‘HÑ™FX/Ÿ´¤7aËï×.|èi{ƒ¡ó�{9(°pÁ›� rH>ã.©
{ú=´x7>Z6¡NˆÅkuH:¨ù$³F4l¾@<åïwÓ¼[ãÛ´}Јy™l�ODžGÍÌzª}dž´)m¹m-O*ˆU³Ñ’h¿Ÿg`{ze ÉÓ#ã?öí­:ð=­NÖ±sü¥I‡ ϱ?ÔhŽœ,Ö@lØBO>Ep¯ìHG¤I«µ�“�(Ïz•³hCáu
=çx*ò ␍'“ã
ŠËvˆüÌ'ºJvB¶Ï4°íउ6†ÌìõÉ=EÒd‹þ“_ÛñÊLR4ƒá};¹4BåSu’Z¬ïËSA=……IH½éË3)£HaÒ†(@…IH(ÙšM¨[7 ‹ë"…i"ª½$M$P•âUSiBB›?­ÚC}gþ=•Í©í§á÷þùÇŸýóOX‹Ôlü¬­?¿6ÿçßÿüÛÏÿùçÖÁOO0å³ ­ö×i!þi§_¤~Ç“²Ýü†Ø2rÉþן_ô@
Cÿ~~ÙæöÉ$Œü“¿ÿÊ®…õGt‰u¢æ¡·!Àßš\oHD'}ôQÒj—ÿÿÖ§œö[ó´èï߫斿µgžç÷ÿ�ö÷;n^¥ÜyËššOðVæóxÛVÇi:ãü Cñ½ô$#B!µÉ»þ~iå\sÕ!œ\ �NA%@£TU#ð‹ÙðüiâŠèSª"4 öc5HYl­æMÈŸÃ\nmÊâj!îO‹� §VyÁºLó³óÛSE§ñž�$ÙaUÒH‹Ì‡j¥…W›Ê&ZðC�ªý¥ÄÌXÐú–å™v¹»zúr…Á:|¸­Sv�v¡‡æ~k2'»Ä¬ËÎ3^žlãÁ¯;wؓߞ/Ä~vÌ~`�Y�lŸx8<ʱH$¥ê 9ð°ëz 6Ã+Ý*KŸòñºÀ]yx␍–C</ñøiùT|7 B¬ïQéÕ4‚‰ßR|‚òò~ûŠn|‡!Ï]ç$Ž{�¡oûÌï~DÅQwŸ‰š~¦#PÝ~¦©�'<¶ “ßókOBv8LKžú§ë/ÀÙŽáCð¦sˆb„WBf•.[É?nN1švlò+ùŒÓ¸B¾ã×íCƒïZNÕ-å`6ž_í!3<’§¿ÆÞëj`M!EÆuáˆÞ�7\Ubw»
ðiðK#H&ûÊ‘S\sºþ*�ät-W¸Æ¾¶]þ‹Ü¶ûk{2k®HøBR;~î"ÓJ÷_Îcï)ˆ°xÚ#>ÿ!�O©Â63Äð“Ž4%A÷zÇšay>_„šâÙ~DI@ÝH†¦ÆI™’ëa¡-Y3Ì
qÙkz¼D ‰²¿/ɳf^Š{JjE␍'ù¢3káÖ÷ÓRébû'y7Rbâ9¦ô_rœ#„x~æ8ÍÝýy7©Ë[Ó©$P=ü⵩`s{œI ;›îïPçƒ}òød¶ÿ’žâÜfl1xÙ #ìááD–Øîް‘ϱëm¦ öKÅÊÁé��¹;¸9 ìLÂÖ ¹›?_Z×sI"9 ”1�|)M½3ö¦ÍÂÞIÑЈ�ì“r�µöhgVl ž@çn`…(/ØcûûD-Â^© w¾;¨tê$\ùÉ~"6°Â8�ÕMãqe´âÁä¶MÆ{&Q>è¬�öÎõŽZòøt,j4íwMРru™s‘_␍J³Hÿ ¶šv1 “ÓãÅŸPaŠOõÛ
␍ÅKfIáöI„C;^I œö\Ÿ$Y°[)¥8Zá¬Oø náx­d␍±j¤$MÇ"uý}úŒ‹Ñét „g°˜®ä9pì^SîТg•:m[Sî-…HÆAÕwì €#AˆŽƒ[Á©8ˆè±p$Bÿ<‚¶…ì‰ÖÇžåØ¹ÉÉ÷†ãÅ£# É]d␍’°gÇäU�Ö67Ì(ûb ìá>³T[pL�À't08V
8¶ìϾ[Žgl)<8œd]e␍ûµg›•8êãe4P)–¶GÉ␍G·P=‚ 8"‹„@ƒ•Æ6êÑqy&VSŽ HYr¼a+޵kÏÇö€G»œ,-óŸƒ
•vuø'¼ƒãÙ|M{>÷HT)úÎ8ÕÃáà£Òql³øp߬جÖtÚÀšÑŸÍ¹5=R/ÁqB#FVG°Ð´ã˜é©@:²‰7|\´FŸ‰ ÷É‘ÀBÈÚÅÅ@ÌÉc-ï2Ô­è¶o^k¥l´›3N·cLÝteŒ4:¹Û(‘†Yvªâ‚}Xv”M®ÁN™Ñ öà<tdD NDdöÒÚ„tšŽùí:s�Ì=8&Qލ“^ƒŽ¶¿«¨Oã$.û´m—W3æ¬\ŒŽlÙÁ>£Mfëvt­0NéítxMÄähÍÑ˱8âÖ”©›Åª°Fh‰øf´‘ì…¼d xÜy# 0­óiFA<ºbÞ¬õÊ®NðB“ß•à/±ò} Lâ,¥a5߈Ùä8Ui5Ò¦–ØÛUu÷JÀ�ªº«SP]¦c5Aî¼5b�ÀÑ«2;Ã|%³ÖÄÃMçk únaØnö{>0)ëÒ®íÖñ78Zõ�^A´É¦Ä˜¡5­jR¬48Ž—8I1áhå˜!ÇŽr„xÍúú\{b2sM7ÏǸŸâpà?ÆÎÔ!7vx“ÞÊ[»˜±3FXÛÝ�{Š�9Šp�ô`¯(ÐØâc;®m²ElýÙ£iÀŒZQ, <
·X±¿L!.b¯ûhD=8qRœ´€Ž\…”³leV´t´#Çrj<嘫à•úŒ­fÔˆ¢±nÁDä«)®š>„AÁã—ƒ4ƒ½§–h$ò€ìQ¼àõHª]4à9¦0¤IØ4wØ1ŸØy8µB*„l¾}ì#¦èþ©”CìV®@ò�íªÛ¾,ft«Sg?9R/Á^[F«æÔ’}׌ѥAšÓ€ò“æÞ²ÛNM3‹½½)ÑSÅ "rL e–eR1ÀuµF7p7v^ö·Z�EÍþvÊSBìD­ÐCJn}#ZJ7S·ìØÅBSøÍ´6 Gßi®Ô�·ùó¤kâU²Ç•ŽL8`Ë–9†°tX+ŒGwåõx$Ùlz+­‹]ÕòLÏoŠÞõ¿LWM®$½␍ÛÏ)ú3°-ÿ#gø€ ›,rÿMHŠê7xÀCSå²]¶D‘ÃÏO—é�ÝoT(ù.7 ’ �gKž8<Òݶ~gŠ‘ížõý@±»p¯&’x2ì‚Ýj¿…fk‰i&>ÔbyGÚ˜bíØk\n–:b&>ÐSTw‘poÁ¾<“ír'¿Ôüt"¨$ý2­¹mynúMRÛ±/W¸=ouð À™GIM^+ŸÄ­’* 6E«Ý4.G b›ö–p¶yÛ$‡Í„4…d°Ìr`ä¥ù±«;¨J2Vr4‰Uã»gÛH9ÑU™DÙjz8ES§,³©Ä2d¦ãÕ©HL·ƒ×ILÍÏ'*ãöò¤ûcJÖ!M¯Î“álo.�›ä›Z-x1¨Çëo␍T°›ÜV%�]z�ïõqäR‰�‡á¨¾å“fc#M$ ñ†'ñ:~�ELVxƒð{Qܶ ¦ßŸ'*ü>Eµýýò«ö�S¿Rß¹2J«î�»?ŸÍ}ß¿¾‡�ºêñóÑ(«±ÎeUëòÈÎÏ'Ö=?_̧¶®ÛB– ßߨÛZ€£íºK>­¯g‹¡�Y?‰€ì™•øÁ7*mP2üÊWI¶?, U98>¨ŸÊPü ô9¢Ñ®h[ým™C˜û ¨×}�þÐ=kÖw‚²©cz‹Ow|«ŽÐ÷Á¢¼€ãT ƒB§úž+&EÍÖ?��EñŒ*æK„Ql1±|O1␍ Ž0ŠˆÀ÷¨lýϯÿúׯÿ}ú§á¯fãîæGL°>ÿü÷ãø�m�[³ì‰¦XÑ�=2ÛÒÝ�&¯¡…¾E�ž“,Ò-ô^Ú8†ášÎÙP£+Gòȇ“ˆé”Ïpòü8¾†~Ýy "ÿ®ŠkOÔcðÑÑEuq ÎzåkcòäCGÝe§»-êZÏ®Þ[: ¢JŒetxp)‹ºv»ÐÕs½LÍ®ê2¨ƒ—;Û8pdàÎhñ(‹sgì)H…{�_)žNg¡/ÇÄ@É�ˆUÑ s
Zšë¦¤Gyx@Wžã‘ž§x|´¼+žyf}Ÿ‘„^½&3¿Sî~¿ëQ&ÝñÝŒÈq×>©Ë¼FèÙ>óû}”}Qß.ÍÇ$ÊÏZç¡éaÖoÏ~2þ¼çÓžlÃ×´²×ôékÒÃs¶ïp±q5/ªÖÁ¾–3…ºZ¶)f†fÛaÚ¨·c8ÕQ£ÒïeCöéöÐà»–SUb¡û2éXã8Ç”Â8N�½×ÕÀšBŠÄuái’®ª) Sø4ø%�tê+Gr»W2$«X:j¯å
ר׶ËI¥ù)9°Þm©ñvÒ\£Q*Ýóí+™B“'Žlïùƒ‚4©Ž4#z³Qµt�Ô·žï€s�cùý›êx=ãÒÓ×&ôO›än|˜h[±§¼Æ~„×ôx’)M€éú!PN÷ë<jø¹2Ó> ®ç'mÖÐ餟)¨§v!Ð`4OyCVtŠ$i=hÏêõ3eùÚòðKß´ªíaŸ!˜¤û;U]fn?$4iB³GaßOƶ§Z
]#�®‡ß&k/BÃFè³ÁW`à—MŒ•ƒÝ!;suô>Òqœ*¿Ù wóãKtýîcG :FËeO­ꜘ±71¿x§Ýá“Ö`IÃŽ›¤€ÖÜÀëƒv¦Äí$�ÈW–ñZ¥Y›Æ[`㓟ð+ ôp��¬nnÁÁä6œðL„6Ì®LÛå.MJ&¯ýÁKüÊ9AêruÙºPÇWu^É©`oµ1b“ÓãßÓø;lÛŽ ØöÅ Ê $ã´¥$Û�W–û úÜ2¥miÀnË�q4ÃIûÓ³nxy×Ô¼ìÎÈÈ$ŠbÐ+=Õû'ENfrSUãz‚ÅtØM#Èð¸¡I�'E}m½rÓ‚²e œÞ�k(�Mˆ�ƒ¯
*±pà�cÈý›Íc¯Ì=à êC`Ï
ì\ääyËì<Rü¦¢žCVg]Ó=ñS�Ö†8
_ óÌRm!0=�À`¬Tvl␍Ø_|·¿±%1p’u•5ðkϘ•õðò6P)™‚l2M�žV‰mfq8Zëq`c¦Øîz \î‰Õ”#�ÇL´­äÈ+�µk÷�Àöð$G«œ,-6æ␍uùt 4E1üS¿Cྦ5Ÿ9U
Þ‰SŽ•�cÌâÃ÷fµ³zXÓ‰Ñ#GN@ºÒZ!p†FDVÇ`¡iŘ@VâY€ì7<\P£÷D…ûÈÆÂ–ZÅÅÀž“ÛZ^%ÄV „ñÍÏZéÄÐ6ÚÍ7Òs°ÍL}éÊ;V£ÑÎM£ì4̲S7Èã0µ™2oƒ½ûa o”͉™\Z‹PN30¿«Îœ#soÐ$mFí|à4hûû)"àé>‰�}Z6—:®Þ˜³p2’²yF‹Ì4¹tͧ.éí xNÜÉÑœÑ+°pŒ[¯L}ÙXu­chŠñ}£åˆT/Ô%K�ÇÌ;R3Ð*0ŸÞ¨VÌ/k½²«³y�äw%øË^ù¾ Lá=XJá=ß³)pªÆHü­‘65ÅÞ®ª»W6ÜQUwµ‹5Ã�ÕÔrç­Ay€@¯Êì¼æ+Ó˜µžM|˜$±¿–M߆åBm¿çS².­Ún��~C t(è
v›$%Þ¨iI±Ò8žâ¤ÄD U`ö¨À�®Y_žkOJf®iò|¼÷Sz†cgêP…^¤·
Œ­U¬€Èß¼#Ìm6sO©3ß"=XkTÓØÒc{\cªE,ýÅÑ4`ŽšQ* >ªo±a�ý½�©ŽK…ØkÄ>QÎ>)MZ�ŽZ…’³°2+ZÚQ`9µØ<˜«Ú+ý©&jÄ’±¦`vä«W\5=Ôƒ·_Ê rOMÑ(äѲ£tÁë#¥vÉ€s˜n€Cž„¤¹‡óI�§Ö� ¡šo_õ1¦äþ©´Cd+W Zò�tÕ�/‹luJâì§@ú%àµõB´šaNMÙw½]¤9␍h?iaî-ÜvzšYêíM™ž*fÑ¡Àt‘ÐfÙ&•\Wst7îFæ%¿Õ ,jòÛ©À˜2bgÔ }ÈɭÖ͇�[xìR¡iüf¢ÍÂÖw•¾ñ6?ž4bMºJ8®|d¶R¶`„°|X«våçqKÂ2$½•èbUQžåùMÓ»†ŸŸ.Ó»'Þ¨Pò]n$Ï–.<qx¤»mýÎ#Û=ëû�bvá^M$ñdØ»Õ~ ÍÖÓL|¨Åò$Ž´1Åڱ׸Ü,uÄL| §¨î"áÞ‚}y8&ÛåN~ (¨ùéD>PIúeZ=rÛòÜô›¤¶c_4®p{ÞêàA�;2Ž’š¼V>‰[%U6lŠ4V»i\ŽÄ6í-á6ló¶I› i
É`™åÀÈ-JócWwP•d¬äh«Æw϶‘r¢«2‰ ,²ÕôpЦNYfS‰eÈLÇ«Sÿ�˜n=¯“˜šŸO4T0ÆíåI÷Ç$”¬Cš^�' ÂÙÞ\ 7É7µZðbP�×ߨ`7¹­J »ôß5>êãÈ7¤?ÃQ}Ë'ÍÆFšHâ␍Oâuü:‹˜¬ð
á÷¢¸m1@M¿?OTø}ŠjûûåWí!§~¥¾se”VÝ!7v>›û¾}5uÕãç£QVcÿœ ʪÖý?ÓÕ’+Ë­Ãæ½ŠÚÀlËògÁ[B€ ƒd�ýOIIÕ8·éÙIñÊö÷“␍ûîïóÂé­ëµ%ˆ÷;êµp´UoÉÞúzJ ÿ¢gV\àgTØ eø•·‚l=L ¯ò§"?Xæ=Bh½ Ú’¾yrcß�z½èêY«^T'H›º¦ëì]öfa¾“òŽ])
�Ò½Ìh)ÛLxÔ8˜ PBƼtAhÅ¡î)¦A�„+´""ð=2›CÛÓð÷ïÏÿ>|þ{úC,§tݸûé˜û翇¿P¢õà¯$Aéãê·áŽ 2 Mek(k%D¼^­‰ ?'F¬�µX…ßÓêu–™]•AgO”p]Æ‚/vÃÜ~WGÄßáfºÊ3HïŒõ$ÍYlvIÑÐåA“1ð›n>Œ= ê%¤a u¬ *’‘‰ð’Â`ÐÓ F'š“ïµf ô‘×)´_äžØ€ì®\1o/F�É1ÙŸ™\Cç¥pŠi÷0zŽ4ßKà﹄ú`Œ©,ƒ{Š.Î>?ÑgX�¿bK:ºåXsâ>``¥½–¹g=VñÉäš7F:²—4?„–úŽ �©ÜÙr‘D¹€èÕ{ӯ·UCœ…™µ-B˜Í�ßG„rÑö‚mvœ™ÒE…�sÝ#žR^L•'ufJîaP,™³«" 3†g›YVe�èÂD ‘Q�.`ŠËƒB§Š-rµ>œð†5œ¡Ð-ÙŠP<rÙ%‘i6¾�]À;~¯×`¢Õü»+‚ûîï™zÞ•Î qëû¾ßB÷½øÊÚ^—C§?û{q`Kˆ¢>�¼ñ!´îͧš„‘íø_¶ åË—‹ùtÌŽ^ôµ =‡� “#ÉX‘¥ð¬ùr²Cá�v§g°ŽpC+#Ys·g”ËúDX‡ö*Û˜G>ìîL¹º¹Of–LÝò›i§¹'£»ÉNÒ¬+_ÃÞ•©|ä“-ΔÕtOÐØ(O‡Ä 0Ù‚Îî¤]ÁëÑ›“täog�±&ä7¹JC·|‰LðÆþíÊw·{’áXA•7\{Ò(-,=üõdÕM¸ý&åª÷7•íXRõ!¹Mk�6’ã5X٣܅^ôP‘‹ƒ³n‘\6¹tT9m¤ª Yôèašå )»©GKÓ.±Rï;uÌTpí�µ,·dHpr~.(\{Uß�kò�åVù4Ä–ÂΓŒÜë'òŸ%e­·�Ö;7çóâX“†Ð³ý]³"~.ñ¸‰-jÚ9¢êž“ØÃ{ññ
g |Â×õÚîÆ|~'ÖGŠÎÄ£ ‡:ƒ ‡뇺fÄõÚÐ>c¾ÊTU'LVÞaˆðYˆ×Qe†Išo8u|¾z Éc9|¸{Žß”f—¢ Óq[ô“î6ñŒË˜QËÒØíÀS˯½�’€y8œòhö‰¯ ߦ—Â1†Æ§÷ö4Nmg/}°‚÷‡›l¸æXt,±‹0Žø¦wí|¦¥"1<³k¼—Ãv-¾ZÂ�Äåå©—Ào5¨Weñé�‘4£šÑ´úU¹võß“–qót;]ÚÏVQKžR bŸlx0â°²` F␍UÿÞŒšð°Â¼R`S.ÿ�†´ž­ÄƒAMWk�çÖþ3ÎqÖðp^€gj¹0‹?hÓùÝf6Œ¡ùÙ0{4œ�␍«©!ŠDÖk7°UÃ=Ñy߃zØ ‘aU–␍'±ë”+.�Š·´[5ܩϊz€ªmسÁÆŒ†“␍ÞW4Ü_␍�RSøaj˜µF?Ñ0²�ί5ú\K4P„ê˜#Et:ï©ÛõexH6Œút²z]–�8E«ÓBSÞË3mâ"ôB¦M|½÷m!C^Ç`x²Áê␍i_ØP�¬ZƒÆî}Ô©cÍS␍Kçž+!×–îÝ
×±g¯È²¥cÚ­ÆÒ©lÕ}ëoèµ­=,꺫R¥GˆGð-0<ñe+ÈX¿úÊ~s>m ±g.x<_¯\š)ì�,¢Õê#.±õ˜¥]ÁÎñ-üEÐþ_‚)Vøžâx%öÑô¨s€+34ï$
™æŽw#š‹¦ÉÜ,ËùÇñ“û␍×xŸI, ÓïÑ4$%qõ·¦þ—·b»(®€�iù¼{ä‘køHÚ[´aÜ$YÓ�¦÷žËyÓnm%ËθårÆð®³XwÉóñ……»\^8ZB¾Ü.g@º•Ü® c×ø0Ä"ù)ϸS3NS¿¿¢óg°2Ô��GË™"ËY␍÷8ÎÈÕæÔaûÎÝm®ÓXìÖrqR@1õKÆ8?¸É7ŸžÃ›†oK±¼LŠU´L“»êÝ]f�8¦C£OØðHuàØÞ<ÇëSWÙàØoÕÒh¿¨þ(ÖGƽÍÂ*îÊé¶U"œkëQ?ÜÜ�6™¸§¸�®r#µÂ£|m0Xx®Ü­¹°íìoÑ?"ªa<–`È`×éz¨À”Œ³²~È×tQx³¢™ª¶›Ê®½r=•³Ìà ÂÂ�‚ê�7GûÜr5�ºÌzîF«Í¢näi¦`—'Z½YZ02'
Ä;s9ã]°4LK¸=CßËòr•£[ê÷•w1¢RM+¬Õmgw?*GÓxÇnýäiº©¿ÕÍwÆá(‹‡c³r¤YÏõ3¸åqÚTÿ®§bÝ4ä%vá²³—WE‰N7,) B—�åÃR Ó_ÊÑ(þ1ùésB’gÈs`ê4ÕÙs÷çÀÌÉ.Sø‘0çf‡7␍]·°V·\ì� ©Ê½°ëåìÏÑôö�~H²Í_ó!Éæ¿–oâ¬ïö­<…=êË£·æü´¦bèûé,3ß«îsþº9hñôïÍÞoÝÁ‹ù¾Ë•]Ëgcïrû>*mȪ'çàé!X„v WÀŽ*9Q_}Hî®àÃÝQcÆê}¨¸÷ÊÜ7ÐûC!}óàú­^lA™¬^Þ);=e
N Á‹Bûª €½ª 98·½ù¼(\eóÄÕ@Ñfq^›ªjE㡪ö"–þlñIÒá<EJd·(ˉZ/F;€£�"<®Û‡²·ÙK—ó�2ÕÂÔÁÒ'¹KB‡¶_ÀU²ÓÙ¹ZÒz_„Þo±¼=” /XOÔi¡Üe¬[ÂΤW½EMôRîÚª6tÜ©#º ´g\„ûx)ïVBˆ-¨<)›ên%ªö°.Ý¥¹:KÏ©}®Pøçó÷ç¯ÏŸÿžþ4üëªi«�Îî>þûa;þâÒ×SyÕXVâÏÕoÃc·Thü�çl©)Èêξ­«Ãÿ˜&81R&=KMð F‰Ÿ€Vð!’üÐËe�"1§,`ÉC:HÄß÷Äï…˜Y¨‚
ñ´àÛ\ã¨oêÍ0¿—Å85X]®wH  røX +›„ƒhð’L‰5¤e¥EXfY5␍ñ¬¥Q¦B܇<0þ�à+æmäîLÏ
©ÁÑ‘I=V¹˜Ï\ €ä�èÿçc2hÕ2¦r1*êÙzJ8ÔÐ&'ú¬+ V̳íŠÅXsC¾‹ó�°"¾ÿŸé*É•,·�û:E^ ¢fÃð¼1àöÂ÷ß82¡€_’žF2"èYèÉwR ÐëJ¤.´ÕwÅs@—$Ñ–�öÁäízo CƘ¹ÏLûžå.R‚翸¢£=¤>}º÷L2�mïë‰']%’¬I“Gïo†‰6ÉX<G¥'mGö<òôjF¸Ÿgû_]@êŠvBʶ éàfð,"·%N2ChEÌi÷³~öŸÎÈ*0?…8G␍–�·õ³j¤=Í=EÞ•öKqÞ÷,´;¡ìÉÎ:«.‡FHë‹£o ixÇ_£ç�Ë£­È×°c{/ŸJËÙN™—Ì—£E¥w̧cvÐjæLçºþaàÈxÞŒ&␍]pD†œ<x¼�ñ(Ï<nd°ªwe”O{VF¹Ü¾ÃbÈ–³VˆÊ•"ý�LW"çff©ðØëeÚéÛ›ÑÝT�µp*?PÞawmÊêldž/s+9@cOOº YBøУB‘OËP ++CÒÙ„3<v­—\¥¡GRH"|^¿!�fäÝdÀKØ·©òÑØ¾¿’F/Ï…üx+Yõžõ’rÕûŠ�ɲH‘;’ª/aÏ©:–œ­'Çk°"’ô/tÂ*Âò ðÊ@4Õˆƒzª
¢0ô0”œE8R�X¥ÎSb¥ÞÝOêØ <DzÆâ¥ÓX 5dAfï$î–àüWm÷ˆ¹¯ð´5Ãa¸“žkývþw>qÎw®æ»/¿çÅõQN:D€áê�ÚøˆûKL <í&pDN‡ˆ·1á/ñ¶␍ð!�¯}@ÔrÏßw9ÖN›¸‡°Õ LØ•X¿©kƒx(ª�¹NŸYòàT|ä°Ý¤5«O=–¼u ^�oútJsŸ?Æ|âÔ�6-­8kàX9þPš—-}}'+ýv ”ž«ÊG¾␍WùWM_î|#%ssSæ
ø–~Køµ²‹]ã³ZIJ4Níd/}°m59„eú8ißb»3æ°Tö,øLà×
6šÀË™?wKxðƒXÄ
L½>.ˆŽ_Ͷ ‡Î­—BÒ Òô¹4<Î`W "îî¤KûM!îÂJ‘ß�b+°}ðÀƒ¿0¦™ìGUŠðaÔ=‡0¯x¸T%␍i¾±wõ©
Dt´~Öƒg␍·óúíJØfñ7zhÿËÕ(%ºkCk÷l˜á[vÊtSƒëVªÏxTûnpÞ‡©‡␍6PeÙp/írûҨؾ¥Óª�e*¼(z ã•␍£O7ÜlX±Ýðþhˆ§ªÁ␍<˜fÍ×␍=˜álX5Gt㚢�"ÔPÛì`Š:ï©—…<’␍½ŽNöcCÔe­î]´1‡5å{yC‹,‡½ÐÐ"kï{X†VmƒáɆQoHû†zdÕ4vßG�ÚÖ¼Õ°µï¹rnéÞ«0YÚöŒŠ¬±µÍñjÖ…lØ5Gmâzíh�ájö©T ‡¸ƒ÷j‚¾+³­ cýé”ñò{Ú@╹°ü|Q¹4SØ�†¢ÕìÝ—Øâ³´£+89¾Ù_˜–ðÿL±Â{Š»*±¯>w�¼Y™¡ù$QÈ0ÿsüb0¢¹ˆ`™›=òûáí¬›ëõ¥ñk&±&¦ß)¢iHJâêoMý_Þòr.®€ïÐôy÷È£¥á=ioÓ†q‘dÍuõyDN·šVk;Yvvã–Ó␍†V�ź[ž�/,ryv´„|¹S΀t+ÿx® ã¥ñ6Ä"ù)ÏxR3nSÿúŠ‚¿Ÿfe¨�–3EÂÓ�¾¼�ž³Í©ÍÆÉÕÇ1®Ý ¯ÖrrR€·˜ú%cœGnòÍ7rxÓð3R,“bmÓäîz÷%³GìÏ¡Ñ×6Ü©ìåÇÊñ:ê.›ìõº©–@ë¹ú£X_÷6 «|x;?G%ÂM±áúáåê´ÉÄ‘âÞCåFjÅr!øµÀ`=à¹sµ¶„ÇÉþæþñØ‚–3ÀÐîÂ*0%ã,…F¿äkº¨a|XÑLU[ÆCe×Ù9ŸÊ‹YæaŠaánAõΗ£×1n9Ûr]6"W£ÕfQ×s7S0dÄ »fo#-™â›9Ýà]°4LKxVn†¾—åå.G·Õ¿vÞEw¥šVX³�“ÝqUަñöjqs71ÔßêæƒqØËâaÛ¬iÖs¾ÆŒn¹�6Õê©X7uy Ã.;ûxU”ètÃ’*tÙY>,:íð£õâŸ!¿ }NHò´<S§©Î#1W·83'C¦Úø#aÎÅ.oºÜ_aÍ>r²K.¤*GaMåìïÕçíg<ú!Écþñ=$y¬?¦o⬟å[y
mzlêË­·æ<ZS1ôst–™ß«Ž9ÿ¸9hñ\?7û~ê^¼mä÷]žìZ>{÷?�J²ëÉ9x®ŠLB;0„½JŽF»¢�É=|¸›+jÌX}*îû e
î7ÐãC!ýæÁ\¯z±e²zx·ìô”)¸%S,
Œ]Ú£ª Ùùmûæóþ@á*›'®Š6‹+ðÚTÕQÔÑ?TÕ(b‰ÏŸ$íÎ[¤4€Æ+ÊZD-ŠÑ.`�^„Çy£�âCö¶ñ¥Ëù�2ÕÄÔÁÒ'¹SB‡Î*&~€»d'ع[Òzl¯X~|(A«D`\§Y#¸J߯„�I3Kõ5q•úpÕVµáÂ�®bÄ%ƒíÙ7ṫ”�ƒO+!ÄTž”M]k”¨ŽëÒSšË¡³ôœÚ·
ÿjŸ†¿ÿþõÏ_ÿÐoþûϯÿ}B¿PµÐŸ’Œ¸Þùüë¿…¿È°óÁ_Ñ1ò¡ÓÒn5]U3ùá?ÜHKã×Tâ´´‘üÙ™èB+tÛÿ
'
I‚ŽÉ@YÇ]X&R)ÐH†°o␍)qOKÌ!¨¢Ò€ƒ‘{‚®çóc<«R‹~—ÿ†0ÈÈâcìmH÷‰æ$RÕ€™°yÔ2Ú8ÕlD’^WЃSg BJ"°Î"2Å@žÖ‡ò½ºÞ©Éé@Ùp²•|‚-Àð…Vãs[Õ� ÷z ƒOþ<ÿ™Œä!Áf1ÉV!ô” Ýß9yžHZꆴSb‘ÊÈCÂl²:zd"å瑨RSSÄ‚]iÌÕ␍ÐeŸ"ŠÝAiËiÑHKˆ®ƒU�G®CF¶!¯\òH´ŽÈ;Ñãwïv„kNs–4ÉÕÝT.}%hÊ»R±tó€tˆÒëS1v)�Í3ß³­¦¾€û$ÅgúÛTÞw|Y/¤óñ¼îëi |±Ò.DÒŒ„K–cçà!ÔîýéÜÓ–�?jæi7•ƒCƒßÍÁMNÎ>{¦×!ßß<Q—KÌÎ¥±7/òrDežà69Ò'/R½k¼¼fÁ³} c7]»ØwÙªçƒÙùÏ �ͪœ<␍éûXVdÔ­®
§Þ„TÇ
Ç  ¬¼U22‹«¼™ÑU{½å‰äèoò¯De븎“˜ê]/#ÿ†‹^Ûx«ˆÍîÄ{4ÀO‚¬|:ê�NfG Kâ™Þcȳ÷–Ç¡É=„ý:õ'v8ŸÓ}¼Gxšsšøšwœ¯ƒ=#ò␍è¢Z@K¨{í4Ц©¡±¯›§;I¦æ7¤o'™š%ÿOt•×rAŸQ0�÷ ˜Áƒ,Å *• ÉPþŽúPE‡ýÀb�™>&×¥Á-bÄÀí™)p%§¬v¬C«í™␍JY×åÀ"íºâ_�µü�mdÕmvÇŠA§eà— çxn¢ÚGѽ•RÊ@Š¥ÿ8-¬x•”š‚T@÷Ó’µxà¨êf•šCp¨n›Üàš^
7 tT`˜®±4üÛ&[pu<Ç"À6ËTL=®Ì…µaž�—Me[‘¦$
|wá‹M¨Ùfš×.’Mà@c�QÏ×CoÜk¼PïÀ¦+à�6>¼”UŒ‡Û¢„Œ+p·o
å+àt8@ð\Á모«Fãi…¯fÖ-$ùÀçTxèðVðí£d=À8�
#Z’]�7Oû>kÃìd*V†ÛÄëBNÞëÇÑ
Ÿ— y£‰+{n™Å˜¼ÒòQ␍‡ìz£Ä©çs=eö€Ç(ǶÐ#À³àA1Vœ ␍ÞsÝ´'ž^~vé,³k‡¯gÓüíí¹î…ö ûsû(¼ˆøÖxrQ²‹¦ñÑðéíâÎár̃p_²Ÿ Ä¦ÉûOÍ¥°^‘Ň÷'(VL´]‚ œÂpc¸‘¤␍+LÏK, ú0¾ñm´f½~¬Ìö¨ÌoÊò;RºÅ¨`I±u©“B?ØCSÒ»Þ2(êé.)ëSS¦?[®E«¾%ízíª)|Ÿ6¶ö±R[_ÕbxbwŒ^ïØ¾fJ|Óiìyë‡Z¡²Œd^ûÜ΄ú­]ìjsÞ–!¹öqÕIu~C…ØÅÄ%º:Ñ~P/ µâîoÄTïí·K␍›í¼ñ¤<þ°V}çÝËíø>|õëª;Ù4¯ÑúÏáiWs¿áMÌñe˜áΰ�%¨·Œó.q‰Æx×>ŽÖýçÚ›rNî7£ûÓ3_éÜ4íܤKâñŠmú%ýžú�B¼õ¦Ðå�Ø~F´ÐÆ›× ™i¯™•ç&æ¼î¿+õ!Sºž±;j!½H¯£ý0+&1­s;t§™¸Zt^1o�ä‘ïs×óðü¢VÐÁÖúirÝR÷ð0ám¦7WBa¼}»U`9âVd¨+�½ÉkJˆNŽ"·k]š†ÛÃ׬Ç=WQe^᱊*#5<÷‹¼–µðáAž»p÷•OÅ]¡x^ÉðµRLÊðªùÁë]A�å²ÖÿJ£RÇ.³”å Ä)ó®t(ÍÖüôåÑÎêy¿¥\¹%óm?å’ã¸?º6e9䲩zì|„Ï>ÕöÁ�(Q¥› ñé¤ÜíÍ(ÕL=ù¦s§,L;…»­“-
Ûx¿␍œ7tó%ù»Ûw¹°@–GÏG+Ë0¦æGMO=íñ y(å „¹ :@ÚÅ.ƒø Ìz>-¢Ý…;ÙÊð¬&C³ ͸z^Rƒæ?öªV=&ÂÓj¹¾ôx=Ôh@B«ü-ÿ54¾,@óa@
’Ä›«¼ì\¯óiRúïVÏihϳì�Ý:Œ ¿¸nªÙ-Ñ<³¹•ŽmkCu1'ˆèYÓ|¥mkWâðÒ4±
Ñ s¶ôXj&ÓÊòJt«Ì2WˆâÝûsØ,ï.Ø×6„qE‚º×Fû8_�n~¯Vz¥Ë
š¶÷-õ4¶£A;Z© (§�MºŸuT‡"Ÿa0†‚-*E�ïÅt€Cƒûu¨H\-“eóÜ‘Î�¢=š¥J¥Îì$fÖZy‚˜hw=å÷,ÙP¥4yG7ïyq0»ÖÛXGOg…�Û¬cL␍îÓƒé Úwye�ê°ëÊ�ÁÇSy¸�ýçtðê÷=lá…¸‡,béŠ]�ôa„Û«–EíšR Ï·ÌK½;£µ¹õx
~{¯¹„³WèƒuèáL䎦‘>¦ÃkGßÏz
Ú¡{›jz:w¸†Š^Ùr/Á¨g7Ò÷õQGŒ¥šl¹.€·Åú5ÂgÒVÖkiƒ©âuàÌOÔðã…'&ÝŸ��XðêU1èÆ—I˜¿øìÝ*ï½1_~½ßGô*„&‡j×%²?)ÞXš‚íiœN.Ô8°Õ>é.v4Ô!Ú•j/DeÿšnixÐ- §&E PÝüŸ)¼îö5‰N¸a'æ­bG ly•ƒ°#‡Ä5¯É�ƒÀùmØ9ú`zMÓ”B;09™²ÿ�YäØðjK¯É¬7_8ÚÐZŠTQcBPØõt`ÃШ¨¹5ª’ÉÊ�có‘ðtý‘ÒaÇqt5öb‰¬ï§0¡XNÉSˆÎÁb‚ã§3®§9ù4ZI␍õ3k©I¥;”ò,KȘXçèI¡f%[—ÊðëIl£¤¢bJ¡ûæÔnóº‚ÐNÿþúëëϯ߿ڷÿ~ûú÷»ë?9à˜x›ÝôÇ?õ¯5K­qÙ*òe^^òüæÅûþ!&­g±1Íz züGP(ï¬c7Wç£|•N²ÆRÅÆ‡šÕXP'|z5(x�‡N ¸‰öê—Ÿ\lŠ_ö2H†‰äˆ­I?¼¬±„”8}ÀX‰±O„MD;…Pçà†Ð” P³Q!Œªß”ÃE j È8¢s:®@)75ê_†:a �í¡Ì„ÊRG,‰6Ða¯œã� ;‡Ø\¯¿aD^÷a³XdU]�éV%;”öb×^‰î`Ë¡õE&C–´ >AG`[—L„ø.‘ŽÓÌ‘ƒšª�÷}tºB‡Ïä߆Œô‰¡ i¦Ð„0!y$)LÙ½ÈêbÑ,4Ű³Ðå¼»�HW�¬âe6.‹<ÞýI>½�ƒå):yÀ”¸˜Ö‡jWùÐ+|9µ&|K%ž{›žÞíú]دß{1IyÖËTǼ;zÁ)µ\58—µôüÿ4«¸ ;áÌ·ò ܳw␍6_␍Ñ Õ¾yð92
–~QÖkYÑ}TÂ^Te}ÁÁåÒ�ô]©§vª<fÁ½üA¤PZ�Ú…¼␍|Q$c]SÈjå© ç²ãªª›E?Vw2P4o!0ëTifeû¼ãD‰ÒN/ÄΦa\L« ˜ÇuÒíDç­Ê?ÝÆÔs[—ãmáÆ»àÀ ¦
p¸™zŽîx¹íwhìÙ†üöxη¸äØã¸õs%␍¶Û=äÀ¤Í=Í
¼Íƒ#z/FaíuA)ª␍;TQCã‘i*5ö†yjó!ÉÔü†öe¦éfÉÉuiÖŠC‘f{f:=É[†¤áª]ÏlL~Y×åVÍÊô␍�]«¬Zèá)'½°"ba–�AE#ç<§Ô)‹îu4¼VÇÕ]6ä23Ñرn¶!-Yë(ëfy¢9DZÿ8xÀ5½nÈQ€NEcï}á‹Ig=B=_vµ4$~<ÔNt$°NÀkVTT4DÙ÷Š~tñÀwfB�-‡a«Ñ…ã>¯Áì·Á³õ|p½-§j?�zÞ/Én´9ð¹ÏQp<8\DMÁbC»èò€ƒ—y$NÂÌ<ÀCõ 9ä E­ç‡×«ë¦ä¹ƒO:»^u–p²®\�0Ȉ–d×ãÍÓF�Ù¤¡‰LÅŸ¡ˆ¼ü²¡iÀ[Åõ¡Õþ ÝhâÊl¶†Š1Û3“ =°ë␍8èëžëøXà¡–ÿЯ^âY�‘"[iýg)^nÚ O¿ÞþÒYf×.„_Ow©ùÛÛsÝ ìAR¨îdWIŽ$É»Ï+ò, ¾˜ùòŒ�žÐ€ @ÒAÿ¿ˆ‹Ev7t©JF„¯¶�4¦k!¾õ={Ñì¥Ì��>Oo1?„\T�›éåÕ³i°Ì%àîšûÔXàU³x?A‹tð7Ên¢H¿'"2)Ã
oÌC¼¬‰’ÎC�‰fæƒõ€¾æx‡,¯1÷¬d°I²uª³# =X³Ì®U²E=Èé1êÁN␍I[Ä®I+¿EíZvÕ®§�­ý~±¦¶¾ªÄHðÄ®¼ÖØ3)¾é6vÞz�C3¸—=¢yísŸSîÖ.v•9ˆ «Í!ºöƒqUIuø ¹6œLœ¢«wyR–Jq÷÷‹Tííw—¸Ûy¿gËヵêœw/—ã{pº;>¨˜ÑÈxŽÖ¿—§]å~¿ÞDÆ;i ␍ɾ*"'µJœ7ˆKM â␍{Íýö&Ÿ3÷;¢ûès¾©s§ÛÎ-ÌvIo²¥é÷Ô
õ­wUÛ÷‹6´ñæ9Ð…Üi¯;+ïM�óºþ®Ø‡�ÒùŒÝ‘ ©Ez•yèÛY10Ôií»X¡{ºW‰æUç­›<Ò]êÜõ~x|µV´ƒ­ù§›ë»&¼ÝéÝ+Á0Þ¾Õ*0�q«f3�W k␍6¯�ÕÜ®y)␍·?_Y¯ýu®j•ó
ǪV9¦>Ÿ»Ze3­␍_è¹ w‡<mw™>༢ák¦HÒðªñƒá]eA�¥²ÖO¦Qªc—³˜å ÅIóÎt0ÍÖøéàQÎê}¿Å\s‹æÛ~™KŠã~y-%9¤²Éz¬Âw?Uöƒ‡(R¥š ~ñíL©?Ê›(Öœz=¤›úNI˜v
wK'K–q¯†ž56¨æ‹òw·îrb¡Y½�V’!RãG␍ŸzÛÇ+(؇¦t�0wAhB¹Ø%_sBïÓ$Ú�(�“­Ïj”#KÐÄÕû¢ÿ±V5ëQ0žVÓõ¥×ëÕG�dh–K…¾/ Ð|`�‚lâ€ÍY^r®—‹yš˜…ú»Õ{JÊóYòÎj�F�§®H5«%*‚Wlnù†cÙÚ�]ô jt€Ìi.iÙÚå8<5E¬LÄh†3Ûô·äLº•器Vée®É»¿ØGœa±¼»`_ÛÂê^ ícuºeø•½ZÓ3]úPt ´¼oSoǶ5hG3uù4t“îwÙ!Ëg8hCÑ-ÊE°ßÓ,ªÓ†>îצb"´t–ÍccÚwªíQ,•+µÇ`%ѳÖ̉~@G»ë-ϳ$Cå^PäUܼçÅ�YµÞÆ:z›eftoY×8õqOL-Ò¾Ë3ëVÃb¬Ë#tååvÖŸ}ÐÁäÿî½lÃq³K—íêlFˆ>P¬š¹è–Jx>/µ
vFiskh~{—¹„ÙËôA:ôaO䊦�
_ÓaØQ÷YoÑv(ÄÞM5½Í]�^CF/o¹—à¨g5R÷õ¨+ÆTM²\`´˜¿F8&ee-KL¯ §"‡Oœt¿‡MLx@e ªñõ$ô_|÷F•1Amäë_ï稽
¡ÈÁÚDÖ'ÉÛS“°=ŒÃÉÃ…?lµOª‹]uˆv¹Ú RÙ¦KtK©HQ$GÿÆq@…×Õ¾’è lbܪî„-¯RVä ¸æ9y8œWÃÎQéQM)-(„r srËšøYͱaiS¯›º^¾æ s‚kIRÕ'…QoG�‹¯¢2™]¹óÛù6á-èücK‡ÇÕÕ·SÌ:?ù€¶ÉrŠ.èBt&\?•q½�É·£Õ��Q1YS%™Ý¡˜gáZ†„‰yŽšlV´uÉ ¾ÛH©È˜bè¾9´[ü …`h§¸ÓOÃßþñ÷?þú㿟þ!V“ÊÃNoçÇô�þ"G÷GT3>M­E4…ô— ù¡ ÃÕw9-^Á H°Çÿü÷‡vÍô;–{G␍…à;#oa¿«aK ˜ÚG~äŸO½ð�§Æx¾ç— ¹ØóÝ#÷ñü¶Éç—]òïcîé“?¿�×R«¶w3MüÇßpÅ­.ø_¿^6ø.Ž6ÔBþzÛ�ò™³,Æs ö™D´©Èóë“ð%ßúHªu&2úÁãþûCö|ßA©"­j”jþ;!=E…ÃÎàJ¼ ÿnþ†?Ÿ÷9<5B“=ßÙ¼ÐS+yÏo|¾;ôîßÇ>Ø;Ò§þ9¯¯¤mµ•ÿ»çöû=£…␍ô':Jáç5‹=Ù"ŠºH¹Œ¡Ä9ËEo¢ZdÄã/íƒÊwP¬ôÑQ®v{Õìq^ç¢
½ohÏSÍ»Áêauqˆ•­o÷$¤":âph+Ç·™¹pü#,ÔÕ܈$ÞÈ•[—>Ìæ«²'$t^° ºbwîaÏ©—ö�^ê{2˜¦©Éš¼L?™¬7iZj9t;žCFRo‡°š+õæÒç!cG1{œ=¾müÐýI|␍X—¿¥§©û›îW�ަÂ×-íB³¹£­Ñ?�*˜+žmÉæ±HÅð´�¸’8w.o»—tì£÷[𤚕¸mâ´ˆºYÀn“„xCÕhÍ¡´Ÿ¥´'ãBjjÒ¼€”U!ùˆìD8@k:ñ„íZ¤C �‰¶J†LHËf¶ÈšôŸ"ôÉ«ž›´Šê”O"÷ݲ´“º9©JœÆGQb^‰¹&)�úY†Ë2ëê¦Ü ±€D[¢²hrsƒÊû ®lhÖ ÑEã¨.Êh©['{t홬3¸�À½â"©É_ŒT¥¸/6␍ò€€,:&š4`°h®œ␍CÌÔKWJИÚM<Ž,a“‡žtMh<³ÞGÈÀî]ó␍l–xÆlˆÈzßÒPî"_bÜ0r«¯Z�7…lj­Þ“‰˜]±k7ˆÒk�Â��ºÿ¼
_¤ÔôîYg�<ÝO]FⲨI»M[¡wLÄ<Rý…E=R'”`AéüaêH|½èE>׋Ôe¶ÜŠ{¢Ó =rU^t_Pm…óæ|0G“òš�4\R®r:‚ܲ¤p€F£:ÅwÁ@g0«+¨ÚºÓ�®1P*×0P‘€×e†Ÿ@F©␍MÜkìr´¸ࣜîÈÀ`˜®ÊDœâ•ß“Iõ‰ûnÙC]Š:PÎ1>TŸí]®Ée/G0) ’XQC¸•šoû@z°€m‘>)�\4�R>g9I¦ŽlÚA2nD5õáÆÈKžî²!S¼T2HnÒðU«@1$œ©ð©+ïöçMß.•poz}l?/JÛ�³5GÉ"ྋ38!)þ§9…í8TèhЄ§(¨¡í§Osš>Uch3ìiĶFCM™ØÆ »‡�"Vÿ¥¥[2ôi]ß›ÃÑë¼{1fhñ.Wˆ¤CËKº“‡/|oóû1L™Ä”FœSµ-–<�Z..E18ªÌ¡†È<“sÝŠH/«ªðº) œÐŠrÖý�Ðp°dÇzm£Ç>X>ãá±ÊÐ&$=ƒÜ”—žâ²‡i3™¼Çir§¢ Õ6c2÷�rŒŒ¹^ãJ†*g«C=[ÔÜ£0¹ •fúƒ^Œ®Êtî_ÔL¬×o]*ÈÈâÇÑJ•ý½YØmð`ªxžNm¦F±Æû Áì•cÕƒ»õ@�ãAÆ0óHCç}pnò–í]Ù`c»çÔƒ¤;ékÊ)�Þ•6h7ÂŽ.µì³ð ù`ýYS„z␍p«EÍíhMÿ#º\ruÉm<¿«8¨†ß�ed␍␍™d�ýOÂ�’O£�>W®ú˶D‘TÛ3:T=Ö{6:]Þra)pQ²Î`o]ï¬\€8:ˆˆŸ€ãŠžô:r¡©Ø0ÐîoA­ójÃ/Ì· Á=õû»@‚é¸XÛ8ï“òJb�QÞÖÜž^—…¢‚ˆwv{wE×ÐïjbêFmßK] îi�³:-Ì"Ÿ~o.`"Å>ó´ÌøÕD?{g Fµù]+�=/cUˆ2äÔ�¸–Uz†´0«ýÁ¤è^ù'°,éÕ„ , ‘¾ÊNho7LTŠ�Â\’û‡5åÀ§çBD ÔùÞP«W¼éÉx‹;ëM}g�9÷Sö)§„¼öŒi܆—¹`K"–øí§©w‰¶ß‚tAõ,¹«æ�åï,”;�ÀÊaAZ€¿Àá)>÷kKA[HC~Sj!öߦEè±Jïœs¹ÿl:DÕ½Ä4ðy:ÿzç®’I-œõËÝîi®—N7PÏ€U¤3uތǰŸZÁVZh4¥0R²†W4‰ÛØYã%ð¨ËWÏç�3lOªŽiÅ׆K�Ù:�6¨²M4¶¿¯ãY:<5~É.Ô½"ÏËSŠâe# ׋닯O×h§x*ýX®�Ü^mÅa‹$S=×ö”†"NSóˆ¤dV›®någ Ô‡ˆ‘{‹†¨¶QÒÿéUV¬␍ g¡™ãH+¢Äê¡Xñu‰‹mÏ"3D2<Zxe f�V<TÈùrÕ›N¹ca-DœªŽ7e�ûm$¯µòâpìåp‰”Æ©ñ␍~z]ƒmõ™5›X½k£åN'RyxÍËØ@ 3å!\r+›ãí�•VÝþõYilŒ�¥Z»øýÆGü¤ó›ÛMgþý5ÜQ éÃÝA†˜ß·´ÂÛÇÇ ¥‡(¯ãm‚—|ZF�Rñn®œTüñpUP’�¼„§¤xa‰Ýð" Ü!®£¤çt2JæOŠ'ÆüØtvËí¢(æ2*áöáNÊñˆX$< ‡0¡xäm_rÆóÐÅ`Ög1Qæñ-5=øÚºsK�ÞŠã˜mðìá[nxîk;5˜GÄ<P\rþfŽŒA>–‘ÝzõT©Æ
kIwã•‘óÇP␍6ÝèŠO±8¦1V—çS<bxRvDÞ9Þy¾a‚5B›6<Ë~SüUhte×ÙP<ª'»hÅ{yò;¶;â7Ï¥JÊÆ f´á6 ÇZe.é+ÇÈP9b�aŒÉnC²·çûˆgžC–ÌdƱvõËx”ƒdÓ-GnTRŒ—Rºs®Äv(ã;f9¾‹á-?·•‹ö˺d³!9‡¢ÒÌdoL=ê
f²úž_Kݸ¹ý9¶C!âÄr␍-Ü^l§´¯}æï·ÎÝžÍãxº]k/ÇÙQÜZ·+�␍“›¿oÕŠZ^�R2¤™•=öW?Ž‘Ù_Ý6i{šS<TÅ9§ˆ�mš†ûÿª42³ÍçqXnÆp†ÍXé*‹6»-b*²±ÃíÚ1M[0Õøè2b²;—Nq÷,¢¸ˆNp çK3–ĹL ªµjîVfÛ Å@è¦ï$¶>›ŽBQSs(½‘gáC*Dö²AÙBÐ4� KÐVnÜθ¹Îå.2Lg¥~€5;*x#ìŒ~™Q!>�O§ÔJJÉ0(ÍSƒùJ4Ó‚ÖŽ Cb³­�bw+’I�ÑSÍïF34Ú_5´aÔ␍_ìÔueób[áEú(¨3ª‚ é{@žÉ,Úÿ¹s°¢§èÂ]èúmÍùKØX*–¶³gÀÚ˪�*\úä·ý¦&M,ø_¡)ÐV%ò쨰–åp…ÞI
íÃRtþÚyŠà“R»ÌB;Ç_΄Òß1;{Ñ­-½P¯ ëÚne
uɉcŠJ˜ç¢P`N3ì␍”~O@ÃØíñýPÁԙග®ØIµPýçÏ¿ÿüëÏÿ~êOÑÕƒASb™5¢ýýß?¬ëÿî\™£2/ìÂÝâ“]GúœÜ nÔïÉr7y)\yÒ¥Fùª/ÕȵË>ëkö;ä¦ê7_ËfÚ–ž�ûÔHj%:οºE%“=,¾6ú8®Qº.¤í¬kÕM·–>¦T?oó¡B"^eƒ(ñ4§V·<Ó¨ŠGOw¬n„Ý8÷m í«vá'} Ý©ØÈa�Z~} ê¢~·È¶þáüEv;ǯšJ¤çׯ£Dº=›©ÕûvåÂMÃòR_8%ÇW"üÅT–Dy(9¬4 Øúab¹AI^719d`hºAg‘sfƒûá,ÏnÊbëÃ|ÄŒ¢ŸÎàX”G ¾5B<b=Æ–OS–Ó8 s3¯ý 4L¼i”tÙ�Ð4eþ„Ú‡-€{‹–•hñìNUl g¥(R%p¢z­Õ$æpé*fg_#MЖý ”ÃlܼA¨”Unàæ'q6tµ¥Öì#ÆYamÚ‰Ëw%"|± Zá–ˆT€f‘RHÓ´5#FaA¥ õ¢ïÃ݇hN8ÃÚ±_(–Å]€V|{>Gè…µ½ó{#üÈjùþ´[Yï©>ƒD¹ç‰a9}åîd
½+ù¼+ ËÜ?¢i{É!ŒÓb ë?™¹Ó^-Ì£'ØêéXx½D
ÛLâÓò¹½Þ´î;ó ¿i€)&Ü–:‡MYĵ¨ëm¶­ûfÝç¶­␍û¡˜¡BÂÔëÁÁ$—]#‚ãÙ²¤1¤‚ù9A´`$±©Þâü¤­=xøõ<òe|U«ÜQD…7ÚLÿ`\˜áÅ␍Ê«Æ�V²Í ÅǘêÌvÍãKéÑ•)Ñw ÇÓOaŸžžŒ9ê#Jò´•æ›ÁtvÒýÔåiÎUS¹“㣆†3{&3]Az²éŒ˜qcötü6Ç•8ds¬ªÎáÁÀÄH÷ž6§2 Žôu7ò5™Þp¨2Ïù†Ëj¥ž¸Ð mÞS¸ÜR˜›âÇÇš¨Ökºæ”¢‡F»WÅ1+ÖmÓª¸;¹˜ßíx¸ °4ÝáI *¢ÅÓ…¯ [þüt�ÕnN#vvDC3¶‹aw+«Ilþ­ÿ³ELÚ9ŽÉO\§·»#Î^ÃÁLQÞĆkøòÅ÷}?NϨÓAaïîmûæ  ¤¸Ç�ÙLø
§]�šb»"õDèò)¨�DE³g~4]lö´UèÕƒ[Äç8n'Ú«-¾ã|H»;åÀ²×l:à=ÖhÅHŽvuu¿iû(ìc_1†ššû±RÒÜ9Û õmK—â:2F»Ôi!ŸÀQÝ™�=ÅW=39ýÔc�6=ü¨ÖtÛ_  °�º›ç«x3Ef¦ô®l+îö‚™ãb@2tÞÂQ¹Ñ-g¸b6ÄvÏÉ…É�«[ç'»}œe)þ@©ÊÎ8¸k.L4ð�ŒáÅ%7␍mg„Û3:T=Ö{6ú›dYXÊ\…¬3Ø[×;+ Ž"â'ย'½Ž\h*6 ´û[Ð�EAëżÚvZj/ˆEpOýþ.‡`:.VÄ6Îû¤¼’Xg”÷†5·§×e¡¨ �ùòÝ]ko$òÕÄÔ�Ú¾7–º@ÜÓguZ˜E>ýÞ\ÀDŠ}æi™ñ«;ˆ~öÎŒjó»V. {>^ƪP�Y$Š|p-«ô iaVûƒIѽòO`YÒª AX"}•�Ð>Þn˜¨3K2—äþaM9ðé¹Ðu¾7ÔêõzÊŠx‹;ëÿ©®’dYr·ÏSü Dšæámu„Ú´Y[.êþ›@È¥Þ¼d„»$ŠÄ°ÍïLÐGPýäÓû¼Ny®Ž9¸…Z®9!I”øæ©ã·$‰2O¼€ûL^•ÖO<}9„ÜÎh9L€ (ÁÏTxˆ×>Ûš`ÐÔàw‚-ЇõZ=¥ÒÙgoêÜ»hT×nà'´Ôüãì;ƒ&‘XãCŠ*õÔÇ)§¨Ú0�A¼©ˆ›ôÔ´B‚6”z"ù7`’jcúŽšS>ª¿¯ÜP1Àyküo .´Ì¤ CÓôP�LMD‰Ëï3ñ´,•8Õ>°%â\Qç!—‚xH ¦ê¥ê‹·w5(U£ôâŽòSrMc{Bk#Y*è˜1bm55$`âð# ’ž%ºª˜Ÿ6/jìøqƒ°¸—ˆ,þOQ^TEÜàvF7s;àŠ¸b̺ñÖ'ÉžÆéA’¡ÑB+³Å¤Ñ’L”/�º­”+%,¢¡�S1±m›Öy¾IÊ+ÅDž¶9€ÂØ5uƒ¾Ýºƒ)öéÙCŒÙ•Ћë¶b§òË-\¦ ÀÐS.†CD.fS<eX9ªSO¯aa³·Te¬ ÖšI¿ß!|€OØ?ca»àLÏoµ;¨ks»±B$˜ïµ·—¶LO ÜЧˆ¸¤ÝÊ”’VÓ]“’^ªŠ�Bg]BSòòBkà@T‡TÉšSÅH®␍5)51Å�DgÕ‹(¹u)ˆy\áÔæ •”â1@¸©B„R#Oé’ÕŽ†Nj¦&~%ô<uK¶lmœ¹X£—¤8¼␍5{è–š{KN5:Á1¿@œìZ“®éÍ1;Ÿ’‘«Õ,W‰Á
␍+J×à¥fÿÑp‡4›tÄ´§”8‚ V…æCÜÂ<¡:oÛ;ù:ˆ–=è´.Á3¤7�_‰ƒŽêªˆ[–³‹@<‡œß’ܾɗ¢(ÇŒhèÑV„S ¨>F–¾¤Û‚!jDfŒÎndwõïIÜswL°¤'ScU™XÚ#É‚S ŽÚàJ)¼PÒi_IÙ�ŠÏðr ê.š7¿n¢åC
²H5ûP²4=Ù±© SAO–Ï÷[T×¶—_Kr(Hœ1TC µË¡,è×ÚýüľˑyÜNWÊ©ÆRu—âíV”±Päúù’Åø«øx¼Jš4á ªÇõ1�­¹ú£J&M¹9Ä␍·ƒØ>h,ÑÔ4§Ô¯(#=[�°/…i;&fHŒ¹‘6ª(±["&ÁŠ$ì¨v¥˜º$îxá0@²ÝÝ—l8ÄU^qœP-œ> ("crŸC´�µã®Š¦•žA21[h[w¢%&^kE�¨`8PÞ¨3ú,Äêy@¹ZSp†îhmÔFãLUÕ94EƒŽËæö
†�,¸#¬´~®(:…xÚOa”P’¦¦N5ú+ÀL X[؉Ä6B^v# i=1ü4ö íïl-êj_lÇq!óbYô ø€‘{„‚iz76¹‹ÁfÁúG�³Wð-ya/T<›í¿Ð—…å¤(í!
1�*Uzç³u›“:%øßÁ)„­ÌHÞaNCá¾ šA†ƒ�‚ý·àÎÍFAû˜Jc•>‚h{ãö‡*��Ô{„KÚp+I�®Ç�ql�2/j³&Œ¡VDÁä‹Â$��¹›&m€òË5M`•R¤Ö¨‹7hž l³»âJ¸ëhªô'áïÿþõ¯¿þGŸÓŸüçÿþúþÆg 4 ˜e@ýûýêÊ¤Š‰Ö¿?RM7ü×-ºÐ¿dUðS)½Vh`ŒLgÜ5Ð�li)^º J8ÿò¶¤[h‘ß©Ã�XÏ£ñv¨­Ðh\Üïº�MtÎ_‰wcS¿*Ù*ý™1A¿&-úXø;XIý
w@Y6bH˜þ¨GkÄ-ÊXÝû�X6—Ø,Æ™ëáµÉßSQ!žÙz»a¼¸L¶¡[h¼6g«÷ÂçéxO4(ev¼ŸŽÀŒãÔåõ˜–„ÿ␍´\ FX;uŒ»¥°·«EÓó␍ìLÇD�$ó‚ÄLǵÒZ!±Â$|§~±ëñ½Õ_0]¼�DnÙ‰Þô‹…%à£HT{Uœ™]†Dô␍ÕbcÜ,õÉ+ƒ‰n9…õL¬XÏê‰Q®¤MŒ›`µ'Óånzet2@«äˆÛrb¬HˆN~T™=±H!Jõ÷ELö¼ƒî°?‹Ty¢» ‚.´ÏÝ'›õ=H·ºŸƒ"±SJ�¯ñ„‹…Īã©&X�␍pëMÖå¹
�RŸ;£b]å¹Õ¯žk'Kalnc�ÅúÓ9ˆ9··(bÁŸ_óQŦ·;‘Xà€¯{É©ûén2nÍOÿS¤�ý ƒ›øF¨²Þó™1$¨}ïRܲվ)…J¨Ä¤oŒk—ß9‡ìÈp jxŸ‹. „ %P6•@øa␍E-‡ä#*%`èE+ÉßüÀ•ë,ÜQ¼õýà!Õ_Ë/`°äýàé–ozðÆj”�mëx»sÆéHÐñ]̧ Ê|œÐÂÕ]Îh4‘ãr
œEÍYÅϯ Ö‰˜ ´Ãˆ´H·Q{š–½o3Ü"õYâ×�4û �ˆiäŠ%㹩L–”É�ž EÚ‰;íD4ªôR?ßJLÕxzXÙ<Ú4kÀ� �ˆ¤ñ½é0Æ…c‚t"®xS�NÄì• �ˆ\T�cŒfa¼÷‰ysA:7|¤ñÈ”¯ež˜¥Ò‰˜÷gÒabëS�Nĵ4éD¢¡&�HD¼Ï÷­kÒ‰ÄZä¡eÚ¨bÖ‰D®J̘F$
0Á¬‰
1ëD¢u™†p›LH ëDb”õǬ Ú¬ã>ëD¼(ä‚uœ@™Í:‘àë8^2>¤&P&ZŸ 'øDÐŽ_óŽò^¤�·?¦�ûƒ`�ç␍Åþé¬aÖ¹»0íÜ}švîAL;÷¨æ�[ óέ–yçÖÓ¼s+nÞ¹wbÞ¹·fÞ¹÷jÞ¹7¼s[üs›'xçv—yçöŸyçëOóÎm`óÎmñ ž;&ž;$&ž;E&ž;f"žõÌ¡‰çª‰çN²‰çŽº‰çb�‰ç‚…‰ç¢‰‰çÂ�‰ç⑉疉皉çà�iç�à�‹–Á:šë\¸5í\<6í\À6í\D7í\Ä7í\F0í\Ê0í\N1í\Âñ¿ 1š^ÿ3«-­Rçá,ò)  *°º?€GN�¶ù´EƒŠDú6ÖÀjõÓ‡­ÈÚÕh oð€DZ‡ß@¨ùü®áôHTß ±3NõðãÞºç1OÍ º†ïnÂ$G¯œ1 ÁŒæùXrCK"QbÖp‘ê¦&së›æÑðªá¸ã§yˆ”“�¦¾i.§.¯éôŸÞ‰çC�µhtÌ®½‘5[—A§†ï‹)§�8þ�Ò�ã»MyÆ!˜²Qçt­¾¡é!bôáØ�OÀ˜uâ¹…9­U'‚…ûÍ.n”°•␍g‚4§êÄØ$‘¯ž-«2QÏðÜé¼²A Ñæy¢áŠ‘Hí H‘ÇÇõƒ –\ç‘!ØŸý#tsù¤"q S¬ÇÐÖˆÛ·Íin)gŸe+ùÈO& —žÎ/Àw3ÜZÏ*àÀÕû³␍$ZÉÏFÁ£û['É<ñ{T$réO1@ÍãƒS– ‰2Þ‚f¶OJNþOó¹H†½òskÔßFy­Hä� xñ™³´žÖ@âèâhh™5Î/Ø]H´¯AÙ¹~Ã
�4ÊÛÂH|1õ�Ç­ @\÷;"9}åÓ IÃŒç�Qå},À)ªíóFŽ)ˆp␍Ì9¦¥3ùt²Üü®ØNÒH1�k1”à`ó>±øå÷a<Œÿ�VãÓŒgý“¹�w¤¢˜“*ûLpà%9?Ç ‚uŒê�·xgù€ å°^ÄÖ½<�þwy!ŸCsbrBùX8H·õY¥E³²ÍKA7ÔoÇ[‘mˆgÕ1É&p1×pžŽ�#Õ@¿œ¯I4éˆó l–ô¿T—;®m5Dó;Š;�ó´·ÿŽ"@  @Àüª\e·ïv�ý³Ý]«ÛœáÜ5‡r†“YÓ*Ðpvó+Lwn
LniÖnSMSË2i8T
ò&␍„<·@Ò@hj}MCi$Ò¬I¶:&i $å•Ió9ÅdÒ@h¾E¤�°Ÿ¹Hó)«%Vür{àšZ™HƒØý�I¡êü�†­Xƒx¤“5¦¦4±æƒ"x2Q'53B͇�TuLÔ@(#[`6@¨*q£BÓ¡
5ˆ»úb£‚“Z¨ùÔÝÇ5ŸæÆÙ¤AüÊeL
:b“BRê™44y5¾jZX{A•)Ô|Žç5ä¨F␍…¢ïj(Ô-¼¾E=™Qs]!ÔÄ3Œšx‹QßaÔćš5±³&kÖÄv˜5±afMl©Ysöܨ‰C1jâÔŒš8W£&Þ¨‰Ô0j"yŒšH/£&òϨ9 *ÒDþ5‘áfM”€YEbØD-Øô¨3±&êP¬‰:k¢�Åš¨t±&¬@¬ ¯kÂKÄš0±&ÜH¬ »kÂÏÄš0<Á&Q° ËmÂSE›Ët×_®¼hsÙ6is\]°Ùž/Ô",Ò^4'â̦Í__~ýöõ|ó¿÷û—¯ñý]qÆ␍y31Fá`þøg]õÏ¿�Éò¸SÅú
[õëžõÙ;U~�$ïnh¦‹Õô¬xü(ÿ²ÿµ¯aæ]§P4”dü°N±woR×Ëh�˜Äx÷³«Xy•ûpm¥”R¤®½eªüP2rþ¬¥àÈ™8¹éÉy¿S¨-ã²G)ÒeDȄᔫ}Yl}üûJ!Ôî›”²å]•:_§ô(ò ýN,,ëË�ãþÈèô|–PYF×Zãa[ãa,[›ö¤'-‰_ê˜E£šÓ…¾²¾;±tBk%Û*R[wt}„Žg±Üœ_ØÎ¾®p¡1Ó�¬²MíaªÃ@m7Ø¡²®p»_|°²F%³ ‚ÍK*ŒKÛ^[¸7pi•'„Ñ×#؋ɯóº£e‡ãYÑúF@BRA蚸^öY둆6(ò*.+¬ý�¬‹Dœx²…–ê}ò}Öû,Ýz½„V\®¯€P öó�&÷w/Ð¥ãÄB!p䈭¸³îðfA¹]»™ÚJ€Øov -]'‚v"¥|�Ž‘®SMüé:vÄ,›H t9O½21ë"r Âêwò¡m*Ï��;��½èÄÒ¼²›­Z~¯üg/׿U ÚS¯ÊÜï~Õ„ÒúU„Æ,W•¢éÌn­|me\uŽFöµmluÕð=§÷�}^VÂv™Fx¼Bg‘3ÊýðRn¡Ž÷²3lÂîÐØ¶á‡œÊ{æÄ2çå§èƒf¾ý�RK—!cI©]Ž]è9í²tÎ7|Éñ|Î?t™Ã�ùw˜aöLÁ€•_‚H·Ây†ÔQ<Q1ÂÎßšåÖøôìɯNNW¹;œé×=|»({aGqÅv
;ŠÙX ;¯AõÁ& ;Š3'¿Ú5|±°£x~—Ý!ä¼²¸´øGÝ@/ÌJ©5íßçÃvzæÅ�£ÅOt3WÅãÍß‚ã±:gAG1ONÐQÌ9PÐQÜp?mpÇÜ
AG1ÏÏС0×_‚ŽbÎZ†Ž¶ä†ŽÅsÿÞ‘º†Ž„�\2uHà ÀáŠ:Þ¼„®j„�à ¦Ž„ 1u$�©#¡bɦބ–�3¢Ž.ÚÔ±€¿DÅ%oêXÀ6›:X¢Žcø¥±Cá]�®±c�w;P¾æŽ…þmìì¸|;q�¨s=AÔ‰w˜:ñÆN|§± 1vb©æNl†¹»eîÄ~š;±ãæNœ‰¹§fîĹš;qòâN¤†¹É#îDv™;‘æÎÉOs'ØÜ‰x¢ ž(ƒ'ªÈà‰2[àW<Q¨OT²Á¥nð„<aO¸‰Ávcð„<aXOšÁ³ýÎØ¹ìpìÏn)ê\n*ê„Ý;áÇÆN¶±Žnì„ã;Ac'�aìSŒ�ŽÿÄŸ¡Lµ±Þ’ûfùá‘5A`–ç1h0²¯Õ¯6­B…ðœ+ Z>ý!„çËJ :ìÂ36߀ìy?€+X=„ìSƒ5VÆOÞ|œs�së{ϲ†ïlB%+WvàT%Ï¡$§^Iµ†ƒ\ÙÄþåœ4—†G5Ljøé¤¬l$uóIóu+Ëó³óo=+~7 sZ¥cº6䯻j+ÚWñ�˜íT~ÏüÇÖ�å;�<c5L™(ˆßg %-C8ESiBôèÍØ†¿à1cÇ}.Ï)%[  &Vì©]œ(mëÙ~iÒ¬ªã#é|us6�L!ï22 æ9ŸýÈ‚–BéûŽ‚#†ð”í >Gn‡õ� JŽ}K[¶ßë�?²9�V‘¾…)Æñ1¤5âr>³›-igǶ¥w·Ÿ` �§}h/1áÆ¸ÞŽZ¯Ï€PÒ{}(8:Ï[°’—+¾—
áMõÚ  ¹;åvAHíÞЗéS¯-'ÿŸ~� Z†9ÞëÔØCœå±Bx xð/ki\©a÷ÅJô2£í+˜]ÊIPæß›O1+AÑ µt§0„³_‚ó8£W Îó.‘÷9Û·jhõpÛãYdìòX…pµ¹ŸÈ2çî�YÇð´gW> �”Û…_WìIÒNÑ÷Ôb+ÁÂú6|z␍üËÏ—¡<ìÿr«vzFÙY=m®üŽ(Ú†ÙÙeï
–_ò%ûr*¨cW—ßâ™é†ŒÎaÜŽ½Îå²ôé¶|ÍŽÉ„t(,hà´Î¨48¬LsI¸aÿ¶g+Ò†~–6ï6³†õ´Ç9¢ýËþ™ yvS`Î`̲�š3œ»æ°@Îp2kCÎn~…@ƒéÎM�IÁíà"ͺÂmªIajY&␍‡JAÞ¤��çHM­¯Ia(�Dš5ÉVÇ$␍„¤¼2i>§˜LÍ·ˆ4ö3i>eµÄŠ_n\S+i»¿1i T�¿QÁ°k�´c²ÂÔ”&Ö|P¯C&*â¤fF¨ù°‘ªŽ‰ed ÌU%nÔ@h:T¡qW_lÔ@pR 5Ÿºû8£æÓÜ8›4ˆ_¹ŒICAGlÒ@HJ=“†‚&£æÃWM kï ¨2…šÏñ\£†‚Õ¨¡PôÝB␍…º…×·¨'3j®+„šx†Qo1jâ;ŒšøP³&–bÖÄb͚س&6̬‰-5kΞ5q(FMœšQçjÔÄÁ5‘FM$�QéeÔDþ5'AEšÈ_£&2ܬ‰0k¢H ›(£›u&ÖDŠ5Q§bM²X•.Ö„ˆ5ábMx‰Xf#Ö„‰5aWbMø™X†'Ø„#
6a™¢Mxªhs™î:âË•m.Û&mŽ« 6Ûó…šC„EšÃ �æàDœÙ´y¾üÿ¯¯ß¿~ûúùן¾ñÏ îÝI␍endstream␍endobj␍11 0 obj␍<</BitsPerComponent 8/ColorSpace 12 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 7/Length 52/Width 7>>stream
8;S=C0`_7S%"\noO8`:`1K?(.gkjkgO>Z(g[7.,"GQA!K)E&9'~>␍endstream␍endobj␍12 0 obj␍[/Indexed/DeviceRGB 255 13 0 R]␍endobj␍13 0 obj␍<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>␍endstream␍endobj␍5 0 obj␍<</Intent 14 0 R/Name(þÿVþ\\B 1)/Type/OCG/Usage 15 0 R>>␍endobj␍14 0 obj␍[/View/Design]␍endobj␍15 0 obj␍<</CreatorInfo<</Creator(Adobe Illustrator 19.0)/Subtype/Artwork>>>>␍endobj␍10 0 obj␍<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>␍endobj␍9 0 obj␍<</LastModified(D:20180717180955+08'00')/Private 16 0 R>>␍endobj␍16 0 obj␍<</AIMetaData 17 0 R/AIPDFPrivateData1 18 0 R/AIPDFPrivateData2 19 0 R/AIPDFPrivateData3 20 0 R/AIPDFPrivateData4 21 0 R/AIPDFPrivateData5 22 0 R/AIPDFPrivateData6 23 0 R/AIPDFPrivateData7 24 0 R/ContainerVersion 11/CreatorVersion 19/NumBlock 7/RoundtripVersion 19>>␍endobj␍17 0 obj␍<</Length 1267>>stream
%!PS-Adobe-3.0 ␍%%Creator: Adobe Illustrator(R) 17.0␍%%AI8_CreatorVersion: 19.0.0␍%%For: (Graphics) ()␍%%Title: (黑鱼白底.ai)␍%%CreationDate: 2018/7/17 下å�ˆ6:09␍%%Canvassize: 16383␍%%BoundingBox: 512 14 580 82␍%%HiResBoundingBox: 512.519474100296 14.5993985160931 579.268412090863 81.3483365066604␍%%DocumentProcessColors: Black␍%AI5_FileFormat 13.0␍%AI12_BuildNumber: 44␍%AI3_ColorUsage: Color␍%AI7_ImageSettings: 0␍%%CMYKProcessColor: 1 1 1 1 ([套版色])␍%AI3_Cropmarks: 516.333333333334 18 572.666666666666 75.3333333333339␍%AI3_TemplateBox: 297.5 420.5 297.5 420.5␍%AI3_TileBox: 265 -333.333333333332 824 449.666666666667␍%AI3_DocumentPreview: None␍%AI5_ArtSize: 14400 14400␍%AI5_RulerUnits: 6␍%AI9_ColorModel: 2␍%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0␍%AI5_TargetResolution: 800␍%AI5_NumLayers: 1␍%AI17_Begin_Content_if_version_gt:17 1␍%AI9_OpenToView: 504 120 6 1448 814 26 0 0 67 38 0 0 0 1 1 0 1 1 0 1␍%AI17_Alternate_Content␍%AI9_OpenToView: 504 120 6 1448 814 26 0 0 67 38 0 0 0 1 1 0 1 1 0 1␍%AI17_End_Versioned_Content␍%AI5_OpenViewLayers: 7␍%%PageOrigin:0 0␍%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142␍%AI9_Flatten: 1␍%AI12_CMSettings: 00.MS␍%%EndComments␍␍endstream␍endobj␍18 0 obj␍<</Length 17600>>stream
%%BoundingBox: 512 14 580 82 %%HiResBoundingBox: 512.519474100296 14.5993985160931 579.268412090863 81.3483365066604 %AI7_Thumbnail: 128 128 8 %%BeginData: 17418 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 %524C45FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDD6FF7D7D527D527D %527D7DA8A8FD74FFA827F8272027F8272027F8272052527DA8FD6FFF7DF8 %26F827F826F827F826F827F826F827F8527DFD6CFF272720272027202720 %272027202720272027202720527DFD6AFF7D52F827F826F827F826F827F8 %26F827F826F827F826207DA8FD69FFA852272027F8272027F8272027F827 %2027F8272027F82752FD52FF7D27F82727527DA8A8FD0FFFA87D2726F827 %F826F827F826F827F826F827F826F827F87DA8FD4EFF5227202720272027 %2027277D7DFD0FFF7D4B2027202720272027202720272027202720272027 %7DFD3DFF52A8FD0CFF7DF826F827F826F827F826F827F826F82752A8A8FD %0CFFA82726F827F826F827F826F827F826F827F827F82727A8FD3AFF7D20 %27A8FD09FFA852F8272027F8272027F8272027F8272027F827202752A8FD %0CFF7D27F8272027F8272027F8272027F8272027F827207DFD38FF52F827 %F827A8FD07FF7D27F826F827F826F827F826F827F826F827F826F827F826 %F8277DA8FD0AFFA852F827F826F827F826F827F826F827F826F827F852A8 %FD35FF7D20272027207DFD06FF5227202720272027202720272027202720 %2720272027202720272027207DA8FD0BFF27272027202720272027202720 %27202720272052A8FD33FFA8F826F827F852FD06FF5226F827F826F827F8 %26F827F826F827F826F827F826F827F826F827F826F82727A8FD0AFF7D26 %F827F826F827F826F827F826F827F827F827A8FD32FFF8272027F852FD06 %FFA8272027F8272027F8272027F8272027F8272027F8272027F8272027F8 %272027F82720527DFD09FFA852F8272027F8272027F8272027F8272027F8 %27A8FD30FF2726F827F827A8FD06FFA8F827F826F827F826F827F826F827 %F826F827F826F827F826F827F826F827F826F827F82627A8FD09FF7DF827 %F826F827F826F827F826F827F826F8277DFD2EFF522720272027A8FD07FF %A82720272027202720272027202720272027202720272027202720272027 %2027202720272027207DA8FD09FF27272027202720272027202720272027 %20277DFD2CFF7D27F826F8277DFD09FFF827F826F827F826F827F826F827 %F826F827F826F827F826F827F826F827F826F827F826F827F8267DFD09FF %5226F827F826F827F826F827F826F827F826A8FD2BFF27F827202752FD0A %FF27F8272027F8272027F8272027F8272027F8272027F8272027F8272027 %F8272027F8272027F827202727FD09FF7D27F8272027F8272027F8272027 %F8272027A8FD29FF7DF826F82727FD0BFF2026F827F826F827F826F827F8 %26F827F826F827F826F827F826F827F826F827F826F827F826F827F826F8 %7DFD08FF7D26F827F826F827F826F827F826F827F827A8FD27FFA9202720 %2720A8FD0BFF272027202720272027202720272027202720272027202720 %272027202720272027202720272027202720272052A8FD07FFA827202720 %27202720272027202720272052FD27FF2727F826F87DFD0CFF2727275227 %27F827F826F827F826F827F826F827F826F827F826F827F826F827F826F8 %27F826F827F826F827F8277DFD07FFA827F826F827F826F827F826F827F8 %26F87DFD25FF7D27F8272027FD13FFA8A8A87D7D27272027F8272027F827 %2027F8272027F8272027F8272027F8272027F8272027F82720277DFD07FF %A8522027F8272027F8272027F8272027F8FD24FFA827F826F8277DFD19FF %A8A87D522627F826F827F826F827F826F827F826F827F826F827F826F827 %F826F827F82652FD07FFA852F826F827F826F827F826F827F82627FD23FF %A82027202752FD1FFFA87D27272027202720272027202720272027202720 %272027202720272027202727FD08FF522027202720272027202720272027 %7DFD22FF2727F826F8A8FD22FFA87D2726F827F826F827F826F827F826F8 %27F826F827F826F827F826F82720A8FD07FF27F827F826F827F826F827F8 %26F827A8FD20FFA827F8272052FD26FFA852F8272027F8272027F8272027 %F8272027F8272027F8272027F82720A8FD07FF27F8272027F8272027F827 %2027F87DFD20FF52F826F827A8FD0DFFA8A87EA87D7D7DA8A8FD12FFA852 %27F826F827F826F827F826F827F826F827F826F827F826F827F8A8FD06FF %A827F827F826F8Line truncated
H‰äWÛn¹î èX)l`=Îyœ+ÙY'n|,ÇH=CË\SC�3ãCž`E/
´h{Ñ»ö¶@{U4-ú2M³y‹þä4>Hš$œìŽaIC~üùýGþ|ðÓþ`¥‹#ºb&ê<x°.)É„\Ezmrž§™TCK{Ëû†  Þf0,�T¦L$«‡†©'7Ôê¥Ç’LNX”.£¥eÜg§0üîõoÞýí_oÿøï7ÿü�AØrµ#ˆxD2@X&º~ûè¿ÿøÕ›_ë­š¡‘䌤){ìÙ�␍ck"Ob–ŒÖÄÅ*r±…°ƒÜÀD�“OØM¯# ‡Žï`Ó´Bà††v¸Ø3C#×␍Ë l™¡x6
°a;�m{®éyžé€ÜG"ÊÇ4ÉúRD4M×2]EkœD§0Œ;Ü`œ‚␍Æ$CØVémbk¸–3ïäã#
Öq5jõêg)�Vú·ö‡›cÐ,ê [u}û—O›[‚Ê¿¥oþòû·ß}ûýw¹\Š•b2&ò4UJ{†=}„PÓ2¼Æƒ|·‰±ÃBÊ>O8øDÏ
}ÃEŽeÂgãw‰� ”ç¢�Ðg�?Ð8lîé §Æ¤gŒž¯¢‘Њ=™
o;ŽiŸÅÌ^Ω|–° ÔóÔPXØq[Ä”‡zý'Ú|úO? À>‘#šA�žg:‚ƒjpÓ¹¤Ê¯X»Ï®ÑK`Ÿ$ºCv<<+â~8ÊV!VqÁcwB“}q UqM0¶e"gN¡ä€y4 ÏGvPÓÂÓÏr¯ϨLÀòÕ~w)üë$–9Kãæ®Þ@‰¯t'=èC$îJʯ––ó‡�%‹§Ñ郃‹m\¬¨ŒCÈ"+l;êÇ÷° ÊXmF
«€“3P¡ò”5\ßndŽil@ Pz]ŒU¤¥ªn(_B2q1*æêßz–ç“Â"…×!(û’%JfgGÏÃ>Ïaê±ùd39�¥¢\"ÅF¢5™§'h_õ¯˜:´1>´ë’äÐvìCˇ×…w sÖ¡m9‡¶çÁ· 8æÞ�o³}TJוl( “å/ŠO_/Hvøq2ƒ0ðavõÍ`™_Èÿðª×ÜÎÉRûºÅþžû#æU@‚õ$ˆÐ¯Õ÷âÕë„s6*–Îâ.õ€°û!ÎonñzÐz,8c´{ô␍¼€¨:mìîÀÀ´�� ß°£ƒR/kùPê'gg•ý�ÆÔÊÏ4¦Z§ú:fÀmÆ^s1ƒs’E'[ì(mQø.ÇG‚³t<u¢rž­çƒÃLWñ'2c§ƒË4£ãV*@ÐsšÄiC¬¯¬ïb•GÆÂØ«�²xË-–Ü0»›$(F¶£ÔÙŒ)™6Ÿ-ltJÁž7¬\ŒÞ�üGô�Ó¬lúÁQÆCYm VjáN"¯Å”NP}Æéo¬Ï=í(uþ¹v‹ý•\š=ŸG@…Æ1Kb8k9Ëh3>@¬×Œ°'ö´ê0®Ã°Z;¨·pu£Öè<VVµ$E[£‰µ¢2KQѶÁ6# ·+a£åùshn]ìÂg!rsº»ŒŒ‚ŒêªšTîX¥Y»³4‹L©þ®"X]'Ì¢C¶ŠNùNi‡ÅŒºÀd—œ¦�îÓDœ'ú­v–^¼{ý‡ïÿúç—˨»CÆ}Õé\µh…0ÑnÇ,[øSøµ×©Úù§�ê"c¢ç—ðò øñ␍ �ƒFh½xi¢†ŸïuT×ÿ<îtûÈ¡‡Ô…,‚oM4šÒ[¨cŸp訩fÑ?êÜzñT„ÒÎÕ»h?êô×jñ•”÷±ÝK³†Án�×óâ#lSÅ1¡Äü¤A×g/©VWØG$#�Ãnõ~To,RwK"/õ»‰º›0µ;aT#õ…m‘d”C¢¾˜¨òõ•Zÿ|{k®µ·
{ˆ–.Æ<�é86%;Ê3š–ëzR’õ©EÜ�ü*:a<–4)0Vi®jV}d—ZÌ.ý<I‡gD¦!“ =]…žžWX5žÎÀ%�…¬d’^yûB­s'
¨Š[Œ1¸£Í°ØBMôé‡ê˜ˆdå¦~\D§4n£[…¼#÷¤öx®ö­üÊȧm¡'ï9Ñ£<ÍÄøS¥ú—TÅVÏZ+§ íCùÓÅájJTƒ£ÎH(mÃñ“çpùŒ¨ü²4=>ÿŒOã{Nƒ”³èK¯ÅžgøNÚ~š®ç;¨»G Ÿ­ó e£“6YV#ï·¿¯~ç,ÎNÚ¨WïW;[†‹CÇw°iZ¡·H»‹V9zßZaÇpÃÐ{fhãEZ]¶ÑêòÞµBÝ5!æ¨q$2舶èq¶+ÜDÛhusÍgÐèº8¹ŒèšÈ“øÞû8Åî›Â˜f$†vécy„Éãg±ˆò1MZ•ðX/Æ¡afcåios#çüQ ; 2…t‚Ùb�mùž_îÃÜ„Bº�ÑÇ’ÅÃ=u:<–´RÌœ‡[«ð\×vçA÷ªëžkVuãVÜî„D,+«‚ãÎÅn�ˆö’§‹Ð*¯ƒƒ™<=3>biF’¨Ä8Ćç Àq°aºåV}Á’L9ø†�AFT Ó€*TñÂE©øÍ²û³„•òÜœ^<vç[ê달—–ë”ÍšË7PÇô­¤6¸²4óLc§�³Ú"p4îJàXž…g‘UŠ5¸ºAà9Ы1>Ø‚¨>š<¨t|œÒ*zf:j�r¾õ¼Ú3e*à€½*µ±fÓ|"${%’'�NÑš¡ø~]ãL´âšæ¢ߣœ¨­ßIXz©ÖÈ’¹õ¦ÏIBXÊŽª»–ž~Ø.=§âöŤ±ýû¦ùTΚ>ò›¢<_‰š&š–ÝVæm¶ñC$Ú¡z‚вQ`c¯�Dwš¤
�fRÏ´vΩ,Z—Í$¦‰¤ ïÀ±k½°é­YLmõ¡46˜L,Ñ�5;Nf-«-t'ÑUKû¸àªÅ܈-ßÇu$ø�Ó>¶”ÈÛBëzË]�å‘ಶ\Ñ'�IzZ•šÊœñ„×Úét"ªŠTß&$ޝÁgiÝØô6Q/ÏÚ#iFe]ªê­{›£ªùA§‰ˆNEž¡‘ùd.”¥êEGœ&1h~l¢c@@HR‰@&g E½Èn"½’$C IÛIL3)Niz5×¥˜ô$%=í¦÷�ë® àRiØÓ®í^ýø×c ‘EW7†gÂÉå6‘¥C—Þþöõÿþô„¡—„F#‚Ƴj)wê´¾÷õ{{å�ç[�ý=á ÁJþ¾ø?çU×ÔÆu†ÿa5␍SQ@H+`Çv„øRj –¨Sn�£Ý#iÃjw{vŒ¯¨[Û¸nœiÆãºnn2µ3ôÂ$¹I©í8?¦èƒ«þ…¾g¿%íž]õ‚`Ÿ÷㼟Ï[±íÛ5©ê’Ç�xGŒ�À› Õæ‚ç+Ì␍XY/£¦"".ã:2eãÚ0§wVЇ2¹ÈiHƒ$êRË”-V×{Pr4pÐ0*éß™ô»A�¢kîáêUAÛÝî<¬ X#ñ˜?Ë/D#y«³JÝC¡�YŠsÀW ␍¨Íò yëž-%¤ì!Ýg,¹¾ÞÞ"XÇdsÛХ܊(ÈžÛØ›M­H¬Ù2½Cܨ!Ùçø¹ˆîÕ\Sê&ôƒátpzçìôuûèAïýq÷ÉÃß w�å©û®Š␍SãV=½Ö .ÐZ>'£!ÛÀzÓ›…Váq “Ìôk0Ÿí“Ø4␍␍"[&Ꙃ,i��–&ã;PI␍ðF3ØT"bqx[p3×T£ï³g`è¾QÐàœ‚4ÕýuIÎÈ"§¨~8I±\¥��ÝdÜÊóøÉÞâ óÖï|!w+? ÿËò·ò9ž&(�žƒ}ÃÈFÿЧ»‰Nû"�öÞ
ÆÒÒW¢A,9A¬ƒ8Ýt–Bu`)„£¶½e4ïw«␍±Ó=sÃ.é¥�’îƒnUðˆAËq+[ÕäQ£à˜°Ù“ÅÍÆÆ®9“,t޾�ع€« ÃÝ åå>5Ü!é�ó·Ï{'/CFÆ D–H5ÓÀú ŒJ[zúÖ¯e5ˆÓ␍9#ÚÛÍr;(ÍVOżâéO"£‰-ø,+‰�ÒÄÄÊS®ëIdC4kq`ÑÖ)Ʊîì£Å9wRâö%ÑhºÇ␍…jbz¿8¢PR 5pFš� i¨šK¢æÙHâ›_ÈæØØšu0x¤îûó~ßþÓq÷øqûÍí“gÿ~ÄNÕ¤[zؘ0¹hP0p Uj½“$VÙl(ñÊ¢[јÏÔ‡.5”�ã#€V‡ÔTSc4Z@µ.É8é5Éh¹ë0¦/¨T_:†_-“ íI6BP˜a=Ío¡HoÑÖd$8×Á<Š&bF%ð›@,£€u˜òM•ÜuJ>¥9|žU –ÕF†Y|f/ÀÃQº€dìêŠÅí±ß¨ š,DO&#(:«ˆc›␍\ªïƒ<ÉH‹�ƒƒcø®5Z»¬ šŒY³—¢tã@N¶.,¸=«ýÆH"%oH†×J>|zS(ŒyºçûgQ¸ãð¶ØÇ DÕb ÌXI©«10Ê¡uEì¾°�Ò£¨†ˆÎÈ£ÿ˜��“lž‡␍ì™B$º…È®ÞïF°çFlÀ�°.ª+FF”Ù#ÏÆh¤®*¬yGaºYsû1–#º‡eßÐ35‰Ò=F¢õŒ‚ˆž:L½k€Uë쪡8X7
[—œ£Ú�û´ðÑ8½‰DL0#J„␍z-*à›ˆPmý¨ù°9GËÔ‚lÛr- EÈàù:�l "#pÎ4¼³ ,Ÿ>N·® 6ÖÓ$‚õ]@@USÅ茌[ÑŒ&4ÐMÍ*¯ý¦d`·!Ó;g§¯ÛGzï�»OÆœ% „ÍFˆHôøUb¡ê¦"0ŠÉÆ8צ[P1ûÃ’AŠ¢:éõï×!TÜ!´¬*­WÖ–¸òJ©�[,¦ùL.æzkÕ ðÁ°|†Þ_ðÃt‚& “=,´v¬ÁªFÓ=£h¨Í?Cz&nA�‹ƒ<�œ}ÊM/«ÂýÓÉöE.],çrÜ¥£\Ñä–%Á Ú ý^Ó—»ÀÍ\S�
T"b1)¹F>‚’@JƒÑê>{—eVmY8àuQY °VˆŽ©·1ùÒw%␍ظÂ(
&í’ðî»CCý±Z+É l.©ªl¡æ8È“ÙÞÏmIw°¼…I»@kFÛ…Pž+–¹5‚Dz%pH¹␍¬7¹Ê@é¶“+txW$¶Ð6 ì!¡~K9ne«:²)[*ÞVàùU´‡7LÙ�4ûƒS�a)¡ÏÝZ^½½išiÀgp~Ë×`Ðn©²ä^¡Ë䳜;% G�n`2␍ãÂP —`ÍÒPûª¢
M¢¶ ÷µàuCgÈo9Ó§,˦E|U²"Â)§4JHC58h Éåé�Š;û¼wò²}ø.fõÐêÆVx¯yˆåѦ{Ç2¡Vð«$ÒȘƒ®Vk<]␍ðH*¸±A'a<²DO€%ö ÐçÀ6ëNq‘ÛDj%t`Êæ\»!áý¤.T|’¡™·�@šæR�tï§¿�½ù{çù·íïpÁ"è<{xöö‡öëçí{Çg§o¸¢¨Ö0
è—Î×ÿèüõ‡î‹?Ú¥Ò;yßýñä?‡÷z�_uî÷N¾n}yöãOݧÇ}:Ï~Þyö]÷ݳÞû¿t^¿´Mü÷ÝŸ;GÏz‡÷Ï¿:ì}ó{ð£}òP×¾ÿª÷íiû›{\YYƺÔP¸îëG�'_vµß<ÝÝãÇí7_xòg§ŸwNïw^½°õ‚w�¯»o�y~ø`½oÿe;e?Úóš]ånÜÀ�HZ²æ³‹R
쇘ä-Å,fÏZ^8û8Þ…’s¹ÀDŒ/·-X�t¿D_]Aµp6Yóƒq_¹Qû•Ž­¶␍x—n³¼^£CVævÓlÕ$Éz’—B³úCò—’"öQR±ÁÙÊóÓ=L¸Ü‚kª{MâDKþ]ðw©ë&ò3ÀÏÅ„àªt7Á˜†�}0z4û¥F f¿ì(±¤’#‡r@h„HRÉä� Û྇³ÌpRÙè�Ì&²æ �Š ]QÛšþèÙµY¯ëØXk0föU²œc1\?0X�• ~1šÕàêËÐR‹–uwð'Ø—͘Ï5F“KDVmâKZÑ5D°ârÍ“,VÍ5¦*F…r¤øÛD·¤*”º␍;’ìINÎN‹QkȸŠ0aÓ¢ ©VMC¦‚—ÁÐÑ/·ÈÙ>r‹ˆKw­B ;'ÂŒF‘bHŒ
Ä^Iƒ5<X"΀Wè šL,,"@µÔ]Ìö0('È’Æ *2w8‚`YŒûðˆÚg3žé�³Ó×í£½÷ÇÝ'c‰�â‡ïVy~)ý¥\¡,¥º„ÉHZàL� ޱ•ÌÛ•l•}Y€è$î"—ˆý˜’w-¹ß†ÎÑ‹cãÞÛ+Š4Ïl�óËÈ@ôŸ¹Üí%ðJÙ†‚w¿�Yq þ‡ž¸Åj©\^˜[Æô•Tëäå¹Oç'¯Ü¨Ídg&7¦'¯4�<ý�Ÿýðú…¼÷áº÷›õábþʶ±´\_\Û]ÿYåZ®go^ö¾ò“—*…fêçÚöïRSÍÏÖÇÆS“Bf†þ¾�š4/äRÓÅüfjçVRSüêZjjâ£j&uÁœ¼|sJÉý¢xI›K•&®Ïêù[³M-�§¦n‹;ÔT5•^×§èŸ7ÁÞbjòò%u7‡>H­æÖJâR¶~;Uš¼¼K
¹õ�>ü8»Ž~½<àÈØøhA˜ d65uã·åÔôÂôõ¦ššø´¾@ÿ·B™KMH»rjÂX’²3—nNXwÌÎNU²3³ÕŠ„´õ}öÊæÿX¯ÎÅD¹ ú>„(`M»±$6ì5&ö¶šu5Vôý¿{iÞ«˜|Ø2™9ÓÎLL~B~Ãßíå¬Å»~ 9µªÒßä×Êp#:ë�ú-cÇÁ´ï—sÀ[)¿À P™õÓ³æ¹sw2ÿä¿™9ÕÍh?û"tŽCg¦ÝÔ97^¤Á›î@!¸¨ ¼Èn¡·5␍è°Ì`A␍ßúˆ�‡‡S[(ZØô,Øœz9$¨þdq y„|[£Ace!Ú¾Û£b=ž'OvÇÌÞ @™“Œa@ƒ6{øå+¢‚‚®Ôæ­;`rï©’`"·�’µ•&”·íÊXP IËþ
Žàöqð‡+BPçuV‰O8Ñà5ÿî*§Q{B­Ó4È‹>«þ÷ÿ-‚‚>Ÿeõ ÃãðcÖÄ€FÇ�öüï3
ÔBGÞ÷ª
k␍=µh4h ´¨u hÐzhäï,ËTêJ␍¬@'º,4°tÒ©�õw»L.ÂTQ  ÆˆÜß�½¹áj¨X™Üp˜Ã€mäz[Iã@§ ï™|ˆ °Æ ¥Ä3oôÂê"³z²y’—íuš&YõÇhv°Î©  /G/Æ”C^º®@ó‹Ý¥SC{c¤å~oŠ␍ÚBëyn$‚ZH,Í0×0‚-¢¯«cµ‰m½Ð>¨…aK‹–�AÅ
@û^¦5vhÐR~Qí÷œ$è½ý+‚Â�|kkÙ�ç/”g>Jû´ì#Û¹×XÜ
P$Ø}‘Àü1扴Æ|&K4h%‘�Ã!Ø•¨X‡µu ºêæ9 è Ì …o¯ H°ÕÕ~S‹„}HÐqÁ»Å‚É–ÛŠí¶™ì¿Mî}D¬áª—°¾½Y=›æ<�eЙÏihg¯<u‰ �päUu!ÅZf&®èõ\mšñê@±Åñ;�¯ÖÛŽŠË §¤Û©¬y§¨úlªËô£ÐsÚ +}ºÞ4ï%ÒôÉê~ÉA 4É–¼"¨ˆ"�BÏÞ_�ˆ >{4]ÒƒÚ�Çél Ac¤Ç·ÅîR¿E«qúVÑèJ 6Úx2Lì“wi½-¦ã ~:çÛÔhÅZ»␍vó¡Z␍[,°„ÚëŒ{{ Fo†ÂXA(wš”­«EèjÂÃìøâ·°Þn—Dk␍Õ ÑÖæ\͉…ÄÛ—Ó�µ¾qTïÖZvo“œj50ì³Ú× öíñg–ÇXÃy*k ’õ‹>D®k»ÿ½¬d;KD␍ßnÏŠ­-Öú‘q_T&ÂúIΞ­ÆPöA&ÇZ'ä(dÇZW§ú>¯Z¯[p©öíÍ:—á¬ÀáÆKe•#‹œ?ÑÁ¾ýg;k•qVÊJ.¬5ûV™-ðŒQE.I°8뛕³;£k Ïdã®KÌQÇ‹±+óî÷†�”í駘Áú>á]o8ëÒeO^İÞ*2ìÉÞkMk§™æ6L{]ifN÷ÓèÓ,7Ü8͸“ÝB‚´N[½ÅH®ïðñÿ/gõdšiøø„7«]9¥ #ãM›©ËÜ<¯{åmÀ’GÝÞOØ|°Å‹éܧ™¦Ÿž+á-␍ÉÎY<wÞWLÁ³=ÿ‹Ïœ`¶YxìxuÃZ
PbÜ߆f\kAƒ6[{ÿÝGƒú»=,(XA+Ö°÷µ°Lî«Ú‚…ù:ׂú[v¨ñp5ÕÒÄ:§(›
*Ø–‹¦ê3Л8Ø7J¤ü·ÔÙUA%ua×ç° âí€×$¸F(PQ�w‡ØXÁ‚
o,(¼–êÞ×dz>Ý-ÓXPQ� @åÉÉ».«‹È^ü›œgº7ߘùÝè¼Ùj{óË í0Êvjw¿XÊu'O‹ˆyð&¾¡6.˜còÐpl ;M¥úÁøÏ��òp¡Z¯†Žþg‹zÔGbï˜áÀ[)i&AR{gl¯jËŠCüD"’·¯D/¾Ÿƒkš…È>Ýh‚ð‰,)?<•�
è €ê␍-¾·�Ò�.Ÿà”±—z^.2¤òhjõ6øŽ¦qÁ�3…׆;)&/·ë°÷'g×…IóËãXA�Ò¨ež)HR|À‚ü4¸d!¯œZG
X§ 74(ÝŠ‡£“LòéPBk¨¥"RÎ␍Ï©’H9È>žtø��÷ï0ñÑVñY¤?îf°EÜÏŸM‰ÏeˆOÖüRQéÛ¾A–ùüí õ Pî‘uãc¬+µÊ™(vË}²^¼?¬,ÝF–*‹~ü†w �zÞÕ¼<È<—êEŠf'DÑ‘¥øŽózôŒ²úÔúLŒ¨úÙÈ
G-�ŠË:)iô ¹ez宼öÇ“õH™;v‹æ®ëµbÇ6®+ë4� ­Kü&4PÉ08_òã½r�j¾DA¿›G2nlTr,ÒcQ¢äì_Íö,@ùØý0 µ’Aí€c°£ñBiCm�Oœp¯“Á¤É³g§v:o EÚ•Ãà·ôrçŽ_*G©ä™Ï‰­ä ûøÇp]ç’õ˜®ï¦¹Çûéë”èœ/½�É¥�õ´Y|ô¥óiNu3ˆ²“Ñ‘-ÝN§²÷AB!”ÓÉ >ÃÔ~¬ÖP\Òøb9ñȽŸÙŸ ¸‚}e§öó•
»‘·ˆ»R“’9O…™=ë° –�Ü/iFõÇ@ÍôO7×’”] y?¿<ä$ÿõ¤öþœW'5†¬ÊN]¼7\:%‹Ø]YkÊþ˜‘tÀ%EÒ]¹¤¤NÉ¨äŒØo ³ù³�ÀùímIn¶?Y|}ƒú”¤aþXkû�_"cØ�éÊσ„Ùç»ûÿ�1´ªû!cããÿȘ~¢=ä^-4q&‡ŽW‡ë)!üZCoòâ)(o±û§rAs©ÎÒjB^Ã~}ŽîÊS’øßº2Õ9ØïûCJ
HdÇõ6Ë"ÙI²¥2ŠQõ™d§KPf�7ŠRéVÖòÝc- óØ¡ é¼+ª#fO<ƒ#’æW\¹3L9¢Ó–N[ÞáäNÛ.C·FÃèWÔß<ó•~ê›l$Xçу&4©|.ßã†ÂìIÊKUñ§k>û€‡ä(Aë␍␍ƒ˜)Ü“—Ê]§l¿pZ–žÈÛkÙì( €ªa#�~hbÕ‡'£pU‹Sò«`l!¬?ÿ�¢ÊœØìPàQ“ÁB¢Ÿ:M#GæPXú[o�*x%!Éz¬Åñd‰␍nzW^‘¥oqŸ=²~Ö7xQmp0-qgš ´Ggƒ-Ø+W%f¿þDáÆcŠåÂ�£ñîQ¡îÊMQ¯à}è½w
�-ѨÐäÞWƒ»Z2Ú¨ÜM$zâ¤Äµ«:kLãJñ¬_˘¨ø…Õ œ! Kö
ȸS•6ÔÕ9%␍=ÜÛ™/–è>NŒ�õ‚”ö>†uÌ|N;AS•¬SâÄ£Ä4ðûõl”Ò ¬&ÄÏ˽�Ó%QLÿŽ»hƒTw%Ú³JØ—l‡hlEXÈGaɸÔ/цÓÕ7ë¼tµü”ÃWúu�ïKƽw? €r�-«~éýd$ÛdÀ Ç~HŒ~Ñ¡€´è N¾¨Y$;-{o¡µ¬¬”˜ÅtL3sºŸÖDþÏL1Ü?aÓÿ±^¥ëiëPð üì&Lšš­ì�ЬPHÚ�¤!åB³axÿ+É›$$Y6üQóQé,3gTþý=”ö­Ç<¼O;%%;ïl0`øº�íg~d¹š Á"‘ïE@šÒñবɢ^EU“y¶ŽñqÈE2êk€OÞ”�ökˆm’FQ¤qüÉ~îs�UoË�ˆ`ŽP8¿üKk*ò›˜ZBòŠE#QÔúE␍€_Œê,‚ÿ¨-}([aX4”7ÌÔå,üGl"
“ÙdG*•˜ýÄÍëd—•pxd×Íšç6Q4¼. 1'Ÿ›*ZŸ¥häö*¯hýPŠfWŸ·JA°Ímð®¤|M‹Ì}P5±¢Iràl¢hîþ‚p6W4ˆÂP4X—°8¤¢™øk´ªê´ÏaÏð™ãM±õ’ÑÆ¢ýÐ9v ~éi�ß�„GÙÕ®|¡€u;mèÑgϙdž¼nŽò*3ú—̧äÆƒ�Y␍ðü|)Y0Å$e€␍bÁÊÀY».$Ø(¾©Ì  îù¹=…Πj`äõeE�Ûc'¬µg¢€ê 7§‰Q9œŠzËaN %'¸�Àø4”÷÷ö,ñåüYèêø4¿_|Œ_Yo|ßbÏš…p{å�Eó÷,(xËæÓð×§xÊM1X5Y/šbgs�P³0ìC8BÏBqªOᄟ†Ü‚!
³Á4ˆãÅú,ŸÁYˆ¹ñèÓ°¢¸Œ6¦ï¹C‹ÖÐì#(þñBP<•tôžòã,†g7��CÄm å—a÷PÌm%%!Ü~Ƥìîú>Èè䊪Kñ�q|␍ÈçÀð;‚ìd·'ÜŽ`/©Ô“$:BIñéE¦šž§—4ð™!µWJ &³:|^ñÜÓIa²ìÆ‰Š†Vô`Š/3Åô
A®'Ë×){V®×—+¾ñÁ~¯ª]q«¸óÅÛ}ç‚•’ߺgᛘ™±¯á,Æc|ÙâTr¬ :™ã�}„V©Ž(Î-ÂGIv;Yˆ¸öþâÌÅ£/½7æfáÔàÌZ,Lëo,ÿv9ŽiƒûF,ÿ½tËwÊ�ØükÓ¦³xèð³fL«_Õ”üç§^:+'½‚¦©';�q@á‹|îðjoº°Š©>Å¥ øYçU7¬ýönܬ”ýVööß2ãp¸Z,âipßË�w_¦5 Ö�xc±zÐó¸Â—æÌ¿—œK÷À.–èü»ó¯Å/ÝÝr/µâÍY‘{i¡ùòãšÜ^‰kÓÅÎøïÒgüÒÝë$véþ�ê5vés:�ð/URVb:ñmB‰JðÑgòÕ‹´õ�¸4;â^
Ò{h®�¼¶Ð,~p.ÝK$¯^Í{Î¥£ßÜKA,ñ¦µË�µÐÒÜK3õë”}éAL÷/µ�R’¨êY†{éÂꟗÆN~çoˆšNÊèzÔÉèo§ÙÚíó+ë›ô÷îW¯o�ßÛK|Þ7†ç@-ƒ¾ùeêô�c&« æ_ßÑ/Öˆû ¾®Ìæj¡¤ø"å�?|¶biJ¤<D•ÛÉ™«ªwuÚÁšë£¬÷<¯ë¹£‹LS¼ô*”¯ÛáHý]�ÜKÂ= Û^ëP³Û‚GAclÎAÕš>xr=»L‹I=áíwè>æ @O¢v[Fžü,Ùuáùß»:9í£–:ØÊeoyú¶C´+ÞçŠ?ãUÏ?ñ[ 0™M²yò¡Xû ³æ?·_Ň4y-Âpñ�}w$~’"³9ÂGܤK< 9%ïQ5ý.bžH­ÉRZ£¤Ä}©�ÀžJ5lÞÜb­}è¿;²iÔl³<Ò–b˕ֵ�<tã9S$)︲CÛùþÔ`†æm´®'wZ¹Ðò ë^˜\èi�1Î
²Üºx␍Ž*mGÅîsPqH=ÂóG Hû GwKjuÓ˜%_+S]f?E‰á¦Ý2^È."Â5¤�v6¸Eìò¡ø±f"žÌOnÌ¡4ù±é¯½¡–^蔨‚>•â2…€‡C¾‹L†YÓÇx¯Hi2w“ó_Vùd7H–Y½-wØAjUUI{ÚÓœÃIGϘãõÜíg¾ÿDï®æ? ü¶¿ ìe&””¤�h‰l×ùã­ªÿVÜÁ‚¯?·m»¾kYœï¯üê:óEV\©ú‚Ç?ÅÄÉ‚ñ¾Oæ>ªçŽI +íîbΣ¦ Þ£N¼ÒIÕÏÓ{¿~þD¶gn†[Aª~¥ãÁMO¶~ˆ/ü
.<cµQ3ÀX 1÷7é¬Eq§:kRPÐ'G ÓñA+>&3ímeŒÔÚ�2F*ZèŒÙãÔm4³:åaëþðš¸␍©Ò`‰�çÇä 6À~^I��šð®Sr ¦2zÁ5 `gØÙ�x0ï‹ðx²»jÙC«žã-×Ùý·-½ìq<yp·×Ð…Éã¸/µ ÷„ÅrN4ËõÛ†‚ç‹kiØ´XY�ÜÇ“ÁÚ+A:‚—8?œdàVÒf%7"çbñœ�ãÆE>²bÑ>òX­/ì™üNž�Jg^´*�BÙ&6‹€u•c!ÍßÖ’;ÍCú±ÓðŒçú±Ù©4ãÅy:®\öü'A5OSC¶`'ÁQ¡¡µpãÒ7e†êKþ“xdæM1AžvÃ?‰¥0ðQ5ý.bžÕqšFG(0–vræB¼vHgÆØéˆküš7=Ö�#½Eô˜:ÑøÙ4j|¦„'œ/…”C‡Üç¬␍¥dEOãœö8är:åWBút Ž‘=Rhª84ÅÙx'ðÝìi²Üºx␍Ž*mGÅèsÔÉ æù¢ÔY‘*^",êt´ºiî(/%ËŸ»âÄpÓâz'1øå%&áQ.ÇQ�’p¼N†¼cMdÒ,—Žo–Ò,wi³Œy˜Pf¹tÜÏ%B5Ka>ºä¢Á¹E ™Œ¿%‰j ±‚‚Ð*ª84% ÓQh¾áe‡ØŸJ
<%UŒØ¡DÍïÜ€””uQ@…—Ìç0"qÝ�*FnªÓ²ÇJ tDb°áAøM2;OV(ö’ÞrW»Â¡FÒæ}zÐ1÷—H°Î¯¥\%‡×¹£yùÔ™ÈìZŽWhü5/j•F™NF[(|Û¹}Ú¹=ó½1ùà®™õŒ¡x·„À)îTgÍP¯qªOãð†^¸×xü³§XTœ ív÷©”åƒë#Œ…”fÌùM´�¦’“JÅ¡xJ'$Ö,p‹V[nÅáA(S§ÄÌe%vqS9›ìH¥ –`ÝZ¨×]␍¿Åšç‚Ì2¹‹íðß§Ì{;ÇØÅ¶ã$ ˜ù{Uí{Kx8`»ï\°Rò[÷lSî[óÒ¦6 :ðÛŽ�‚\_TMö5�ûœüV¢ÒýNÞÇ PêsŘ¾ç¯‹Ø2D„¤¡‰^«ªÎt=ì ÷Y4Þk‡¦!ø, >␍)Â[p¶AÃÑEBL“CÓ€ñhÈÕ1.␍Gái¸æÆa¾£î‹X£5~Õù⩤ÂàD¥¶½"zþD‹Ê�›b�8‰×øfYIñ¬=+r9¼%|ø-€lVC_:*·“3�9à‡­XCÀœñj—ŒQ^eJÆK1nlCÇãÃ•Øæ€Œl�hs”Ô:ØSbÓÕå'Ü {ÄÆE©~}BÓÙ—Õ;;Ž5ÿ¹¡n -Cb"GÅ)ÆG»X0NE½åàœ_zí㯇9ª`(Ÿ O^ø\Ïô
R˜,û†ñ_¢¢IÐ>=ï“»e¸-VTZpCF`}ŠOåxáo[kƒ·æ`édâAÎ˧ 3¢¥òë2Ì«�n`ËÁ´
Ëòßu\ìž³Ö 8c¥ãÁMo{%¨¥î=>p¯ä*¬ËသmœŽ4†ðI¬Ž€[R 5dÚž_3†5�ù`Èý@kH–v$2†¸øãD0‘ÍêpãÍB
À!N%ôc5=`-ZkÅÒìºÔô/Aóì"“á�ímËØÕQ<<5Áâ1‚Üo]¼Ê‚qøùd‰FÞù%æ.øão/0n¤:‚p³ ƃÏß‚Ñk¬ûœŒ'µÅâè|Úú7x×Ï«F³œ<¹oÞ]4NŒe¦Ö¼9þ:ªß6G7Jª~ÛXœ|oïÝtjUýO­V5º9výᎣÔ?òÉ?쿎¥ ø^çU7¬ýv¢ÿñïΈÑÛËŒÃáj±8ˆÝ))½törð?ëUº•8FŸ HØmŒ­ØJm* 8Ð긌ô0ÒÊþþSUYª*ÔW©ÿÔñx·Üo»×C9�sÍ &7W‡½j—m¯Çem†n!wÒ?˜äŽÿ¹º`ú…uúÇ$›ü›Q§Z’u[␍a§ñÆëÐi±qSïN·L^ýwñ,ε2z’8µ
GŒÓW]OP§ËU5·òœb]É\N:Ç®Së7p<Í:­\ïQ§ËÍ“±:E^¾¿÷©[_®‰ÅÁæ^ì´2º�"xßKœ²àݳ›ЩÞO^!§cЩ–\^ö†`®EóòΜ6÷>ÊÇ��Óuj_±X'ò—ÓéÕ­ê‹¿;–‡½Ø¾ï;J+™®ý�s:;"êncó›œSN½¾ê'KpI‰n /©x›ûÀúüÝïê3¹RU»×wgF¶þÖ`"ä¼PʃÇß×¹xÕwõE¨�˜�¼GyJ[, 'fÁ›÷Ó†àžöË©¤æS«ŠÿÒ�J›z IàT™8¥b;–õO}wlj;óvõKü¡Opn�†gS’ûh
ý45g¨ü�'ÃÑ’”áòµ&?/Ê ?.C…¤%Á JõŸG­ÏèƒñÚUI�Aõ)—uÈ”ó‹ ñrzÔÜ{s;õo“o |‘wŠÑ”É *B3:Ñqb£üúst
ó6Æ#&¦ÈäéÛ©eÿ|1…©ÕŒvL␍+ .9 µBBAJÇÝ}]$aíy1‰¿ng%^™¨æñGˆ ªÕjn˜+‹öŽx¥XmÝוìEF…:J\U`\Xýwy –€±—•ª’q®oŒ§ ÆœÒ�—Ò"¨ÏÕ.òsÃû¨AÞÌÛ�ãÏø—ó¥§›_Vü8Ã×M¥„Ã÷¿0@SH¿Lf¹“íȪ ²Ò‚_£\’ùzÚa
,]ÈñˆUò}¦È§ÓÃ9¡†4(ôëAÀÒCÆ m ÓÈÍU_-Dn^-2aøŠÁD±¾ÓÃ�œÜhÊËÿ q!Ù�øû2=ŠƒAÑhÔBš$`¦¤@íÙúùö=DNµ¤B™`Pý<3=\’uü)ͰôÑAÑÝW7HStÃÈŒqW%"b�‚E=I~ÓFD,�ʳªÛh¥úpTÀ­{é5q�Š)mâ,¡vdhðÒÂɪ_7á™'g`s½ìlbˆá©ô·�Ÿ'ç"CÓÝÌÕÒf[ŒM}ðãÌZF4Û„)ýÛ,ï·;*ü^¼�ézÐTLÇÏ�¥J‹ÙS{±®?"ù±|_\R#‹õé*pöƒÀ@³ÿˈ�¢À¡ ñægÄ\PBá OIÛ$0ª,l À·s„
bTÒ¹_ò¸c•Ä­�=–V‹ agÁ¯Ìv�æ<!oIevñ°N&avJMž³ %-€e£ r©q¢(aÄÒgë@b¡ØÖíL’­^•ƒ"!)¯/$!ÇAÝ/"ãDB"»KÎÆUqâfà†‘õ°©·C®LW¹¦f´V>ETÞ;šswßs †íë\¡ÑVÔ•ãî¾íä–
çÌo½‰¦”ÜF,XT½·xÄÊ[ˆyOà†1Ú©è©Õª½ _j„ÃøIF'C
 ÜÚð# deµuz!œyáj¾(}B­¬Ñœß–[½C¥noK¨LþCî¯9‹–�áy; =K/åŒhÝbl”:ºçsÖâÓ÷␍©ÏÆZíňy|‘”Bá_gìæm~y
sÖüíàO¸60’ò`äF?w å¶7ÛOºÅµ "Ý$5žr—yÅtúvj'ijÂþDÛ’Åϼ¥*îOTs#[kЄºR%¡d%Ôà
oe{ëVî0¸–_ÕôOB 9�Æèðìd`~yþ›Bž)œË¥—Õô¿ô»Â¡£³œºS«û®0wòJ¢NFMU�×R•·bS_D¦0ç?r¾‰�£÷زû"öØðš M¬x󲫞²V´d öèí␍ÙÉ‘'�DÃKXΊFµJ»%9™1ž­ŠCò›ò.²K6íßœZ×þˇÿt¥ófÞ~œ4>¼�ìCd,Ãó™"ËŒð1åÛBy#‡’© +$%$"“%Ÿœ5÷Þ</¼L0`-I5¦3ñ£BZ<ñ«iÀ&é «,ðÄ#Ô�7�
“pMu6*Ü’�aØX7}ö"Žà%doþhtÛÁUûKZ}E;¿R‹áŽÑx|ŒØ Aã%ѸœÂíýV�ª¤«ž×@ùà�6ØÃÜEÉ+ü÷âx=øâœXÄä�Ù—ŽaN0†·ò1ô␍!ö�!*Ä~TUöÃ0ï¯ÖZtBï»…'Øcàš÷£xd6Žðþ„1Í}CHµXh;²1TS¯ÄN„1d­ !T¸býW:ÿ␍endstream␍endobj␍20 0 obj␍<</Filter[/FlateDecode]/Length 21619>>stream
H‰¬Wù^ÚL}‚<„@H �$€Vh…–Å HEÜÀ¥,?ñ³Òdyÿof’™a&™ˆÿL­à¹÷ž»�k6ÇýúáA-uYXå—Zåvb˜†Ö¹ÔÊö`a¾”Ô{­|hÿ)T.Fe³9jUÀë³rѾé‚ÿ&eI6›ÃMZ«eÒ5ó9Yz«e‚Á¸P’ Û+¬r«úóÅŠiæ³òPsÁƽ*ü]fû×WßqSðÓÖ¡,¿O&jN©˜g¦Q¸Jk•×uÞµ��ןþ�Vdl ÂE$½¥’f��ïž©|áÛe)�>Œ9Ÿ—ÀžÞÐ�ÇõÛúÇ{ÚTÛå=
XyNæ\°|âkû< Ìn']Þ ‹dûÐÉ Ÿoç™v³Éò"õmáñ}�æ´ê|U³Æ±ŽŒ"‰âd÷ñIJÅ1>%*“…û%"ŽEàÔg¾7Æë\;ÙÖPg^^¨Ï×Zy’OI2/e™\õ¾ØòŸÃ¯WAoœttøÌŽ&›Ä„¾Ó†%5$Ámè5a5!êJV^\Zú�¥{�3\ck›E%ˆêׯ¡È‰Ù£|úÄ2]߯ïxIG�O&›Ê’š ’‚²’¼¼”Ô‚HÉÁÇë*
J¬+aîBû'ó«J²ñ:­£'îåR È¥ÝýË£ ˆÉ�®áÒœ®fw!æÒã;rɳBÔ^l²8ý£T}¥\l&Þ<+˜øúdŸ¹KàÒÃúw�QÙ©­e-nbýQ ÉÄBánäÉÊ'”&{ࣀI%¬dœLæ¬x°0‡…SyyhµÑdÌÙ¾ðÛ‚¥À¬öyð"Õ0“U¾r{Ý ÛšÄ$ö3¹�e›KÃs>Œ³rÕþ�^2¸îzà•—!X†?aë¡ ÷¶‰8ÿ¶·•~YcuØ<¹®Ï¬ZÕhÝÕãÓÖU½¢]]ŸÌGÚ‘$ƒŸíîwc­ÔNû�§Ï9¥«;ú¯9Š+˜{ÛŸâ°SSVúG¬±:þYéáF‡Ëp¾›ÑNzG¯«øí ‹øŒ!FËñ¼°[�SÇÍr©ö0ðKÉèÿSL㤿Y. ©~6þò�et¹•,–QÀ4kžšé–FÜèQ<ñ¥—zâ<r�®b§‹<YcD¬¦¿¿áUÎ&Ùÿ¶Fí?¸Ño)Ühá*�ŒJ²Kp÷0‡ÅúœLÆ1‚•/É¥g4O=|M©•‡?l£…Ô2ŠÍäë8Ë5jž¶¿u9F�ârág}D…jÜ%xÈŠÕ5j'ŽøFíËø=ÇèqS¾øÝûÓ’ŠuÐã=þÙ¾åm4nNÉœ&$~®£Ÿýo.7éƒú&û{ùš)ð=ÀØ(]ú!ðM­4_7ü5 bhѹýI¡V§$Ãé]cPÛ�´½œ¸ç©V©‡)87z´wåv;³¯R±Ý °O¸¸Ñ:9¦RBOÏQ�ÇÙ)c¬×éÓSÐ%Ø/´Sµ%×)WlaJÿË‚½÷ºÉ•¿d�Ço®Öåðt¾ tÉaIÂyJÿ˜4˜<Q›=rêÜ[ ¸Š}
Osr¥;u'Œ¿Ô�?˜˜ä—€}õO€'Ÿ%0“Àn矴ò´²Ùçc´ø\åÍïa§È!ì’$ï:5Y}O¹§Mµ�\Úª |p9þ¨Ô¥C�«Æc9MŽ«=¬<-‹¦e„qÕx<[†ßbI§¼xšÿW#`:;ÌMgì˃Ì5aØ7+zÜкŠÂ mm;aØgï†�Ò·ÛI7kLGꚯ“w6,ªi7›ä‰üÆN÷î$1³Ed¾(ïýà;ž°I4ÂXi‚yè‹€Aœújñ?…±D¸Z ˜ÅãBÁJÞ‚¹Ì»a¤)ØŸšÏʸTçbæT+ÏŠg9n÷ÆrûJå¤s|JON"àã²S˜³›o’{RYîÙ‡´%æ™Æõ ’œ /.-ýÆÒ½Çùž5Ž­mŒ±q*Þ¡½îÔìxIä<¢ñ®$ðuUŸ;ô¿³¼FuF§Ú”nƒêbG‘æ÷Ù&ÛŒ±ÔÜÑêOÞp�ÂÈÚ.#®Kh¿<Û¹ê}±Åv*\�.ÅY.¹zÌOž€¢|ÎÁK›Ê°ÂÍ`¥tÙ T”ÂùV¦ãáÍ瀙ӷé-
ÛûÀV³»H~¹—ŒÚ*û1öbÅŸÄØKI½ÿ4ƨ‰¶'cç…GØEÏÅÙ‚qÕa®Úd€B6?ç˜ØÏØ‘æÜ/\%ÌÜñâõ@PJ÷Ø×+€˜…]e£Ü/ >£ÀÁÜÔ*j£íö>›GüÀǽßRœüý×Ì'¾¶Ïƒ¯␍IvÔ‚Ж �R's3Í–•Íð ÓÉ�³_xI𢫅½Öå:(a�íAGèÜH»y ¢c¸Œpû•Þ¹¥Ä_“ ¹è‰Ÿ]—¦k®2qô˜ÁH2©žJ+Z=UÔúZ4kN^xÍðv†’'iúǤÁˆô Vò$ß\œÛ/÷´ZǹIt®$Z␍ð†Æ™?4"� GÁÒ< ␍ž|y›cÂ<½%kÌÝhü—!.¹ª:•‹"T\bÌ4-?ÀS!’Kܽ�
¢.ùšÇ)ןÝÝL^¹ÙÝ+÷o‹ºra,bw.Y¦-êÚ¹r�ÎI%QçxýBÒŠÕNAz´‰�xþ—ó‰R6 '¿?¼6ÜÎvÙ{z�Ø‚~�sC“d*8^hjphÎ3íf“¬}å¨>À²ÝýUÒ‰Š]• çT÷zy:Y$ Ö†\ù�ÊA�ÝNRUéÍ1”¨â{ab¶´�‹¸¬ì÷ºVã³Cõ,³’aãB¯Ñ]IèR²ç+×k“ìmZ°Óv;ˆ…Uä•-¾g1,Ú#.c»iÔºó¸i²þ±+¢t©dRrþ žx ´’ºOh¨’mRt W(áˆlq£rc ¯P˜óÛùò·Ø¢m¾(ï}Ñ1ËKÓ�5N(MŠçâ‹DÌ‘@º)Í‹íJ’�É*œN÷ô†'¤£`qý K­º�-º 7ëdÒÛ•è»þ•VžÏ§€WºŽé1•FéVvYœº~�A° }'Rc�mVëE¬1xñ¦<—…[Ø­1
ÇJWßN÷Š·òxÓR‡Ñ�,Gõñqüé€ãï’I>Å‚yA`Ä ␍Œ”š
(]%÷ž³+Oè=MvŽè¥§NmÍ‚r”R$…ÁrYâm.çze’iNߦi!*áãeK·+¡^K�éõPí¬fZ˜XÆÏ”4oxÜ@+Ä;§ãoçÁµ(‰+ ö´©¶#X˜#(O)`ùÄ×öù~½¿šå}¶Q^> Tk ¿¦Eå.¼_pô}e3BÉPwåGqBÚGÅ1øWîë\;ÙÖ{á—j²␍sxâõªŠö+|Œà6tš(¯4jBÂ
ømH"Ûð–jB4-£·á`ˆ&DV¸mÀ>Ö†ì¶ù×¢°¯qWž\ì®D8™ýÛ ÐíCÔX#’7L5ŽpLnr¥=Ê¢&L4°^£”޾R.6o^ç€?³ÄLÞÓi|h 2*»¼¬X�bslëoö‘9D��cÃXøm$"sÔ$îC9WRôÓåÞ�Q¹ ÉœáòøEçÍž²¢¬fw�ÙÄÃ¥Œ"‰áX±Á>Þ i qJê=^ƒ£Ve‹sqé�îÍ{�Ÿ°²=Yá5¤urX�}7§ëÃø/é‚m˜a´aµ!¸WFiÃ’jrÛ��ø#v7ž’á2àÚÂe@•@�9aΊg�³F!ÁT^^úZEm´sŠ> X X*ÌjŸ‡ÕÌ€cùÊíuç3îJ�ˬç|(g >oùƒY’¤!Y^YÁŠÀ„!1ÇhiXËfèû ü.d—°„¡gOí è>ÃG�¿P¸9Wí¿H2o¡£<aTÖ²ù0=¶f$y`‡"ò>.TWQ¼‹oìHL@Ã䪃X’Ϙ¿5ãá“dÒîþåBIòÿ¬WçzªJ}‚bÄÞ�¨Qc‹&–ØKŽÔ÷¿{TâMÎ1å00{v[kí«Í>éÏÑ“Þ␍ñÑ‘PÄ®ÕÕnªˆ›È�5ì{zhDç#?áÆ5 XbôÖ,ÙHß/Žèpµ+®„·z¨|ÒÎÆ¶Îëx-l@i*Fp=]ªÉˆ„ |âÊtjg‰�)ÚLSÎwA`¶—Àpìã4|ŽgùÝ$ZÜë:¿_@*Ex:e’cŸ—ã£T-¼ ÈR:ÏpÎ␍ÁŽ;»`@_Ôôª«>¹�¾µ‹–4‰ËÍË¢];Ja¢;œàn �ÑÄQq”µZH[¾t"!&8Ž–ÔgÆF=0:*ÞRmù”™ÔKáÖ¢1-‡´¦s:#[¢+(ÿ¹kÔ–ñUòy;Í87Z?¢Qº° —‰V9C“ç}˜šuòy×qaï·Ýi'–a÷¡\ú©Qo‚/ŒçU ø¹Öô$´À©ÒƒÄ©³q�»;jº>ˆ9õ}´•ßÛ_ã}hÔ©plêù¨ëAWÓb}-&PŒÝápŠò‡Õ÷Ým½³_Äœ_®ô>E¢]ìÇÄqu‡è´¾3?éO³úqà§Ü¢P,|, p÷àÐõI`OmÔg¾.œCzZ±7Û�4¹ÑYÕÁçGûjBLÒñl§BüN{ÄÑ» –ð[i¿…턨6GN'ð®²Å‚Ý2‹í®Ô¸VÉž �6‹q¥Å5€µ�â�óýFÀÝÈó¾t(­"_f«!¬7µÓçÔ
«¿g¡!/¯B¢Hèø´âz[Ü‹­Vߣ4Ÿsèܨ¬€Òv Ûû|÷¢ãyˆcNû‡Ó”ĆútçwB¿x�àkd�7Ú‚ Éïà1åÅ�ÀN³Ìé7•U¾…msœGöRGÕ™Ëçý^zÑ·Q§ƒ>¸¬K±Ãð¼à±.=ãó‚Ϻð™žXëÂ.;·Xñ[–î%␍´l¨ì¶¾{rŽN—½Ö…ypr^€UkŽ8ô¤?çSXõ•ý€0Û¥?—©à±jÝ{4÷ ØV½Æ'c271 �äûR~ô kgò(lUsÓqõɰR…½íI;Š·:BÇtCò._©ú†%0¼+#$�•D Ó8Ô¤3w‹•ñ¬(?ä‰ú¥Ð §!æJL_ûhš”xWNM~}Û«MmÔÿ¶­Sçm¥Ð¡BNï{íè\¬É7¥=©pÈ?ÿ¥’ùÞñUȾ␍Y?Ǿ¼N…Ö^B`£x99—MˇƒÉËÕ,b¹{j�ì=ê¹Ð�ß´¡Æû-º œï‚ÆJb†Ç¶±Xé�U”ó6{ú»Í�ï,uÇø×·ÓiÚ낼$•ñR‹qìòOèäK;làç"£Ð•üªN)Þ˜ Zœk’8Ê'p®␍j5º\Ð ®D¼˜õ˜‹Ñ€Ãõˆ‚ÚƒËKˉîü¨ÆÌ{ÞúeiDï‚—óœOSUÍ—¬ì‰ºTU)5£&kÖ!n:ЇQ¥22™¨}W§mEþ E[ Ú$u ”›G1%Æ K-D g¢)a×ôù;©y·ÉO:´–ÖÈu‘§Ów²9ñaT:%¢°6Q Îa´îð®àÂ�tú¤©!”cPìPº{´ÊžK® �£!®n¸¤v6êÖƒxo4¦hfBC‚i7+AGy›&àN+‘¤!rgOñŽuš2³ ¯Bg+¥SVÑÂPöðô¸y:rÏ„ètÖ‡Nèä{ûÑRZÝmÔ÷¸ %iælTv°'0>î$³³îã.ô–X�¨ßˆ e²64ЃeÈÄH „¤ÀÊ…ä–ƒ]9dÞ s¬˜{?ñè-Š�gó^Üe­pœE�qN&ñ7=v®r;†ôؘÐE"¼¼Z6]Érœð6_ó„�¥k„§zç@«uÂ'Òè2!¼¥çáÒu/á%4tÍ3};0¹CêRD¶-QjýJWÕÎÒC˜  ÊRØhì@hÒµ±‘øã”ó�pÍy'$3*s&zí"Àصõ¾pöß™ýÔhöMuè`ïY¶9ýEí{svñqž,Š␍9Hʳ꾆ÛgOôh™›PY×Sm;– -Ç�™+Û7Z®Ê3ÇÎdå8>îê®�ú¿Ãv¬¯ç7TEPr<ÍÓ©
`­=@モæóY�ˆÛËé±"ôT9`Ë6ê¶PcËÝØ7-#L÷ÝB¢»èËLm gg©ÍèKAˆ:!ÿ=ä¿_cé§¾[¹pÏhyÿàÁhÉ–¢¡¥ç"TR4␍ÛãÅšW¦oÒÒé¬*¹Ê›_ÐDV”óë·½*¯ü’Ù‹Aù␍h©v@]I3Áœ¸¶Q?Êô�ÑF¾\Å;¯#Iúè ®\ÿ¦ã6êK®³ÐÀ—¯¸þ¹ã™DÚa:˱CÍw9��úH?„Q7mO^mWD0Z$<éå,øtžuÂëiÝ’—ðE}¯„ëmк©v␍LæÐçt(òù»Ù¯*£å§Íþ˜iN…æC*¯ö␍²??.nnöo#Ì¿þ1¶áˆýËá¿»‹
­9�=©ZxA¸ç{êÊ2²òkI>û `Ö$åK¯¿ü Ûní5à—ŸÂú␍Óë—Yüënôþ¯‹–ÛYì'¢å*ÐH�!Ô_q×Rh6êëýã$ê³ÉbvÖkÌ¢ÖÇþª×þ�+;<9A�üî¤Ú ™Kì@óK Ç+-é¥,zwœ Ž«eUÎxBÑ»�Ór[=ôÄ\xPf�]BÑ{£ÇÐjôJÊÇaåQ`õ)␍Ê|]�ÙCi5FÖ&Ù^ÁžKçi¯Äõ&OgÜ÷PÉç‰Uwþ»E–DUëÓ€8ˆzÒaû^ñ¼µb£ÙÒÓ˜¾ï‰EDËÕŠÊpH3J{r·Àq¿dXŒÚö²H!ð0¤úóï¼¾Õ2I‚’к(üìk÷JLبOäľ G™%¿e´ÅË “lž÷üB¢°¬Ýªa°Ñ÷"â êÉFýX8Þ€çˆ_nãîÛ™ÛPOÖhc�üíxßêóo°Ø—”Ò5�þ†y3äPÉ¿¢þn|ùòœðu|Åû-€?™�T,£™F®‹xJú…Èÿ=î~¹>@çǬráPJŸj<Û)œ-U»zÖçÎòÒóäx8&èGŸGâ½J)f£€<Â\’…½Œ“Iß! r_âù�÷êÜJX[ÂOÀ;$��ŠH‡„€‚ QH•µî¯ûìgöN!¢ íœ?YI&™=å›of*…¤ð•ȧr�íæ¶�¢v�Õ°zÚ ŠÿJÙ‡ðtaîñÖÕ�úË¡'O%=ðŒ`ãSù3Ï|ÛÖŠëÛ_¶ïl0ÁþíðîÃL\¶‚«µ¼™åÉ''ÉvŸ�Ô¹â‚CÓ{ÛÞMÉ»Ô5›�␍€W|ÓÇÑl¹)ÓŽPFqáþ²SÝâ8/ûE~‡“Ñ);”מÅ<vd6ù“ÇÀØfw`lsyí鳃ܩ¼ö,®Û\^;W|BõLüÙG£ìÛÛ»¬OøGV-Ë'xŠsO% fè×¶Õ»D�‚}ûx$˜.Òg„àB\‰ Û/!‚½}Ê ï|wyÞ hoš…- äOý>ŒÜèæý(L|�@�q1éñ¼¸Û\óËT‡j‹1>vºv¤Ûb¸�þ²ËH·çÉŽÝ«ucÕtû+8Ø}†9�g˜÷û·Tõ¶>Û��ý�sô!åÒq¹:Q‰QGPû·¨ãï ·Åüv‹ëÏy)…™‡ðï…x8Ùño'þçöºy•Øõx›ã€±�÷·ï9Ÿ€ôv
%Eå¾�9—‰¥ýRIó¢ kJ£˜b'b2Õ½)jj‚ \¦ØÑd¦Uþ;¼’hçÎÅÙ»ÊoU{å†:÷PÊ;Ѥ·-q½½¡;&ú¬#OÓ°®u ïïQh’§ÿ¥¼�=ö·ä¶©�1tÿYoVÝ•ý2�ÒZƒ¡WK␍;¿¥êå;¾ñèa´9‘èßîË+ßÝ…-éo‡—îÞc¡ºoûÃáµîÎíÂÙþ<¶s~7gŸr„ünÎ.œr”ünv×A'¿›ÝŒ%¿›Ýu�ÇÉïfwa†9J~7»‹0v4ºú5»
çU$�æèÔXülÑuÙ {Ë >íÖ^{<Ë¥¼hÖoÞo¿ù§:'O,‡Óàf%‰\iG `)ÛpŽ×Wæ)`­°h±y‰šGáÝgÎá¾ß»»¡¼ÍPüŽø¢æ–Šë*üÞ,—̱yüÍÜg£Ü•­^r2uÞð-ý‡wÁS‚L»¬É»ëþ¡"-\-[µ¤Ýe%r3"ü'B…s…¦ñx-÷×cá�␍Çñjf¾»�šï3á½4b|®h´­µèfÞ—¸-æ¿u_䳟~@␍“0f䳌ærÂA"Ñ�ê¢È°V´'Y[+墓ñ¾ˆŒó&ëÞŽY¸�ÍÄšJ4‡6Xpi3/¾³Ò<¼[@’­�Gº¥+Q(õ�ȚƷä\Ñˈ!èf@£3¡l4-L¿QÏ®òL§?«Ûc‡Ÿ4±‚ðd‚üzƒƒ€÷ö€5ö B3If~3d”h›Að Ë {Ë @…5¸?B�Ff¼°‹}gÁ8ÁH‰=kBû2±¿ –!€-É?oº­ lÀA"|ýe;Mç­äyçGÍ Ïý†cNû�–ÇŒcXZ¥ßU
>úÔZ�ýmTÌô!6À<öâ™z©ñEr2›m€ªÜìÆK˜b
å‹ÂC9Ì�‚Ÿßœýu*jaaOP
ž’"V€xl/ëy£–Õ½¹¶uæ_­n‰Gô¶*~Wpþå=Œa$V!™_mX‡ù#†ýS…݆
j·’N£Wڳщ—*|Í¡²«x:ÛT+6À<fSñ©␍‰�(âoqp�[7=Îu!éŸ3›K›*‚§ÞæÌ7µ}—MOiã;íCZF,xJú‹jÛþeÁéýc›¼ÊÖ(ë|ÃØ¶�É>ñ¿dHä*L³¯þUˆìV®ÙIx FUníFΕv/×oËqšx�¹`AZƒ±m+>—(ËØ0‹ ’¥ çÿâkQ{G–žŸÈ¿AµÉ†çW†YkƒÙ‘×Ya¨˜H»�jÅ8¥ë:ãªø.ã7‡uä�ÄÕ␍*{±^¸…GDØÅ<q§jî�\ˆ#º~5Á´îÔE'[P/a<Csü“äRŸãÂ<•¯×äÇyoŽ· Rzs̵OayÌÖ)tG1*K.4*wq�òòŽ*ïABç(ÓLÏÑbËÉ­\�…ΔÞúª Ô¾qèo¯¦¾DÍÉcµpq“ú]Ï-ÁÜðÓø<MŽá1Ì8t9l²å)¶V|œ÷Y|·\XPMF
Ä ìÎÛ E�µm ¼v�B>cFržµ‹jRÏú‡· ^c/–@´ €¬ßLA‘Æž"ºíXïÀÛçÀ‚]KÄÙœø"`5žAvE&~íþDÅŽ¬¢¬ë†ª³tß0ú'Pú¤tÃY3¿ À@åÐ;^ÿ0†ô܈L‚RgR7WÂ�†Úî}Sû×<Œó␍�®*TMUKe:î-#VåõSDÚåa…̰çôS2"Þº0v̵��Ôú+e@QÞmxµ¼ w
ç-ûç>×␍R*,•Bö�¦V´Ù* §ó(S‹Ì‚ñš¿è Sg�=
_¦ï+„�äFS¶j£½šL/z3òuhd5Cݼ®ã\Vï/$½Ôn)à �ûaM6îÍ'd£"gèN˸“_HE@WѺO"�÷py–ÇrkXõ[‹²¡»MßY¸»—í“Û‘Þ‡%ò3™Û»òåÙæK»N(h5‹øÕ¯rzÈ¿zS×Ý—‚š¿ *ãË„Î=7K1éñ\A‡ºu_Üè‚ïʘMp}äâ¢oú(èï–k~l­ÏiŒ;µón}ç3¾»ýL-­q�º=%¥ú¨©Cg7U®>x2Ï\²”Yˆ"^ÄËIŠÂ×$¨eä«�AkZ+ /œH-/¸uö2JêjdüVê{ͼxb/ú�®-†˜³€¢ÁYõLG§Ø?QJr®&´
²èÑ«[™ «\“²Š±ºI ÅUÉ^!NSøøy¶tg 6›§¥Ìã< MAíÚ$EtéÜ© ¸Apwïh·qÁ‚¸ó=ôŠ
c†zâaììÜkb“ÑHŽZFžÓK�¶êet,ÂÇoAüÑç: ÓCçH[%3T9z_Fã¡¿èf“ ªÅ+”�3ƒ³³±{␍ÆÎ1ðœO<†Ž[ê^’g`(õÿ¸ã,tî? %ùD(/†ýYiöþú>:a‡�º�¤Ú¨7Öfý~µÿ¿/uÜ]|öG_'á!UQ..Bµß÷úð9ÊuûÌ¢BÎ@s%#tø,Á�u'[ðK«/çÙAî´ë¨/b#nIe&V¾žIuJ°o9I0]^@÷U‚Y„%‚KùJÙ—2+kY‚¥“ÞW-˜xƒ¨bÌ�š¶<Ç_ÎF'“Ûê5ÑQ‚ÊÍYôØ€óÎ =¶¡IY¥—_Z„Âij ”KF/1Šl† þù‡õ*MN\IÂ'àf Úf1Ì&lƒÛ`›�¦m fïý™s�9Å\`nóî1™¥ÒbžÛín¿ BQªYY_f~™ 4 ô &Ã2/(ßPØ:˸aðÀµ±¢ÆW÷»�¬û ÕA_R³Yþ�¿
$whëÝa�x“‹2GSN
¤3Ú?”‡C3&¯fÚÜBS·X¨°joiMZzxƒ>|É•.ŠA^ ¯˜•Aºzž‡0åXô>IÉÀ–Ã␍޾¦‚’’ôµªPßZ)�2?¤œ�€“ž¤fªqÖû]Œ)ÊpÑØWȘ‚‚Ýb=Êù^+k
.gò�-ÎMA]²âLl-²w�Øi…°Cà8Y»à‘Â8`‰I�…Ô|>€àF"Ã%vÿXÞ›FWäbŒúq¤¸f˜¶¾xŠz(Ìàèu±Ki
´§È^ ÃšýG³EÔÂÛöâÉpüpg¸èƒ�(èƒ;Gß#³ÙÜÙ/W"æíÃQ‡ð”J9ýj”Ùf5c'iLoøæ.F{ì%ç·ßS©7kˆx+ɪ´#ùñ0ÈQotQ3°ïg×��[�à}„¶ÍÎ*÷)„ÇîA÷ä‘Å•dÖ±{’‹¯¸ŠZ+ÅPQ:[�bݧ‡Ó2º¤gµ•=ÑZINïË#y`æ^ÔÙN—>š Ëç˜y—ÞéçšÀàŠtk.ƪ|~GçælÕývÔÏÖÔGxt’¬•ìü®¶PpO!Ö@¾¼±§Yµ»…"—`ËåR­m¶ ú*&Î'©S2œX]Q�3|¢n‚³;ß©™␍C¦-3Æò]®D®©&+¾gç…‡óÂn—Mdr›vDêgmyÖlÕ­oUµç3:^ޏ\Ѷ¬0rì¹d�ˆ3?*„€å;áa�RÁ
¹x�ïÈ0ˆ¹Ï’r¯ñ�1Y�=·
å»Tpkò]á)3a‘{�çí�A¸óF<M*Òcÿ¸Ë6ƒÜñOQ …ß1ˆ¯Ø7Cc8©#_q–ÉÀ–ž‹␍!JÒ¹`ÿ°4ú�ð >wL[j¼])Œ–ç³h¶½É›,—bí.°IHf}ÑZA,=‹:v”Ì´…‚␍ö5O›_Îì…´ºH8ÒÉÄZKƽ™6>_+It€)·¹7)pL8׎’î+␍b� 7:TÒ}Ê÷·´É´¾î#FA>÷OWxJݡ­÷–І­‚*PB¯TÎWâŒYw»ÌkˆØJŒÃ#›ŽÔÀFí…ö±ŠLv£ë¾F솽S¯›ÉûЦЩßVA䇩ÜÑ$g¾ÀÕyà�L7HºpáIm•HÉžÂ)•”|s¯½5÷º;᩾æì©¼}eãNאּ¤ë†A8¸ôÙêSÉ�¢м†àì¥uíÀÛ}ãB‡QF&iˆÆåîCcèj¹2$ž˜Il0Û‡ŠlCÍðA4^_Âý:ðÁAÂC=ôÐi½†ó†­é¾qN�µë¸_…èó”ÊnßeL+äØàÄwó©¢h†=äGÒÆa`´~ò¢iAÐsBÖØà)ËÄÆ!u€À¤Ý#E°A@k–68ˆD>†Nɦ–k„ó„ˆ=”€@]ò 2:�ÀÅà±n·²ïû?ÙTC§��g¯,*�¼ç¹eBÀG.ÆŽìB&Š)é¡DU¼¯ày´¸˜ßQ±_²¿dƒ‹9Vsè×3©@òpG6PÄ>}␍¨Ná_‡Ò™•â·ùÚ5ª
ÿž␍.æó×h¥„ÏÕ‘â}T1ȉ¿©Â`'¨ÃÁæ6TäŸg·×ìWèÁ¨û¡¯¨�†{W�å ÈýŸ Qå«8²áo
ZR«ØÇÞ§¯mÑþ‹”pªÄß␍ª£�"Þÿ‘‹Œðš‘›‚R±"ñAn�ñ‘¨Ø{´JÞTpê␍õwÑ­ã;-¿e)b{OùY²¿d”ëâÈùeÕóóùàVcÐðóί£␍ø÷IJ� öQ˜BƒùRºj›oÆØo^»ÚOäš3ÆŽ¯Q‰”¿Æ:•ÓªôƒûlÆW²7òOlØ©‚ä¨ÈEç[i‡ŠÉ€ùëLgÛà¨ÈïZñ¾␍é'Audƒ‹9¶bê‹G¾ÓH†?‚’"öiâšž~ƒu°"CÿORÒ$ÊÕS4ç‰X%qO•b–vЇ±V-<^B{†}™JÏW¯Õ=ka(œíÉ�áùQq¢…�ó>ˆó LŽö )•©4âêó5�s;ˈ<¬Ì¢0ÞFÈŒj¿“©Ó˜£Ù–‡'jáágŒÕÌ/A×SXã”Ü5÷
)޼Ê�ÌÍ–Xk¼>îça²²¬á kŽuš …ud BDàb¨¨ÀL,QØùŸ–4³¼S°È|³¢CdýÝ\³ä¦È–UÏØÚåŸ N-AÄ)ØÇ_C¬ª%L…k‘Sþ&»ÍÞé2è>ˆB#"®s1è¼!@¨b�2&ÎóăÂSf‚1VM@W_ßÁ'u§©0„ÊÖ¯-‰ü#êK® ¿oô£Bív‰9tÇqª7íE)g͕ݪ1#ó”Q‚SO{‘¢0NûS‹u UN—”gkî�¹CMj�¦ésë1î1äšha{Ö…P£™
D{™h&x?˜ß/f7̓nG*—äZo-ÛÞ�Ù—¡—vw¬XÃ)z’Æþ¤N¢2  Æ!ˆ'-Aœ7x? &L:¢4©^°°êKâeŒÁ½�¬&/dðÕd5W3…¨ ®]Þ�@Gþ„ý²#Ðÿ.û¢¹HïOä@¶ªR{–³¨eèD¸£C’ ò¨¶eè]–«S2ÓEó‰hâl>`¿¾Ÿ–ëù—„7�ðÊÆ¸¦–/â,Ð/À]ðJŽZ¡nØô†¨wxëÐ)␍} Jš” Âj,™«™lGÓZVˆ5.ÆiOLo—C¬zoG<µò¨Æ$ 5EýÃ}\¼Ô¸øêñ”+µ;•ó«Žèåp„5'Uæ&ÕÛáðK¹ÆË’”¢™âØYrIå;ƒ=ãá…'OÃo$ƒä÷± ÔJÓ ˜
sˆµy
‚g4WÂÄ$Ã/🶈»<—Ýç@í¹�õ#ôP   �60Öã"
øê·7·©ºº%´æbĆ”ƒŒ¶¡&«9BAвz!ˆ±ÉUöoŒ�jñ2ý*Â'uÉrÎþ{™%ÞÅHÖ2!ó†Àc˜†F¡€kD
Ë‹;d/�²W¼])Œ–çsRU@Á�C·Ma€â¤§ìÿ¥ºÎ´ I–Ö³»ùzñuzXÍ׺‹a`çv®6øAl˜Ÿ/žÖÕñŸó�K:1~"üðOžHrâDŽÅà%†»Õ‰+ø×þ÷×ÿ}"±'Õ5üå¼äb†ÂùN/>Mõ§×õx÷çI
·:µjë¢øêËeU“ãÂOpÞ¡—6˜¦.y©´WZ B •Á˜ÙؘñÊ¡·÷ÕÕãÅ£­5:3ÿé?º*+322êúýuÞøÄ¸~CPíp¾ûíõ;€úé£]ßðóÇŸµà_?þÅçøøÓG;áðÝ/üòþΣŸ¯Þ®ï¯?ý¹]Ñ{?~x·�i£Ö³âêvG›ÓmØêÅ1þñ5fõ{šÍÕ2Í£åõùóîƯÓW†ý*ÌW{}þñ|þøÛÏÜIÈ�$àÛ�Á™gnwkY½[Ì2Ëåä`Þ¬Üøo�Ö½êúþÿ2␍ÿüŸiø�ŸŸ¾*=›Û={®Z½¯~YÞÍxÞ[­ç `†{ÍÙæaŠP;[çèÍö!ìî«[zŲËÖÝ=|MoÙø@zkz6Z¹ :@oékx­ƒi£§�¸w³Ñ¬j´¹1ó®ÈÆoD±I[3úZƒuÈ*ën}U¶½ åÞkšÏñbXv̘£Z]Vw·>ÌÍ+ûèC�rFåÊtaæäÌ=f¯ƒ!š¾xË\vÈE:<ÇzãñšéÑ)_7aøªM'‰ý…ô 
5«VRc¬šA|+Þ�áΖ¥ z#£il yâKÈÓ«Ð\ÐL˜I¼19’ûˆƒê‚Õzõ1„ñæd8=‘v0ÌX«o ŸkN2DÜùbz8tîxcVu2ž0óÅ@Ô²6 €ÞïÙÊff÷ùœ}@(ÊÉ»�g 3’
Sž5ÉäÁ¬ˆO†[¸0«H) X9&wk5:Ü÷^z%ª/H˜ó`Øœ‚Á»Ñö^Ë{6ˆR«w1-Cä†RäpÜ"„õ¬7d'?ôpŸ;=P°W£èy06i£ikP °zÁZ¨š2áé€Ö1;C­Ö&½äÃf8áº*m&ÌRÅÛ Ù¼½'Gº`”òV{¯"Û£z jõ®ÓBG ÌQ—S¼\ð­’Ÿöë7,ŽÖ,Ȳ Ð�#EÀÄž¯¢¤”Uw£EÿS†Nˆf¹Ø"jÒ<öôV¢%ÔçT|SƒŒCã¥ÿ†¦!:ÔNºäcÂWv {Ã5bãµe;„ªJA¦Xù`¦êhWÛ£g§ïiÙÙ¯‘¸é0LÐñ¢IŸï™”)²Þ2!ÌB^ŠS)Eï:­öpá«—;Ô_]×ìñªQ˜Dè¢n8Œ ”ò…Àë ùh·±!Ô�ð¨<õƒÉ"�â*,Œ¹­ÅIÃ�A x&£ÁèG¶éüÅ ’¦!ÏÂЉ9:0�¾µÛö×␍]wŸèjHÊ¡ÒÁÌT…a>9½�´äšT¾¥C@®%Œ‘>çÆF�…H-ñÖgß{Ñ…sH]T’ƒ�žt3AªCÀÐuô­¸ŽÞâ‰NC
$)DëšùL£gêÑš“a÷è@Þü#Þ�íý`¤QH¶ B 3µ�å…uÃ$†�9Õ§0$œÑC†i;´�VDº›ˆÁ�…Ø6
½ø†<¡Á$uC¨â¥Qr0ƒ9G½,­³ 9vÉ=¾æ`X‚¡wšTgñ£Y&Ð{v L ª;„1y&Ãm #“iE|4 2␍&ºŽÈ|$e/&ËéòIF4�ø}-¥™uyí`ÈrO˜cìuŠ…X¢Icì`qE á¯9g`f°VЍu0Œ ü‚ÓýÌ„€š|Kò`è3␍í…yb’C4Є�°‡¤…XHùà:Ã8‰x®ƒAÉ´Ã_ãª�ß…yRš�¡<З¦¡Qö2E¢Œa‹Bm‚Ç`™¹é4ô‚=MBªó­45À�sXÌ(2²z0H¿˜ÌcBc¥1L�T°†)K
:,„Ñä#:¨@"Qaž�ý·0‹èQô(õ? HJÚø)aªT]&1óäÝ –Œ¡ABR®èš=Ô6dæ7Aº6Örn q�—Ò¸T&b>è0óv*´˜ÏƒAûaÏ;R¶v4µ¬¿«�™)ç¢/„€(ôÇ|ÚÁ0€ÐfF3Ý.Œ¬Š;Í»*ÓB¡"_ÁDݧNµ¿ˆ¬(f' •� *µe…\ŒƒA)sŒqj(Œ)廾GàÃoLC-˜t,␍&�eü6F³ZLjFàú1…) ,%£S{1ˆQJr§L-™^ºŠ1…  j€q§¹ÊS3
ÑhŒþuŠî‡AÓÑF“škÅ¢ü�…%™j…Æ:ìGž)õ`¤ 4¼bƒ��Cäñô‰ÙîÂ2îd�¦09¤æEÄm¼R#+Œ\ªqpê¸^yC<Úœ0pÿ쥋Chbh9ñÁÈy¡j�žapg.O�øôAh˜ !�ÜbAIåý(¡^£!�Â&û¢eá:ßîòùÁðrEi‚*+<¼ëæ$„~J�Ç‘åü4  ŒTœ€^Ê|!ä�#hà¨mLã˜üMÖÈCxî³|MÈ:T¦AVS‡Œ©ÿÅR R�lºn[þîÅ¢d†~Ãý3å éó½ÜÁôÀ‹¨Ý0HÂèz´äYݦ©Æä¦o e”Òç‘ ,+kÈ�€0ø`îUXGëÃ�ŠIÁà&Œ|‹Puσ:ìÒF
åEH{Jͧ¿{™&(ò9t¿Ø�M¬(ðË^ò"� ¥¬Ñ¦µÎíÿ‰Í�ëXØñ†gH3ô¦b!A5ò ÄÞKYà™È8UQ–מÇR=ÓœïºÌ|Y†Fkòr¨VÃ4ÁÀˆ¬í¹õJy‰*„ÊxI©+®ƒd©Ž§AeÉ93A½#È
l5³¿¢"Ö™ò=uÔà�V¡ ¸Ò7bTMj@ÉhÍÉV„`ÎÄfvàSZoä••ÁÄê¡{µ?}ƒG¥£ …™‘š‡$¡èÙƒ~0¨w£,”SrÀXåAaÅàA½ëL Š 0oi:+6úB˜¢�“xµ1¦‡ù¤0Uø`š.ƒ>‘a…ƒYp˜…*r!xTW“žt*#r·ÂÈ#ÁA“Y˃A—(gš28¤¯íž°'0¸ZnÌܬ‹|’Ážƒ#ò~>{-yaúÅèv0C;7U#À`Ü0᥉ÉTycÆúa‘!FIWd‰� KQŸ˜·™KMÖ…_š8³§odÞ0<Ry’¿1¦9Œ„PÂXÃh¥¹àP˽í½wb:.™IôI õ+apdä‹Kkœa+Sj¨2‡~l ]†©¦#ìxx™[]ì Ô›ÂhFÈÆ–ÜÉÆ¤¦ ×פ%˜º 1© Ö'†$㼞Êkß1P‡&Có¸§íÙ“ÊÓLH™ š*èæÃŸ»¦¼¥6Âr翹.¹n
^eO`0‡û_ÌUÍþcÀ†`I«7²Ã �é®"þA£ö�Óèú•ûdÓUµŸ×Œ–˜SW¡é
Œ¾œÆl-ßÃÀibŠ^×´ÇWÐÕ…îrJ5è3ú±Å9‡›D5h¶ÕÄLZçåë/²'J_´ì-;JR£ˤt<¦ÊzUMÇ Ü‘˜ª/ÛÚ
R˜Öb’põ|×)Õ"3yÛh�öÎgÉúØ
¨‘ØçhfX@¢@{ÞÌRÙ8LrCâ+a Sú�°fôpC4]KÅP¢@­–ÂOо[šã¦#ÇÓUÿ0X4FœêÀšbž;——·fÊ/␍æÎ\¸ý
�7 1ûÍldÏ‘␍j‹<þZkb|¶þnÅ•‘VÞÍ«ßAwŒ)äƒÀb2Ú2ᦙÇ(ÖÉCˆª×¢šm$æ­·!ш1X‘8*g´+Å å�€P['ÆíÊûb1|7îL ›ˆ¿àïø‰™ü,’µ·[‰oÞѬÙÌ®ëÇZÑK–B Ö˜Í×ð·louu¨ðß߯N°d0>>|¿”4ù‰¨Ù(TALNçSE?ñ0[öÒw£[b¤Di
;#1l'äÆ��;1²qeWuA-1FÎécN1 ô¸¾•þ}÷¡\KZ‘ ÄPeZ¬»õ;§h-ÝÑYš\Vjxâ7±Cæb458` UÖæH:Ï¥��~«–öæuŽ<ß]ɃÈÛ¼²@ GÈ]ôÎ…ßÊMLós¼¼ªQÛA!ÜÊËÚM ‚€ß‰ù©bØeV�â… rÕ°Ðí–Cyõ¦…ÜØ
ƒËÈá]>=6×ãíÔ¾öÄPt
kìÁR€!<" ²ðxº¦3\ªÃ!dâh—Þq$൴¾ÌÕ°␍øØk Öü8Ì;®ÌjÚªöj&†%Æ8±4uÇwqâ
áÁòÜÄÀf4]5 ‚aãù.X™^‰Ñ?hðJ5¾ëê—GÓÕÖÆ2)Ew�ÔÔ©0;9ý•þ™KΦ²S|j?§70 ú}î<¸E©Ï‘t[Š&®’v€pñcœ}¯Ä NÖ¥ü]Lw¸œŒ’éLëÕ¹Q±§˜s␍CÑö™†‘F]�@Cþ¤Ÿ!soiöo[ØH~`naÆ}¾~‚�_`!8e¬8G­°uüô‘2®‡S¢Ò·M®Î¿ºqC!`#œ
ÎI .bé7âN‰‘¨` êÓ¢Æzmôaȱ³Ü¶bØ0¯Æ54½^H-h•
µQBþ¨Ë­k¿$
f˜,XclâSUW$�Ç?ß4Ì)£‘8ÖŽùRu±áúw,Å÷]TϤJåk|r.{Ž_¤¼uŸXbŸèÍX:ôù-1•˜ËÀßÖ†tù;{ÁÚÂ�Xó;èHž{°^Ã(wƒòS"¦S̓âjȈ”3!8Mèiúý¡7ü)Ï7ͬI8JF·?Mò:38eï›W.×ÛMôï>‰ä]'Òéz©d8â0ó]v ‚ÒW`ïÄ`:Oš¡[M1–6äwŽi²ê¿Ö
©­�»é@Lž_™¡Ç
YÁ±�уàc(E¯ß9Œ¨iLçý,ž±*¿,ÊÊ–b)ðæêhSt½ô$í¨y‰éuÁ›–y„ƒ•…Wï¿›ÚU~!J3,�¹FÅ®ÔÄéŽZËÖ^Â!¢îéOy†‚ª“8blˆ«Èbßæ°EFxųt×&¾ù[®få*55Ò+[ ë"Æ¿Eæ9ø}Æû½å/DQ]}b&¯@ŠQIÍ» ÷nç?óíú†ôS¦ë`aŒcóû*¾ˆÉàÿØžp¹Ëçô§ÏVÂaò,
IÖ‡�`>”ö¦À…ºÙ'”ç`%{m134?¾dï”ÊF ™†þcNû¸™ ^3-[æ}©.&Mþ¸™ËáƒÙey„ìêÑôbñ? c¿îË[‡Ë‘[~òW- ,WÇË Þ‚
ñ!Ø÷“-Í]hôˆ¼11��}êG±qÏ#„j6¾Ž¦C³ vÂs±ãæzj›6’±ca~z^Æ‹Z& ÷ˤ¸bPÐäÜÀÈ„¬ ä2¿ñÏGßõ3´PÈçfÐúŸ}àP=Æ¿¬ÏaL­Ì€e99"&Æ\éâCíÃ,#ïr\˜ÿõp|:{²Ã4ÝèïíqLÞš:÷ÏÈ·aè
™d0* VÄ(•çÄX2¸�„¹BnÊF®u¡
í°¬!» áJ§†Ø‰lP¼ö®Ów‰ʦ•Ï쑚è/oÀ�‰a"ˆ‚üŸQè?
_i­ ^1ð:Œ�fCý³¹p þF_$gWâ£0�Ÿös,1Æ—qZL-ª‹Jòë<ç4M<RðM´C qgiù¶ýÙ÷‚<ËÆ0(#ϨpÈzêf)ó)¨ ÈÂ�a;Š
ybôb’L&ñUScî­©_âàK†±-3KMƒßo$j_r1Ö1ÛÌGœƒ¢ñ.Š:¿¬Å^¡r×ׂ#tWب%1¬'ã†7Å2ˆa=ë
{~™m�¦ë`æWœƒÆâ¬$ó³¹²×›1þ”‡E¢™ìÏKÌ•é<=ÅîÊ¿‡Þ!/¼DócGÌÖ>ë¤0ïí‹¢�¿ÃŸP˜5¡¸“‚dGØDÊá” áyÔª␍6»¯„ÈR [WƒiÂ=3«ûÃPî çñ/bÌ€'hòf(Ñ>T縫j@\=_ޏ÷Ãà �˯‚
(&œ@ïfbTo«XT0ECÈ÷º=ß9]Yõ‡øû¥XRŽ9ÊOB¥^®�GÀ°‹TŽ-ÁD˜¥×çQÌγdZ8‘ö‘ N¨£ÅD0¼ŽîVy%›¥Ár®®ôŠÁ@Q_85-ì\¦¸®'`Zš ¼( »”'§;ÈûÆ•›ÒÓ)ñì/¶€’%÷¸ ˜&LÜîÀ'„C!ÛªUÃí0ÂEs;ÝÄÀ
8ßlÁ'Á¢N(o濳¯×igÓºˆí5d¼Öö?ýá‘!EĦê‹™e�!šž˜Æ(aÚÉ%'0ˆ Ña÷ob°Uº×­[\ö–ºðU A: �KP3ª[Ý*f„*°½ÌýÌœjh±¸³é ìD|«@þ»2 MÂŽëP5ú¦¦Ab‰Á\Âô·èhÿµgcèÂIJ>Ò+¡ë–&]␍Ü>Òu‚ñ ô¡àc`h@a‡�áb%ïÈ„b†R+Â|Ñæ™*ƒíÓ=Àä` ¤�`zNb`¡¡Öƒˆaï ?µN ·G¦©IÇ -†bŠÙš‚¾Ü¾÷€°zœ¹ô†‰QYx3\¾—b␍á!2°×�{bx:ú®¡öÊ]!!–HÉN ª;`u…ãˆ�옃ªÖµïý÷R°‚KŽæNœ9*!‹ òJäôÀõ˜ìÅvÍ¿c íª-¯‰×ܽº Q<UK<› «“q¨@ÌÎ*U¬*Á�þ-´iB'ÐÉ@F£VS‘Àxa˜òžSÁF»1Èš‚�P²{8E–±½Éó¨î¸WŒ1.®Ñž´©êÆXµ!fh,á|çq»a’)ˆm%øât’ÝÀ�-ß^0pã’o�å÷¨ê’ ‡¢Ç ã5à Äji%zbàHŽŽ pže™s±�»|÷—Lêht!,ôkÚžgçG,ÓHÇõf¨c 8xJ88!}¹º©Â�8XŒ=¡|^ê"̃«þš¹ŠÆ21¬+FÞl9„0R¤Ñ—:¾¯º‘xš11¾ÊíÝA;/}Z
Â␍ê
-jÍ('*T•ÉŽk»Ð‚6§ŠA%X”¡”ú�Ó9ûº$S>Á땆ÕÜóÃà¯x" �)a²˜@â<“2jÑœ¸2À»^u‚l)e!Äb*-€~Ðÿûl½ckb=ö—“}>›µÿËx½¬z–“Q‚z‡ÿÄi¹/ÉNb�Aœø"‚Ђ
MCãÛû[ÙÉé©J5Å©u²“ï².3b™sº¢}lPx€K®-01Ö(y“ êX ͆'Ù�7¡‚Ø:ó¯ÍF!˜bÁnóf§,ìÐO‡§ƒ‘(ÐuªÚ_Ñ 7œ¹␍zèJ(¨£ÄÏ]¼þ␍&– ‡Kï÷ÊÊÇÅŸmA��š÷d¥O±‡Ä!p÷¾MËîú¨+-Ï´3vãëK=³äWxŽL¢ç�ñ9Ž5É!W¾ÿΘž�è&¥@®ŒY_+T�Uö¬~¦\¯d#OÛÇx‚q2•BÄgÊÎ|t
¸zE2|d±ù�`Hd¬·_Bf CàRöó‰ ^dz”Ĭ5Êä ñsõq-O0Oìö„u6†!Œ¤5 Ђ‰Øj␍Ã�Ay1=üê>ÆéÆÂ—qD«ýoal_ŠÎæí\tÏ{YDI¾ïðU‹}�ߊɺ8 éìØä@d¼äg3’ro»0ÈhèB0á„G*¶¶†)ñf!ÄpÚýx¬ö–«�¢ÈÂHŒ¿ÿäUœâé^ ¾¸$ATÀȬ,ˆc]…‹Ÿ£ýbž�PLŠ␍†…rçlçÏØ1sî>ÒUŸW>г�¤˜qa˜á®ÍåýV��äèIôè 3²÷®x'AÀHUÔ3) O çJ|’I™¼Øjݵ[öº­âä†aeþFk‚)4‚+#Ö}
¦·Y¯÷KWr
ö�ż-ÞTüü·£6BÄWýu‚±ß§”ï}§å Q[`dÚÂ(ß␍¦_’È /¼m¾§‰ûyЄ&}¶L œ¿žášý.cŠ1,@ìw²ÔêFD t C@xI}4bÁøí'%/×õº³™`âê5}}ë9Ü)ôù1“½§É�òˆˆÊ�ãÐñ¦•„%ÿªYÖ1Ç ¢¸'´éyeŸsÅ·ÚH¬11„䉷q…Å6IÏctznS"pÃy_瘵ž¡ºÃž0æáÌó}zɬ,95J¥k™wVQÉîà.Fݘ'³Z3ˆŸÕ0ÿ†—M[†Eðr␍Ѫa0␍eW‹s'Ù,Œz©s[a,çˆ+׎g‹†`4Ô^Ž^fÞ)ËS—†">WÔ³kbPòÝB–µ¯cºy»˜é;˜Pæ}&”�È*š=É›U Œ†?ÖóÜ—÷
çªe0L°5IUÇ"K„þDFUÃ'ƒ‰/ìafIpß9Y•›…cbn‚î‘<¢X±ÂýJ‚A æŠü6b3 ºÎÄ*F¹Ícxš¸fFCOüZ©½*¿vÆ␍�ëèûÊ-ýã^LùÄx²�Tû^ä÷×�”*Ö‰±è*:¸0¸ÓÐt›Œ*Pf¶ƒïx§PÖP©Ó
މ9{Ú~æË3ñPc,l}ï,p¶X•¤Óº1ÔÚïâo^x5ô¢x¬·�,îÌ4#)FaÒ±{ÆœÚn™‚™D™Q¸ýÖÌ=H ëÏoEãFÞO÷»JjH‹¹ÂÌiÔÅ ©„?X˜:M-Oaî?E½HkûÒ6FÉðl–¢NLX1©Š >÷´D³�Ø“û˜ƒXQdXVì ¤ÒÎU‚ð×3êÜðÍ>Q÷ó˜l91WôóÀ§ÖäZ˜;:ÂÝ�Ó8»Ÿeþ‚t„†×8EÇXëøƒ™X0Ñ4дœ™nó ‰Gã�Ê«80Ó)]1€v Ưt~Ê¥Êkbƒ‘mâ|o†-5B=‚{/ˆ…Ì/�«@l8ÿe"ã›æž‹žeJüª<â7†
¸Q|„ÁÐTŒ(çו9+k¬7žŒ␍"… –Ý© #»Ö°á–ƒ¡�SÒÖë•þVrŸž”iqæ³Ð—…Å=ñª0ÿøö›¿þö÷?ýü‡ÿþó�ÿù÷ß~úïçw~ôƒ?ߎÏ_üùã·ëó§ÏõùçG±u™rŠÐëç—Ïi{­*¥ãóçÿã³ÿš˜+úe[“á‚DŸ)ï²c0b…óqëó’ÍÕ^§B­ò³ë`9@¸W´ÅцœÓ"†�á‰K¡Ê#¶qbh(KpÅa¿ƒo÷³‚ l£.ˆù;ロÚ<f$%t
(ׯ8ö
;ḹ¬eN™õ<ß␍‚á§␍—É6\sé-ôÉßX�s,ŒÛœò]‹ˆã ü&3ûû>Ú-ðÅ1s%‰IDˆ(,„é“*@ð#§g¥¯%a-ŠÞÅDë’
†7•ÊgY´çëʨŒX…0’2çü‘Éd^Y�‰Ysèß5y<~Ä+�J+ ƒ�QƒÆ;ãï„X…â¨73ÜÎñà‰ �'"{•�9¢¸‚ÐÝSŸ ›í°¼uí÷çwG¸,2g␍ù,�m¯>ÁØÜ˜Æ«&†Â .žôW¾a²¨éÙ
“_áç»!l÷Â<(£Ø¦K:¿£pYd´‘º1Lm†;û9­‚÷Ô6·~_™u0qˆ|–‡ãHžJ2Ðô¶0ñPá˜ë:—qéÉ…b±Ðõ]$©øÎ¥ë4%­#VÏš”…ÁÉ®’N—éµz:Î ¶Z�ýrm¢R·1¿Eq  Éûœãɮ䅨:‹oÞˆ£½x×�ßI<­¸:³¤og”JcÛ‚Ä$Œp„¶N'*‰Øh/Xm8c%FÒ­i™~–tü cArDö\ÇÇë‹[Òf’Öë␍a,�Û!±68¥�[cOʾ.ɦ\gÞQ±WFM9ya"Ò@M'¤d¢iw¼Ù~Òü5…ãk0��Ïx(ú½ß”J©:£S,êÆÌyUJ´Ïa0ùþ)f616nM£º[š"3†Ê;“—,¦‰¤°mCÌ5í4“±ö3vÅÐèš9ÝŠÂÉ%¦Ž°ðŒo™1)üò«Û0IVäN2�!�ås™<áØbZ“4äO|6£™Mì%ú¸ùÏžVc0åF–˜i9bíûÊ–›|5 掭&lL<_a¸z0ü:‰p¨¶îg!©ž¹­÷9¿e ï+ì’–l�?ä™ñz²ÀvÊ*öÅ·ñ#xÚPhˆ–Œ›ÚŽcûœ)Õ”—$¬#¦Ø,Ÿ÷¹mM8
eG7G0w>Ã’Þ™ºíÕdRrI§Î;'=*leÊö…D�Gç½2DÖ`3õq‹×¾2 ÷ö Ô+EÐ7ä)Ù^–ÎÝqQóVl$V„î�×�Ä—8x»s„u8:jÏ“ë~{†ßåðO8Ã’á¹[òÙÎ ÖA£Ÿçóœy"}<JûÊ#>úV‘èQ|jO™�ÛÚÎ*5@ëuÍsdØq„cÊŽ9‰©¨É*¹s|³õ˜ eÜqÉýÉ¥í÷ ˜ÛFùzrÇ®3Bc½OF&11 8°~%<F@™{0ÔÔÜX¾æ§;M¶ùây4*êË%«Y/;¸&nZš6SN pœcd¸<_Ùöª¢­˜£õŸ'ÃmÓð»{—Æ@fóˈjÀ¨¹)&Eå^éÄDµø/wöÿ`ÊŒ%.©ƒca¨àÓà²Y0Q>·3
¹0H…ž]ó¿ÁO7‰*‰ŠçÂ0 -Ô?Ìé.%¦'û[¦äJ`IQ>ÏíÑÛ'fn¥Rnú®lÖòž÷ºžêšB‹«ƒ&‘ù°ÿ0ˆy:+¶gÇÙKÓÑ‚ñéŠSG9÷)*sǹä‚HŒ<!˜Ï²07“fÛL¬ÎÿÝýR\>zÒäÏCQç«[Ö¿.H¬¨(ÂIe¬2&­¨Åµ0˜"ùÏODI˜’’Ïþ.‚êw&‹¨=”ÎÑ0Zž±"éuaZ4Bd
[0¦TEùW6µPîS Ók«ÈT]‘”x`«;Ë}a¾çŽF!␍9èì«éUslNÇ55˜(õ@îV î;'u¹NVaSNÓ�^•z1aËg®È1LMº³%‡Ÿ¾w.ß{˜$ËÝÁ$ç¢C7>®�QšXat™ÅáÔ¹ÞxCí¾F²•GÙ†’v%8<Q@†Ö‹&Î+ÓÎ?Á$‘ÅS#ŸsA␍ex‘b!¤ÄY÷Å„ùµšpg\óô×Ó9ÛWÆ¿¡+­yt9×ã]çLè·<NÌèÿ¸.In~e^`èVéÿsEµ/kOo¶J%‘™AÞŸTB¤:Äò¥½Ÿ„sç ÛfÇœƒ#‹ïÔ8FÈi4!ëp3…2€°Š–šaÿ[;�¬ÛœN[ó=‹E9ú␍úQÓ%Èϱ¦yÈ ±Ý$5ŽGŸ4Èê#5Å;æL©ôÐp-�k èwZÈJb5y”␍¨�ƒ™«@G«©a¢")†05r‹pës?␍î<¨.s+”E8ö­›÷ùž5LPì³9_Dc³Wü=K¡Ê� Hkß{þ·<CêøÀñ­†Ï°fÊ›»Œ?4ò(ˆx–§ÀgcK ®â)‘ǺÞ0ç«ÃÌo­Èr¸ÖRCš0k¹S¯îÈ—¸…å5þéԘ㠧t’ipYΜL°w”4vV“ý% ³Þ[îá…qGƒC¯ÂA¡Ò·c\M7àÊhóGÛEØL&6Ù§”Z8WVF³¾ºœs¸û앎f+l‘Œ49„Cçˆ55¸wáZ¸Ní€X僊Qç­Ó5˜o™Îî�¾°zJ|21 ÀÛÆ@ùd o85ÅapvlØí “Ê®ëšô§'"ݪ‘‘¨Á!¬íÔàƒŸ%7̇ã+Ñãî␍T‹aP}‡t‘;° ž™L“çâû}Ö' Ó×8F©i>¹x ␍à„“Ty{ý@d
ãè+ {ã„uÔ»ç€9«#1X—ú2q³Û7ÂÀ£Ësø¡æ0®/5D+ÍE␍•Ï¢]V­•=åÀ%LâOîwÔ@dœCëʰJî„Íá¡¡Ë€j:b$à ·v¥×Õ˜bì‘NB³MÆ×MK�ÎxÌv }vj8dÈ‹ð(ÿbÆÀŠ@sé)˜}só4V¦ÄTÁç€�ygMÙÿlrïÐt[~ÔÞ:�[?zŸ�ìtU½Ï㣥ç”*„®ÐÈå\Ìù®�Hˆ)²®Ó�àV~érj5ä3ù‚±Å:56Õ°ÙVS3il�7_1{’ôEdoy£LjÜßrRú\¦êzÕLÎHM•˶XÁ”�¦µ¨$¨¢~o;¥zÈTÞöYXW ÞÀùZº>X�52vÅ: ␍È(Ð.{£Y& $W5L|%°0£ mÆnŒ¦« ©(J¨Õò$|RänmB��NO[ýi@4JœÓÁ5Õ¼"î\î¼53~¹`ö̆Û?‘DqÓR³o½áFÞ9±ÁÙσ_kM�¯-ß­Ø2ñCËÛyõ=»£L1P�Iië„s<Msã°¾\„‚¨²§ÙFjn‹°&5VÌ ,•5Ú�bÐòGH8[+ÆîÊý‚<:SC'ÂüOÌÔÀ³ $mïQl#¾¹cB³æev©´â.i
5 1�/ð·¼*¶:*þ÷·Á š LJÃ÷�’&ßc"j^© & §ó­"O\ÍÖ½änrK�–¨M‘bßH␍݉¹±#âN�n\éU)¨¥Æ‘sú2§
zß•û{ûḖ¶¢A©á”¹bAìÔ·N-íÑ+YB.-‚5Üð› Áй(M␍¶JÛ|šÎ¥44ØoiOnçÓça"•\‰¾Í[ äSrw€çâo夦ù=Þ¼šQÛBa¸Õ—;¶›Þ‰ú©jèeZš€â-® !åªÃB÷¶,Ê#c8-dGàV.%#Ú|26ÛãÝ9ûÚSás°Ž= †G"A7÷ÑtŠË£8”L‡8®Kv)Áx[®¿Í؆^÷ä†gþYÌ;¶L
mU¼š©¡‰'š¦îx+®�ç¤7# ¹UD4t<Ï•)à•ù™�Vªñ¬#/�&ÕÖ§¡C©AÑ^gjêœ0=9ýI␍ÿÌ&çOSé)¾µ/é␍`AÞ§!ðÎ/ÇA‘Bês¤„ÜÖ¢W™v�0àÂc¬ˆ}¯Ô VÖáø»šnqY%§C4­WëÆÄžjFÔ5ŵÏÔPŒ\Ô‘šæOî3bî6Íÿ†c  á‡æSîóÞ'üÂSÆŠuÌ
¯ŽO¯)£a{�'}zhÈäjý›'5n©@Nj ˆ%oÄžR£QáœO‹3–µÉ‡¡Ç^ͲۊÆójh|�Ï M¶BÃr\• µIBþWÊ­kßIÍp² �ÁÄOM5]‰4^þrÓpN�‰cí¨/S —ßAŠ÷,NÏI•“¯ñ,â\÷¿‘vð®û‹&vàSƒ½9–9¿¥ÆCeÌ¥àÏ ␍mÃtú;ï‚¶Å;Aó3T4Ï=h¯á(÷¥†ä爨N3S␍‰+�1RΔ@šØÓôù‘7üSdHü^5Ó&A””n¿™ävfxÊÞ'·\Ž»›äß¹É{}1�®;• K' ¾Ën¡!CHºb ì� ƒ`q¥¹Õ䋱Ä�ß:N“UþZ+¢¶vö&�8y¾cÆ+f…džF�c8Š^ß:”¨Ó˜ä}f¬Æ/�²òJA
ØÜíEÇMO¦3/5}�.°i‰’'8hiT°zÿ•ØWù!”f �s�
®ÔÔ8Ò}f-]| B$Ý“O-yŠ‚Sgâ‰cClE{�Cat€ðŠ×’®�xòk®æ(ÊVjjL¯t-®Kÿ™×�÷)ïûæø(¿0ŠJõ©™¼QLJ
ïN¸g[·ðÌëõ�éS¦$L èàÁ8ŽÍ÷(Deð7Ø”˲|O>½X‰‡é_¸(&Y¯ÀùHÚ“€J³O(—`5{±˜šÏ/é;£…†ò"ˆL‡þP_{ÞÌ�3-]ð¾L“K~ÞÌæà`z"�!\ý„^ÿi(ãø9w–Ø.ÇÜò‹¿êâruÜ9Á]pB| ÷}±%ÜEF�˜7&ðç5ðµ—~\ èûü”pš�Çq‡I¨hÖÎðG]ìX†ºžbÓ&2vj<@œŸ;/ãŽZN>HΛ%˜âŠƒ‚�sB£Ò2˜Ëüÿ†Ÿ?¹5ÎÏ¡…óÁ|NZÿÃu¢àŽá—õcŠ2—eå1s£‹/µ§Y޼Ër¡þ×}�ÏW§OVj¨¦÷{z¬ƒ“·f‡Îý¹b7 ©�JFc²€"ŽR¹N”%␍ô�ŒÄqSþ¹î¨‹UˆÃj@CzAà*ã_eþ9␍endstream␍endobj␍21 0 obj␍<</Filter[/FlateDecode]/Length 30375>>stream
H‰D—Ý‘e)„-XÊ‚�~|ZÿŸ÷KôÎLLtWå!¥R©þûïö¶ß¶ÌÈî5}ÿEÿ<Çœs¯jûb¢¼GÔHwfæö0þ?Çð‹©Õ±ŸE§0–�6Ûlîú0ó7lõ\6Ý;„å¾WZ.Žº}7Çö´î¿¨_W̱‚ÿjÇÅøâ�ÑÍq%LUÍ�ÉO êbö¨±¸HA“DVnkV„]L$'$_Å$š§wrU޾�òµ÷^±ÎU»‡mE½“|˜æ’5|X† Cfq?O›ß³üg»§çòûœã•¼‹¤î¾Ÿ£¸W¯?Ž˜kÏin³jÚðLÊcÂ�A0“´_L¬™ÔŠŒ 3²<b8Iʇ©1»·ñoÌ¿È_§sÛX{ð¼‹é˜éÔ®¶ˆ‘¿"V~Т¾$¯ŸÍ9 ‚>+axhB^æóbf‘‰M¥F›0±7ŒEBn×oyéËáyäj.ßíq!›ŽZkZŸ�ׂMÑâj> y!fÏÉo„�®³qܼ)SÁ„üóU_4û7"× %”ü¼ÊÌHæ0§vûbæt+³J*˜A'ÛR÷¼s<k•~h$0ÄR.Ví7Éû•|´*¿Mz‘ÌÑ%ÁWü’|L¸“ÂDP¼&šµ}]Œ^]i! ¯£ºÆãòkCÓœËÛr�tjà3sÄ× ñ#~7ê [¦ nˆyÒ#済œ}B¦lü•o>½˜ÅÝ*ñ²%È¨È S„¿õQDíþ‚è¢é¡ Ñë6Ù€×Ëò¨oÜF‡ï±®.Å�~m±�Ns!Ra�Ÿ3?úQºˆZîÞÂ�_›vFhüb&TZnžª/˜Å«IðXô~_ŒÃà�XJNT[òÂUavY %›ß&Ù5u! t/¼ß�CRHîCòu( �ÿ‡ÌI­ BžpÈu3Aê…Ó”±@u¤] rM¨FCÐ\ß³Jò›·VH&Õ�•nÕ[×Åè Ô|S† z¸Šã)m3—*¾$­Ô´(r1dÆègä%�‚G¢1êbP!t ­oeà‡»Õ�{¾sˆÞ‘…`) mÉ70ǧ]Hë}T΄ÖãÌ(&ÖÅh²ðf´<Q›¿@ð2¨×’úÅðô�öÃ9…ì?)ƒÝÍÌ‹ñ¨…ªkp”0ˆ<0ͺùÎ!34,!ÜÞb\ #È#H‘؃ÖĨÍß1ˆ¶M>±‚ˆ–Ú\}Õ¢á©i¹8�DÕ£š îÄ@» #nSÀ¿`6mäDªéc]K³šŒŒF)»Ê.‚ŽVÇ0Ö4ð”ô^/HI†×Å|RWꃆôJ‹Ûõ¥ ³ 1µÚ=Â!£ý ênT¡ÐDDe-^€Bû»ªd<(97ž€ÑÆ�ÞŠËߣLM²D
?DÆk  «�•ð‹A#9úÀ9x¬¶‡GŒQÿ–¥¨á‚ÐÐK Á`Ø…Ð °‘Š£¬ü•ÏycYQºw
Ißɽtúf‰XЋ0^À¡¹ÃæÁ& „@絜؇¡]‹ëú49ñ¬nºŒâ¼«[‡�ås•º7�ìÔé_¥ba�è`D�ˆI'd�)s+.ÛÅ,Çæ˜0L ,“a {ç8g·šdKOÆOZKÙÌý0ø+žˆ8�K` d@ÔgS–␍Y€:á0x´áU}!Œ-�²3ˆ…1J€ü0ÿ{¯‹‘‰±R}9YÔçsÝ4žè®ÓIÚ$˜T%ÕC!k èî‚$΄åÄ~!tü§ÌPA˜-aAˆ¦×Å̦ž,�f‘íjeµ¾¡'m0EƒsETÈÂ�»øüY‚’–ú2éÃÉ[^âCÎn8*A,‰8´ûE“ê]~j
CÉÅvŒ]ÿ»©Ä%>Ás´0�WrÑgŒËd‰+¾ßES„j2)WŒY]-´+õÙþ;ã‚áå�’§½cxt‚•,gìœG+�·VŒ ÞjlüŽ0ŒHYo>BÌ.†§´/ù›?�Áɘn|þ|âÅxBøqõr-!Œè‰º…Tça0„iI¤0¶”Ã-¢|˜’¾trahøÕC³š.†îSÒ±�z;.téÂZW(ß.½JÙ×s—LÖÄaø¶ñ0 † /ù“³imŠÆ^
DPЂÅ'ÜÊØíL of �œô¾<V~éJc¹Œ~?ô*œ¢†½˜² ŸuEÆÊáXBÁÅj˜�É ±Â`¡ˆYÝy‡§ì<'¶«:!äB2#PÆ‹Á e^ß][>¦G¡Õ£.¦Õ÷„èÚ À°U1=µe!ƒseøh'ÅäÉVS]z‹¾Î›E(UÆßPa–ˆÆÀeGÜï4˜y«öúnšÚK�`î¹Z€·E7I¾þ¿„!7AD¯ês‚²ßÆ–(ïí*¹–M[ÀÈäÅ�>F½ØDÎò‚·Õ}ñ�Ã>Cµ}f #ÇMZóÞMQ @ö[»Ô”t#DZè.†‚—¤ŽPL¾¥|Íù¹³³ÁÈÕSô{×�8¸mÿ p²JEÒÊHºÑ8Ðþ¶-Kü–bÑŽ:!’{B6yÞzçLùV:Õ8IÈÛÂU :‰šËè”"³4à8 Íûw\+‘Ê¥ž`àƒéù\}Ç,»ä™Qdz¯3e³¸‹Þâ–d␍"þmM␍øy±i—`¨º¼%´äP˜D²7�ãÚl.†|‘gÌÚ
†æl¹rÊï.fІtK—5/Åw&Kì;C>v\V@j6Iö”XîºÇ|o␍;™iF$¾Ÿ␍åa±ÒÌ>â�U`2B~YO{‚çœK.…ÁÓ&Êj_±DÐCc”lp¥0ò…%ef|1k×CÊáÂ8g óH<Bq1¬Ä·´,a¦Æß #™AÓ´Va”óƒ·a†j]ƒŠCA␍}ÝL{²üÙ"„®]/äTýp/°ü`x2 ¢Z¯‘KYÜC4TeP1/í„Ìt:Y²ÀdÆvà;>²k�¶NZ°ÆJe7p=#C\Ò( »¿˜Y8SVEÛé~¦5ߢß|áUÈ!O`(ŽûöVãž�¦µ%€!1ªØ–ˆÅÅÀSº›§1楨àÿ¿ëì=ˆªîÒŒk <?}ïZÊ!³W¸…1¨ÎzÁV‚?¸˜}L-žÞÿ-òŨÀZʾäÃ�2tVM±Fª¨­Š1~1©ÕL"ŠÈŠ"†ë®}‚$$•àÌ%4MçDoÞ)uÙ8jy0Sós §´É¼;æ.ÈÇ8ÍüRÚÿˆ®›U]r2
ÀWÐ÷ðM›JU*) ŽñDH *t7ˆwï³RÉ×4úì³v*?ïú£k’¢eÐ:yÆ`¦̇èд™nó ‹UG“�®×q`fRª €¸ãW†<eS×bƒÑm’|O�-wD
F ÷\„Ì/1«@0\þ2‘ÉÍ sΊÅÏB�+ù�T–¤À�aˆÊmTa(4“®ã»eÉ
�½�ãƒA¬PÀÂ�¶0ºk‹Q9ÞøPJÞZ_ëïWö3Ò2g‹|!,íIV…ùù‡ßüõ·øé—?þø÷_~üÏ¿ÿöÓÿ>¿ó£ßûóCùüÅŸøó§Oùüós|þû9ÊçÏ–²®9 %ãRRJ)-ÌôùüëÅ`UæšÔG|ø&é±�u9ƒ#d¸zb ÂPÜØøxÇ ¦çDOZO›ë¢˕^ðv¢žäËÉç=×É|JWâÓÛ˜°ü™B33ÎaFÍO8ð]§ÕÜz­TÁµ!¡%vübˆ‡ÄaMªðwÉŠ&gzß° ÃûLÙgF’¾zÏ^÷:œwDƒiëÊS&Ù,÷²-˜#±,õœû1¦~":î³0x�4…ÞÌä;§t l9O¤#~y‰¬IÀÁˆ;Éù) åYÃòŒ’ŒØ¯YÒ¤°dî[2¾ cÙ.4䂿:N©L¹æ56fFïÇèõ‰Á=7ï&f¯Óã×x�-W0òጳ7.Ì�ƒSV®Í0Nuªw÷°¯1Àä™3`úÂH¨§Ci£>~�MÂ+šPq\ ¦¦¤D�]ý^'On»6•ŒŒÿ‰.WÀXoaÆ“ÒUhŸßju¦%/Ñú¾Ã*`¥Œ*·³¬¨ mŽ!‰o ƒ)ƒIGñ`Fâíiéù^‡zZÄÉ�~,\3 ×Ï»ç3ïåE=ásÍÞxØ,;ô\ëÂŒl}F| …OAí$ÍŽ¶1œ¿„.u.#»]6rìOq-�O¬ÞؼҕYðð}a]äš{LˆÈ\¶×ßP
Ò,lsHÚï`FÒŠñÕ(ÞŒ c(�‹³ö„7¶ž[ÁƾÜ„T
sJZË€qÄT®ž$/ŒA±EÖñ$·rl¼Ú0ûþínÜÄÜ1d˜yŒ\õìuô‹Ù6q÷ †'˜¦;Ö÷íØ¢T‘ôñb)K¡Ñ¿%Ë–´0*Wê<–—˦¥@ã´0‰±B•”iæî¤“
b¬l ãD4 '%‰`„}§ÉÚìla®“‡õ¢0+é©$Å Ó¢"7oÁäÍSP ×h £@Tw‹£D¦å½� ýŸ¾0'•ÁkwïÙaÌQ`b�ì°0•U¹µ‘pLtè /ò� s´$(§RŸ[âÄ«¨OuïÇp{¾ëþ!DÕPÕ/½û®Ý;;�
Ã÷™ nSÄkaPÄè¢ )␍æ²ñ˜qÜ…A:$½Ý Ûg’­«WFÀqëDô|1ö2ÒúXò¸¦¥‚=ïvlÝxÓ�§ïU®d²'óT �žõðú~ÆÀ%�ZçüÜ.+B9#ØÓ6dî?â,×S¦�ºjÃûPú` ©¥¢#b# 눳¾�’JĬ\j*fú¨Ôßß )x< Fw^´LÌ�FnÐ~޾óÔHb9ÓbM
Œ¹Ç+'ôÎÓ“»­aç:ˆœ³•.ÌMZ}ÙŒ;è:úçj´³òB–tWG$!˜šÛÌôò]çjâéÁÞ3áθ=™¹ò␍o)v€ùy0-3xfÈÆØg¯ù’ß1â�8¥Á´ŒÿŠ’nÓǼ–Á…‘þ¼ø­CÏ^¦Ô¬BQJ0 ò@­ÇúÎýyìdLÒíX,!R¦#!ö† ¢eˆDÓÄèˤþšè©+WÇÆÌ‡@;¨»©ÈAè fÞQK³2¾-$¹6v'_Ýñ]YE»3Am—„‘ÉJ‚1‹1Y{üZœzòy¹]éÜŽÑ­’Ê·8ÓŸ2
‘&¹Äß)œNS_‰KÙkÆÉ~0?·|c³Oîèüµ4:X2¾¸Œw$“=¢1vÑõý#Žh¢[0Nì‰óíØ•äò£Ñz␍æJ¥5?Ôáõtyè°Å”²+¥Ääj‡­­"ÇXgd4¾^=˜-$&ÂÏÞω 25¶ßG0z_öâ`õ‹áQù›g5·¼—ä{'œ¹…9Ò(IÀšÀ¤£Iï~ËL™ÊsG%&F©åN-ëåñ-wœÄÈl›°Lò ž�æ§nÌÈ¥ÆZ†«‡qs%7MÛÆôô4íQØ;…æQUæ¨<c0YKü°LŒW¹RÒØüq,Œ0âAFkîYÒc¾E2¹¾ûlÅ=‘çñ÷(Œf\oÚ“Ó(– Òr?Êœ!9®ÜäÛåò#›£ ®ZXɯÜÌÉóá³tFÒnwsÆyx¸zcu¶8b 1˜3'bIµ¦†¼�ž¥Íaâf0‘ûí±õka$Æ4ÍüêÜ"q4™ôzU%OÐXuŒèz˜‘CPëÛ�@ä\ýÆ`Þ§‘Ù©‰Æ¥íe˜—ž“G3K5á*Æ¥‡,Ì©„k�`ÐLð>¯}ÜÿÓ�ð&;6Û!Íͧԭ÷T-"g¸2wc®“Ž’ÐHïëÆ˜%6Ö“�&␍UZa¡ï=ãJ{Ï›?“³ó¦JÊA[˜&µ¹Ü¾æ~|ÃL<qñ²×¹âY2�k�ëDZ1´Îø½0Òª°tÇZahÑôX+3ƽg×GxXàEÖ¢iá¾øYJù~‹!”t¹'?úiÄrô?—>Ñ>ÄŽæ¶Ô½È°9¯ý!åÍïÑÐ#ëX»]ó[ìÇ@µ$¡¶17™6î¬ÏoÝ6í$ªe,Œ_1ïB+åFU%uyô»ìý¸Ÿè�(sA��‹¤éo ¿ÁJÁ�fÄìbÅ’¹í¼‘yZ•;õ̦øÆ@Ž<�oû[<‘ò›TÜz­W„¥�O´1�3ã“+ö l)®a`ÿ¬W÷ÂÌÛz8;? &¯b÷îñ|=;>žû0Ф¥C»Ÿ$o¿¸.œ¤äÍ6�•©å™Þ␍Ižºj¢¬áM
*ôR¦¦çþóq…*‚½óä>»W� /Œ<ëŽ�½DB™K¡ sÀëÂDlǽD²␍Œáfõ º:d!R-µ³&ööôÈ…q'J¡’4½”(ÕŽÕ…Q$®*èü”ËE½Pß&š2äDUå F€Õdr‡[ÂjÌÕü™držø, 1s¢?,HÍIÅ»–
”îUÒùÖµ—QÉ$~Ï£ƒ ïL
~[@24R%Bs8ãU§Ìy,Ù–ä×èx�O&¬§�”™`Ÿ™üæNmKcµãmyWòÌuaÈŠ–™:£E¦1â¨Q$iïÇ·E–±N³r@¯ñ®±0u4a”ôù3Zrð1({ÏfEê˜Ñû †í�y­èÚß"ç
Y"hxã…ãZ‡²É�ß=LŽMÐp¶M̘ ©¹Œ5â9·>bAèL:›QÜŽu.`FDDiD3™Þr‰ }CPSÌ/Z�[í™m`{&Eµ- !¨)ˆ´$²ã␍\…sÜ rÌhàçl; ÑW©ÁYVF-Œ¼␍ïy&F-Ý0u™ë4©Úÿפ¡3ˆDezá½ré/B9çVú\³¹4¥·€È@’^È”«!1W<Nê&ÄçÂØŸzQÓ_æ:i0®qŒº7ƒS�"¬o=ñj#øè)}a²Yß9ç]tªx%^%Ä.bÁÄæìÓÝ�‰I%¨-Ã1/§q²ˆÞœ@œ…Ái#jàBÛ…1±Fsd›`ÈB‚öœ{Ô'Ȭ#Í䪈Çõ•8˜Pä0^ÓH`šéÌñöhûS|�Þf6ÛÄ�É;]Ûèû["-�vþ²žBñ =^Ë$`Jô7-áƒ!IG4HØ^ÇJˆ=ã#mnb<�Ý’ïë‹ÉÑEƒtÀù-Â*¿Ç}žÞF9t=~0pk*é™o8‡Á—’Àœ}¥J¨~eŠŸ¦"BQÅ¥Fÿ¯7cÀ¸±$s¹,¬I/¹Š#
#eï¦ØÚ‘~p޹Ì媔EçîëµnþX|ùÿD×Ù‘ã0 ÐT&IåŸØ¾†HoÕüxÜæ}œ#ÝL¤È£r–Kû`8z@rvFm¢bZ¨}´ £Õµóº®½F ë^˜Xl^˜␍<?ÌRÄöï²0•D’LÈÄ,fˆ?kãNw˜ÙäÖÕ߇=âÜî}f«Z>ñåŸû‰Õí3Õ�µ]^ÞR&KÜMƒ AÞê\ïŸ6ÉÏ@®(Ëñ„S†‰áÎÃ,waL£Ügksú, ÿá’ÓN)O\¶­óì&éZ˜ËLã ¦o>…á "Y„¶ïóxE4%Ls0‰³qdBã÷3LÑhíÕùºÈù]Ã¥ÁA£+¥}ë(èÆj«Ã œ+³a|˜Y�m¸E¡kaž¨úý9k¯I$èñ�:ß ƒ˜Úü r•9$w„FÄ\˜+ýý&…çÒº¼‹»¾÷:rObÓ«5’È´)ÎzcÁ ~̨ѥ'²ž)áXæhµXìž¡5ÇJ4
ã|UÆé_ ž™-�}¥¬ãxãsA¼Äw<fAZœŸZܱ, ¢ ñD|e¯?¥üú»¯H#pÄz#·Ì1
Q•˜þLäÆ�ïÏuœUxÇõÛ|E¾¢×f«µ».…u „…Úú„€Kª¾ÚØ8ŽB­–\ƒè'Í?¬:@ŒgµÇ‡¿ ‚­pÕÊæ�ä4 ‘hçÂ\!+Íò$üÌ7GV'n3<ìáPy‡Í,^Fø×'-’ä„6`Ä>Lxˆ]Àßs6ÒF­¡°òçÞÍ?¯é°ü»0Å1jRî=‘MQ²O²a¼␍ÆÕ`Oû¾#~úÝË8.þtœvÔ2mÕqS òx¸7TCd
¢ûzÌýÔƯPì#WËðÁ:‰b÷…AeþÁœÜG…f£š*Œ~/Œ‘>âé™®:q,¤”’å×Kp<Ž‹Pðã¬
ZÃ8Ÿ6Bç :ñT1PufÇGŠ™ë>ä%“ô{!p²ù­±ßî_»Uð{³“™2\÷>Í“QźüÛ]áPJP)u\±å©7žœA -y-Žcw;wByËX>DK (␍:� CfáÔðhéÚT?2ùű‡[öä<ÿehÎÂÔ…GÇ—m`8�,ºèµ—⺑Áö·×ÁžNMÿf¯{pnï$%Çr�þHÐ36 FC¸þˆ¬CÌß3~8Î-˜+e7ç"ÆÞ+Á0iTyëÌœVšP‹�õ¢gè݉©¿UÄ)Æ{ÙO ˆºS\U­s2;“+KknÆ8z±4& Ö4�÷ùÙl>E�Yg¦+óVg~:&ÔÞ9�J0†H‰ÑŒmêÑÜéJV–²sF␍æÍg›WЈkB%À„´␍Fû àb9nÓ<YL9` ™¥™�¶÷ÂUÔ´¥Šuž'ùǵ¤“¶ÏU—™"TµŽ¾&ë”èŒMÌÈÿzЖø AŒÛ^®Áë]/�¡æŽK,úJ.‘‰¨‚êPÈZå
ÃÄàÌþ_mZ„¢'8ÕÍA½ÔÉ
×^‡ë6W¹×äŒY5%v:Ÿ­kq¾õ›Q�en6;ˆ}^­†@Ï(’�ô‰óèAã¾OØëZ­l0ƒ¡;z-Ns÷WbQ—J£& ^ƒE>Û¶YÇRŠÜ|Ć RßHŸc[ú Ç�`ÐÀŒÀzmÛ¤òDèÏ;}Jh¹*4xJ@sïeÐÓÿÜ÷9‚Áyñ+L²­S�FûG'AêˆIT�}-—Lªc“ZmåðUÃÈmw5"8! VåáyOǽ�΃ñIÄ@ˆ£0±;Ú}̸øíöœåèñðo�GvÔ|Ô“õíuû,ÿ­syõPêum£ë¸h£C¥ÿ:v&¡Þ¾␍3‡*&š56Dúƒ™1?␍íÆnn§›{=1OR-ŒT;“'<ǽ�®nÓñŸéBî3úIÆ<ØŠROµX‚g™;T ò$À“m7ìÖ|’ûßß:-nßkŒ¾ÃÂÁ`,QΜC)TÇk]+’ÅÔóˆ¨àW‚Á␍”µg�Û&슛h>=L¹üˆ¿ÿü‚‰‡?80U{aU“aÊÄ>ø›o0ŽÓD9>®}žÈ/kdzöîžýÍeŒvì0e£�º�Cí Aü²ðçP‹¼�¹P‘«Å¢ö„©‹P>åÃ~á.++‰0Te'”>=mÇH UBÙ²
Œb(Їß{a蘊å*³Žc,ƒŠÔbì8:"Òé=Kô„HïñĸîX÷40׌>½B!&º¿ £ã†Ñå
¿kQ7$×–Þ½²0úøýFZ0¾ò(!Ö«mÌ ²TNhüJ¨õ��v­¹0J˜‹½‰YÝHzbºt`ŽëZhðÆ�·`fýˆ×AB_}�hé¨ü«C/9��XßÅñȘ {ãµGABÊÅ$‹|P:1Ÿ„Ý· Ï'Óš¿c¯’Eÿ ééˆçö6‹âi6@ñ·É DN@-‘®sI$)ó�éŠêÔi2¬�‹Ï{ŸÆ ¯¢9% FèREôy_\ ´`b[ŠŒÎÕfÆ@mÊàÜ/l$×Uý|ÅPv]ø‡«ðvÆ­¥b�ºÄ˜ûÿ[q'x®™6vã é-ƒ1>Ï ƒðø7T# Ãõ2eøe,Œh»ç±ZíÕ£krQ¼ÇÞ+*žài´z0äˆ ÇVÌÜ^'A0Ÿ1␍FļâŽtÆ8†MyTƒ!ùîuk-l5B7{/Kž��(Î �]Ñ·¡~FÄ\–ác(|ä�õ“¾[½G6\wÎÚJHH
÷ÔN�ggõÞØ´„Œƒåâ»'º[˜LzZÇ¥Þ`fÔ&)Çpíu®8=àí³0#”ùàÛÂp~=éRÝÎ`µz…ÿÇùjfrj–•"0Jº1>–ë¿Æ[Ëp´õYO~<ÓG °xI7ƒA¤ÒL÷vÏïÈö=’¶,Ý‚qàd¥gþÎcI%ë­üLÆ&tÆ2´]VèÊÓPÉÂЙ␍Ñ·o�“%äq4Y�kä²ï¼¨f#¿–¼q'½ì·~W²ÑœsaÂ�Z=}cÕ–ÆÆO‚<®äÓY‹ô’^]= Ñ2Cqn×S‹$ëHnžôú&V}d�#±íŒç¹␍~ú�%¶ó)QM“Ú=›ñ™ÁÙ[E?ì¯^Ë0D±I÷ÇCÆãÅš›ØYµa¼¸Ø;ڹסhqr‰ˆæêˆM¢Ýh(BVeOàAt1‚A¶Á;NÿÜ^=Ÿ—ó2¡Ü¿j‚K±Å74iƒ¸rñ˜ñÔZÉXñ*¯¹þ’TÚI<ß Ô^OÄB£´èÉÂdf”X}j¯V�£5îdn Eq„¼zìÕ‘D4Õ3ñëÜ{¡~0?¶]0ÒÙUÙOœØgNN`Ô<Y&ËÄ^”Ϊšuow•ÿÝÔ#~—U¦�NÕ6ÆkÅFëîç/ü‘.6¢º©í­Þ˜Qb¤&#&´E�Üó£îð ›ò°…!ðŽ–Ù¾¾©‘˜ ¨S!Š\d¯s•Ø!òödS=Ÿ¢{¦ï$©Ý09þg)ϰ÷ÞJÍ[žTi¹’šÏ㌽“˜GS# ü`„ÅHðšçÞ)£dÜ„Á£–ñ-5r&'¿©Çv'…Í¿Ò9GÒlõ»–<œ>-YRGttö¿€3щ± �# ¡ow‹¾è![® M_‹|ùЉÿ¼UtUI­�s{íÅü¸èCx¶…9+[ˆ„펛ðJ‰šzìóq‘ùÜ!Ž+Ö3¦äñÂy¬{¯cÙ)ÛpRX8ÞFj}�Gÿ¦åÍã_Rùø(mDüt{ÿüW0.¦q[Rm0¼•{½I'{|ç—-v½b„ð�¨©öÕMtâ`´ö &•ðxÄúX½ÜJ¤žiŠ5c0O²˜3XÇÞK¸r6}9ÓËIo>'P={�y¯•q æ>"F•Ž/ «yÜ!I÷­3+¦B!�17&E$à+sçλ¯1æj?—b{©D̼k™ „ßúÞŠ(0)Ĭi0ULÇ»š@gRMÿWÑ¢„¢<Ñ‚´påyüc¼^V=;Ê(€?A¿Ãâ´­}©ËÖ‘ B&¾@‚A…ßÞߪ]uÆ¡iHŸ¬S»ê»¬Kèá
„K(±™£\û”ÙýÌ{Êm”guó\wÎn,ƒ¹’ TÜT7Æ”<w³æ©z‚—˜QÎ�–¬I)G�Ó-dœ…xÂD,ì¾Ï½8ÜÏ'¦Ä+‡½„Ž]b;’p¿÷©sº¸U’XÇÆðbÙF¦,£ãÛÓ␍ÿ»½¶|†¸’ØàA0H„%)s7<7ÝJÙ‡ä#qŠcŠ™;F´MìŒCœcÅû¸L|ìÆð]
ÒǼ‹�Ћ›h‹ýÕ”Í˸Ç?ÖŸ‘PØðƂܙ3ã� uÝáìpý¾°U=âL␍œò™j§¨fÅr¥oÌ D'-
††Ä6¡—qìÒpÄ%&3ž?7Á�8±ök_¹S:6‰d©:LMܤ<—õÜQal…ÒZ0w8É!Æ©ì;2ÌØ¢Ñø0ÝêûåÓeņsº�¨¤1¿ÒÓñ
„=;³Qt>æÆ›=Q¾<Wä ã <@ã�ƒ~­”HW¢�Ç™|‘é¸SåP½âe{û¶;Ýpã®9’eb¼z ^ïZÞÆÎùNp¡@ê;�0b™®�ÑLýáÌ6Ì�¾ @<~ïoáõzE íu0À”:ÜF+ýñú¤!˜x.¢ÙïÒ'¡"+Ræ}\‹ز……iS1XÍ�ùõ­Ñ5‹R†áfÃíÁ�;OOâ{ØŽýv~¢•8ùì5LH�å9F&aºìì@ÿ-=èvѺJ& ‚£g ÷™=g7`ö1DѲ*}~jv­Ÿw¾f]çß1¿w>ZÒ0:ç;w$´G âCKxQÍÛŠ#0T.~ö~vþÒ‘àwœ ƒó‘¸Yh’1÷z!RF�>Xœ ë31¢>mc24”ÁëÁÌ9Î$ã«gajå &ò:£†*ïsâÿG>¼ß:#Ê’—Ùùú–yà*ÍÆÄ7BsçûÜ:<B�'¢ñ…2ïãÁ&­$ž}½ ¡!-bÍ«êkݱa|^ªì!eÿ�àá¹êwïŽ�ïúÇ·ßýøû?ýòëŸþû¯?ÿçß?ýò¿Ïüè�þ~+Ÿ¿ùû—oç篟óóÏ÷Kþù
o¤SŸÿ~®˜KIK¼ýç‡ßðÙ½�FêLú= I0É\–9¯ëúH kýƒ‰obQ¼ ã y`ŸJ~3}¥vs‰�¶0-_Ž>\mž“XÒc‘£—ã>6âLæ�‚pR;¹15¹×Ô1gÑ•–àh�-ÆXþkg62J± Õ BíU9|Ó§-d�¦Êq¡OÒ�ìs,¦DuL•“Û¦'&ïÜíå›ïØÒš4]îÙ|w,¿VÔ�ëŠ1�¾{¥gðÜÖ”DMÎç>^ r¹RÀ<í=GÍXp-ì [Ó“ ÿøqªµÞ¥öOÂlDã쯷±¯Ù©q¼TÌ4yÏÑæ0íÌ$x€‰Ùç„—ìG4hz›ÒwÌäµ0¡-.áK¥ñtˆ1úÛ_ù�I›3`Ùíi␍íŠ<çãm½ÝÜÙWÖóy8©AÁŠñ$.îsÒr×u©ñL«ÊC¡3 :V/âäõ�Ùê×û­šeŒä*w␍‰JMR‹?�öš‚Î1äÊëÂ$YÄ–r¬3¹•)ë±ÏA°ñ²ãy�]3|•oNÌ•~é¨>÷ó& ?©cÚòkaF®b}0ßLL ÇY ucD‘’u9ç1q¸'␍ëùà‚ é*#9ú␍:„—œFúû*3ÅÖ=?àL&¤'ã•\¯¿F„xÇ+XÒ$×ñ}„p�ïUž×ºÀJï" ¨zæÉTåL)û˜+¾Ò”ÆÍÏT:Ó
Â�P-̃I�‘טéÖ^QÊ7¬. �$ˆ™w.0˜;•B~ÝCö9E‹Q4¾�zÂí¦©eÀú®Ž+røHó|1Ý@’+×¼ÞèÚ龈@Éìé9Ÿ¥s¹4­ëoÄƒá ¯Øg»q|6>âó˜wœq-L<x›1¥O ¹ ½5QíÜßjÑšúS¥D%®èX˜¶ˆøÈ“Á¤ç®Ã:ma$;.ÉÃÔôËrYÿ§/L’޽V{m‡1G�±!íÕC"Û“>¢¯Á„‡®ìE¹0‘¸írXêÓ¢‡G¸¹¥©û>†[ûb�• Æ"‘_«ê—Þû°ên‡‹j0Lq±Ûñ^+bt­ *␍æv
ÍkcIØ€Ðqã¶Ñ]¥hm, ƒ¤êHôz1î2bÆ™´×CÃh�ñ^ÇÕ�÷7°O8ü3 >æ« >ëÙëö,Œ�3oz*t¶3Þ*¿EÊžº!óþ!çjkaN SΤ¤öõ(6-‚dèù~Ó’�Ž(ë )±†ÄJQƒ`ë¹(pã;:E‰ÍRKGËİò^•ûkµÒâ+q� ˜so¯¼PŸ7&Q2NÍÎs°±º¼0¬œ”{é¡-ëèŸñ„Ç*ޱt¤Z¡„`ÎT3�©å뜻²¨'Y*~׸=™¹5¦ÖÄŽPò’ŸS3ƒW†lŒýö3_ò;F<¯ô ˜šñ!‡jú˜n\®NÇÅÎv<ûöÐ)• C …Y3rmý|O³¥2óãG�$„Êšÿs¶␍A5&Ò<Áš¶ÄÑkå!\äÁñ϶±sE!¬ƒ,Oû|��§Ã49cA ³wØ2Éf*J="wüU‹îò*¢ z×äJ@“É”Á˜Åˆ3L3&ì`’2çuŒk¯Pê¾Î1õ)£jâKüÃ=ÜúKq0ÐúùD ‡¿qYŽ'5ºvr`€¸ê�‹£�h²‡4ƶü¾DMt␍Æ‹µ8½¨¯‰␍'æõ‘Ãh0¬yÖF>p[u~èpE’HÈ`ÚÑM®HYsÁ/¦e4¾ºL-KŒ„Ÿ} ôâ©m»¸Óâ÷B¹ÊŒÊ7†Få_Új¿çÛbNŒÜNV¢hHM¬ Æ@ìßh+â
q“yZXbbä0ê„ÎŽúîñŒ‹ÈÈl›°Lü =AÍϹ1#E�´ˆ'Á¨\I¥Ñcݘ$ñ‘Ú!#˜œ§•gc &i‰–‰Ñ•™‘
kaØ€␍2ZóΜñ-œÉýuÆ–Ý£i�‡a$“¨àêi�OÃX‰½©Og!DÎ;•lmA 8HᙕüJ#ŽV=¿>Gg$ýQÝÌå¡áFèµÕ¹âˆ$D`®@¼ˆ$Ô31ä…ômc7ƒ ­¸o�¬ß Ã1*k˯ÎëX$ŠÆ“Þ+S¶Òa�EÈ�®ÆŒÄ„z¾„Ï•o f 9�ÌΛa\ê>†x5S«€ìhf錹ŠpÉ! 3‰‡+¡Ú#kÆx_wž¾î¿qHö&76ÛYšF§Ä­÷U5$g¸2wcž“ŒÓˆïÏ�1Kd¬ÇMŒ5ì3úïl߬´~NÛü™;;+UêÂT®uðåî5ïãf≊—}ÎÍây”užjµ¡ç´ß í2K-Ò
ƒ‹¦Æ:™0î;+â!�7Z §e÷ÙÏRÊ×·BI–{âñß&€-·þ×â'Üg±Ã¹5q/4lÎÏþ „òú÷pè‘sœ]ïù-òc jœPݘ†¦M‡šõù­æÂáN¤ZÆÂøóδbŽ`DUT—¦·²ï£>á9Qæ9ŒgI“ß&zc+7œ±‹sæ®óZæ)UjªÍ¦¸c GÚ€ãëþMÄü&Õn½ÒËÂâÆ'ÜÈ•ñI‰5”,EÂ% Û?ãU[˜Y­‡²Ó“`Ò·WÇëÕìèxêa QKw?qz¿v�¸BHñ›u>+SK2½?uŸ±²†7.¨àKžo\ûSÄG Ew␍æI=»®G…†ŸUãØc�ˆ)S 2ü\˜Pƒ Úq�ˆ·Ã�Üœ>!L—GgY�T␍Dì<c{{räÂxŒ%P° qš:ÅJõaÇÎ…$î*èü”âZ½¬¾.L8eð‰¢Ê +ɤ†›ÂΈ«ù3Éè<ö™DbæD~X�3/eïj"Pl¸®$Ò­{#’qôžFó¢ëìHnh*‚DQ"•b~␍‘ã*xf{x€@™;�B�¿m¨b¡)œöjEsÆ”lIò3<Þ¢“1ëI G9Ø·œÿÂ<‰mIŒ³µ`¼-í£Jž¹- Z‘2g¤È$"B6
%íóØ›Å!9!ë$+tñíš ÓæmD%~þ«„ü† Ž}f½Âu”õ¾‚!{WÞF*ê{/t.�Å‚fn¼pTë6)ðwf�I±𙽠3kBZб:ƒ=§Ög$Èx“̦Õ·sÝË #$"4=™Ürž± cCŒ&›H5ª:ÒÛÀÎŒŠÚ½0ˆ % â’@ÐŽ7P
÷xä,kà{² ‡hWlpË£!Œ¼␍íy #±–*Œ]j�›«öÿ7t«Œ/¼WŠþ!�«Ž2j3˜Ã%)})„âô2L)␍ŠéÑ8®_ ã|âEK~©u’`Ò\óœmÆL!@Œ°öz£ÕZð•SÆÂä°ö¹ª+öØ«˜Ø5X0‘9çTûY˜äP„z§9ª87% éUšY3­E5\Ævat¬Ö69¼M0h!ÆÊô\{£��IG’ Ho�¸êGq0‘S{•�ÀܺŸ17·ç½·¢kø6½yM>áèvϱ÷biñ´û'��Š×Ø›«s‰ÌþM
1ðÁ ¤3Äl¯kÅÄ^ÑŽ™4WOç´è»ÿ0¹:k� X{!Vþ=êóŽ{a„Cåñ»'JBÀ­)$g~æƼ1̱` Ð=QBô;öVô4R#À°*ŠþïŸÇ€Q±8s¾,S“\ÒWdFŽ}šÃÑÎäƒkÖ2]©„E÷ëµúxØùéÞ`"E•³\ÚÃÐ’s³{0jÓBý£e­®�[èºöE€¬gxxab±ya6ðü0oHÛ¿ËÀTvèIr0!³˜!þ¬Œ;]af“[WGöˆs»ö™­jùÄS”?|~ŽH¬Þ蟩¾­íòò–2YæìLòVç‚xÿ´IÞxÒ¢,ÇN]&†;³\…1�rŸ­Íé½0ü‡KN;¥<qٶ㛤¶0ÍLã ¦oÞ…á "Y„öÙçñŠhJ˜æ`„gãÈ„Æï)4f˜&¢ÑÚëáë"säw␍—�®”ö­£ gX«­3pN¬ÌN„ñaf5¶á…ÚÂÜQõý9k¯I$èñ•:_ ƒ˜úü r•9$w„FÄ\˜–þ~“‚Âsi]^‡E�]ß{¹'±yª5’È´)ÎzcÁ ~̨ѥ;²ž)áXæhµXìž¡5ÇJ4
ã|ªŒÓo ž™=�݉RÖq¼ñ¹ ^â�;³ =ÎO-®X–Q†x"¾ò©ߥüúûY‘ FàˆõFn™c¢*1ý™È�!ßO<×qVqà×Gló¹E¯ÍVëW]
ë0 µ= .©újcã8
µZr␍¢Ÿ4ÿ°Jè1žaÔ'>ü]l…Ó¨V6$§apˆD?¦…¬4Ë�<8pð=ß<\Y�¸Ïð°_„Cå6w°xá·Oþz$É mÀˆ}˜ð»€5¾çì¤�ZCaåϽ›~^Óaùwa>Šc<Ô¤Ü{"›>¢dŸdÃxŒ«Áîþ9|#>Füô»—q\üé8ý¨eú8ª'â¦äöpo¨†ÈD÷=1×R¿B±oŒ\-Ãë$Šü, *ósr˜!Œjª0úµ0Fúˆ§gºêı�RJ–_/Áñ8.BÁ�³*h␍ã|Ú�/LèÄSÅ@Õ™)f®Ÿ± W(™¤_ �“Ío�ý† v½ì^ÁïÍNfÊp]û4wFëòoW…C)A¥ÔqÅ–»Þxr=\T´äµ8ŽÝíÜiå-cyW-�¢4èt. U˜„SÃW ¥kSýÈäÇnnÙ“óüÍМ…© %ŽŽ/ÛÀ$p YtñÔ^ŠëFÛ¿½ötjú7Ÿº—çöNRr,×Èá�=ƒaÃ`4„ë�Èê±1Äü=ã‡ãÜ‚i)»91ö^ †I£Ê[gæ´Ò„Zl¬=CïN¬HÏ[5Lhá‘b¼—ý”€ˆ¡;ÅUÕ:'³3¹²´æfŒ# ;KcÂ`Móx]‘Ÿ�áÁæ]ô˜ufº2ouæ§saB␍á�Ó¨cˆ”Í8ѦÍ�®de)k0gÔ`^|ö±y�¸&TrLHÛ`ôÏ.–ã6͓ŔÆÁ�Yšùè{/\EM{ªX繓\K:éûÌQu™)BUëèk²N9ŒÊØÄŒüÛ�¶ÄÏ`8€bÜör=^÷èz ,5w\bñ¬ä™ˆ*¨…¬UZ&g>ÿÕ¦G(ž§º9¨—:Y¡£íu¸ns•{�@ΘUSb§óÞºç[¿õXfáb³ƒØçÕjôŒ"9ñHŸ8�4îû4Œ¹®ÕÊ3º£×â4w%†u©D1za²`,òÙ·ÅÈ
8–Räæ#6•ú‹ô9¶5à¡ïp¬Ñ␍ÌX¬×·}@*w„þ¼Ò§„–«Bƒ§4÷^=ýÏ}Ÿ#L�oa’m�žÐi´Ôq¤Ž˜DõØ×rɤ:6©×V_¥1ŒÜvW#‚êUž÷tÜËèü0ŸD „8
»£ÝÇŒ‹ßnÏYŽ'þ­óÈŽš�z²g»FÝ>ËÀëG^=”ÚÚ6º^�‹6:TúïáÀÎ$4ÂûlÃÌ¡Š‰f�␍‘þ`fÌOG»±›Ûéæ^wÌ“T #ÕÎä Ïqm§«Ûô@ügº�ûŒ~’1¶¢Ô]-–àYæ¨< ðdÛ␍»5Ÿäþ×·N�Û÷ZãÙaá`0–(gN‚¡ªãµÚŠd1õ<"*8Ä•`pe}2È}vÅM4Ÿž¦\~Äß7¿`âá GÕ^Ø@Õß$Ä_˜2±þÍ7Ç颜mŸ'òËÚñ,„ýqÏçÍeŒ~ì0e£�º�C}‚øeáÏ¡!xs¡"­Ç¢> S�PÞåÃ~á.++‰0Te'”>Ý}ÇH UBÙ²
Œb(Їßka蘊å*³Žc,ƒŠÔbì8:"Òé=KÃô„HïqǸîX÷40׌>m¡ý¼ £ã†Ñå
¿kQ7$÷$,½{/daôñû…´`üÉ£„X[ߘAe©œÐø•P7êíZsa”0{³þ#é‰éÒ�9Z[hðÆ�÷`fýˆ×AB_}�hé¨|õC/9��XßÅñȘ {ãµGABÊÅ$‹|P:1Ÿ„Ý· Ï'Óš¿c¯’E‹␍ †ô<ˆçò6‹âi6@ñ—É DN@-‘®sI$)ó7ÓÕ©Ód&X!Ÿ×>�¶¢9% FèREôy_\ ´`b[ŠŒÎÕfÆ@mÊàÜ/l$×Uýü‰5 ìºð;WáíŒ[OÅþêcbìÿoÅ�à¹nBØØŒƒ¦· Æø<3 ÂãßP�$ ×˔ᗱ0¢iìžÇêµ×]“‹â=ö^QñO£õCޏplÅÌíuÓñÓ`DÌw¤3ƹ0lÊ­ Éw¯Kka«ºÙ{AX*öí Dqfè¬Eß„úsY†�¡ð‘7ÖOúnaôÙpÝ9k+ !)ÜS;=<;«÷Ʀ%d<ñ7X.¾{¢»…ɤ§u\ê␍fFm’r ×^§Åé ï3 3ÂA™.°/ ç÷$]ªÛŒã£V¯ðÿ8Ÿ@ÍLN-ÃòRFI7ÆÇrým¼µ G[Ÿõäǃ0ψ/éf0ˆTšy¼Ýý;²}�¤-K÷`8YéÅ™¿óXRÉž^~
&c:cú.+Ôò4T²04E&BCôí[çd yMöÄ5rÙW^T³‘ß␍aKÞ¸“§ì·~U²ÑœsaÂ�Z=}cÕžÆÆO‚<Zòé¬Ež’^]Ý Ñ3Cqní®E’u$7OÚ~‡‰UYçHl;ãy.€Ÿ~g‰í¼KTÓ¤6FÏf|fpöVÑûÄ«×2 QlÒõñЇñx±æ&vVmØ/.öŽ~îu(Zœ\"¢¹:b“h7Š�FÙÓÿˆ.—Të’"ŒŽ æp:v5sç[[‚-A‚ˆ␍)A…²@œ½kÅÎ8Eq©ÿžû�|EÄ÷€¡‹%²Ïqæëö¢|TŽÊH¹Ÿh
—ÂïÐØºr"bÙzjZ‰±Â«æúMR¶0Þˆ½†bA£tõäbœž˜:b¯�£wÜÉN ŠÂ¬ºöª˜ˆ6ïiüª¹ÔŒ/³�ÒÙÙ�8‘g6'`Ô(™“ÅÄ>(«Ò¬¹•îÊÏê!¿‹UF!9UO ÕÒFÓÝã#ØÅŒ(ÝÔs«£EŒx“%ÚU'îùR·<ƒ�õy°�Aà9š9²¿!R¾ZRGb~©“‡>à"¹Îbƒ!�20¥@öaªñ*z°§}G’ÒèÊäð?–²ÊÞ¹oÞ-)O+ä15q<гr'bšª0àF^³æNŽãF,± E�8'.R×v›Âö't�CÒØê{)X²pj¨pt1dI:bBg¿<à6:a,¥s14(†Ú•ré =Ä–Ó…LŸÅB¾y鄽•ºÊ“²6œ;c/Ì}4„µ_L5Vv‰Û­› JFMzìõqʼwÐqi=5%ÏÒ [¬–ë°ì&Ûà¤`a½␍MHëS<ôÿbº5׿øòú(Úñ£Ûçë¿Äp1·›jÅà­¸×1�ä2ðßìÚõ)„‚‡ˆšôA^�‰6ªµCŒ/Añër{¹‡H�ÍÓŒb†YŒ‚1X%÷"\q6úrÛ˦¿ã晴ë„ÈS-ÇEL+Ї²ãƒÕ,M!éž83�ÉCA$tÆNŒ…H`€1Ì™Îï~ÇWKðãRØ^TB3ϵ˜ ¿ÏÜ
1à�¡‘@옦
Óq.‚& 3RšþÑ"„"<Ñ…t¹²é¡ Á%mæ.-W‰êO1ï*�VŽúRÍçb8+áŒÅiK1Í…A…›Fbè’Ó'cˆ剀te�”Òp†˜Å@àˆ#aaó<[zaq>LÑ+Ë^„Ž|bfÄÐßóŒè.Ü*’8vbðbN#¦ÌÖaïpC´Ÿ¯-�WŒ␍œB a1efÁ=áfЉê<˜�ˆS8&Í\½¢­±S‡Ú
ïÃaô±‰Áwñ kÇYØ½èø‡yÙŸ7ÅæÙîúÇaðÙ†ÂiÀÛÒí3ÚQ�uu9[®Ï3ªUgJÃñ|t5«ðš–++1!‚p,‘4DÛ½ìšOƒ#.šL=¿NC‰cµ<òBé°IH¯f7QžÆxæÅ·* [AiSL—“X„v*yf„™¯€PhøÐj­¼y¸,m8NW/I›7kº_�`Î'
�ׂáÎ\‘|ùÜÈ'ÆÙðÏ:Ð/#E¤+êc½˜jç™j÷•¥zÏé]iwÍ␍wEK–Àpë␍õr¯ëíÁ0sì#N
D�´††©%†bRü½␍¦[ï¹¼>šJÈ\‹!QÀ0%^C)ù�Û›†Àèp¥ð"y/êD¨pDJœ‡c!L™Aábfè# 6<3>�÷êƒ2.Ã�␍gºgOÂ*öpÖ¼;~b�¼s␍FRÇòÔmç_Œ¡‹™ÝÐÿC␍³È¸’L.F‡J<Búãœc7Àä2ˆ
rTVl…VŸ·¿6 Œu�Ÿ;éÎ÷4!ÝCçØ§+¡K�Їy‘7Ÿ7Ž€AåôL̓Ÿ�/Uƒ_}.·Äé…ÛœÛÐQ²Ð !e õ�Á™b°š‰­úÌÄØ4$(o‰‰>¶“á«s1]ã£V1ÊkD␍^9×Ñÿo·¯ï^�¢Lò¢w¾{ѸJ£ÙLígîOê𖈆Jœ‡ ÓiÅxö½„i!ÖxõÏx­;ì„0ž—*—¤Ì/Ò<£ÞM¼]Ž�{ýç‡_ýå7¿ÿéç?üø·Ÿü÷¿þúÓÿ>¿å£ßñóCùü™Ÿ¿óóÇOùüãS?ÿýÔòù›cNi8F·Š'iáÿ•,˜q`ˆþS©Vùу7c)#NÏaA®úˆ�cuI?õýÑ^s•ýÅ�0�@MIÓÚ[Â<Ö‹™¾'½1ég1Jž.;4ÎC;1ŽÈj`½©æ¬„ðÇn6#k~¼F sc¤MÌŠ"s},Q“aÓ$5žybZlÛòžAˆÒt ²Ä£/Æê¡ê&ÄOC\d�ªD¥óȱ¸OÝ*äU!š•úË:g±ð²æ’GTôûwhpø>|ºÄHÊœ^Z®Cuœ}.�7”HI«(¤ù<F*vnÐS`(¤YŒ'¦Á.¦3®'€98U*†ÁùÙ¦�æÌ:\vgˆ>$€S󕻚_ŒšˆIÓeb¡]æú»;tU©“kÅlÌ␍¤ ¡ï«ÏÇŽ§ á½Ñ4H…¦UŸÍ|†�W W`º±
I¢è=÷âââ™þˆáëÞý:šÄÜ ␍L+pf²R´§σY€¤¨Í²ìÞAšcÔ÷ø>s¡™¹<�7ivå1ÔÑõ}å:´)SñXŒ).B›]É"ü‘·ažÐ®O/(ŒO·S“ˆ±"tESq·Zs¾ü$fë4ë`JÏsôpX -t²#ÏH-È@‡ùH‹§¥¿Kæ[„1½:m´Åðù]¿ðe5SªqÕ®£\=áH3É ÕIBrxÖŽ¾<’‹Ò+_–…¾q]C{$†|ÂÙèoÝc2ú£’aê±ÀbôW´¥©÷*½ÁŽJŸ^÷ÓQq¤‚@Wž™1áI¶4Ë€€›9yŠ™�¿k0»˜)†K#ö<s9Ž˜Kó‹9îußF¾3Ç�Ì|Ô␍™ÝÊF#�ÇÁƒC4Žüƒ]†€&B3k:m¿íÜ`E18zlšY ÏŒ«Àö␍ý'êóéxdÂê´8m¦ÐbðútgB89/␍¯-}õ5BU®S;ŸÀ˜›Ê1�°iº�A¥Ã;IÁ\SüRR‚‘ÃT¬ä „@Mii i%�¡␍œMˆS½L§åëpJxñADh:ÂôÖ�þ˜¿1æ$»îûéPÖÒ¥—ž!„€äx ¦ˆÉ¡Ù¤K‘v]ªraÃ[ÒÛËä÷$fò{«†?Ìf§¼ÝèˆSò2†à•qPMßÑõ3g[ó·”'¦Š%\;Š™‘6|¬’á�“ %úƒw™ãéÙŠ™ÌìÀ–È–~ÔbÂU[ÛòØßhzÌkø‡zìÑãÅᔦfd\DÌùT/+ÖBB‹ývrØÊCü™Í àÆa�ýB°iX¢­qB˜ÓÅdêVï”ÛnŒ-ÀE„ÀµzyŸ„àä¤<z±Ñ&‘" V@WÑék6ægD1udìê:XÏ{`r�Cרqç3¾è–ôyV¨2D¼` Ÿ '5,w˳tˆVv«aý␍ÊØ®¯ËtV5Hðoöº©9hUYÓ|ÿSŽëä‹RkPVb8UÖ*0ŒäR°MtÅÅ è4*xs�Ìè0ôï­HcЬ.–”{Þ4dìሎÚÅ(“‰Þ푆$Ër�n;3´M¼<²ð¦¼ftUgçmQÖ>V€¹>%²+¯»(ŒÙ´­‹áeh&˜ š Gkjàr4éÍ·íM¢ô:¹éˆ�õ8"džß3c4␍-
E ÄË`q�;³ ,}bh éoU8ŒDe{!CnÔ�ƒ×Ð’<fNC㸸ÉçŘz È$-Â�ð̹ "/AWbè?�µ¹ú{sšå­/ôedšv)Æ‚ª²ã¹˜µq·bP^1øVSE•sø�] d,�eÑn´Æ¥ZúÀ7h±…l­湜ss _ TËAf+Hò¡”Xç.Å\ TgÒ
òMá¨0æøe7æ±BêdZþ=ÅL|Žº"r3Q�GCûó/Í‘|¦Õº˜�f€áæÌ0é–oTÇ=ÃsÒuRBæ�J‘ãu /†š3\�ßÃg¸eâ VAÌ8¿–ù#´�ñ#)@9�\Y· Á¯=ö#kïÛ§Cï÷žËìJ’Ø‚®´ûxþ;¶ j¤í(»H€@E""ßð§©Ç„·Â½Î§3ü␍æïüiXåßtACÎz•'žý?␍ZË6C¸´�9¤õåñŠWä0ìÑöÛbôä ,xò¿¥bZX5h?D+pO+>Êø~guúÀLö‹ãÛv“(þãûWœñˆ>_‘ d V)0;ôsãa›õ‹1ÀABGàžt`‰␍ òsšLQð#V/¡¶CW3‚ÓaÝGÎŽs‰ è@Ũ¥£Í#0’zzF™ù6ˆ8ÚDØ#f¹è,5õ„ *ü„'ÕZái~È#�Ä@ì("<ÈVC¥^᳦2<]Hµ_1lë½´†÷ünÚUõ�°„èËÐ0§ö¡R&ô¸›˜%'£‹*ñH \ŽøDF‰ïS”ç8íÄnY>2¨gA�W[…õYõñ×4™RTG‚xU1ê:öä¼,$úÄLTSÕˆa¿™dF”8:÷dbJÁ¤€Y–m`4Zby6�ƒŨÖn9>µìÄ'ÇàÅ¥~ÊõÁ,מ¼³ø]9ºE…v‰áù™f¢cÿ¦§{Ÿ+±H~bx? ß\ã�;ØäÓ-fÉõá€Q�Ä�•øôNÏÄlÖZëâßYH 4 ]@ %¾ƒCá›L þv%fú ŠÅ©1©èMGÚpÂ#fí=Ó°8GŒ*Ф¢öí~gyEhØFW10 auYB1ËÖÊc‚â;”W•GŠ8+1ì}G0ÙkRƒ¶®ÊrË;®“m$Aª*qçe õ¯?ÄEl
⊙âÓÚL6‰á`xž�bÂEª�= &ÕÍŽš`Ob8«­Ð 1CoE;‹²“BêÖóŽ Œ°×H3µ}ãƒåœÕ„!°b4Œº­ªð0r�Å#¾³®1‹§²ÎÓ;V�ѸÑ’S¬?í¦�Ä�(†�¦¦‰@Çð„�Q1âh6:ÉAȲ•ÅO­îHÌÔNL­Ro¤ÒÈ)þ¹KŒÆƒuy„d4›23—¦ØP"ÈU>®¸ã,ÊF†ÈçøÀ°±W:éýÕÅ2 ²Aß�À`=†:ŠÁâ,2;ÍY…n£òóîtMá Š@£¦? Æ¢)ü m—d��’¬”= ±|.£•<›â56°©[ÐÅ ë˜Ç° Ï÷;}ˆ˜†H̲J|-cp>ÌŠŒÖ§%†~OaòB31Ú.FMñ-ŽJºÛ/ôwòÌxòö׺œĆofbM‡”‰úÒUȶŠ!*½=†11X=␍Å€Q1ˆ`†Þ¡Ó祈'´p‰ag¡Õk³®ÎÍë Œ¶‘ˆÉvïòa´oؽƣÍïì.ç%0Ì=cÊ€YûÚÎ^b
½ÐS©b¶Þ|ëxë3P:䆴š.–Àm;†ÝÈ;#{!z¢si' È—zû0؆‡uq\6æ��b‹Q÷aj8␍ôck}Ä@ H®�Z‰™RÔÄ/Z˜—q� ¾Üã Fàø‹�ØeËo�æ‡T§…XÆ‘*Ɔ_Ë”HÆÜæ·YºÀL¥J5¯ðqb�ñmÄYH×�§YêÐÃf2\j˜ –yëõã½:½'ÜÁ¡¼P�³Ì–<3ë†ì%»B{�öPLð;ÿn±Ƭ�IEPKÜe`)‘]Œïû»V3–F äÌ(r» {&f:…tWËYX:œjÎäöWW—Ç|O¬^…ÇÄpcôЬÏ�u8©2
>)/-cAõhýƒ¨ü„Æî��âR�xÔ †­(á­ŽíቑK�¯t¨ÿr½m}? Žªê¥ùïHÌÒ¦@GG¿␍¦kÙK¯�Ï£C0Þ6<è¢HêJbŠl Ÿ�=¢tI=æÒmĨvœ“€~à­¢,T ªÓ^œ7=@àsd“iiˆ;V‘«q˜ñ+1\�8´$qí06#4³Ë0T¤Xî‘&œ—‚j[b¦ù³3:"CMa€‘¦{ÓL+l *gñÌ5j^êSÓŽac½yg'/ ÐCYÛ+>Ò °K␍20ʉYšØ‰� Ùó0D] –ßÛ¨�†(ý(`vó†‚3¦í{tìôtþØÒE`è'@igÁÀ¦
q£;X5~ÖiM¼†ÆÁ�BÎ; o¹tbéx;ªh¸žIs&{Ù6^)MZK¸K÷ G3Ûd£““’aUޤ !uš�€�3�¡ðÒ“&;�Ä`•LX*JËÏ@ítœzS␍TU•ÚßutL<1í`½Š\]µñ$w?­„Ð+€…␍¯&ÀRhr“W&CADC˘#ý+yãk`‘ªÌ ;!d…+ 2¼ áË(²ˆ�Íë|0 ÊKb "ìcww`*¢Y`]sà÷V(Ks·ûygÁ;XÛÆwËß“W¹QÛu"-á8ØP<8;cEݧ৑„˜™f|àa¿ñB|T6öµWÆ|r RêM ÜIET¶#¼-㟠¼þ-MÑz­Éz*D°�û™x—FãF”=*1M ã’s‚2w7oœÄ‘1ïüŠÿvÒâ><üª‘ïø!‰åsÆcþ1¡ó1Ó@ýsòþhG:á8°¼ïÀã˜aø|�3^æ½wgYLñlß�MŒ¦dà79/^KÛ}tДöa.©¬b˜û}¯Åš5÷¾î4©PeãÓr˜aN¬€ü¹’0fÐ0oácEä)�i­çû„£AÇ+Îxõ§:ÒÕ> |¬f H¼:_9Œ=U¢òT
fÏg'«Ð;)—pÄfîêŽö ÝP¥rÚù-˜“Nðç¸2$
5H~•cî�&ƒW†\:3¨M~¹­vÃÈ Šaí0VF·ô*``0¤×¬;¢…XDŒÝ¡ˆû öˆÇ��’ð4„Æeô¨w%†šØ"ÂV­á?0Æ</
`*iŠU×$®ÀÐH R…dÃëT“%=ébQ2eåobðŒ!$R°–bPÍ(Œµ?ŒÓ¾|ú^£ƒÇE2‡w¤s’¿bćƒÚ1óËÖF~Œ–Ú×5ßÀ`çÙIºÃ¬$ªœN&M�ÒÍlÎê›Ôië¸ô%3:Ø-ꨇ÷~βHº†P.˜"‡°¹÷îÏ¡"ª�Ù@’M&Еˆñ¨NbbPgi>qS#âà•è_Òƒökܹ($¤§sæúîéxhç¹ê?K¸zsFå~λ8øï.i€©Öˆ®w }˜Á¦␍£[AËÀ­2„i²ø’€Ê;a1^l‹Ùf�úòíIÌ5 ®R�=?eípò_ê€�­½v0sùøþôö%œ® s`�;;²üaXt®‡óÕ /-¡²j ýãËGç´wêãWÌ ��këð—ò/†Ñ1Ü¥ç2†¾HÊgÎJTÎ�"ñÙHח톀Ÿ^2<s<K¥ØÏ¤�'ã„]üŒCh  ¦m×繃�Ãs’ªd]e*ÚÊ/�á¹Y¡À0|ÈO©™Ӄ䔪w„bBŸƒ^ï�˜åЏü|M ;AMXhV·'B]³€@“L—Tí2!,ˆJÆ␍>eüyËX.BáJ ¯5ÀPåUž©£½#ƒ€ÂT„­ùMë…‚øËÖÊ&‚5IxË.æØrZÃ?ÿ«šõ Ô€pr¸¬Á+
P¥˜kÞ|
ÑP‡a(>LŸSÿ?”?1̬L–ùaxëf¶YŠö ‹Á½¿è–4Û ¦%0M§Oö„è^nf$ƒ±½ð¹ø®XøLìØÿdA¥_ þÍc®ª˜Õf"<‰ÁFU©1 )M$ãG%é,Áð'ÒDA³—îµFSèæ3º@èÊ?ŒVq”{Æ}ؽúr�yçÁk˜a00 Õãþ3^/«Úäd€¯ ïá›8ÕJ%©TéHÁ‰7 "
*4␍âÝû¬TòõÔAþý¯�JÞÃ:\ךAIÔ–ß™;CLÒ*ˆƒ_óî÷X“'Ö'ãÂWü‹±­ÌÅ+Ø)ÍÑ=ßöÄk~îUÑ)aäJ¨è€‰ÒÝñà¯$5ZÒÞ·ÇßR¢ü~=õbÎ|ëz’”®`àTšiÏ>'w–:âÙ[0Q—'ªµ…á/â.á®ù-¬ØðÐ3õba�’ÏpÕ|^0‘;$fÞ¯™ëô&²f §1êsTŽ‘@zÝ…‰ù£9Úìó0v6“ŒEÔuaŒÚSd‚a0LE�›Ð¦g'�ý>ƒI „ �=Þ:÷$
␍bÑÕì
¦šý„Œ(à>Gó ÊY¨Á `VÁšèü¬aG²4-ûk _ÅÍå‹/õ€p°qm(ÂËû\utZóúsA�J¤ÿÍ)±ˆ^0®ÈøØÇ˜ŠÇßËXužC¥bø½ûy;ã„�+kÏÄÄ.’6´ NLÔ—ãAîu( !:LnÜÒq.L<óÎoÁp¼ÉSˆô|) ¦MIIéñ§cXŠQ˜t´0W4Éš¢'ZMÎmu_q´OÓEŸîxæ@z.“ã÷§¼›T¬L­g)³7HkbXÒ3^¥>±�Á$¿òÔ¤¼¼Ò㢙Bþ8Áæãφ1cV¶-ŒO÷Ä^ËZ‚!Ê’¶Qž�ñûèÎ/†3ü�¢/•~¾×‘£J¬¹<Á´ø�p“‹×…‰ž8ƒušŸ¢ÕeÚÎû)Ï8“‘�¦[ƒ“LŒEÛµóHK’L¦ZL7yN`uüÂDSc.:�(èu$K]¯›Iá•ê±␍H\x¼yÜùX÷g=œ1Ñ€žÈã¶0O8§ôÉïL~5ýÆùXõ3N8D¨œËõé1[ø5šy>¯)ÊXz¤€1ÆÒÍøszl¦aêSc#C|\a0=‚Y>_Ó˜5Á'wÈ(F7Ûh‚c­bh®…ñ¦LˆÎ£Âng óã…AÖ(ÞŠ…ÄAå¢ ÷+=©Í\Òƒ1´‰´lå’„á®Ç1Ýf0}Ú4tàèga$(|ªB+Ô K‰dI= SCU‚Q‚E0E¡£­Ù°²0�a$S‚ c‰¨ŸDŠY¢¶ c*×ý`¢#Ã@ï;»>…¢Ò±€Ž'fT -ÊþVªVE°3ÓFéHñâaà:œŠëøœ`X¯6ºs-LI‰u0Tò‰ ^¼ÁÀWè².Œ"[SùLa͆ )BÚFïNó¡Ôú5º»?“õY˜ìÒºdu‚á· Éå\Ì­AH6ň]ðnMÉ–Žü"]ÊÓð–?'èµ Ð±oü¤1ì‰ÉÁØßH1«˜± ÆÙ‘Q%Š3�Û•Ü„ÊVpÃ4(ªH©¡©ã¦T‹,="›×èïý‰)³²ŠEha˜ ý¾xš³cé3µj[˜(£ºÊ@ÏÄðÆ BIÖ|Dʉ¥R�+˜8fÞÕÓÆ÷[ÎNXå�I W‚àë>æÖ$µ1Ìh¸e×Dª…~ö)ò˜géÕS¬õuY5~�1Nþ7®Îg05©…:c¬7ÓÆ’fKBÖV)+ÍKHšgYã‰ÎÇþÙt*šìðÄ®?#n «Ö&ñ&d”Ð%—VÞx3]t~M%pR0ÄóÁ27_÷u2¸Gʇ!ƒq ¬<’2öm,‚âðzñÐIVvŠßgÅï¾1:ÉK^ÓGø …crüX¢0ÂzÜäLÏ3mm|Q]˜IE,N2M0gž¤ä¸îÞ˜'J]ëô\ÁèYã¦T§~!¸µEî¼j†W_.Ôgb$'6äJÔSÄ3˜N—EEj¯ÑMº2úÿ‘¸
céÇŠ§û„@¸ ´ÿ~ËìÅ:‰’ã{ŽÅB+Þôi%y•Z˼6gc²2æ™.#M´ðÐÓV²K°lš•;^ÙâÂŒö˜^ñ¼ö»t¯ÇãD탱ª¹´³ÇØçd&ø�†ü´h‰%³Ú­/ƒ
sÍòàÔš2ûóI½ã†_æ †Á6Ng¦*˜üþ1û•¼î]Ñ1ÃØ!ž|ÿìû>8”oMèVÕ¿+öÇõb]7sÑ8’¤_0ÃlÔ,Ê<ƪeÙy“21ºF'¸žs×™¼0·x¿ °š }6Lèæíi NO—‚±®çe÷ó2s0ŒZ鱿Ÿ*êÕÈÈQĶ0l/S†×Ø£`zDŒpêЪOús³:âT3á0gtUQÔ¹ï£f�?�#ö¤ÎÐ8òî–‹m yF˜‰PC*À†é+gÉLl Ý42#LHñð�ËåëÂÔ †¢^>­ñ=gþµ1È=QeDÊ`Ð8ëË~&ÚnL¸¦†‘rŽ0%Åöà±¾ïãó˜#'c öT¹ø °]gzÄ›ðn-½à;ø²’BgÛ÷i‘$«ñ+0|Nµ÷Q÷9=ªoÃýºúàx�ç‚,Åñ*`08íL'úýc“'ްø®fáa·,Á° ¦ÖSýg¿«c�†Š=lžcàI"–ÏÆXƒ*öPöŠäñ  –a¹¾wFdv7#5‚ɒІaûíñ(ÙÛµ&n^ˆ5íußÁP¤˜oéÁdšXGeº¿÷ñ¤šEÑ[çÔ_Æï$µ±úßž^‰�W:T'&½Càiÿ±ß~‘—>í4
‡©3 K‘ôgL†¼™{ ÃA–:ýpž_Œ½@숾'U„ ¯Pß·ïÎIÂ{àz04Ûoù—Ÿ”ŸïsÝssëÄðdzQz|ÔûöxÎÍøè4ŒŠ&Lq¥©áß~øÅŸõÛúÝßÿúÓßÿý¯¿üøßϯýè7þùáøüÉ?¿ÿáüüás~þñ¡,.j9+ÂÔ?ÿùÔœêŽMÔÔÏÿ�ÏþsbƦæzHZ0¨Ä0ªÿuûú˜©Åïù›ë-ÿ‚ï/†·4]‰5³ä#t¢ d¡ü\>³dN®`2é␍Q÷ŸKU8’w”‰Q|‹~‡°Æ†øK#h´êœ6ÉÀ¸=„~¼
 Ïïgž�¼aÌjzmÍ®}cƒg&°Xì(ˆ_æOóðûû*Q#è6çž‹–ÈJ˜gcÎ)6à]|év¸Ð•ü÷=ÇÒPúQæÂ†ƒ/LÓ÷œî;©�ŸŽ`�]Ú'�uŸ£;•]÷(–剧IF‹m—‡©îø¬‰ÑÈ34Ô#e üä‚q“ôDS¤ÇWŒï•34á)ÓsOžæ|9Ò˜ñ²«ìgÜœ¶Ÿ“ï+¶ï²)
ÝŸòç¥çžºqsW�y’m–§×OQGôÇ&c’C°¸®]žpËCíãÄ8ù»NÔxc¢Qæ+ÿ¼š©9¸7ïw¬}8¤¾Ú;B0¬æÓ¾÷)Rƒ9FÚž702%JÜ¿eæ�±øý`ø–£šú6ö9¡Hž>͸¦ïx�¤ÿ×™µŒÿ�ÚØ'æ9þ%º³›I½7&y–«6ùÓÑšÖÆñlÌ�pÃPò\}z.F@{¸Âº< z<YóBâÝ(wX’óyÞx +ÇxxHlt4+ŽYŽÂ}a.eàDŽLÕô›g
mxÚÖðD§’M’Δ5¾UFºaVö·X_#hÅŽ¼ý”a£æÛ¬Õ…q$mfHJ{‚ÑnÉ9©ÛX˜Cüdñâ‘YvR z„ra¬‰’ È é†6`Kªàæ C÷¹äŒb’n�Gí18±í;Ót—#†Æ•|ë‰Ë¯}×ÙÆyQ\‡%õ¸sF9Wû>>Ö@Yù+˜}|ˆ#Ž8FŸžŒ3«<Ö=MG‰ÑXwæÃøÌÃ]âÙø$�4§®Õd+6CþPê@ܼEõ1s« ƒÒp]ɳ&†q"-NY[j¨†E5áIºâ)“¦fkp#B¨1©X?ª<))¢`�d«cGMÙ³ :Çœ{­[‚IE\mYó…²ü DñZêçØ,kLî3ø=ÖûÐã™sÝ?C’!Å=cAÆ$¬.,ÁŒ¤+^<£²1W¼¹óãU>M{[²àmæKÙŸJBã´‘îÿx®¯ëJr,ˆ¢®”½R ÿë}�xœ^óAV0\b BOó_fÿþ»±.J¤¤À‰a²bþ]±fm𹩒ۀ¼ÝÞQvòœ�"ÀãŸ1�Fá*œ@Q‚ýûLÒñ²æ‚ÐÛŒ¾=§,cz~þ”˜ûíÆÁZ$tiÞÞßgîÂ�A:ŠV'ã�…\ÖÜN†ËÁâ8±ÒCÏ ö”é#´Û;·¼q³BFÀC‚àÚ<AîùýA˜Î(Ïì?*Ó4Ý\;ØÿÏÑÌS®qjß‘
æ…üj¬ó�Gœo}éVô9uˆsÔâã)öϲþîrä@˜k–¿áa¬ù#pL/Û®f�¶<úûïÌX¥94bûyý#Í ú˜2»␍sš0¾‡5XîÆåtí¬Wcµ�Ë’¯[ωY̼F™qöŒÛ.2+󖚆—F³<ùšù CCJ ÇÕªML2éJf—„ÁD–|úO¾sf›Tž,\a­+–×ÿ9¢¾ýÖ{ýÒØ3¯O=¶Ä¶ß£2ÏH¸h&LloÒ™+¼ÃÛõåêÎG9Ã]'~wf4Kjbm;Ã*Xܾۼ³š±Ãß®ÿÎèïæÏ]Él?rÆ�Ò†Óß0öɾPâ¥ï~ÜKòUÌÖƒ�I#âE…Ÿ áéù2è*Œù³x¾]X�iàýú‹¾㼚RÆBW�øKB·ð°I’¾w„á[_–þ¢{×_R$+øã¢%˜d›hgù×_RŒø†,v�'+Â<//#5!æQEïÙQHrÓJÖùˆb&Õ­æ Ï0hŠcÐaæøc7û¸"õÇT]5=Eña“=çÄ\dËа0Oæ(>ÛávùoHŒ°ÜîŒIŸø&u|®F9M]†TÆ:£RrC0>—ðaôÜr!'Æï¸e.«æ|ÿ‹ùS{û;0ˆŸ¤ €ãã@ÿ‚\}÷¯mÍc±uÎé™÷[""ùƯÎ<&ÞîõütÆï0ÿžÁGŽWUÈ�[¯åOÇ¿ýcAëªÌW Í¡Ò/¯tE‡±Gwß“·�ƒXðÉÿ=•i±jhŸR
òQãû;kW3)î¢S˜z+3á5_š·4ã#JÔ¾%‚Š%¬ÒÀÜC?oîÛ\ÿÆp�èîó‚�‰ØX�MS)
?²zÐi;ÂxC˜NǺsvšK@ÐAÅÔ²ÑÖ#¹¢§Ï(›ï‚H£-Â>a®Ý¢yÓ>!TÅŸhiÖDk␍„?Ôäcb{J„ƒ¶•"¼Å_̘u&Ãg£‹T÷7Œm}_¥ÑÏßm¬ÙšJW�|␍kj?Â@I¡g¢Ç{ sÅÉt1%>&—Ÿ‘QÆwžRÊkœî‰)ÜZ>´³Pç›­b}®õ㯳dêQ; ÒÕ0é:{ò|Y( úd&ÖR�ׄ±ß&ÙˆŠ£ÇÄøVLì)L
ÌÕ³ËFc›"oó> “Z·å|êrOÌÒä¼\ê_2æ}˜å­&ßYþnyr‹ íFûM³è¸ÿ¦gï>oÄù…Ñ•>‹Šß¹ÆCîp‹Oï0W\?0˜YÉ7Ð»š…¹­uÖ¥?üÎ"%h] Ðe|‡CñMÓÂß^söË©™Tz³“6î!|ÄœP³ì€Åy¤¢$•Úoïאַˆ†+ô¦½n¾‹PœË�•g‚Æw<oM=â¹&ÆÞïÓ^K␍Ùº5–»ºãõLL6IHU˸óŠrÐú¯>â"›B\™)ŸÎfÚ$Ãax>RÂ%UBã> %ÕÛŽ–`Ÿ‰q«€V(Ì‘·RÎ%Ù™!õÎóƒ2†½&ÍÞövÔ9׌À†É0æ¶®¡
&ŽPYñ;ë-fiUïüaö�U3ï(�daŠó§{)db–Œ(îh³… c<áǨŒ8ͦ“"Ëa„«fu�‰9³gVˆÔ©2r‰ÿKî&&ãa]>B*š�1³K{ìPäM>Þ$ðgy6Q8B~ŽÆÆ¾Ñɾï² TvÐ÷G 0¬Ç‘Ž2XÎÂø§ÙÙšUt;1)ÿSÞ=[ÓG8C4êì�†±Ø~C»G rN(INÊ>Œ�¸jWÑ* Ï–x�÷51ÛÁ¦[°‡!ëÌã° Ÿï;kĘCæê•|­1x~˜kd´-qºÂ¨÷Ù œ:tNL¶ËÈÑ”zñ¤¤÷v /ôwy6žzÿö®æ€ØøVaf¬éeR_UE¶k0éÝÇ0N K“§1QÖ&qd(ˆà ½GN_§Ä%¼ÂØY´úVÆù®Ý”Ìë90ÙFÓvßË“}còo˜lþnwEœ/1À˜5=�±ƒA˜u¿îfobµÈS¥aî¼ù�ã]?u C7TjU\æÉ&Ù1vcÞ™ìE„ô$æUN èKûöð†Çº4.7óf  áRÔý0ëpôãÎú„A ¤�kРkbÎ(êä{Ì—qÈ…/oÓ ŽÀǸ‡Áv¹çoÍQ]â*ެa*ø›c9#’SnëÛ–n`Τ*5_ññÄ$÷ˆoÇ8‹t½£5W:ôa3� ¯4, ˜e¾óú£_»Ú w8T‡öqVÙR›­Ù›vEyH�= 3øÝÏÛˆX¦¬Á¤Ôe܇2XJ²Ëø~ß±+øp-S±4a�³Qt»{NÌÙª2Wë,–Ž¡æ&wÿÞµÇcõ“Õ[ñX7¦(rýÜØŽ“V£PKu: ³ y´ýIü‰ÂÞ×€Ü׋Tâ£^[± oõT-&9+=¿§£þ×Aj»í÷‡á¨Ö¼´ÿމ¹²)èèÉoÃìYöe_‘ÏG‡0Ýv$<>0èb‰þÒ•‰YbK|öÜÇxº&¥Ç.½cTwÎÏ$ÐÞj<‹Š¡ºìÅóM>'›¦e#î0VÑÕVüš�,É8J9Œm„ÎYe 5R¬û ò�ÎÃ¥Pí61gùs7:"�ñ¦a€IÓûNÌVZ±-Tpœ¥æšš/맦;Ãf½õ¹Éô°\wWüHÄ Ø%Fƒ@LrRÖA÷Ä H{> цå!ã÷]Ô��$ýpV�y£àÆtû5��>›?»#] Œzz˜v›&T(âÕaÕüÙ®4ûÇ+0˜ƒ7y¾³xË+'6ïîW+␍Ï3e΂°—ÛÍ+MÓ¢´Êà:–îƒ<™Ù-6z&¦¤T˜¤ÊcUaH]fg@–Œ†™@`þƒì�É;Ã*•°R”m~µ«¸úLÌZ ZS©ûw�‚éaÀ'f{X¯%®^³ñÒ]àñÓ5!jE,ìðjað è¡“›º² …ˆŽ,ÃÀ<Ñ’wü
¸DUå…{Bd…74¼âˈ,2°ó:‚š¼LLAÄÞ»÷˜•h.X·øëeÙÚíýùÎÂ;¬íæ»Ë_Ë׸1ÛõŒ´ÄqØP\cωéE{­ð§# ™™­ø ±¿ñ">)„�ýÊÕ™O·�R߉Á�^äe÷oWqÂ'<oÿ-Í’õx²&ׇñBúÃ>ÞŸ‰oi2n¢ì“¡
³å#1®œ3!”yoóŽçäÈÌ»ŸQüo÷�–ûhüµŽ|ç!Éò5cSþ)Ñù1g�
ý;ùþÑNtâ8␍\¾ïàqfŸ_Çs^ó¾ïÍr˜¥³ë»�˜LÉÁo:ot+Ûýä =í‡y¥²•aÞ߯[Ölkï×{šTT¹ùáì␍s˜1'+^“0ÎAÃzQ³F}â)␍4­ëóûÂÉ óŠçèú§9Òkûaðqšy0 £ë ~.ò(jìS%V­J0÷Ùöïäúž”+ÙìÂÝz�òÐnTà©N{þD sª„_�+#QÔ´ ùkùaÊ=á4øãÊÈe7ƒÙä/wѵjyñgkÇXݦW�Á`¤·¬{Œ²DÌîxÄûìc4?%ñ4Bs™<ê{MŒ7Ù"á‰UQÿÃçóEöa•¦¬z&ñ…AbHÉNŒî¬%K5ÙÃQ
ŠL­ü;1üƒ1D" k†BdF1ÖýÃ4í×ÿl—»Ž%IE¿ þ!Ü&Þ‘ÁXHXH ¡1Ð Ò0Òˆ¿g­5Æ”ÑÝU·÷ÍŒ8�ý°õ5F�‹dW;ÎIþŠojQÄÌ/Sy%µ®j^�Áγ“T‡Y9¨²;™5®nfs–PßSA�¶ŽK_Ò£‚ÕK½êáZ×Y&I×ÊA“ä6w­y*¢Z™␍$Ùd]��ì$ ê,ÍÁÇ-ÞÅ”@Áˆ8x ô/éAû9ΜÒÓûöqÏÃ[ñ:ÐJ»ò7¯°ôæŒÊºÎ;9øï*i€ÉÞ]¯^tc›ÖŒn -ój•!L“ÅM*o‡ÅèØ3Í:yçÛ÷`–Áq•‚Äèù¹Ö 'S„Ô(íÒ°ƒéÇÀ÷o-7áT=™sœÙ™àå!Ëâs<œ¯yh •UéM\Œ/¼§ìãp?¾ÅœPèö¸¦(ÿbmÍ]Ú.£é‹¤|æ,ÅÍR$>éºÙ®9øé!ÃÓ˜×w©s›´¶eœ°‹Ÿq�ÜiZõ~!«1pxŽDR‚L «LEgÛN`xnV(0 òQjæÆÔ 9¥j¡èÐg£ÖsÌpE\~ž&†�àNXhV· ,„º*f�&™4©Ú¤CX•Œ|ÊøÓËX.Bá8º5ÀPiß"|»ŽvµìÐ<¦"lÍÓ ¬
â“©•=Ö$á)«˜×’SÎx!ü”ÍzPj@xs¸¬Á¾
 J1×ô¼ ÑP‡a(.¦ö®ÿoÊŸfaV&S¿z]Ì6C‘Ã~a18÷�~``I³␍bšStúdOˆnç–fF‚0ÛŸ‹�ï’`·‰mó›,¨ô+ÁOÍU³ZL„ïÁ`£²Ô†Œ&’ñã&ÇY‚á#ÒDB³‡Î5ZQèú6º@¨ÊߌVñ*÷Œó°{y d{u敆ç0Ã``n�ãÌ I”-�;†NŒé*ÐÁŸyç{X“¥5�Äpà¡aì·•3ð
l)�GwßÍG¼n«hSJ0rY*J`TºWÎÃæ–¤†–´}wý­I åçëjÔÆß5–Iiˆ1ÀQi¼H[÷9ž™Ô¡gob Dº¨Ö¡»7â]°bƒ‡VèÅÁ@J¼W�Ï£Œ°CÄÌw›¹ŽÞ(kŒa££’¦�t º£ùCsh3¯ÃÎ:ɰu=Æ Ú™!2b0LE�MèÓÝIˆ‡ý.blá‚˦]çn¢ AXtj6ÄTfß�¡ÞçÐ<e( U ŒU`Mè|Ô°C²hšû­5ƒ¯ÂÍùÆM=@p°º6(‚›÷Xuè´zûr �Š ’}Š‘Ì¡ŒÏû¦bñÿd¬ÏA¥4üÜ{íN€á;®¬­Àh‘6h�@Õǹ×I1À D‰ÉÕ-¥r0z Ì›œßÄàxÍSiÙ¦…�DIÑã§Ã°(¾¢tt0CMb ™¢%­FÎÙê~âhÓ…>½zf!ÝÃ8b8Âû*î�T0<°–˜ZKÎÑH+0XÒ¢W©Kû(ÆüŠ?@Mòæ•®‹Æâ�␍6¿3Œ:Œ¨l;^Ý�½,kƒ(³�hÊs1|ºã‹r¿B§Ð•^ŸÇ!Ge­9Xbš>Dnâàõ`TÃg`�âUh5—bÚœý*®QÌH�&§ šL‹v!ÔŽK²$f2ª…éFž␍¬<þ`”GkŒ‹¢‚Žd–ÛÍXxJµØ*D®7×�ÏáüXOc"vLh@72iÜfÉ1pJ~Ç$Á¯L?ãœNý'8„PËõtÍüªf–µM‘cÉ% sI×ñÇéa3¦~1U)ñá
Åt3'\¶itMà“W2Òèº�L°ÖJC3†;9 S�C…9cèÇ9°Fz+$Hr R.táÝBÑMm !£—t1 ­ñ-;¹D‚`¸kJá6Åô°iÐ�^C‚‚O©‚%j KÉL=S¥*‚‘ÁBL¦Ðj«–¦c‘)‚ Æ¢^F3«¶ÃTBÈ8Ý£fL}ÏÌñQ(TZ ¨p,Í(-dQî» «D°J+b˜6”iH'þ! ¸ž
×ásÄ`EÐxjCwÆÁdKL¥’GAxƒ _A—õ`(2‹‚Ã$Ž<!¬n$…�¶ƒ¡w…ù Ôô+ºs:üŒës0îR’.±:bðÛÉ«rÌMƒ Y‹¡]àÞü7Jvܰò é"¡x¼ù»A¯9@éžxÙì “9Ű¿J1Vѱó•QJ¤ˆ ç¶TÉK¨Ø
Ü0¤j
ÉUšJ/JuÈ’K¸y␍=Ã{?š2V–b!�è`0ô{àiJÃÒ;µ8¨í`TFêJZ�Ác²Ys;”£¥¢CŒŽïÊÕæç»x¶aŒ”�ÁÁêJ øzóÒ$jÃ0CÃÍ]# ¢ZÐÏ}
yŒkчáSXë)u±$Ôx?†qâG%œ:1ÕÔ‚:ÃX;ÓjIÝÉšUÃJã%Hš%�±Ôyí›ŽŠš–v•ñcäËÅ `•µ1ÞAf–.qiyÇ›pÑ~�JÀIbÏ˼¸øz�ãà&ËCŠá°ò4eÜÓ°¯§‡6Y±Sø}¬øÛ/†Nâ%Gøh1h!ÇσA¦¬‡›|Åt¯ÉÖê‹êÁaqÌ4bŠW¢äpÝ{1K¥®5<—zÖpST§~BàÖ¦¼Þ*Â+o"\PŸÀ�œ°!èG‹˜Ž.u(RÛF×tÅè;þÓ¸
†]D�p¬ðt? wíïw1{Z'¢äü|‹­p@OËæUÔšÌËæ\Œ+AÆ,vI i¢ÉC«�dg°l4Ë3·8cF»&¯XƽÝëzÕ^ «ê¡yöœ÷9Î~ Ê�OSKX2V»õcPÁŒ(œZ-3¿¿Jê«ÞÌ#ƒÍ8§JŒßOÑ/?ØÜ;„Žñ@1;ˆÇ÷—~ÏKù¬ ºUéßÐþp<­ëÅÀ\h’D¿ÀLf£ºPf9VÍeÇ›äÀÀÐU�Àõ”[gäs ïg(¬TÔg† ºÙ=Í2aȸ]Ãvp<nö®ÍÌb0ÐJ×þ>•H¯¦#‡"¶ƒÁöbÊà5쑘®ˆ!œtèÔÇþ¼XâTcÂÁu•BQ垇š-~+S{R#4NïÝ<ØÅ /“ÆDPCTF_q–˜‰‹A7™é‹‘ï¾Lu0(ZÆË‹¡uSßSüëb w£ÊTÊÀ@ãX_ì§Ñöbäš*#ùÂ�HÛ�õ{^sødX ö”rჀÝ:£Gx¼[³ø|Y¶©´{ž¦$q±ª_ƒO€SY‚7Õûœ®ê³á|�úÀñ4ÄR¤­€bà´b'ú»Ä0�æ‰$‹ßúÀLSæ”Y „©åªüsïÕa�s±xG�ä@ˆåº‡A%ö ì’‡É`Ëø<3DÆî:RSŒKJt`fºw×@ÉÜ�ö€ÑÍb�¶Ý·I“Ã]º§ ëH™ÞÏóp¥ê¢Ð[žS¿éwLmXýÏžcã°C50ö·ýéÞ} /=ì4¦FD,‰¤¿`òÆÜC‘`pK:½pžŸöÒÀŽÐwS…\8¤¾Ï¾óÞ×Å Ù|‹¿ø$ÿržñÆæÖÀàÉèEîú¨}w=ç Í1ðê4*j˜LºRkøß�ßüí·¿ÿñ§?üðýO?üçßÿñÏïøè;þ|¤çÏüùþø¤çŸO~~~rzþô‘Ÿ¿þå£Ë®H%Þ¹†Èq÷ðübSºöúù×´qÍðX]!å(±°ªÓ%ÂÙ3áUS␍™`Iøÿ7¨¦3„ '_˜Œ3KkaJñýGwu ØÈ3,ý£j£e¨"ÐÍ6ý¥·¬ì«©‘àÙj<­«ºüÊZãaYS~dÜ~…à=%ì7©úÇþÅSÊáäËñúâ$¥ITˆó$_ݧ(KëØ’/ŠRÈl\’N†€_•õÿ„×ËqÃ0Ð
ÒƒJ�DQŸz2“SÒÿ5Ѝå‰}ôÀ4¹‹]D×›üKY²Ä-z\ÉE\­¿G¦@Còli_=_›¥:Gl\9ÿ§« #A%8Ûìæºç9]]#ÿÑøÈ¯0RŸÝy ‚®Ç/Néxò¼I϶Wïéû,JOúgaßMÎçûáúþøúwr3 g¼Ì>²ö‰ã0s”˜*^Ö’ýôsbQ!�!b,ƒá4¨)+×ÊJ¥êr©âíaèÆmÉ^õh4ÂP8 “B­š)Iã²ö UQ
"MäáÉØ•å ®û…™}è­žNL¼7ç[’␍ï�Ê»ñcÔ6 œÒêÊ^·àH‹ãîØ
›FÏMê£8ÖckœÀA–†™�9€dyw˰BEP€)§á§MNÿÛ£×Ñ=ø6Ku ¦ÚÄÈäÚ^¤v%)Òp®Á`B�¥ŸMÍÚ’®ßí2ç:8EDâîÅiiw6…¬S0JpDhŒÍÔ…¾¨‘Čʡ)í×» Ž(F— ¤Ï0Æ2AEÁê]®–Ú~Z>Ìš›°�KÖ¸‚ã8Ç.Ô/·`D)Â&’Ñ»u� �‹ã]NŒFJR&pµò.Œ6±¨nå ñd(€øí˜°ÈDòŸRŽ}Á?3=*tlÖ†íŶ]s¸d\‘ñW€ˆ“j␍endstream␍endobj␍22 0 obj␍<</Filter[/FlateDecode]/Length 30172>>stream
H‰L—é‘c7 „#pŠ@E$ˆœœÿoÍǧñÚµ[šiñÐ{gÙþüûÏœûës§Å,oï�ïïŠ\3Ví±£_L—×(U³{�ôÜæ1âb"X$2WÏúxmÖŽ±×Ì5êŬÊðmáe¤u§WØ|1½wF÷è)ÈÚkØèµ[ñ••µbd„0�søž±Gö{äœ9j,îæù‰ñõ±ÇˆÙü_ïÕ³jä^. UqÛ{�ÅE^Lw[�™- ¿™m6¼A^Ì´ms÷Ý‚tof©âÌÂ׸¨G�ù ûú2nd¶öü­’;Öê6÷™tÌœÁÿ/fª{´ú¦6…¢ ½çzo>ùNÚ2`ö ÿrò±¨fOßþb*w¹EŽ}0a”Ùƒ…¢×³—Ü“†‚™Û)P„ký0”§¸.Aø§ö´•TÿËTö¢£Ü*¾Fí8.Õðù™#L×�†½ö&ìïNôÊi?Ár™ƒjPÖ_‰×P)¢Ö8;õŠP±æú; ×^Þ“†³N~mÕ2FÒÆZöתîEÿ¶&'¿ÆhÑLŽ´þ:¾TynSÂ0ô1¦¾þ79�{Ÿß7­4F�ÉY¿ßS_æSgd²æ×]ÓÁX«ÄS¼§3ß_>©␍¾·ÿÎ˧Ùv¾/L Ä_õÇ©®¦6Tƒk¯/çfÐ6¸ï?n26ß`=§p{ ïØ?ŠÃ:ÈKs—0L&­5ª×O*8ðòÁp¹0ÕÅ4š3¶õÃÀAzWÜøÅ€îÖð±»ýÇà3 ã`Â)6CÜü”Ë*«96ý„™—[éŒþ®c®k2Û%R:(tMû]KÊÀH\±ß�ìЉÑbP_ŒJεã�ŠRÌÞÐÀéÍ•¥úr)€¾ŒF‡)”ÒQ<1Ö”¯)³î…’ÖjúÏé–¯‹áBHIH”iJŠ"Ÿ6Ìue©(+Û,ŠF … Æ«?gŽßuè ʰƒY0lêpTö=ÏB�(LAçHµm÷» Hˆ_Y9®iF»ìå¥ç>Éqáq“¨ Fr×Åä¤78 Lpa~·¦␍!2>˜Øˆ-çaî§0íAT#öb ZV õð“¦1ÐE„ãN�!˜W¦0éÒg‚Íß3sDH¤»Î³RÀpK_ù®3ðEc/¦H�Æ‘y>Ås«õíµ8°abŸtNÃ08tð*Óún␍˜i
˜o0Xg¯I�7³q1¨ävd2÷ÚÂ0ŽRß,ÿÝ‹™¤;ˆ¹— Ì÷bL2ßUc·| 'ù$j‹•K؇îb’iKF£Ô† U×$™�_Hàá¿þ;<’�csƒ~·Â;è(ý„±‡"&¹­‡«Bò€Ô'j‹½PVƒËC¤`
6F0 Ù¦—†â̤ÆtW–;Z�%˜â(Â}!R IVr&a�DÉ$’1:.†�¤§Ì‘ó‹‹²i,zqMxjm~JÌ¡ Æ°T¾ž3‘Ï-‹÷0a¤ô‹š·È|¯Ô9s ·¢–vþz÷’l:Ügº(E”␍Œ»dÎÃÔL$7äÂÀ*üJG×.f<¸ÓfÞÀíçê”ãh ºÍAö¨èP\ºVžR „Š¢)x�iy; £/æ1¨O2¤¥kü€ÚÍxØ%Ü@1 a˜/.ÈxY\ë£É Ës™,a‹L1�è7/Æy¶öÙ‹ $CÒ$d^ÌÐØ ! <Õ9JÎèòÃyÖÑ`b[6§ÞÂåÈOüˆó‹A»Rf"fZÃΘv. –♺KˆRFaN§2çÅÈÀZ¯…hq␍:aæ"¨Cª6üŽó¢ìø?+˜tàÅÐlÆæ8©LPJ(’ó␍œ~œ¦“úyŒrÐb,Â~1’5ºG™)Œxå»:/Þ␍]‚˜nŸ9Ȟʛd½ëa�ÊÊ „AÃ2Õ±æ#…¡ 1£F²„¬c’ƒ\KÞ Ã␍†v” ?Žg/ôuO1Ž‚È ÄPJqξz< ãT®ñ�AM9ófS:dš°*ÈGW€'•Öº�”Q£NŒ| ƒ1)/sÐ/Š¥ˆ‡šnay”ã5-¿¹ó‘/lj�þ9ÇÓ²è ÉàYG&6© jÀ…?T‚ãBHÎ4ÇÅTêAAÝ%ƒ`Pˆœó… RP‰­•Tt=‘àŒaˆóbP®`è
Ä££$C¹ôþ¸Ø‹|5®Î‚9ƒÎk¤ {g”2ò!“÷ƒ�§D�‘õtâ ÓÄR*OHªxÉ’Ê] ±E-V×µHöC.f@ö}1¼ÐÐ`ærˆ Æ`»Þ/Ä"7¼îfé퇧%G~14ø„-’ð9CÄÊì×�àBI˜¤ �xTäc¨—¼îz<R�
m)D%„B–é:3dq1©ØOóÐ9KÒ¥¢ãÝË!–´R! Ó&É AS:² U–|Ð F/\8¤Z<ñ"•óä2Är¢¸0¤zø*~Ùãk©Ük¨™¾␍ù�È»Ñ!†ó]‡;葪„$W!æ@;cã]Å`5ˆÑEÐä`l@}àUÙ³
ž Ý‘ò-WƒhÆøBßp¼E’GßÑÆÏqÔµJ9å“äP˜9ÑêøœŒ™Ã*Ϧ&÷B ÊŽ‚0¨Â@"ühèþã=›.MHެÏç«Rßu àÑ�ü[ŒQD=0Ãu!p‘9�È¡J?“W’S2�‹!åsY®€^}NˆbE2.ƒr'�ª*JêÝ3ÔO⚢Û©OÏõD¤¹êÌÃÍ•šiùåF̸&†?K,Ž;pg»†F†FˆƒúÊ©tkâu#=—fMo<å]ÕªŸïÌ‹A=‡‚Á¡µr3ÃÑDõ`BO␍–À±Bò%CGÊôÚ„ ‹™q ‘’SF’��a&rº<␍åGš!aèÃT©°)Ï‹Á˜çÒ´½ž0[ªÌ Rß<ŒMäŠò–0âÞ0¨†oØÅ@µyÞ|ä²�žoÊÎÏ(‹!Ø¡‚0Öå6z*B"L‰¯Þ–bZxM†¤û¬#N1_øÍM¹<
|ÖåMD2ÊxÇaÜ…,ˆ§d¢w”0)s4 /†±À8¢Þ`¦²ò:õ@»y˜in…QúÆö‘å~ªƒÙ í ¤ôsbþõRÊ„oy1zX(Aå³R‰éDxÞ¼ëè�‚ÝÑF!�‚óh•¼«p�Å^ÊE¬‚’ùzžÚè=IÍÉœô“—eÁ#Êzá]Ìyu§3©)ø@óTè§``šÞSü@Ä`�^¼vj_ŒZNtÂÈ• Nd¶8ó5ž0Ü{ÇÆvÖ�fz‹␍Åëy1L.ÀŸ3ÃXÔ~’gÞu8šDšôÒçî(F„òª¾z1Jòè¢üîì…–¡xzÎrÒƒ©ÿ˜®³c¹m( ©¼\ØH‚ù'æÓ 0¥—,õÀ]zÉnRN�”“ %5P’m=a¼ù␍÷8qÝ_ØF)Jò<ßéï«yofùMü±÷*Ížï˜eÃô~ïJ±’×cr—ô•TzœŽüf*MÏá ã ±%ÑÓ®ß%ÜÓãk5ìKª0ýN' B8?cIO¤Óñ)$ ¼ýDvÌõ¨yW�ï+¸[µÐ¶‰2…�¼1„yöýrákƱú!:&̱ìp¤}czÚÙm­Û´™.BÌs¾Ã’°2﵌ —ù$râùñUgÄñøÑk^ T0tÍBÄÔ´¹16Ãiˆ�C8">ÊQ>cz�‚õbî‚éO²Í%Ä~ºãÓl«Ç½ªìA†É¤Ò¶Å`3»­zZ_÷¡Ã�„uÌ@q*Vcæ‚1È)èûL S&3)ÀÂ��žÍ 
ßôp€.8{¤KR &äTòÊñE‹£}þ¡­µ9­Õéï†H␍1otôºƒ^+ÿm�„Ñ•Oƒma„’§7*ZËWBIÁÔ°€5\ß%þ&ñÄ-N\ÍzÖ�®?Zxb©§&” ˹¼9Î@ïoK,¹7&I5\Ø?kn×␍®žŽóTÈ|âŒù¹î7æxÄõü.LNZÉ_¼ËQ'…õIÅÚ—%òî8—5¸(�Ô˜ 6sWÝ␍g·øÓr}GÉœY.¨§~^¡ýûNÃ;áÿ˜É_«“ùÍÎcÖ-¬ë¡¨�aó®Ü†õ\gù¤à<ñÚ£“‘¼CÅãË6Ó8{ûÃ$¦R »l”ƒ!Å%5-;ÿdLYa…ò‡àaÈîláßÚ�¢}-^` ° ŽÅ)ïÆÌ�ã1?L¾BQûûÛÐRB·æ›±]�ž~âDûlŒù ÃÕ ØÂàéÇܨÒoC—»âæýg]9ƒ ¶ë0†n3ªìuuˆeÄOôfCž$:*jÀž/ù™}Siž÷ŽÈ(:(®²:}J«‡ÀÜ�¨Q¼o0‰#j“ðR7¦a.¿J  S"ùºk|ÊÁ`% °ÊÂô˜ŽÐØN½0„°…‡µãNê�1– Ä#nòF�Ú©WéVýo%W›eë½%Àõ+-Žç¹‚Y2ÒÓ‡»¹i .Å<ϲΊ5¦™»Y�ܸN¼g�Û„1è=Á¥Ü£¹¹²üW{M0äFC­Ö{ÙR‹¬5y×��Ж»ôµó{ExW—æÂ´8½å޶´±ã”Þ¸(µ‡a¯½jYÿ}«�½×·œ¿0´z)¯€:6†q¢ÖžQëz×H¸E˜öéÇ`®Æ32?-ß(ºy¤_ÁDÓUéuç¸Xÿ÷Ž0/ñ3u)ÿªsK�¹“Æn·ci\·˜ï¹Îªñqé9ñ®ÃeI™ÂºÞ••©†A•öZð¶îò¨"÷ºêCgÃM•ÿY,i%Ééú _+J€1m�ÏŒ?ÀËRˆ]␍†|©†¾¤üÛÆ␍ÔÄ"ì°0,­‡ú␍3}œãŒ)CËñ.¬-£Ðoßîõ�X×;“U[àÚ¾Fó@Pô( cûŸèBøï܇�¬ËMIœÁŒ8_RR£fƒ ÔÞ,>g>ãÅ`<XâîµÝ·�ñÃ(Äü0%GÛ¶º�l:ÂË�sYïjÚd„}½|®Æ»® ‹„5ƒ![ÅÕPÿû±!LùgƒÖ»Jz‹Z¼ÆÉVк ~ô38GOæs/ô³ãKI¿J$.†1˜ãß.Þ;Ó3®•ê“âP)U¤»¿d•P˜±]ga<#ð°ãó£(˜Ð¿Èjô@ðÇccKBa?‰‹4`WóncÅ—j�o)Ü “V¡
Å€Á®¢@YnCܬ$‰ø›õ{#zU¢Ó1oiN:t’{â�Íï<IÓˆb›žl0¦–�@uõÓcü:)YwR ŽÏÜ^[#a”…r)´º#èX`“|—~‚oLF
ìBw0‘ìÚÛ¢Â<>MÈö†aBPž¥³´ç;¶¦åõ*²î“1ÖÜ7aó‹‘üÁj¦Ú Š`¢?žî±uW°c•K•뢣`L UvàùVFoŽKBøîìzÆt©òÇ„#WHTÞÛ‚‘ÅZcJ¥ç>$J½ÁÄ8#›�@µ ÄÒ…®å$aüéN\ÍÏQ3æÏ|[”+ÿ¤X, –ÿžfæZºþ =ÜY¬Ç
ù0(ݹBà lcT’rÊ�XEÛJf™X‚®è›R /!ÆËMIaª…a;øÄ÷óE0H<QY3=ƒŠ¢0 [�óŽ”/ã„èd0¼�ë>\½m ÿ’YB+¶ÆGjüôÜ[Å«p¿¸�%E¦W$.#ÛÛ§kCØ
S; Ç-ÌȆãÿ�{cÐ<—k±Û\'EßG2£ï Y¦×Ê£q–Ù“kc c1Ƶ^å½Sù²8?ÌåW„$¼gJ/éâ‰G‹Õnuc‚wTŒb␍&Ž[(Që^Î}�¤o-Û ù <ógpí^ë;µµÆMw|Y�„Òù , ¿³¡ûíÞºBeb¾‡‰‹ã»fµ6†.Á(ÂHË
'±Ö␍‰¸¦G ¥Áäë�Äkcv’2␍Á°¬¯'D²>�…±ur�ÅI(ÊÀ¡Ü0Ðð<×Q²„½$¹õ�‘yÃ÷¬Ï}îÃØ¥+[ú÷M?‘3mti#°[ü}Ìz6¨[iœ5ú68öKzC¦ôϲ&p‚¶wn>±#o˜¸P0fáYV,.mcTfHZ2H¶Sþ Ý…wîd§oLÍ×:~2æï\[ˆ²ö‰U`©U˜Lõ­³_õ/©†>òDÎ}aºuÇjx9e„Y�7mÆüä�%6ä\øy?ª½âzCÐfVð’‘�îÆøD‰‹d„ç␍Ô›8òö÷Üø␍óÅIPžÈ—æ"FìAG­|IõÖw�Ô#¥kóÇ^*}wÊô¤ão0$ Ñõ�MK¨>vŸ_º¢<0vE¹:[íI†rGSZh“šÊÉJ•ÉÞÔEzÚâ!l[®`<\†x2ïù¯‚#û
2Á¸¿%†ÏÕõJ‰å–'ƒ/ndÆ,l Zºgè«gÉ嚼ɥӤóv7ë*ûµ01ŽÈß8]õ`f
£*êÌYf;^2+õ`¢2K²y\VÄèšÕ_}$µ_ªŒë;—¢fËóá¯_ìĈ‹·vÈáo¹>ÿúDjôzc2»Ž¢ÂÏ:‹º #ý´ƒ™1öhÌ!Áä^6ìu{6¦Å.^ñØ÷ó7Ûr�␍½wHˆ�ª8¤X¸@\ñµ"‰,ýœåj.oê©0XAMcçËïÎb�.ÅX˜�3+�<ïM‚o‚Õ
ÈëƦŋ¥¬¿³LÁÈ÷‡·üI”Ð)œ«y0
A»sCòƒ¨P+ÁVþó®;>ºf¿•,AgÆ{És„„£�>`(æø␍ÆŽ##;qK3WÔ¸2- \·xÅ·|»�K¸ú �sN”Úý0OìÐÐ.Ž(9PU˜¸rEL7F¯LâL—F`±µJ¯ïç:ž=û¿ˆG’Kß95ïúÈ'¡`YrÍÀÁôXi}”ÞÆEvY·IE¹Û�úà/iˆmêèÞ²ÛtªmCPg$êO×£+öŸT–cƒ¹#¨Ïlk
iru�Z}6&ƒ€ÒcÌÞ`zè? ÍúaÐ21Ï
Æ\¬T:Ÿ2Ï}ZìBíI0Éf�§3ºí=˜=(_<êË)pÆv9&mCT®Äñ‡¡ƒIç(÷ëôq*èáJSò«;˜‘¼EIîºO0Ø'»=6ÅDIýw�-àâW_߉7½Ãa8ñ`F–T6°Úõ¯sv„C§h y0='{zžãÝ ÷Œ÷Üg\‘)ÊRÓuÖ Òa÷‘È<eö›�ÂÙ[›ˆöGÒlÿ�ïàë>5Gßyfýâl0’y2ª,Oï!G»ÄØéè©3EŽ×B\}CÞM–·ÙçÎ(t†!)A æŠIz’×´ö‡ùŸñzYÕ%©‚üýÿÄ©få¥.:Apâ ˆ‚‚
Mƒøö~‘UY¿ªÝxö‰�•¹V¬ˆXaZj† ÿi(Í”ÕßoYµÎ–moÁè‚<ƒ¿ãèï·0÷Ì8cU0î.;wöÛ�úÅpxÑÙÆÚM…#if­ížSU$ŽŠYßsÔÓHœY‰`é&Ô²\o/çO¹êQ0ŒE³²äo}vIÆYކ)Ó…ÎÌÀù_u¶ÜôL�^lá�TA[v¢ôöK¨ýZ ú4ÝmæÆoÛµ™¨Õ>1TÚBá æ|é£YgT\ȇ7Ú%Ç¿4¬Ià 3a\#ÒØøîxÏјá�häœúŒ°Ð¼Õ—bÊ#␍9ˆ¤Ã Ï™ë{åXiuÚç1ŒÕ™˜ÜwJKb›Çt®’¬u~‡ÄK)&�ªLÖ¢+9ô=¦ºOÍ¥�ŒŒï. Ž-´W{’$ųC³*[H�4æøjXÈå±éD�“•‘y³#¾Íª-IÇif0qË”´»ÄWSÉÅUsÓbQl°µgu™Úì¼Ý“|êL<’ö0¢ÓD:L˜Y»rdÉdÆd÷Yï*Ù«´*š —ØŠ8æ÷ÞsR‹ä�-û␍ŒòzK:ë«ßœ^I“ ¶@²&ˆß5™}…5oÙ:zÂŒ»ºNxн¯“ö\ÚPÜŸ²wb¥µ¯ÇÈJbƒSø1* Í-µNq/j dÞ`$—=ŠÇlûJ(G¾‘lLˆ!vÿDtiéM{xÍ,ö@X¹·*lçXor·’kFæmò׉jè¼­Oíɉ[\"µáÆú�6KãÍNj¬u–œÈaý`dQôýÅ„ÿñ²#�âÆ¾%rÉsa˜1Ãd톶D,÷‘$¹2ᑭĨðÁ�uªmÌûz”|#’óì‡.b™<#]e}‰�Pi]ؼ›óÚíûÛ#!-JÕ=©áSi2�;²…’nþ凟ýñ¿þñ§ßüõÏ?ýõŸÿøÓ�ÿþüÒ�~åŸÊçþùíõó»Oýü퓘ìÞ[OVKDûüëà ÚUJö4Ø~ÿ|öïר‘<’(£÷ÅcÌX½—N˜+K
Q÷¹-V5¤®‹U?Ö}ÌÉà¥#&rL¾lÉ$w,ÉgÄ�Å £Žé�¹í-õ?L�dzŸ›˜'G^4ZÇà˜êo%€‘Ù‘:]û&}'•èl é昢R2/w×`Paó‹»H¬iñ–3Õ»€Æ· [ Ñ3¢¬VíZ�Ž—ì''»ƒa&µ&êÒÐõ"µ²áev†¦\#c]c‰�+1�2�›f– «lÁ¤¾0Wò_\`ÌÙQ²“tò,�0¶Â3OKæðŒ$‘W¾· ɉñvj³c®D
ªÐÇ[œi¿-ù¤OI`ÖeOö�EîûÐ#9Žd”ë†&‹‘„þ¼†E©II0F#Iê“Ç�iŸJE®É­<A@$åuLX”EèŒ E.=“ Àñ¸‰¥™„2͹%%^ë€s×9šB„WM Æ›£‡âËùÄÂ3ÉÚ…Ž¹Ýa¬ ­¬+{êH…�㘎3¼SBÖ´r,ŒåÍ­·wãnXyGƒ·„¹k2q"DL’B1%Îv¾Ÿò+,ß­¦Á\=ySÌHh_˜A¬␍ÆOÓÆô8ýåÇz:)6é´´d/“Œž\iP޶®ãĦ¥%<£Jš‚uç:g$|Z@Ï'Ñ\Qœ­§8«>²þ5LM2]¼ˆ+Ÿ//†› fü'D?§¬¶•‡ÏpW²­m3„é-‰S.yc½ÜÐZ÷èÙÌ–nŽ×rÇXv s$TlXxNŒ G’ˆªì/†º° Ÿy8;ìaF­ ãýÖ¡<‡÷g‘LdNDdíÕï1T4ÛËHòÞâ&(Ò�/dd<¿Á8Ѷ@lûù}“^U�º÷€)ó%(0¼˜’RX�ÊüÒUd©r̸·klô/ÆUÏ{¿±“ô™nöíÛªHà–¹␍F¸A-Ít¥ýÛñ=•O
éyŸÌ¦„õËœhÑü{²Ÿ…-ÌÙß¿W_üÌç.Jä±ãÈŠ»m_›}üVü¹‹žùtQx11œ�=k
ÌPB�HöÎÔ‡ñ„0””n!út£^ßÙD›–$wRŽvQMJôޏ©3¼š»ƒ™Z+Ô¥^¯T¸0‘F® …ÆÆ,‘åx1fPﲉ|Z\’BÕ)®Û«8 Q@cb8•ĤÂjóU@RæÚ{b/Ì0¸^•;Öu7öLÜ>2T”ã§}öí}V”Á$Ž5¿cØ�j!ê+ìg’óÞæP)…@g [/Ë=Š Ÿô¥ô`rf©/„ò5ÆH¦ïL’†þ»ÝþŸ‘’ì•!%¥È³␍Ö×ø|f¯ ·g0␍½.ôKFø(§”Œ ØÄØzér*»î“Dy `I˜Š!Ö1Yd –yur·6Œ°™vmk®”Þ{l¡W,*�Ì$l¶gçM¸Ð›šX¨0È_gìzM-!…Ø^ɤ²/ŒÐÕ“�=­¿AÆ ñ¼’~úX€¡ë¹¼Z‚š9°ŠzÁ0OúL ||ÝÙ␍QÞ:æ9Ù$ˆÃÈþ³Î)|‘ÑêþÈÅɼ?µã��FË…e7®nƒ±µ^Qñ Á¶°¿aXçµu>qãMÃÎ%“]T£¾}¦¤ƒ“ºCÌë.yšô¾Nf·~‰“|:µeåö2÷·#™K~ÙÑj AêŠëîç‚4Nøó߉ᑾÜN/¸Ö§階êO hoD¶Èí± fø�RÈ©ï=Y—:'‚<ÛŒHá“¥‚1`d[/7Š?1#Qû˜–+ ƒìQ�‘mOºµ`„Ó!|Ö>’™$åjƇ¢§øÄ º|{©¥t¡� �œí§bŽþCŒ]ðHù®ñ`lZ¼ŸÅÛ÷‚‰Vèåž…h0Ù¢HC‚ÌÄxÕ‘u,ÿZߊXOý(ìRŠ&Î1îl°ëéÙ&Hn‹cªøU:N×L¹ÿãmØ3žd��å˜H׌9„°§¢%qé±òµ TŠ–àsÅÛ%$F]f1£&í÷#␍ý@·'ã±Ë=É^€.[ ¿<½Äéú`8{ÄÍcD`‘™¶›<Ño<˜moÂÖ9¿%(Å�„ÞL mH«ÎTrÔõg†sŸb²-k‚p0¢œüäG(V íê1“h0ÙŸul�ÀÙî®Ä³t³íAÉ({¶YE|01°ì# âÊ Ò f„:ôÔ&ËΧSö={AÙ¢ £ÙhlrªÔÓ”2Jr~g�Ncmä³mb’ƒv´$„×ÂDÖtO=˜ÌUVËl…ýÁ˜»’GˆéÛg¹ öäM²¯sD2 ¬n ␍#2Õ´æ…ÑFŒ*0‘%z°O“|0ä:òf��F ›ÊÄ�Ûý-úzŽ1Gh�Ä 2¡Jñ(Üöó,Ù0içþñgCM9û“A¶¤Clb*è�5®ÌTzì¤Ç¨©Ê_Á0¦äå,³eaŒXÏàQÓ3˜]u½KËŸ\Ï|âËmFÈú™×˱tP2¸Ï‰‰Ù8Í’9pŸšôe 96·sô,ê„ ˆœ™,cAˆ”Qòé$…=+’™±÷=NSÈNž°eG=‚ÉUl¬’gë czÉ×ÅÕ‘fÝ6r {“ÊÈ"3��˜|�sê"YFö»“PØä¨£¥<-Re“ŠÊ=±…¢Nϳ$û’… bßƆFƒñrLH ÐİÝz-HE‘Û\_G0{v?žÖ]ya4x†-Ix^‰œì{×-¸FÒ$åOªC>Jzi»»Ê-=¡­dP…ð)CdY×qhk¦'ökbŸcCκ´ä¡*ZÖ·ªÁŠVfÛ�ÌZBЄȂªùРL6\3”ZÜñ¢'çÅeÄrQ<©Þ¼f¾¶Û×zrïFÍòÛ†úA¼›!ç:Dz¤&!ÅUÄc·!a[§l¦ZB]‚óõ1WÇvŸÂòuR~ÆÕ`ˆ¦0æþÃt�%Ù�#AÝŠVÐÆñ‘ÜÿÆú\L«úPI™N �žiDyÞ7þŠúûeJ�òõ)1g­†Î%Ì›Ÿ=êÜ 1˜ƒhÔ0†ˆ-ÝùŽcÓ_ÝéÈý{„ØJ=×ɘ£%bü²-«VÄÄð7!fQŸ6G|hîç”ÚPΕL —ï²®€¯þ␍eEW£ÌTÕ¬d¹gé=Ùµ¬…íªÆûæA$íªçñbÜ<×ìÉçìbWpM‚^AHœ;°Ôy�M“ 1qF?ŸêÅI“tÓ½˜-!ff×2^~·Z=ï7çÄ`Ï%c0Æ:߬Í/^Aª³5,A±öè+AGe¥�… š˜ÓïGtª%Ù:FLRº³‹†éQ=Æ;œ•ŠLmÇÄæó×Ú¾sÇÊd_ a �®”÷
Óì-«Q£ëĵsd>¾ì_ñ-�°ù™"|Æ šØ-µ)*"¢äÓù¤D‹öxdCz�uš)ýEo¦Ë
¾ue"ÎdÏãŽ1qò3x9“rT˜£v´pLŒ¶ ŽX&€9óèõ, ML–!}˜Û0¹o²�–Ÿ·:Ä·k:C¹�ûÿvå2ÍÛ11‹ü—Q[¡J¢Ïˆˆ7ß:erçC ‚ZS€oøÙ+_dÌ$ûo/žŒ±)Oª9Ïé=%˜¼à åÞÄŒÔu9ݛ˜�W¡ßw€1iå)?¨€Á•.¤�래žœu"ä9ƉgÛG-¯™Ù݃¼Ó……°�uŒYYlÉ^Ÿ£›¨ÀöžÙÄboóÉÏ|ë8Z$ͽ<ãîcßó«}:19y¼˜Þ�½pÆ+Î:éÀ\Ͷ&åôHI˜2”Ô@I¦õ„qç'î±ã8¾0�R”äù­³?G¬æ¾õòSü1÷*Í~ëèeÍô¼÷*ŽÉóÒ¹Cö‘TzœŽüæVš½ÍA'ÆFbKÑÓ¬ÿ–¸gÏ×z°7©Âì¿^B#Äùa´%=‘N�W!aàÍ'²c¦@x¨KÍwÕxWÁݪ…¶u”. òdoä¹Ï› _wŽÕ‡è8LÌ1ìpÒ>1{ϹÚ§Ùî^Abžo–„•yÎaä`¸Ì«È‰ç�·:GŽÇG�~ÑPaèš�ÈÔl÷Ę »!Z4†p$>ʱ¼ F÷ÚëeîÂìWÙæb_Ý‚q‹[o«ÇoTÙ…4“N¥mƒÁvÌì´>tµ}œ‡tAX¿s 8[3sa4r=bŸ³Å”e&²±7TáíÐï=é’TÂDNK·<Þècp<Ÿ_l£„Zí>­ÑÙŸ ‘2otôü…+ÿM�„ñ*¯)ÚÀ%×¾QÑuyK()hƒ50†c]Bá'YÄ;œ\͸֯W¿<áùËjpÖB ²¼‡7ÇèýÙŠ%¿‰)©Æ…ûkÍͺÆõfšã[2Ÿ8ã~]÷“9>r=&'ÛÒžá¨KaûMŶ7KtïœËh \¤3Ázî\'ƃ³[üér¾[Éœ␍—¬_ýÜ ¡û»Î†wâÿÌäßSÙ¦þmfÃèuëx(jbؼ³Ó°žc/KªÎcÏÙ:µä/*>ÞlS›æ Ìí¦˜J�̲VCŠ—jºÌüS›²<Â
å�àaÈî½Å=ÖšEûZ^` XÇâ”gbîŒÀšñ¸_L«PÔýù›Ðe‰nõ7c; {ï‰?í51ú3†[k°�ÁÓ—¾Q¥¿ ÷Ç8r�Ÿ„¦ëc ¯Í¨&Øã4ê�eÄOôfB®Õ`×›üô¾®Ôϳ�d ç2^"}
˶~ælF�ò¾aŠ#jSxY'fÃ\þ*�Ì’ä{]í³|Ì äV˜=Ó�ÍÔ C·xØsüJ½ókBq’7
ôœÞª×Zÿ7’«ÉÒˆëoJ€ã¯´8Ïs†2²÷¿å“›­à²èç{{e�)G}w¯ŸÜ8NÞsÏmÂhô½à²üŽí“›³á縶Ñ„!7Ôh=ç'[jÁ“gœÙÛp—VûÖ1W„w¼Ò=0[No¸£)mì8¥×.J­ÁaØk·ÖîÅjcï±–ý†VåP�‰aœ¨µk¬ë¸×Q¸E˜öÚ?{€¸ר0Z_+hºû“~MG¥Ç™s±þõÿÁ<ÄO×UþQç­s'»½}–Æ‘q‹þ¾Ç^k>®7'ÞëİA␍)S¸Ž{52«fP¥9¼­³\ªÈ½ŽúÐÙ¸ieÀÿ,–´RrDº–ákE 0`›ísçð²bVÃ�/Õð.•ºÂÜÀZ,ÂÃÒº¨o˜éÏ9Þ™2´1ßÂ…mƒÃ(ô³O ÷‰úެë/ŒÎZ·àœ¾Æã� ècÓ¥ ñßw6rnJâ sä|IÉššM ‚P{½xÕÎ|ƃÁx°âî9Ý·‰ña
q¿˜¥­MÛ:�la‹eÈy÷Ú<“¶úòºB÷:k ëC¶GCýψ0 "òo‚ƽ–Þ'ly�/SAã‚øÑÏÁ9º2Ÿ{¢Ÿ_–ÞkIâ2ŒaîŒO¾/.ž;Ó3®•ê„©8TJéî_ 2J(LÛŽ½0ž¸Øñû¥(˜èŠ_d5ö øã2±K¡pÿiÀ®šgœÆˆÕ":ïPÜ4“§BŠƒ]E�e¸ý q²¥$â'cs#ºUÑé…è·§úiÆ®ü±þ½¿¤©E±Í^68
SÃN ºõÕcüzS²6·SaÇ×·çÔHe¡\
­na¬“ËþßLFv _˜$ûˆ6ŽiQa.K“²‡½a˜”gè í·Ž©Ùº½ŠŒóÔÆ÷)l¾1’?�©6¨"Lúãê.»Î
îXåTåuÐQ¨@+;p½£ã—„ðžÙñ´éPå— �<®�¨Üw #‹m1Æ-•~ç!Q^Ð]ü�ïdó¨&ÁƒºøàNÆß~ÅÕþü¶º3úÛ œaüJ±X,ÿ^+3s[¯~!=ܹ�+
y1¨×9£a6‰1ZJ9Ë1Ц•Ü!êX‚®è“R /!ÆË›’¬†íàŸ×Á ñ¢ ²fz*Fˆb@§>¾u8R¾Œ¢“axǽ¸zšþ¥^B+¦Æ"k~úžSÅ«p¿¸�%E¦gWËîÛ«k‡°SÛ Ç␍ÌÑ„ãÿ‚ÇobÐ<—k°·{씾eFë}²L¯]”
ãá ³&&çÄhÆUÄ縕ûÞÊ×àüaN_’xO—žÒÅ•GËjoëÄ„·UFq␍“ãJÔz_¾ó þ=?Hß¶0¦Aþò ü0úOãš½ýë¼Ô¶'aüòe{Jç�0°$üׄλ»ë•Å2|“‹ã»lf´&†.kÁád94–.±®rqu�ÚÊ“s¬wω)ì”ê†0,ëã
IÖ«³0¦N.08…¢␍à†␍ßßq”¬°W’ëõ¾g}~ßyø³t6¥ÿÞî'rº�.MvËßgÖ› ÝHãôÔè�àì—ô†,té?ÃZ àMï=ùÄŒ<1"p 0záV,—61*sHZ2HÓ)Ðî…wÞÉÎ>1 šÕ:?™ùÇ;ç¢Æ¾XV­b2Õ7ξÚߤ}0äEÎy`ºõËzðåÛ¨fužž=Œþé¯K6ä;ðõ¼T{æz#h=+xÉHHwb,±äÅ’Œx^C=Å‘g¾?1_N‚ò$\šƒhýc6:jå;Hª»>c§=)“Ì¡BÑ¿�2]½ø†}Pÿ1i Õg÷ù¥3å�1+ʵÓÁcª=ÉPî4e‹6©©ÜQVZ™ìI]¤g<„m—3Œ‹ËW­ñ|ëð*8rA&ŒókPbx�ûF½*±Ür…Ñ1øâ‡Ì˜…‰AK¿;úÚrFy-oré4é»»“í*”ý˜Œ#ò×Nçúaî
£*êÌf3¾Ô+ë‡Ie†4y\Vâ¡Uõê_}$µ#_ªŒc�SQ›ò~ß‹�8rñÆ9ü®Ïo¯¤Æ[OL½k+*|�½¨›°q4Ñ×öaîŒ=³ÉÿÙ®›T[’*
À#p§cW3#"##µ%ØÄ!ˆØ�T( ÄÙû­8™Õ�÷nQ÷¼uâoï½~‚Éܬ™ërÞ˜»xÄc÷ó7[²‘ íwHˆ�ÚqÈfà"qÅÇŒ$r«k/Gs˜xSW…Á
Þ4v~{Î,Ö¨‚VŒ� 9³òȳß$x%XÍ �¼z0&-^,Ïúì¥ ZÖoîò‘,(¡]8'Vsa<íÎ É# ¢B­Ûó¯{õøè=óíÉtFl°›œKH8Úè†bޝ`Ì822]
X˜1£Æ‘náú ¸Å#¾å 1ûˆq WŸÁ`rΉR»sÆ5å−½
·Ó£V:q¤J#°˜ZO¯îë8®=j�_Ä#ɥ׌œŠw|É'¡`ZrÅÀÁÔXiu”®ã ¶
»LŒÓ$‚¢ÜÛ�úà/iˆmªèÞ°›t´—‚:“ Qª]1ÿ¤r[f0˜A=G™]HÃ�«ã”ÐêycÒ(=Æì
¦†þR¬ƒ¾�‰~ÆP0úb¦Òqnc�§Äþ ÔšT“lVy:­[®…¹°Ñ‰òÅ£:�gl–cÒnˆ—ÛâøÃÐÁ¤r”û²{[/èâžfË·z0-y‹’ôýv<Á`ŸT¬»l0e$9Ôç8·€‹_u®oÚÃa8qaZ†T60Úû§rv„C¥h ¹05;»z®cÕ ÷´k�§‘)ʲ§ê¬A¤Ãì#‘±žÙ=LvÎܘD´ß’fë³H¼ƒCÌóìÙºçšû7Îc ™'­ÊòÔr4KŒ�Š®w¦ÈñZˆ«¶`È»nÃò&{�…Ž0$%(Á1IgòšÒ>…0-%ãÿq(ÎäÕŸ½D­Q“Ñz␍Føý{œíÙK玌³®
ÆÙyçF~ÛY^ u �ž­¤ÝTXg–Rÿï:…P…âh ›õ®ã=�ÄH$‚±¤“`Ëízj;?xä¢FÁÅJ
È%ž÷霌µ,␍³M™�ñ³wnZ¦@-öôW�[:RzêÅT³þ-ušê6}ã[veFj¥M –(܃ÀŒ§}k„Å™|vqk»øø§␍KܰÓ™0Žj¬t÷xÖQ˜Ã=µ‘u¶´Ï‘.4oåi1ÏÃ␍Y¥ÃhŸk¿gJÙr]):õ¹ aõ #‘{§t‹�Àcs™Fµ@âµÆ;ìz�½äb)žI,ºâCŸeŠó”úlÁðøÎBàÈB}¸'N’=;«�…˜Ž@aΗÃÒ\.›J”(ÙvdÞdħX¥Æ éqœLÔ2OÚâåTtqmŒ‚9�©‘(2Xë]&7[Eßö8Ÿ2��Ä=„èÁT–N'L¯](2g2m²ó¬{mÉUJN†Jì;æ{Ï:y‹ø�=ùÆóºIåáoJïIã ö@ØïϾL„7¯I-fÆY'}ª{%m9´¡øn%wêJÕW�#d[lƒUè±Vfškj­â\Ôð¼Áp.=ŒGlÛrZ}k²cB ±óÇ¢sK�ËèékbÑ!iè^TØÇ±îäl[L¬™§É?Ǫiç}mÕã÷¨DÞ†«c8Ú,�wòÆJ'äÔ@Nñƒ�…ÑûƒIÿGËÎ\ŠÛ3Lä�caˆ2ÓÉÊ n Yö#NryÂ3©DôðÁ u¬mÌۺâóäC&G¨k[;!,­
»{Ób‚»í¿ßDàÜ"WÝâ>'ãñ¨#YØRÍÿâ—þõï~üé÷?üõ§þõÏ¿üøßÏo|ô[?¿Ø>òó7?ølŸ¿öÏ>ûöù£½ ºÁäÂŒ½Š4cž}r3ó�‰iøÐ÷œ;˜¨{ÏP¹þ·¾)Ó£ì¦XaʯŒùä-¥‘…éa[Ÿ¨z F*�õòŸã®ñ³¤e\÷˜ëèNnÞ“É8û�Ñ�L­¨»×¹N¨ÎÈ¢S�wbšfOþãp(I0úóHCêÂ2n Ê®AìùLxȽ޽ÝÔ†ç‰j>ÊÃs¼|’q=$ò¸Í´YƒÐe(F£DTo=°W"à˜« ³!qWÇ�уˆ,äQaZz‹™Pô±nå‰iùVÁt4ÂÞXÖuÃxEûލ> C«‘•ΠÜ�‘‘náàs'<ë␍Gt­ß˜K$IEƒ¹*«$Š␍tq_<&�Ž(^Lj ‚Ä‘ÄZéÆÂìáã+¤Ç¸À´#Îþ�_ÏÖ¦ÌØ©4KÂ>íº¢+ËÝ^‡ACõ†VZhÁP.ƒ¦ ˳S›Âm>ôr .…ôý˾06ž™ÊÓÏQƒß[XF»”Ã!¨‚Ozêéx�UöFçXëœ ‹Im8!†%a\ëNcO~sïó˜ñ!%r§ÆÚ( Ëq)-ÏÜo=n5:w·èAðI£*è—yþfŸÞ(␍81(åÈŠMç1Ih��U›«÷:>+ȗǦr_2Ã>˜U=¯{<{¤²rf±½c’"k”?Fæ\{•ð˜ì— Å$BU1¢÷_Œæ#”ºWƒ‰�ÝY„>-öP
V¶–gדºÌ4^Ìt…áå6õ¹¦VÓ§ß‘Ïå½ìyNá¡óB.ßöáù®iŽmnDúM'£ÜWÀôÏ[»'LÂyC­*rcÜ Õ93‹ F�ë¾ëŽT�È9ñOî«Éi’’ܵtÛ[”iáeÑÔa$•jÝÞn«ŒMìÆ␍„–�Šu¬Ó\1¨²NJL�‘»"iw< Æks�8fÌuÐ:ap«»LŒgßµ¬/{¥=ÎE´¸©–Zó㎠&¦Ä‰ ”Z#“j£É“"Üöub"ij�×Z'F$Ò„ªâè¥k³äå~3£uµ�¯Å’KQÎï½/LÑþZµ…ÿƒQ… ©åÁP#§‘� uÞˆXÒãÝÊ0gèyÏȼ¡Èø¼ã]çb‰â§Ã�0‡jŠë£o<�ÉÒ<ÓoLJîÌ0,k¯ªÝjäšïœ>žÀp��ýx0ý̩٦o(ñ—gÒXÏ, &å:g¨ÀÕµRùq#�(=Ýã1æ*á@=b å_˜9jl
"OÆA�ñ(¢¯�h¿
T($˜/iì¿´…©cÒ+»ø�\q� §ÙŸuÜçÀ)[BD¢.×*ïëÞ6›_“¦imv¸žkQ˜(>öž{ñ•{’Q÷»×ä
û|ÀI�È£®ÜÏŸ­C´¨h²R¢­z*˜~mï:O“N`bTklA¬Ë{¯žpÙ¦áUé“ñ-ûû>Xgó½™iµ�Îì™-û&_¾®yýžküÞ¢·�p8"­cÌŽp)ø¦¥oÙ¯LVòS‰µ³™ã:ÝÔÛ<Ô™Q
¦†BК·¾=(YH˜vaæ âoÖÉAÛuMÈ<˜60ií�ˆ›Rãö‚A–ÞôœoúNÖµ±[î²é JŒÆ­Ï=Ê3¡Ü¾c[®ÃÅ„¶Ìf|&]žq�>;ŒÂï ¬�>>ë0£ãÊ|î�à¶Ê›Éåzx•?²ÚÑï’­£¥±K:aO_}*Ù¬F�Íe„ä�2$ˆ.¶‹|'KòÕŸ’jÏ:?=‰&Q<û¹Nlbv¾M5Ù˜¶`Ôa[Ú‡É9žU>©SZÎ$X¶è±ž�o!³)Vè¾Æ�ëJê·ÔÆ éžˆ)YÀ$õÊz´z½,␍•c5T0ÙÆ¥£¸¾TËænÚÙÕZ÷"Üd¢Réì–Xcðò¿üìy½Zœ¸›ÃÁ\2˜%@íX7ï1΄ËÐ((¡å ¾Ùíªk/¦$f:MV‚áH:ƒ¨ Ö:6;Óã}¯`âØzŒ©Ã?˜¬í„
xÓ'ëÄ<á£Çðô®�X´0*¥ÍGا>gŽ`gùÆJhõ^­i‚%Øt7Êb‰}0{Œ†ëYiù8óë丷`<ø)–Ǝת_CsY|’®»I.¾Ò} ú¶‹½9ëL$c=O†À/˜²Wü Cî‹î¢Kç³Îˆ;,:‡}Ú¦¹)‚²û"ï˜eFȽñ#˜ÿ‘]gÙ•£@@·â%�„´ÿ�õ�¼úèŸîcWA1€wT~gz7yô\O¥Ï`BõÕ¿Þ~Ù³fÅ›Ìõ.»N§v(ßþ\5-#bÌ¥ãÜÖ¼8»K¬FA¢–1\vâØ×9ã©�ÿÃ4»žŒ˜w½Gÿ%DÂÒ Þ�1zÃúǾÍamÌO³¼W0ʉÉ~ßqí␍{Õ €ÉÊkÕk.î� u E–êÁ¤V·?[µˆ´T ÏŒåˆbG¯âŸc#wzô®)éáoPìxS߉ ¿Šoý¾$FÁãäK)úN³”±¦¥ &�èèÑûKª&‹E+Z}‹ßÅD{2ßý¬SˆéŒ[_ß2GB–éù�ÃüãÇ0WQõ³tc°wab¬¨4i¢´0ú"àEûîL5�覡Â|~NÓóòCV9F鯑j~åg7ž!wvïÞç$+¼\áôŸ`†␍6ñ»s.Œ(kš<êÆ…ù™ïò_”ÚcÂô‚š±ÍÁ÷°•;nÍ÷s;,;Ï:‡±BE’̵0Í™wë3�£¬ïcqâ4¯…1l¢Ë•åÁð^ÌDY–U5;¢%V^¥ƒ‰;t¤Fã]˜ä ®ÚÓæ oNM,ÊÙë!‰¨Ÿu#˜Kª=_ÙÐ{a®#¯x¾O9õyÃ`"ê>†ñŒ=·T³c1~%Ú×Âfý¸‚`ÜèUÜØÂð_1KÉ•6ÐÒ*¸²k׳ZÚØQ$¦áÈh\ =¬‘oÏ…Á&º7šò£Xþ„‡vÅsaîêsæ)eÆEe+¥ÜøÇ…Ñ—�þ|ã¨Â{ÍÒ_[\ØÂé!YƒÈŒ„?‡ÒÅ�Ç>‹`.ÂöƒCúÚÂŽ³î8JÆKCS³‚->õëh¸�Ž[íp×_¤C"ÒA5Æ/ 3Kp01ã EÀ�;ßYàð µ±éöiéaûÌüùîs -'ÛMï]˜‘4ÃhxêÕæL²bÊg�FT\
hS?Ú´"2Ó2w²ÀA¥uúþ¦�T%!²�™Ô76Ò-7Ô\˜LiB­r�`|9rË\ß}`Ôݾ³e¸L�•T³{B“­úÇåĸY2îÁ¨ôÏ~F£QX‹“�™+³™¸jÓôã^ —�œXVËH7Â"ãYí'~wÛ_™õ®/œl_ôTÖ‰à¬Û_…žlòaZó,L|ñ·ØOÝG‘ßÔ< ocì§ózšÖÚlá^køí(Œ!åëߨ9ŽÐ3íð½Œu¬:!õq:�¸9g§Qú+‡™h}}åy’ ú̸|«ÞówY8ßog�cì“yµñ‰dÏ5»;�Yýu³ÐXδ~ùšFa<e0¶‘ØùåÇN0ßt[:7ŠjìN ûþîÖ‹1%y³0®6ŸØóeEøñê�‘ŒÉÑ'¹J�œv-ˆðÄEÜ–Ed…ALUЈ±0WœZ.”0Ìrà¸(ë>‡B…UF‚W0W M‹.¸ì  ºÁ\ß³X¶L¿jÝßj%Ò˜QÓÑW=ë~’Êކυ%e\NZS
clâ#Pßqm RÁ°&jd
M呚§‰öaœƒê懹Bî€gÿ0�Ï‘Oýe+Ì‹á;0d%s,œöqVKQáÒžëY£1Ò
_S’äl’®'‚ñamaì½~J?1úÁ\±q:QÄC›Ï7>ùL}`TÓ;XeN¤8ˆí®sЕ�Né ÃÙÓQÍj™␍˜Ç˜ÆOñyפ§º" ˜ó<Çä½¶FŒ!h µa›ó, yö.lÔÖŒ1,Æx$r*^a8¡”ãH<Y˜‘tàf¨C¯É#{1ÉÂxãst ´…!eö˜E8>óS†òˆØ>uW)5æ¿¿°Ô8%Ų¶ë;g$šh(ß{Ï…¡Ù$;Ø«_È>¾Ík;fÄg�D®÷;Gz³“Xó˜ÏÂÄCG‘}«î£TUfãÙ„�<ò—#Þ#�'`#ßÛj;ƒ�þ´8¦ã;FŒḴ»×Ædâ�¬èÕvYâÍ|iÅZeâok“Íf«O]qýJIé B*Ž8š÷nÕ-»¨°þBG7ÆRs:¬tø1šúDêiÏÇ»„ýN%,ÔèýÃ@ݱÉn´0ìMÜ}(ûü0Ée±¤Ï—Nþ‡‘`œ8ÂWhäY˜XÒf␍Ä—rD#§Í×—Ië>ÆO?Ù‹
T�Deº¬ÏzVùónÛÑo¯ìQÁýtÚ5\gd)óoeÐFÅh…K^!˜;†Ì]ñÞe¾GLè›÷ab`¬�rmÌHä™ÌH%ªq…ÏJ�»¡<H8ŸõùªC û18ß}�,Ì~|ÖËM,޽cYö93\•ÀÖWù^qEÅ÷€=Ñ’a�c¬,é;ýìs¢œáCñ§¾•¤2Y;²7ön¡T¤…Pû[çà*í=†Ù<÷né»iAG«VÈ&êõä­s/NÂ[,—UþÎ!’Ú`¾ßgŸ£7šj0ÎVïê±õÙ�cË­=Ù6Ååµ!SoTùŒmý xñ=r…V¯:ãî^¨ÊE‹1œ¬ôäkº0fØp˜rì—K ¸*>µfÇUµÒ�…ªý%f´Û[—¼? 5zÒ)ŒØÆ{¼µ{A¯ŸÑ%áÝDˆ…’uo3.߸ñ¨G¼Û‡Ñ‚Ì‚Y0¾_²nÏ?Òm¶ÄÎ>¶ 0¼Í9ë6scÜD9\ñþ ‡ÞE9Œí¾Ž<jt³_¯ŽÙ*Oà´ß1Òʤ?´ó›¯#Äw4ÿabK0MJ_ýLÌ�ÁôãØþðIò!{:aóã-†iÿ�£9O~4ƒgaP铽ݎ�´q­`¤é“”ƒ»÷(=*gGœHñPüÕ`X®­Ø"]O(ãÕ®Âp␍îåu©q²‹sÄK&ð¼™ÚhâÊ0ÙLž�kþ ÉY1÷Ï?˜ψË
}�´Òš–�¹ÏcF¾uœõî;¦c&ñœm{•«Ž(ÓÓð‘œùîo]¦€Ùeg�C· á£ß¹}ˆS#e™¨ª ×i’,’*o�áÓ±ãÍÊVuÂA^˜±ý�ƒwÔKW�Yﲩ†¿Ç½ûÅ:ÒôÃqü\'°lš¬Ãâ¿!Þºr¼Lv˜“_¢Åʱ3¤Ïs¯·0˜ŒMÑçg٢˶1 ^R=çkb’žøÑí,µ›çèM˜C²KxIËY¢*y5^·Îi„àÐS#uìëDXÌú“[˜#޳D%&T`#cšë^=ð óÙ&–F$Cš.Y4ÙÔ€IÃtý^®\bâ�êÓo ‡µmν0ò…¢PoF5ÑA8η9g=ž§¡à_Æ=£OÖíÜ…©6Pù@\ndà¤Á�\Æ@©…–Äs’ßPüÆ((þ=ªŸ0—ÎùeìÈaIutä¬OéÕEÅÆ¹Ï9Ëpíº
Óž$ bùîp£Rv�–<…ÈÍU<ïþ’|ƳèË|ê6ýMÏ;×}îc"ºÉ2ZQÇd/Ï­ÜY�•µ¬«␍å¿Ë`tRcï­F¹hå«`ô Ã릳␍ÂÎlþqâ"±²0•ëˆ Š}vö#Ýõ9q!|hÁïŽ%57¶²Uf;&ð¯Ë6ÖµpìÎ~¯f#¬3ô^˜Á^ûœWY´ÜÇ> ;-E-2Mî}ÙúÄ›Œrå'
ºÌrbo¦‚3Á?…Ñ[á‚}£SOV"âÇr2
{&Æ uú8퉫”PeTqutòáÏ;ZXOg<7˜©ß˜™øáÏÚ¬sLçH5R®}ejp„ã*YÁȼ€^ülÊD¹¨�µüuglØ¡ŽÆoÌm×È'ÔŒÞRºuµ{ßÙf^“}1°�Xu7¹©Á†(¨Íîá¹ÂXµLÏ}ü{zä[
5»Yô™…=U3Í{ö³|�!ØX~?»Xvú×PÄQ¥cRKþ�¨Íó„ æc�8"t•ë᜞ôÕµdcü<H¨;Þ…I±b‰0ã÷-Ï0#©STßRÿQbÝ·HÀÌø8}n©àL`£ŽZdª¦´P_þc¼\V%ÍŠ0úõ9qZîûEG␍‚ 8ñD¡mhÄ·ïµ"ÿ½ó X]UÍÉúrß"â»8H�¨úFÇK惙 â““K`
•¥þÕ ÕLä·ЭbòV�Bgg9þu™ŠVŽ[¡ÿÈ�Ã!Îy*±3X¯8SWg=›÷ì…]BÔQÉËQ«¤Ã®h·Ç~Ñ—ô␍�+Bìóª±*Ç¿ÁGáŠñï|Kv蚀¿Îq$v\‹}ÑÅ ÷ô–Ò· ÇÀßCPX␍þâƒb �«»4\:kç2£®�uùgü4q�næ¯×›`•!ßça†uüDÕY‡[w/{î%Å`P¹K }B»#‰pú9ÏÄÀÁ=RxCOò„ èƒÁ–ðÄжMù¡nÈ“Ù.Œº¢}î�AèÌ ü$þ0<Õn081´“¸ìÜzÎL(Nh2X)¼ 'û1�ù¾3׆�L%¶N1Ú¥Ïë`l`Œ`|â÷Víž™�À˜␍³eÃLTN{ÌÁ¶íh±I¡GœY[NÂeúžùBÓQnßR¶¶Ž"£<ë`,—‚W%oÜVG�Í‹¥ö`²„^y¤ñÆhBÉ6yÕ‹)¸10vl`ôZ\žw�çÈØØfI=L1™¨l¡õPØ–A9��B¹h¢ºxøãõ”VØ”�Š,fêµÊû �¡Ìu‰èÁ óûbª´è$M!�Ö
©xzP¥g�(Ï[1S¨%¦.ç§wÀ-�#Õ"¶‚4™?<d: [VØØ`#©¼ºêÃQðª\­êUˆ"ÙM³²O­p�9ÙßIv"Æ?˜û©¥¹˜ª?æöØ—q+j— ;íÜÚ† °(®H·
9’Ãìۻť␍gUŽÁc@?çy˜O§ºI±×�þ!ù‚ñB|³&¤+éÝœº?Wç9iHÜ1s’¦³ÎÓ΋‘ÌñðXs1\ë(ß«“SêD?d1øNx' ë¾ëPN„gä`à\B²ƒ‰ÙzV|cŠóÀ´µM»ÓÙ«!š IÌÄ«–ïÆ˜a2`çÅdn]8ÍÂÔ#mÐ
·ý²ÌR‘ sK lƒQA²Üÿ>NùnÆd·†T•þ¹VÙKÒÚ[ ÏÄà£ûòîçyø!Í%ÎÓôí´ª ;>ÏŒ göˆuèÏß$ñ|1<”[ßGfFšÆHýXŸ¢c Eù+ >6»Ã:wühžÔƒö‰h`èHa_ó¾ ÛÃ"»Õ,wΤ…M_ŽݳFG7œår¨(kg.9¡~М)WrÊp7•Ž/†ÆƒÉf—½šf y©J>␍�cà™ƒët™1„Sý {Á`aŽz¬ÓÌI$/F=_ê™¶H<Ãüé°põÃ+¼+ƒ]WØáÌwl/ˆ§¬Û©@:¦Z‹-DgãÞ¡­CºPaB"·Ã)&¹†ÌB\8ïìÕcD}ÖšHœžg5 œó@ÌE>@˜š Q↉/yÓ+�³Ì*&õ™ Úäý;�œ_{KË{¯„¹ÄÊYAJ×áÉà8ÜÚ®�ÁÓgª®î¬#¥â=՜؋F¡ÿ_ÓtŠùä9Þ{Aî�ßX�;9 'ÔÂÆÎ¸uŠÄ…J�cEh¼5ª=–)~‡Ë
Çöýº¶£ìX‡!C&¸:
v¥ŸÆÀÐ+KE Œ×ÒÔ•qíJ]ü-ý*[›Ÿ'Éd^¢Ó®0Ú´MxœÂÑxÔäÚ’�gPýÅL½„–ÐôxíSÒ×Ã$50Ãu3–¡èMŽ␍CQ,zÑai&-9רqÇíìè«ÁHLp¥Ã½.Foóz‹h¦¯}Û�óqéƒ)kŠa~µ´<Í|=*ñÒêK Ï�ßq¿~}¬�DzÀq†÷Ÿa6Á»Ž/õލ±ôž9à¹xc x>艼U(^“1˜"Î}ÎÜ�␍ŠôÀ`␍*ë¶nûÞ(@ók@É4bൌaûÔæ]ñ8kˆ†28ªíz=*�OÄ¢;ºgö-¨MÚ¼Þ�8XsC†d`žAæ'*M°¹’˜¦óäƒ!îF.ìuÅPLu‘þîv
‘T'1E÷B›dîuÎÌpQb§¥Äû¸É2îQ£qƒ$JoÓÑb‚sQm/Ÿ@
3CàLÁƒ´0ÈtÞ`ËŽ ;Ì|¿
ß!Âg”–i0(IS‘¡ž,†Ÿã†:é–LKö)¤ÁG`ðùË;ŒþYê$„1ð^+~¤yðt)ÍsœH§~«¿·Â¼Ðà4†-?·Ð‰ ) «±äk鑊I ÛœF…‹Å v<XÕ¦‹Ao½—A␍1F ZÝœRÔ–jPG18P*Ãà¯1Ï2Ui…ô «#0Ù×ZÁ�SZ³Éé•ÇÉš_Z…Az§—†ïZØÈÆ(ù*(2Õe”¢;þß~ó×ßþðó/øñï¿üøÓ¿ÿöó_¿ã£ßóç[zý…?üV^z•×?_�$oš±iÕÙ_ýõŸ; ŸüâÆº»×Ÿÿ�mÿ˜–™áj‡²RÑPðÞÐ †tŸãC”2eÉÊa^ F_Ó_Æ`ê'EËZ4Aôçô¯þ¶µ`L)ÅRÌëÀø3x>ˆ™—/0¤5Ö±f6�ü68␍—Ïé½i«ˆÁôÊ´ÁŽçCé�³r#Oi6¥’õm¸À”˜*:’yl-£›UêÒ„Íæ¾("Cšò†�Bc±â;W¬bðO3¸—5œz}Š!¾Ò=9 Oœƒ„ùŸ˜ÁðjMèÒvŽ3©hµá4Ì`_úžÒ¥~¶Z²f3µÍ8ïÛìOìÍÒ`ö[ÃU¿
�UÌ®¤Ÿô\ÜDËÈQ<~U!␍¼M­æ¸“ñƲ&^¸ˆ�TñdÐ?Úö@4~O¥XBµTxUÈù`êÄפŒjZr/Ia‘BÝùá�§$Æi¶“«EFƃacJ×õ÷lÅ阅Ðwãσ�W¨‚$n=»Ö”˜¼/û``ÆoYŠit¥}ü#LLÓ¢´àg}›i˜}¬³ÑÚÖEC—Yx_ê°Œ4Û/q˜½"†Q˜ÇŒµñ=Œê4p‡2ð“XkjC|Öá34�¾Js,†¼Û% :áÏ�/à�x­¸åÏÿ ™g/ʆõb:¡w1ø Nq)F3"šoÒéÛ2ŠÁÎŒ¿¶Óƒ�RPÖ
­œxÎìlddãƒQÏʬ/–YKÔ*÷ϵÐ@-&ŠÞôÈØ6Ë‚çÛ&‰ÌP†Z KJ4ã—/ëFꃢg‹
~ÖN”Ã␍¬ÎtÕÉ6M…P*Öõ@¦~]9ô6Û$fÙuÏ6\¤×Ðÿ}B·s³q0lÂÎ2nX␍ô…–mX�~NÕì¿a ÃúèùáRF¦žã0ÛL␍M´ÞöZ€NÚÖl½1<;© V'”pªP{2=ÇÃüàé˜
Ç×ø¹FFÐM4Âmo7KÀELºbŸuŒ‰Æ² *}3DɵÉ1åyži\²ui¾¦GO␍.ögLîƒ)´Ä�”ã<TÁ��Dj¹˜¦ö¡¶ë�²¡Âü¸O+ƒ™Òä�‰� ÃiáQéŸu6&Ÿ¨”äNãÕÄBÀžpãƒñ 6�Æ!â[˜Db¢ à`h7ÒÁÖaGTD`°u G¿<E–”9¡©´ðÆG4ê<3¾#i?Fd[�¦Xùõ ôô8rzsÄ*r =”ÿ`bÔR•È�0‚�?]
½��Ð~.X»Ž[ ö‹—b4¹S;¤RzÝššZ° §Jÿ0"w]ZÑmQ|؈‹�soÖÍwÐ4žŠ‡ÉK¯z¯…¨ø°wì…­„p†Ûøt0x®�ãQs=¼ v~Ygk�èÎWEÍ%p
F¿¶Ï:Ž'¿§÷Ò6á3´Z—Ͻ†®OÙC®ã±*q¥äÏûÀ:‰ï1sbh—€Áîl±/ÃTôÁqúÛÀ:éSô& Ë
ƬËUHÁ,Ÿ²o'ˇ|UÄúW²ëìºv h*
A2ÿÄzÜçµúǶ䜡†äDK²ÜÔ¿á¡ÎŒP0=‚þ3¼ýß ¾ü Ê©�0s=Éküw’ ‚±ã,×—ÖÅ’k“©~1bSzÜ^0ÈRMïUÓ›õJ±š#UþuJŒÆ�:bÑÛoCI×v\ †‹aþ[[ÃøÛô¦î¤tM…—¤FŠþìp 3š`dYÁm¢Ù•üñþx•Z?²:1 £¥?þb—LBÍ\ýu²+Õqg3&èÇ_çÊ’ º`Ø.òm
Ð?>%ÕÊú$ÞÁ˜I4‰âÙÏscSù6Ýd`fØ‚Їr´“ir<kmÁd4™Åž?k  | ™M³B÷=†ÜTR¿£6nH÷D3!&ùïzÍûÏèåèhhEi÷:§#Û¸t7�jù¸—Nvuü­”†ñlN[L´!­Föi׵ޱxùO~ö~ÿiqϨS”Û�–Êë¼|Æ8.K£¡„–/ðW‰ý|‹)YÁ²¤¨0üIg“ù~C␍cä’HaâØfŒ©Ëÿ09Û␍5ð
f.Ö‰yªåŸá™Ó±haTJ›_\aŸþ»s;ÇÇ0vBköBhÃÁ¦»¸Q«iú«%ZƒP�t|œýõr<G0
~?-ô~þùAý £`è`."‹O2u›äâ+½j.a{Ù›»¯Dòœòd ü€)…Û;rßL]ºç<q‡ÍÄá°¿!wº>÷džyÇ,3BÞň_Á€wT>3½ƒ<z®§Ò-˜Pýj„_¿ìY÷Š?67˜ë3\v�N�°|ûs­ic(ÍíXónàì.± µŒá²å\§Å R!ÿ†©v=1ïzKÿ%DÂÒ Þ�1zÃúåܦXóS-ïŒrâA2€ßO\{ÃÀ^5#0Yy­zÍÅ<˜ÐQ—Pd©Lj…pûsT+�HKµ°e,G;zÿyÒ£GpMIƒbÇ›úÖHù¥P|ë÷K`<N~)E?i–2®„i)ƒ‰F :zôþ’ªÉ"BÑŠº¾Åïb¢ÂžÜïyVb:ãÖ÷·ŒCIÈ2=¿s˜ü˜æŠ#ªÞ–nÜìݘ+*Mš(-Œ¾ˆø_Ѿ;SM ºi¨0ŸŸÓô¼¼È*mc�þ©êW~vã;äÎîÍsN²ÂËÞþ̰Á†#~÷¾7F”5M5qa~æû†<†À7¥ö˜0½ fls0Æ=låŽGGóýÜËÞm�ÃX¡"IæÚ˜ê�Ì»õ¹�£¬ïcqâ4¯�1l¢Ë•åÁð^ÌIJ,»>jV¢%V^¥ƒ‰;t¤F”ñnLòWíi÷ †7§&¥ÕÍßzH"ÖϺÌ%Õ–ÄW6tnÌUòj�çû”SŸ7 &¢žcÏØsKu×`Ì#¦Ã¯DûÚB‚À¬WŒ‚Û½ŠÛþ+f)¹ÒZZWvízvK+{"ŠÄ4”ŒÆ•ðÐÃùö½1øÂD÷JSÞ`ËŸðЮØ6f®>gžRf\´l¥”ÿ¸1úÒ¿ß8ªð^µ´Äß×6ÖpzHÖ 2#áÏ¡tq'¥œc°Àá¢Q l¯1(Ò×vœ5ã (/ MÍ
ÖøÔ¯£á>:nµÃ]‘‰HÕ¿l̽3žÁP\P¹ó“Šg¨�M·Ow0œ¶ÏÌ·÷œch9ÙnzçÂŒ¤FÃS¯¾1-ÉŠ)¿×hDÅ¥��6õ£nLM!"35£1“
•ÖéùM!©JBd3©o0l¤+Zn¨{c2¥ µÊ=‚ñåÈ-Gp}÷�QwûÎnü-Ãez¬¤šÍMÖÕ?.'ÆÍ’qF¥ö3�ÂjœlÌÜ2›‰«6M?æÆ`ظü9pbY-#Ý‹Œgc´Ÿø­¸[ÿ–YïúÂÉöMOËz Qœuû[a†'»ù0­y6&>‰ø[ìgÝG‘ßÔ< ï`ì§ózº­µÙ½ÖðÛQCÊ×'¾±s0¡gÚá¹�u¬:!õq:�¸9g§Qú+‡™¨}}åy’ ú�qùV½çï²p¾_Û:ÇØ'òjãÉž+jvw:³ú7êf¡±œiýò␍ 47ŒÂxÊ`l#±-ùåÇN0ßt[:7Šjìš…}wëŘ’¼{a\í~bÏ·áÇWoŒdLˆ>ÉU
ä´kC„'.bZ‘Y0!TA#ÆÆ\qj¹PÂT0oÈ�㢬ç
V ^Á\145ºà²ƒ2è[p}ÏbÙ2ýª5¿ÕJ¤1+¢¦£¯õ¬ù$•½ Ÿ K4ʸ4ZS
clâ#P_¹©`X52…¦²¤æi¢ýß§Ä ú÷‡¹B˜ÀçÈgýe]˜Ã=v`$Èn JæX8íÒVKQáÒžëÙ£1Ò
_S’%ÈÙ$]OãÃêÆØ{ý”~bôƒ¹bÿât¢ˆ†6·7>¹¥>0ªé ,›2§
RÄ6×9èÊ@'‡áÔ�áìé¨fÕÌÌcLã§ø¼kcR �S]‘Lk…qLÞ«{Ä‚šP¶imaȳwa£ºgŒa1Æ#‘Sñ†J9JâÉÆŒ¤70C=zM1Ø‹I6Æ[ÌÑh†”Ùc¡|æfʱ}Ö}\e©1ÿý…¥ÎÀ))–µ]ß9#ÑDCùÞyo ␍È&ÙÁ¾ú…ìóái^kÛ˜Ÿ=¹ÞïéÍNbÍr?Eö­u¥Ze6žuCØÈ’¿ñ�<ù^wÛ„ô§Æ1•ï1.1Çî^“‰C²þG_m—%ÞÌ—VìU&þ¶6Ùì®ëSW\¿’GRú†�ŠGóκºeÖ_èèÁXjN‡•?CSŸH=íùx—°ÏTÂB�Þ? ÔŒMv£�aoâîCÙíÃ$—Å’>_:ù?ŒãľB#ÏÆÄ’Vh ¾”#
9m¾¾Lºîcüô“½X�Š’¨L—õÙÏZ~żÛÃúAôÛ+{Tð<�vÝ ®wd)óoeÐFÅh…K^!˜C掮8O™çˆ �±y&Æ(×ÁŒD.œÉŒ¬D5®°c[)ð4” ç³>_uˆa/ƒöžëdaZøñÙ/7±8vƲœsîpU[ßä{qÄ?öDK
Âjcì,é;ýœs¢œáCñg}+IåfíÈÞ8»…R‘Bíï:Wiof³�ÝÒvÓ‚ŽºZ!›¨×“·ÞgqÞb¹¬òw‘Ôóý>ç½ÑTƒÑêzW�­Ï†”#·öxdۗׄL½QåÛúAðâ[r…º^Õâî^¨•‹6c8Y)èÉ×ta̰á0å8/—pU|êšWÕJwªÎ—˜Ñno]r~jô¤S±oŒ÷xk÷‚¾nÜ"&¢K Â{ˆ %ëN3.߸ñ¨%ÞíÃhAæ?Ál0¾_²nÏ?Ò­¶ÄÎ>¶`ax›v¯ÛÜã&ÊáŠóƒ½‹rÛsyÔèf¾^•»®<�Ó~ÇH+7ý¡�ß|•sÜÑý[‚iRúÕÏÄÜL?ŽƒáŸ$²§6?ŽÐb˜öß9šóäG3Ø•>ÙÛãøH×*FA"}2‚rÐf÷¥GålãˆY<5–ë(¶H×Êxµka¸‰Š÷öºÔ8Y‚Å)ñ’ <o¦6š¸óL6“çãš?HrVÌßüù“âqY¡/�º´¦fgæÆàyÌÈ·Ž¶Þ=c:î$žV�W¹–#BÃ…`z>’3ßó­Ë0»ìâ½Î!çÄðÑï}|ˆS#e™¨UA®Ó$Y$U>çcÇ«•]Õ yaÆöwÞQ/]-÷z—M5ü=Þè=ç(VI{ÐSâø¹>N`Û4Y‡ÅC¼ëÊñ2ÙaN~‹+ÇÎ�>ϽޅÁdlŠ>?Û]¶­Ä,xÉê9_“ôÄ�g©ÕØ<G'hÂÉ.ám$lg‰ªäÕxÝuN%EO�T9׉°˜õ'!vaJf‰JlL¨ÀFÆ4¯sx ôÀ'ÜÏ1±4"ÒtɢɦÄH¦ë÷r¥àT'˜>1Ö¶9scä ␍D¡ÞŒj¢ƒpœ;sÎ
z<OCÁ¿ŒÛ¢OÖ­ý�ízYµ$©Âüõ{â´Í¸dF¦ŽG‚ø"¤Úé·ïï�ÌÈSéªjö9ÿŽËеþËÂ(Ì|*ˆÃõ4œ4¸’‹Âh(µðdâ:I‹W(~aÿnó=a.�óe¬ÈaIut¤Î­¼ÕNÅz]ëÔé8‡²ïSÎ$ by­p£Rf�–œ‘“«
>8¯µ“|Ƴx—qÎÓ´+o޸‰è&ËxйL沞håÈ€<Y˸šP~ñ> F'5æ>ÑêÁ(­¼Œ>Á`x¯im�°2›_#N\$VNÌÌuDÅž+û‘î¹�¸ >4àGÇ#5¶2Uz;&ðÓd㊂J8ve¿Ëc#¬zŸ˜Áîk�KY<¹Ín ;-E=dèÜc7õ‰7%åÒÊgô1ˉ½é
ÎÿLŒW1ØÖ2^êÌHDœááXNFÁb׃‰ñB�6§ -q•ªŒ*>/:ø€ðç-œWg<7˜®_˜‘øákeÌutgO5R®udj°…ãf²‚‘y9oñÚ”�rQ'jøç™M°fß„:¿0‡Y#ŸPg0Þ–úЭ½ëÌ&s싆␍Ĉ¨»ÎM␍DAMv ÏMŒQK÷Û×Õ#ßR¨ÞÍ � lUÍ<Þ¹®e†`cù}v*°Ìôû ˆ;¢JǤ–|�¨Íy† ÌÍ qDè*ÇÃ9-é«y’…ñ¹“Pg<&&ÅŠ%ÂŒ÷^®¡GR=¦hî¥þ}Šu["3âã¼sIGݰÔC¦jJ ½Ki"Zü�ÑÉ%ËÂŒñ…“ëÄT/ëý[‚T03¿�¸@·S®ÒÔÙQÆoϤ¢³Ì[Ñ2§8±ÎÓÄÎÉz5#1âêòž=wíÅ.uêÁ‘|2jM:Ü#Úý±_úRߘ®è$}Þb¬êò¯ |WÌ¿ûVØa� !þYÇ ±s-é‹=r¯·"ý¸maƒ¿GP¬K␍ùAM ­«gi\:ÚîaƸvãò×:ü´¸¦›ýó¹ 6AÊ[3Ç/ª–‰ ë¸õžË®{…bTwÙ'FŸhw’ˆÓ×y‡{Bá%=©„Pè…aK”�°m‘ïFž’í¶…‰®Ä>ïCè’Aý‰? µ; §Œ0‰g:·­3 5º%XEx␍§ýL`yëìÚØ(©$­AÀ=F¿¦Ò—saÒ&`ÆbRâ{«þžÙ@0fG²eÆL´:N{ÌÁ•¶ÓbÃCó̱å®é{æDÓy·ß'¤^±u™òœ “çŠàµ�7·ÅêÄc«ØÖL ¡7E:nLLˆ‘ìCU_LåÆ`Ò±¯åòê:Ö‘Ùls†zLƒ¸%Q¥…·®0¨Ó$P!␍ªËÃ/¯iŦ~@*J0#þ0VùZƒC¢ ša¦8Ô3˜ƒœÌ°
\/¦…3I#�Ý
ç9¥âéÁ(½Aò Ê?·2SÔ’©+åéÑ‚E-æVè!&³ñÃcA®„Na+/œØ�FŠòÆU?GáU]­Å«ˆQv‹Y¹Ö[q�eKoa'1Fü0÷#–æÅ´øc·`?‰C¬hº„ìôus´� XŠ RäVñWFraÌ~z·f鄳Žá1ÐÏ*�ùÌÔ ›mîu„þ‘á¸ÂäB¾Ã¬²GÒ÷äÔëëêÊ©qPÜIæ”Ff]iÇ‹ ™óð¬y0®ÀúÍTÞ«Ë©†zÓ%¾ïLÃz½ëxN ¢Œnƒ?¸ Br- æŠgå·yü§­Ó´×¶öêDÓ�Ì™ø´úCbÌ‘d`Ç‹)n]�æÄÔ“6´â¶ß-sF‘…¹3l�Á¼ ,÷ÿ�SHÆ´['UuÿºV½Î�Öu£LŸî‡w¿Êã#!-už§Ç·kÕ0ìñUfþAÏ\Ç\Gäü=$^^Œâ¡ÜvÙŒô£èÇùõè ¡ÐQ#Õà³ìŽuÞñÓ<Û>i_DƒÑÿH›°Ÿã­ í±aÏ�Z wŽ-vûî8èÞFŒNÜp —£¢;ó’õCsI¹!§‚»T_¦$»\g�ÁGxiO(ùjxRÌÀ›ƒm®³‡9‰!:ÜÚ×°W‹9Úç:=9Iò2ê奞‘V"�âA0æ/‹Óh_¼¢®»�ÓßI{!žz¾�Êꘖ·¸‚aƒt6÷޶é¢Â�D^Î`¶¬fV�sõ9¢)kÛ$
§WÖ$�uÄ\Ä©Ãp‰*ˆ¿ä­Wvg-\¸EŸÑÞ'Ðùcoµ|îµ1—¬\^ÐÓ¿ë(ŽãÖ®61<­8ÓâêÖ:¡TÞ3š3÷ÒèÇÔÿï3é”ùTŽ{/ä¾ûÃ
¼“³qB}ÚØ1¯å�fâ¢ÒDz"‡7óFmŸËÔ|ljÃ
Ëö$úí±õšë22áêì•~�ÁÐG–j0<˜jÅÔÕãµ+ÓèòZúS¯Øü2$“ñ]ìŠÑÖbšlbð¸‡ÓxÞäµ+’MÎõfÄKÄ&=¾öi‹¯Ç$mbެ[X†o²lEÉ£— v,mÒ¶ŒÅkÔÜñÊìÄWĘpe†ÿõºŒÞ¥z–@ÐÌ~³o÷åÁR\}0šÁ˜ßØ-¯™_�* ­=�Œró;Ùo}l:Izà¸&FýÇ4›Fð]'•º#êÜËÄNz/¸.Þ␍„ò¡'y«z¼Æ0EνÎÜɆGÇûİͺ}Oû¾Q@óÇ€Ê4Áàžh™a>®õ )°ºò8çÌ‘P†£úÕ^�ªóE,ݱçÌ©…—Ò¤=×{#kž�柉‘ ’g¨ÀøŠJ#
سR0=ÎÓŽàÞÈÅÞ¹h†0�Ý Òß…;Âî!¶¨S05îE›÷Zg6\ž8ÓRg}²É™¸ç�Ž7HRú4�–fr.Õ¶xý
¤˜�›‚CZ ²nòÃ7ØÚqc‡Í÷§úŽxˆÏ<­i0”¤G‘QO Ƨ͸Q§¸¥Ó·ô)Òð#>ÿÌŽýkÔ)„ø\k~Ô<<ݶ�uœ™Nó­ýÞŠyÑàŽa+&[ĉ¡TcékÛ#C »œ£ââ`¨�‚µÃíÅÐÛÜ+A␍DÌâÕ;€#�”Úz␍ï êe þyŒµL‹´"}aõ˜˜’j�“¦öž&×+Û<N‰ùÕ*éN/�ï:Ùd“(ù©ÙëZ�RôšŽÿï·ßüõ·øéç?þø÷ŸüÏ¿ÿöÓ/ŸßùÑïýý¶}þò­|þáÿúlŸ~Ê矲}þlaQÉÔîñLø§à´Sï_3x�èMŒM£c$ÙØÂPM£¬÷æÅ»hªC«˜·Ùžv×rÁ,X%1˜òµˆ^0舩^ea4A˷╃AÑUûr2ån]®GÍóøeî•Y›‚Øž±…ÑJªenâ‰a΢6|LêÂp.*ˆFÐOŠJ½„*g³ÃD¢™¼iÖ‰`ñ·C�uf7Dd¾G‡‚¡¡ls:ø¸i␍梗Ñ!fb<*ÞÝgP›½Û‡ ¨Ì{,±6„Ár␍gÅß6°§�ÜH3¤®Á$õ2KŠÛ.Áx9ÔŒY·HCM¶ô6=æíZ˜8vi»3#Íþçäû­B0tB‰Èf\(ŒB¹Clõuž#É‘å;ÃÖŒt¬[›©ïXךæ\d!gÐ<LÎs‡ËfI¤‰%ȼÉÆQ�9àv[†~Îhf´©[j²bî±#å˜Âް¶TÇ+×™{TÝ<åσñ45 MÕƒ‰þ0tÒäug#˜´©*ǯν”Û`œ<Ïv␍˜äSŒ0;øSÍÈÙ4ZÏã¯9vÂYJ¥Ò(�öcmu$9*W‹‚ѹ6C�ÕÚ*º g�TcH´�95¦kŒj>uÔ>æ:á+5×»ã6ä0*§¤-_ü©»2=A:©ûÝÍ„[8âµ'"ÄÎ3niÁºìSáïR¢`ô%ñbfä|0nhŒ÷dÃ=˜#:ï?>ìyôØñn[<–àX'‡TF‡ƒÒa¦Íݧ.¹995œùp¾saºë^�™
?lqÓÉ·…¡þîàËéw³s£ˆÔùó¢Ò+31’F*]¯µÊ‘tª:¿]gÇrÛP@Sy¸H€X˜b>␍£—¥Q“îÒ‹
®·˜Î+®‹A-§:ÌŸ¿2Öå£síÕ½bœî�á<ÛÌÜܦöºj\´ôô�ð>K‰j ÙHbË„m± $æaÄhô%š6‘ÁâO|왕Ðß,`6ÂambF;ïɘøÏ¡îå)<ìR××ÐÆX{M²Úµ×î ôøIf i&Ý/ŸãRò÷Ä-Üsó‘x§ã«ÏÝ LoŒ¬©íãÏWŒcùl¶ΑšÓÞº1šÀñ†~-íKORJÇ„í`’@¬cÏO1ÚK®cYǧáÁø~·gʾÞ_ãØÑÃÁУ§»–’¼+>h~†'␍cÙ(Ÿ!­+]ñgüM MI7Óh �{E•'DDÝØˆyî§þ„u'Âì ¿ÒÎ{èû».¿’%îyäÊ4Œç,0=I¨ÊéxñÈÏéŃÆ=ªEÒ ¤cõK+3#¿ˆ/A&‰'Co6ûé»õ�ÑbßZ•{„Ì’ËžóÄ5‡Ô\¦ÃF¢ Ç²�òÃX™yÕë¿J’<se@TéLaÓg�vJnƪ¥Àšÿ0®ž”¦ Á¬\0˜V¼úþÃ`¦Äˆ²¾•vG—Pè¯Îñz‘@­ô­ºd4z<Jù½&Æ.2¬�˜6Dd<®VêƒÔî(y®^�aÊÇ»Îßôø~Ó>›HtV4Å¡vðWåû�”„ ƒ‘´Ëìö{œ›'Šf1PµŽ’›)«øŽ_×ùaSéÑ…‰Ù¼ÒÖLÞoz"RîÎ CÙxèòo³ž¸‰1 „4²Êr‚­;7Gþ˜XñÒ_më:t2Åãp T„馢IÒGmŸËE$ U`ü�ÐÅ]ÕËE␍©y˜ë=J˜9ЪÖOy0Xf7¤Ð‚ÁVOèaÇ´`xH¤ÖV”«] ѽ:O¾¥8!wÏððš”×Q©kœ÷ˆl…üÙѹÞcר�êýG>wÂL‚nv†á°=»õ»{
oýB~†™GŒ]Ï£*c[’Ü�ÅIèhy¨E ÃGš¹í7s™˜TJŽöøéþarÖ#,Œjv˜ûýx%ŠƒD){RÐÂhxF¢ÞãˆnÂ�ãÊ$H¬Ì‚-5­äý'€UVâ—î8RNB}5ƒM>ï!j1]½å¦0†)AÎ␍ê9ŽVöü{åaòZ-´Õö“ugezÜØ`0/ &R@2ÅyM a{ÍÙ Æ“XÒ:Ž¡áÊÙ~‰,Ä쫉–§§®ŸW%hbüd &ybU„O�;3òrP ¨[‘ÈšÐzÞbrTNQ£ÏOdUMôÆ`¾ç=bD
:2Á”¨¬©æ–ê±¹±Á% ß †¯ãÎlôƒ@I
ÇhÞëKx?tQíM=¦; ³çQÅÆ3ºvcΧ“k±mV�f>2sv5�òn¢y%6ųùÁÔÜ/q»Ž;�Eâü4Pl‚ik§1Íh?Ï�±1~{Ö§ÏÊ2Ìïu>…BTFŒšm}Êá3¥�Z÷su…Ѫï:O 5Å?LÎvž«;Y’”ÕÂV0�Ϊ[Ò“I$(ú‡žL =›nméMîÉ?¨Mèœk`|ÖÜ›
ŽáĨ�ðœ)…™s‰Vì§�‰ZÌ�©´{=
¹j¦ÿ|K‰õSª|ß@Jþu&GŽ÷D-ÌoÂÔØm‚Á-;³íˆãA¯-w¸QZ|[4áÈ;½3ýâß ÿ¿*cê�h±®L«Ÿ’hü=Cü&Ú·�¨Ù $ù$þ:>òÙ�¥¦ü5lÁÄ¡ð”ì…_6ÆÙµ+kŒ²ÅÊÌé`ÚÆÊ±3âÑY�í=ßÊ•(¾x×{0…Õìb׻ǔ$Œ …”weÜ…¨�ªc“øQ7Æ
>Þƒ0×Yâ;Ñëëfć±!Ô™Þ`̹í, ‚Ÿ@ø�.Æ N¯Z˜ž¸4îX©ý%BÇž„ëcÿ‚3J‰dƲ1¦b¥AÌ7ƒ!žJ~—ùžÓ<é•+¶'ëéü܇zJã@ÌæÒË5êÊ` }úJˆ;‡aƒTŒ·Ë†¤œÏŠ�ª…�FIQ@æ‰6–`ò‡÷Æ•lÌHq®ä< £R| wÈÁÍ�á#Ì•1˜YO“dFÌ/ÏÄmÌ3–ù³1É^ŠçÝ7&Dà7æÆÄÁø¤µRE␍;´‚clSÀ¹r‡’mö¯±´Þ2ù¨¹0-ÖbuêÚknI² )ý{O�
ÍX™{�`–Mo*f~(jè£&Á¬ÚÆè¯Ç.H ¦K;[DuôwŒ†‹Ìh¸ìÅbÎÌä–�1Ø6/Æ<�Y`%•îF“Òó©š8ŒmíöæN¬ä„<– Dã5y©È~õ=ïÓ åŒ)šÁÄ�;ßxÖ?ÌSUõgM;éÉGñÿ[¾1Ñ Dj³Ú¼1“ÖBÓËÁ¤¢åà°LÄ2ÛzGàÛÆÜü¾R¤Ø1˜Œa£d‡(ïÿ2L2™xÖ{V>Ò+:çÆ´+×$0‰(qqäøÄ±Ÿó-ÏùT‚»¾E€␍­‹Ï3Ì$³Pƒ‹x[0ŠÜL[Ëç?™½r×0}RÞý·|V|»ª¼Bi+­ño D±&ce)ÚÆ MÚ¬Ë"åßçõoàÀ26ÄbMdtÇ„-ÀîI␍ó|ŠM±×R‰ü-ã,æ ãÜÞïVìMf}ÜèÔ$ü-#oâžóèÆ ÝcRÞŒÝßÊúåU-␍ÙWŒzªÏSƒiq␍q˜Ù¸�Qx[Ž/#à0,ÝúÚï8Y¾;–£ 1lôS™ffàcѸõw]]ŸX"ããîcct›m6ªÞÌ»l|lŠ
lL[a辯èF»c¬}”p~F%¦—µ±ï †]ZòÎÊÏ�¹Ó �dèƒQ<0ŒXýÚž­%ò}a
úÈ*�èáÆ$RÙbêA a|{&OqéOÛ˜dûÎ{¦>÷Êx+à¡ÖóùÊ îô&ˆØj+â37š¥(Åz‰ŠW<ínEg¢™„öÁôdÐ(f,öÆt[K6f×¥�h'’”º‹Ü— Çg‘ÄU@T…ÿóvt³1èÜëÅÙ°'Ìä¶§MòÌu0ÐN²üü‡ Ï'òõ…El”™L®\WG@fÝ··%J.uóy#�žž#¢„5†•Öô␍©Ñ˘ù€@ÿ:›cŒ�AS¯1`¥ž;˜�«ŠÇÃîêÑʸ$éЀ…1ýåZ¾vcÄAÍN3û:ŽE�—äÐ÷yžøU!KX§…ñïPÖsó)L M_"çµ1v�°e�kG|°,™ÆË05ÖŸ³·Ÿã©qˆ$µÆµu>”EŠ<6*_½WÌ
æEì�œRçFXk£AÃíJ${¨æã 0v3­C$„#=
-Õ¶Õ¦FÙHT¹¢½ß{,¸­ÉZQ føÎk÷­þ:␍�' í~}¶¨æ·žÁ4muº¶8ì(UÝFÉ ®€»ªã´yÄh´ó-“ÀçšR¾0}E�ÄÕÏyÖÌ.CÆ*î÷­˜$jWv0l’9®´ÿúÎ<7i␍1y7ƹL¡$Ö)Åð¯%Ù®oL±Ú^S'–jŽ0)Æ·ÆÆ„­|_IJû0ÆôFËVë>ç‰Ö`/ñ¯/Ì�¢óüÈæ¼'õÌý1á§�è$Á´¼;E¥>®eÞ.&o�uEüL�zŸ:û ?s�ÇÙùéÄ…ñÚšyñ¤ŽIK"‘ 9%Zî‡á^k�ý-f kÜË£ŸÙ�Øju,&©k†ÂŸsd§çYÕ‡^Bª#�üw÷U\UBŽï‡‰±D™£Ÿ–y“\“3¯D˜‡$šØ[7&#žË�s'\¯ÎOæã¼Gìc².³â2hø‰19ÛõÞì&-6/ÄŸ¤W½êãðAØËß²bæ2¤Å=ÑlÎàx./)Ë[¾á'¢@^Ê»U=æ¼d¦: ^GV¶‡¼¨é³1k‹Q®®›‹#n`‹¨èØ�©4ª­‹S³�¸ðÚì$¡•ÔÅ
ØåågKdšá±ÃÌzàÁr…z>gÉp^áËQao
À±:™eU?ÿ繎’ A€^©Ukgï±}Qéoª !ÉW�E?DÂfÄ–Ò¥º±£Iä_'Ʋ•¦ñ×X1ª‚k ¸ßºp`_Â~n¡w‹¢ZLšNñ§tw\Q=#Ñ® ¦µ¢?ëÂûXP»,s¬ùmûXzÃTWéw¶Õ¦oÅÆ=+–ˆÆ”‰Áè„ÉØn«X=½zRË:)@ÒÒíÂôöL©¤m'L’ùGoèõè‡[O’ßþ`€9␍endstream␍endobj␍23 0 obj␍<</Filter[/FlateDecode]/Length 29550>>stream
H‰D—Ûµe'¯„#89ìz€®�ÓŸÿóùŠÓ~°Ý«k’J¥Òú‹õÏÊl�ÌQ>Ößÿþ/½ÿ¹ï½2²§0s­í«ç˜u19m·åàŸ:˜é=ønÌ0¿˜Z 2sVÌðо8ñbVVŒÍ7›ë£ÿílÛ9³Ó*†ï¬–ÅœÕ5…Yüw/éž3wÙÚ;3„éí6Ç^½Ó/D·�H½¨dp*qqP\HºwÅnAÊfäŒ5c®wLíµGçØ) ßÔªô ÛóbVEŒµ‚ž×ð(²Ç)Ñ,Ì&ªµÉiÍÜç9»¶-r¶Æ¼˜¹ÍÉV.b†·ûØUcòî‹ábòa¶Ý†óx¬ìu1”` j1ºO¹U0R\õîRv-—¥OÞ\ÿvMÕäþ0ËÉFÔ$þ%ÌÊÝ#‚ofo˜Aúõja:Ërù˜{ ãŸò;zu—b¯•ó�,øÈ.†²@œH·…Qe©—·{äÅDîà‘Y²€ aäfö¬wQE�Ê(ˆŸ,TR¬ê 銹=«÷>ÇØ¤60 Q\ÌžQ<‡'üÎä&ö®ø0“´zïPXJOþƒ¤QN¢½üB -ËdSŽ)è¾' TfBΦŽZÛ0t19܉ÚÑS�pRêëb*š¬Ž“WaöÃI*fß]½vª—xõy�¯ÑÕ‰½ûb6¥€�³³]±°§9~ÇØ¿A<$MG§ ü¿Ó&\¶~²Æè·êtêHÑ¢èbªÐÒ�†¿„<* ²¤g×êHbý5)ºxî£ö>ç1²ËúSâ@dí@ €ñÑ"\>/¿Œ¬ÒH␍‰sa¢²3š,®÷d”†S—žõ<q•lŒÿ\[„‘:…”ÃöÊ ™îÖm&„/Èáš.ÐÅXn³Ò£…qøOV¨8«.ÆÕðu6aZÌX¼Ù³ß9GÉ©fþ ï©AÞZñ“5 o&ùâÏ—íÝA..†ä¬¥šhÊ͋椿ìb¹â• ¥va¦:a␍B�Ÿ8)
è“ù×/*¤"œ �î:’±“?ñ“”Z9ßdm…ûbl´Ä¥$ŠS;Ê ËŸ^P›‰ž¢C…H“¼¾!å�`] ›Ô½;Ï9áU%Í¿”œè‰ŸâcPP¾ªw—r�È2¥ª„A8)0Z`ÙÅÀÚTëóÝŸš¨šh@$õ…µxw™œÂP#ÓŒeºÝ Ò%!ñ'ÅŠâ45¿Ä˜´ÈÕ¯$«Õ¡¦êˆIE«¼„¨|^ j’‹Ø¨� ÃÔ¢‹iAg_Œ9Åä½cøyóäÖe„É\µ‹AH k-␍‡?éâF)Zt¨½÷ÀúÞ4ˆZdpŠÛd´êbh<*{N\È4ê‹R/�ôx§²ç.È×þS¬«ù3CF±36Ð%‘l#±Ó�ÙP,ªuΙêP%‰á².!å)hJsýc®/‡¡K␍d=„�LŒúiûÅÎ\€Næè2í+L¡ºSŒ‡†þ0‹‹S�f␍¤ßV¸Ÿ}1Ÿ*õ*^c^7Ñ(ʺC>}›”圃'£
Ì1�Ÿ1Ò¼C¯ ÃÐXÀ™�N/©Ǿ«ø�ÞeDžc²²\Š’²BC׊p°ƒî’ âTýr¨ñΉ�{`�Ñ©%Lª1ÐwHÿBGÞl17C‚Æè
‘„ùaH§ÉOŬsΠlºÊ›=LcÞ˜o Þƒ'Ôìa3a.åqç#Åæ#qÇ\¥¨ûÒÃßã~)„æ‹|-úQè ’°ëb”´&Èc‚>V6Þ›ËÆ«␍�Eað´ăR/‡P’”ðÌT-Jâˆèɧ™=úh$âž$Æ. ~Q”¨†ÿÊÞòÃ%­Ù„&L©ù&îúNlù»EÑ¿ßE8ÓT½šÖ…�9ME(�a#“DäŠa¼‹(6þ
2q�0#�æIl~‚ ·�>sú¨UQù;¿�c[€rÅTF³E­„[Xï=§‘È †àœ“C¥„©û™0ò~² h™0N– \­>íbÄwhÀCZ"(û&�þ²£1¥ â„%‰Eøà?ù·ïrG²|ÒoÂ4$Ù iñÔ¦SJQ18xokÃ.âô=��Ä¥¤ô1DÍ÷šÙq—ü˜ÂÌ�␍éù­‚Ðô&þsú qÜôa�­‹|ý9ÓyÊçòq|W&™Y‡5q9ÙšÔ›ËÙT$opñ„Oh<,·½2>²š¤¼“NQæIÚ‡a‰s␍àa†ô1ÃÒÛw»ƒÊü¹Ü–V6]ã?L’B␍×%^�UJ=Uñ!hÙÓ3ëœÂc IÓ¯w·9Q5ÃØµ(ŒóÇY"úqØØŒ€ð4b3‰žL]
üß9¤†S–<áŸ3ÔmKœ˜m_Š'×3Ç\F„²»6Éb§àÿáLVü=†k´t)ÆGu9Hd‡A•‚°»b9¸šF{Çxks`Žn£ætŸ:ú±‚ý“iDŸ8žÖ™ÖÚ²È!ª3>ŒŸ±Jð-îšÒÑ~Ü÷]…ÿ…�,ŸÂ(GYéöÿzsË8·V8a¨™úI”øôw„Já)ra˜§}héýÊ`È–ÑäøÜ….3?`³DìÓl®£•Sc+ÅÅíVñÈëÉË�WIaÄðœ½òÃLEr6’&´°1d%T³¨ËÄ^Ðj`UǽӞ±Ÿv”Wð¥0ˆNª4¤z½�… 1U¸«ög bd’&§Æ7èTL9UW1‡5ŠhÖ‰|óñk8HæM ÃF)IØÏ`Y`!¹Æñã¬T|‰Š?ŒF ;fˆvÂ@%
Ž”§êw1²¦j@ì€0Ãó·Æ xï=µÅãÒzÑÆÖx˜´4Œÿ0Ì_Y-"°²”`aëé¾#Aå†äb_á‡}ÞaR<×ûø$ž!çD®ŸÁ­ñZ]9Öüb–1 ¸ø»ÈµêÈŽâÐþŒ„Jã'†Œeñ␍|?lC‡5
M&A=ÞÇ5¾sd\ÉÌxjÂ0Äã=í#�h®÷ëÅ"�4É{? ͇A!Ðß]8}T\êOß>¿ÈzAj0¿»Ðgt”‘K ÏsC‚?KþÌ`†Ä¿ìó¸¥á¤ÍF9Ì»å»èη`Jƪ&5~Uÿyî3ÛÅ„€»`B3EþY{¶œîD£EÄó´nÉ;Rà~«ú‚ÖããD0:¬'Ú9÷[~kÍùƨŒa¨,Ô[HÐÄþ1Nˆ>"I÷aÎÞZƒ)Õ„Gß[Äo°<U¾{TÇÅ—Ø<ax9yÃÊD¾5KÊ:ê÷ÜÐØcä'ÙWy–™ü?ãu³²KNEø
úÞ‰S­JUR‰ŽAœx"‚  B#ˆwï³ò&Õå|‡n¾³*?;{¯±ßÂ=N#r\©/Jó‰O¹ˆˆWá=ðØr‘¾Ó�Á¤Ëõ²R«;„æÈWü¿@ÓrdN�␍|³lå~Júö Â,£)î Š�
¢QQm £ï“ö8ªcæŠùï¼NÿB°Và�§- +Buyìõ)eÒ]×:5‚¾0Éi†ìM[0®h×6­óÆ̈’¹SŽLð‡9Üb$ÀÃÚ]a*·Ÿ{‰qÞü¤í×ê
{®)bìÍ&“¿'å- ¬`¬˜n×Z&*¬fœ¬ c¦3ÔÓºt3g²ÚBøœ$è}
O�ØÛ ñÞ§ñÍH8y® ÞÉœal¥Æïp9vM޽�ô92ˆOÊÙÖ­þòÃÏþø‹_ÿø¯ßüõÏÿúë?ÿñ§ÿóù¥_ýÊߎÏ~8?¿ý¡|~÷)Ÿ¿}È&V!/œÝ�Yþüûã1ɧÉãóûÿcÛ¿çýâæÌ©nÁÄGéê+’W7·h“šà¡P‡Ç&J6
û�—ÇTQµŒA–ûð†’½¹·Ý¡x‹sÈ0qSÄ5Bð†$ÙáŠìM“£ð®Ž$Š›3Ù¹X�Ø·LÇV£qŽûÅ©;"ŒÙ[žEq(ˆwÊf[YB’ì5³N\VÄ™µÎ>³fÌhFD9n-ò×ôRk[SL�ñ` ®kb´E\)÷vôm³ŽX¨:Ÿi¶’¶â͹U×7K¹‘vJ]g»ÙD�›Ðÿqt7�9¤²ã™CÄey€PÞ¼€YnÓyõ´¤æÇ×wz¿n/Æ¡(ñd‚Q(÷b‰­¾ÏÓø
%®qU™×6­Ùm^^׬Ä1p ǘˀæarž²]ü@‰HçIfǘåPŽaRµ‰‰ÿ¸²�ÞÕ-¡*š ¤ÍV¦è‘|A@ïëŽIywªN§ó³0ž¦¤©îIœ<:µlÌýò,<“JõDˆã˜{)·Á[õC_å“êìàIö®@í5ÚýžÇ_‰Ñ säÐdOM*j{+Ö^¤h±úSžt®Íšèv{«‡!ÅÚ%ö=C¢mÌ©1Ýë8ó©£ê3×IVUs½ë� £rJJéX�)¹ìžwP£sMéuP‚;9p]GZ°l—ãœMý·ï“3#}aΙD–97 Áã_ýáÖ£k£dí|ÇV•É!±ù¥rüöÜ=*Bdã}¨Eì€óõ�á?Ž ©«ã»´¦¹ƒ�ëôY¨£æ'¾ ô‹"Í1Ý.±B*]Æ^EŸ›š¼ŸsÝ™hÄ ßeW'.Á�ˆ:NêyGbêX#�ejÒ7ç“Ä‘óÖe¿CÂhÚò,ÓÌÊŒù£ÃFÙËôBƒ1‰ò_íÙl9ŽójÀòuñgBb ïS÷:i“×WÓ¦&„¸£B—:¾Z)J^Y�™îpésÀ¯Oâ1š
è7--]Ž¡Ž}.ÌYJRõþîä\š”Óµmcü?§ çŒeŒ•pwNda<Bü9¶>f´‘&²˜°nÌ�Ù,üÏ=# ¹¯qçðƒ±Kº+c®ó„º’,W7&q€¹:â‚ÁÇ™½ð÷wˆƒ1l”O“r퉶‡¶Ñ8xãëI‚Ñ�†�] .0 &q‚Oßw5␍E\nº¦´IDz^Ÿíuè¿1/C…[>9ÒÍã;C€tÏufdõ¿FH Ü4îSOÄ@°—-F™9iï^=ò‹øLs0õ0®ˆÖÝö»ß-¶×ĨCk¥�ß­Rs™ Û�‚XQdøbf@ ¯Þús‘$ßiUÚ]X½³‡Ž�¯Á5b£Xó'Œ«·$ZŠãÎ
Á¸áÕñ3Å·•¹Wž;º„Bß:˜;è)íuM� >ï2g”×Fš5�+†ÓÔžG-׋Ajg”<Wg)ÅH>ou.üæùLn ÑÙÇ*Ofð­ò9"%!È`8lÏÕŸ}s‚Ø33ó]äF&õÓ¦p¼¯.,éJŸN uZÏšÎ{»'"åî¼`0-¦]Ò8ŽòSf<qci<Ñá®ûæÈ«b‚Í%d™¿ôXÒÏ‹q8×î„é F>u†­�Á M‡CeÿIÊã®®Ÿ†‹jRýÐç:ILÑš2jÛåÁ`éÝ�B␍[q<¡ó¶1<$R«£æ)š¢{u–ÚúÞKq"Bîžæá5ð&”T÷:g¥¼&·Æ"Ø5*E Ä¶ý$Èë…Sõ ÃaZfë½{
oüB~š™GŒ]Ï£*£ѱ–ÉàPKú¨F 6ÃGš¹í‘¾aòr4Ù€½Û˜…õ £Z„F¼j[q�(e÷¦cb<xZâ:Ÿ-n¸ 7>G:áâÉ𛪆ǫ\xÒ�¼G
ÃI¨¯Ç`“÷:D-¦«ÕÜF3�!:•ØÇñ”-ÿ~ñ�0yU-ذ¾²î¬L�k æ%ÁD
H¦ØËÄÀ¶¡Ïz0š€˜Ä’^Ï64\9Û_␍éH|'Zî¾:^¯"JÐÄøÉ@L*Ū;ž+îLËËA� nE"kçõ>ƒÎQ9E�>ß‘U5ñ6sìuĈôI[S¢²ºš[º¶Í�␍.Ù3¾êyÎôFÛ”¤pŒæ9wÂû¡‹ËÜ\Ût'£¶|ªøÁŒÈóÄœwÝ&W?bÛŒ:ͼe$æì¨ e,âñJl(Šgóƒ¹r¿Ä kmw‹Äùy@± ¦Î™Æ4O}=7ÆÆXøíž[%ž•i˜Ç±·B!*#Fõ:·røti£Öm_]a¼␍Õw�Ï]BMñ�³íûêN–$e´° Eç†3ê†tg Šþ¡']CϺ[z�»ój:ûœÛê{]Á1ì•ãñ¾Ó¥0½OÑJ‚ýêc¢s§+ÍÞM�ÂA®šîß{)±÷”*Ǥä_{rä3vÔÂü:L�Ý&,aÐ23+Ð>q<èµæg "J�o‹&ìyæít¿ø×ƒÁÿCe´Àµ!žX g¦õž’¨ý}Cü&&ÚÞZTï’|y/ÈTSþƒÖ`âPxJöÂoÆ™µ#cŒ²ÅÊôic&šÆ‹cæ‰GgQ¶±÷Ê•(¾sLa4›Ø5V›’„'M!åiw!*¤êØ$þ¹Æ
6oAèë ñ™èõ}͈cC¨Ó½ÁèsÓY¿áwt1f°[jbZâÒsÆJ­�{®�ý æéQJÌ 3–…Ñ3␍b¾ ñTò³ô±Osç­\±ÞOçç>ÔSºx6D?`.o9[] ¡­�„¸}6HÅx»LHÊyÏø¨Zyb”¤Ÿhc † �8¼W²0OŠs$ÇàI•â[¸C®/ ¡¯´AÏxê$=¢'xy&naîgš1Ëӑ쥦¸â¼Û„ü޹Ñq0¶4VªèÁ6m…àÛð‰\¹CÉB‹ý¯XZ«t>ªOL�µ˜/u¬17$™€„”ö]§E…z¬Ì¹Z0Ãæm.Ì|SÔÐÇ•@¤3j ã}Å8vA’Ñ]ž³FTÀᎧâ"=.XÌ™™Ü²0ÛäŘG p" 죤ÒõE§´lu%ÎcZ›¹9«ž…‰rB>K¢ñ+y©È~רëˆiš²Çõ`âÇ�ï¹ç¿˜»$ªzŸÙí¤'›âÿ#¶|a¢ˆÔdÕ‰1“ÆÂ£—�IE}ÊÁa™ˆe¦õŒÀ×…9ù}¥Èk`Ç`Ò~„�’m¢<ž®`’ÉÄ=×™ùÈ[ÑÐÞ¦¹&�ID‰“ˆ#Ç'Ž}ï½|g«…1÷"ÀšÖÅûnf’Y(„ÆE¼5E®º­fû¯Ì¹k˜>)ïüLŸßî…6U¡´™Öø‹Q¼’±2uaÐ&möÊ"åçë½ßƒ˳ «#£3&<�hvOjè{+6Å\K%
ð™ÆYÌy´sß[±7éõçD§:á3�¼ˆ{Χ óx=&e¤í>3{x/KÕ<ȸbÔS}î+˜×‡™‰[…7åø2þ_¢ëYrèUþl°±}ÿ‹õKÕ³T§Y„” Kw1�®ö;N†ïŒåĨ�DB4ýTæÂ¼iøX4ný««{'–Hû¸û³0^›mÖªÖ æ+›¢ sW:Ï#ºqŸ1
Æ>JøN£ÓËÚ˜Šï ‰Ã.•¼³òïœy Ÿ¤éƒQ<ðh±>Ÿ+&<SKäzaúÈ(?ÑÃ…I¤2ÅÔƒ@ÂØûMžâÒ¯{a’!Ì;ï™úœ•ñ*à¡Ö½Ž|ågÞ&ˆØj+âó.„ÔKQŠZÄ‚"ÄO»‚¢3ÑLBû`F2h3{a†©%› ³u)B#Ú‰$­¯"�2áø,’XDUø?«£›…Aç–gÞ0/·ýš$ßí$åç'&<ŸÈ7Vx±Qz2¹²®Ž€ôº½—%J.uó÷D #oŽˆÖVZ3¤G/cæAüu6ÇxM}Ú€•ºÎ`B®*»ªCD;ã’¤C
£û1ÊQ¾vaÄA��Çu␍ŠÉa¬ó\ñ«(B–0N…ñçPÆsñ)L M"ç±0f�°mµkG|°,™ÆË0=ÖŸ³7Óñô8D’Úc„î:ʈ¢E~*_?+fó!öKNéïBk­AÃÍJ$s¨æÏ 0f3O‡HG0Þ(´Ôï¥6=ÊF¢Úí�ëpS“±žQ æ±Ïgö�~�†Ç“…´ö8¦-êùm¤1µÆ]/a\ï8ì(U_FI£VÀ­ê8-B~b4î½—Nàsu )/̨¨“¸:�gOï2dL¡âνb’¨Q\ÙÆ°Iú¸ÓþcžùMܤ5Ää[Wä2…’X§`ß¶d»±0Íh[¦'N”j5Ž0)Æ^Ï„­ì¯$ížmz¢e£uîóDk°—ø7
s¦è<?²Ù뤞¹?&œ
‰NLÛ·RTêãZúí`òê<¨+â§{Ô{×Ù/(Xøyë<ÎÎO'.<3Ðöô‹/½˜”Q‰õ�(q'áN ÷âX¯ÖX{1cXã,�¾{CB`«Õ±MLR×
¿ö‘�žgU~¸ „TGù)îîת¸ª…¿‰‰±D™ÏØOªåurOÎ<`"’hbo_˜´û.C¾uœp½:_é�½Ž"˜Ç0d/³â2høŠ1ÙÓõ�ì&-Ö/⿤Wo5žÍa/ÿ—›˜C“6÷(¢YœÁñiå-¿ðQ /í[ªsÞÒSƒב•�í!/jz-LMñ%Êõº¹8⦈Š> ò*␍‚ºë¢ÁôL .<;Ih-u1f¹\ã{'2½á±ÍÌÞÀ‡íõLgÉp^a樰7`‰X�ô2‡ê=¯h áÚ{ñ±°i±rº\7uÔ‰òë·0ÈÖg
\…q+smÎgÇpP_Æ~L£›t–ˆbD×h i*%ŸòÝIILõˆE;25­mùCÞAÍké³ÌšeÛOEMo´‚ëÚþÝcµá·­Æ=ËDSÊ`(:crÍ´µU=µºs—Ú)¹ IKµDèíéRÍ8¡“ô?y#¯Ë?œ®qçã§WqôV#>x¶Ûc°·'Ä˳âMB�i³Ô´Ýq3ñÁDþ3Q¶è ÞÛ{�d/3©q sDU®‘Y÷^B‹þ/{^™íãžÃ—¤}µ»ïˆHßXœ•ÙüûKCö~oŒÊENÒ1ÚX^/ç­¾Å_Ê1âóîœh;KBÚöŒxÅ5ìu}•?{'žòi{␍hö�Œí=“¨ã�IJömŸûŽ<ÍóŒÁ8”êY…}–_޽VÓhr§GûÌú^Tih¿Ð{^~Ôyœ�ŒzÂsÛ4\Ä §½¾äS˜ˆeÂhÌÑÏâK!ˆ�Â>UÁȘ�±÷JuÍy¸Ù™u“èð}%? �GÓ£¤4˜Llæ,&gcÒ“x¤çÔÁP&�¦¤@;ÞÄ¡a~o3PAšìòQÛ1éHã\WÂS0yYïÕ½Ób¿24v“L"AòTiaÜ
ÄÿÖ‘{UÁ€~çØ‰Œï@˼ô÷Õ2á³\@øl;‘áic�#ÌuÈ i&H?Œˆ1:W‘k¥<hæ�=Vè8“ ¡áèáJ—„‚¶ØË Ø·#­"x™³òàU„Æ©„±haîÈ„9Ý&.XŸhÊ8”…Qh–"u␍†¼ß Zî·×�—!Ø4âLÞ>ÍŒ’ŒáìÁ¤ ØLÿ\†pEËÒw g™²ø’wÒʇìZ¬¸wôè\v<ãážc²Œ?Ô<yÀT™üh¾»­!½â%uÒcöÕ:O ÅNâY�‘¸$œ(ˆ|ô†�ã;ÚÂà2ç/‡Úƒ¹âßu¥*¾ûȘƪo¾Ž£õ^zuÌL{u9$ÚSžù Ƹ Ð#Bq/ÈÙyªÄj(o´0MÔâF:˜x}ò&ÖõéñýÖ3o"íÓ‚yÒY é^§˜<&lBh˜y%Äïz+?qþî‰[�\qq|þ“µ0ŠCÑ=`K›ÚYcNóåb ƒäF$¦îÁœ™JcíIN¹…vÒÉþ1ouÄêÙPÀ™ÅQ
ïYF S§æŸaº3ÛßÂW!GLéõvžÿŽUÙ|ámÎ8sW@ÁÜ_<nÜß5ù+õ„Ý%ÂZçbC"#œ¿0h"¥`­0ÔÝ®ÞÍî½R $K¥d=ÄÙ’�ñÜëèÚ;£Æu"¶Uß‘ô}-Fæ‰ãQÉ3oÔ¢±ÔmUД\!%Î-j¨ýBÕ�Èâ/Œ§�{þŽLD’Yu·êçÂ`“xy¼AŸC2([Å>¬ól,÷ä}ëÌÉ1bUræÝ‘Þq_‡¿ðâ‡)‰– mû<ºÆÜ·Ñ <ÓÛ*:ÆÂ$© î÷®{¡iì‹©ßÈMߘ>Uõª½’\úd¬Å÷4G&w'x)MƶóÄ+c¬»RÉ‘{ ºŠD\Þ…A¤™ÂþW2Ö#—å¯]CDØÃ±Á¼É6Xz ¶ywº �ZL²ñ␍f$T¥ãµaß˜×ÆwÐ0õ$©'üÝ$®EÌì'~ÈSǸÓÃqÒŸ”¸ÎL§Ðg�—õW0<™W c}9æè¾Ò Gd�3QΞ,C¢~[ùÁì’ÈZ&†ùía”Õka’c4œî0]qAV�ùä\ï½Îõq„̤Ž`„ÁƒF6ä¸0è�iÆ`!¡ó�ÑwÍF9[üÔuŽZ'a2Ûkù鼃y˜7úFxœ‡'ŒöPc
³Zžó¨�r·^˜�;su§uwyü9÷ë!¢/ñµø#æ%|ca\2¹)ÝpC¤ø~N_5ö™‘åë‘Å¿òÙx£k<-µkXIJ!½�·!G¤ŸÖÚnŸH"÷2îÁð‹± n%}æ‰ášÏÕ‚>1e,ÅŽ¿“µ0ß37âLï¼WÐX•‹*jy†9Q†òºyîpì�ÎÊQšÉÁw9lCÒÎÆ%Ìð™hµæ|¿¤�kaX²W1¨r0Ñ–Œ·ðîóÔ © CPëÜGžR§~Û¬ÀÄûÅ.à²`º*»xF}f©Øhý®␍ñ
ÄH\GâmØÕ‰LåW]+‹øô¿ú·ß2j§Xý4oÁ<((´w�jƒQ%*•[ç}’pÒ QsoòY±@z˜ÔkÔ{ŸæJ³s—~¼ƒ‘9żó91f“ÿü
‚Ÿµ ÷g§å$N¼êõ×{ò¢Fò“{ü¶rM‚LëX“'{cHûL.•TBozùâƒÀÃÚm?Cõ£hrÇÛÁ´ð”‡ 'wûa„¸~®`Žð␍2céÛo/Ù�ðŸ±=n+‘-K�ã?æVˆë¯&Je¦ÆõCÙš™·Vqmò˜×•mêV1î
…éŽÓ9K¤ÿk‰­¹O“Ρé(ú¤ºøÿ:Jc•7žð¯õö…œhۯħíéX�€HußO±(ñoþ�„SVþ†¸^Oxé:~­‰vÕˆìÊrØÚ íeú“ä@Ç»Ãd¸Ó—‰Þ]!R#sÒyÚN­“²Ôë?L/Yuù'îÚÓ?ûý¶âu ðYRŽYMŒ¼Ó³ùÅ8?‰pÁx³ÌSZâÇ'ÜÑ?ÆëdÅ—¤ŒøÜwÈ�ÛkN‘¡+Á• ‚+w"lhÄ·÷w"2KªþE·␍Mw§2"¾á XЧ@äÁЇ±>Vº?mØÑÖnÔxœ…—é‡i‰½qÛÄu´Ôt§Ã)quú^ϧ€n¯.k¼J &“ïÛWyÃlyÉH$g0g‘␍Q=“¥/{aÕ`¬Î½[ϳ?DàQì¨[øË`�NIk”úz !Q'°jËNˆÑ¤%·␍ë›>ØT¦œGÍQt8RdY+'ò¦ȯ™A•߃a:¦T°¾>¶€e1…jÍñsˆT ~Håx0‘óÌØc”4•—ôïÆÄšfÙ�`֣̃ðžûÔž9®‰mÙépäa³Ò&þ␍CcMD‚…¶>|Á˜À“$¤Á(.ûjî|ìÍ;lšwä~Çæ=kœ“Z?„[s«žG¿h1pðÛAG¢Nì(‡¶ì
Žß2añücLŽî1 Ùñ6\ãó�’LkÌé6qæàÜÖõ¹0îS@œ{´-ÖK�@MñÞÆò1(:Ïâô±xØßÞ>~Q¼Pcž…Ÿñ(Éõ�Çs�!ÆÏ„Ùdxÿµ¿yÜqJ²I␍Ë�òNY´—'0¥ˆ$µ`JT�øÕú?Ï=´=“pš]˜3šÿˆÖ[n;qtq\×]ñŽÜž(�_p=—1€‰èˆ'Éœý‰3Ö É_vR½’a£ÔHpb›D$iû˜³'Ö0¥QxüÞA~›ÇS•çœôñã
›Œ›«_ùĬ0ëZçuÏÈÉ/ª³Þ,è~,³ ˆ}øf½â4"7ÑÁ;õCiš•Xöƒˆè
¨ÁýÁ�»ˆô™é &SÞÔË—jyBh®|Äÿ 05WæØÀ·,[¸Ÿ=sÛ‚°Ë¨…CAŠOÅ@;¢QQc cî“ö8ªõ¹Ìóñ:ׄ`­+T€?Z½1¬Õå°×²ïƒî.£S"è7&9Í’­¢i␍Æ�Z‡u~0+3¢dÞ”+ünAV¯è 0Á°6DW˜ÊëÇYbœžo´ý¸§BÁÚ1DŒ½éÁdsã÷¤¼Û++fÚ�…Q�‰
›�'Ë�±ÓYêa]‚ ºÚ3YíFXøÜ¿'è-;O�Ø{:âýÜÆßô„“vdñ6æ Û`+5~[N"Ǯɱ’Þz±¥œõ~Õ¿¾üì�?ÿÕ÷?üú/ß~øË?ÿñ§ïÿ³ü¯~éß/ëò»/Ûò�ÿþfY—¿.Ûòïe[—ßúå~ÿ¥ oåk9/ŒQ6²*µA—Ûò÷O!:•éåLxØ%ˆ¦Æ„E­¡)‘>{»„瘌j©ëRTëHs#aÉoãXtL+•#‘M/¹ïð©�ðL%€´|uOeB׉žD&’/ô¿ç‘sXÍF·GÜø'Y¿ÆžØ`>Ïd}rþ¤H¦˜Œ
÷OŸCëm<sÂÕÀOjw¢ÄÄ&\>©ë'ˆw͙Ǽ‡°`\&SB€ðÂòz‘\žn‡?FZzyÎé/ˆ7WÃ}ü»jïŠrÆ61%Ö.äù±®a_ÖkÉks^9æC‹?ùʇ1ùä"ïgíÓ×|Ø×š|ú—ºþÔæ|ûéåúÛ—?ÿèæ~çôçb½ò4Û>²�"bOiŽ&�ýˆÁ•rêr ^e`Ɇ’âö�Vç/R ³Äö¬ðàÎPµ"Åʳ 5ê¿�ŒWÇs’ÕXg†$–c9b<&þF·æþñføÈç�cï�=ù�OSBƒ˜5÷qáWÄœi¢ˆ£ªç'˜ÂqÆêz[;Âô¯7‰—d Ù¢kX�ÏÞÃ.q1Læiÿ¬*(a•3ç¼Töñ±?óœ÷˜�Ïuâ? ê<çýMl·�T�ŒS_ߣFŒU¢Y�=?Æ9ªâgEQeôè奰ùƒØ¥~R²:xúC{^sGß5ù“¯|”—‹|œ¶Ï^ó2³/5y™û—ºþäö|û?6ìÇ·tjë�R‚/m¡âø¬aÎÊCôüj«×XUvH¬Ã#yæ°:k11Dë9-2Œàv$Ýɤ%¦ÓÉD1çmÚ—æûvRRv¶#Á…£Þ|␍IŒXT¸è#E�/ÝXžNòq…k~GZò1³è½F¬ HOcj á0)Çõã%”‰f½C+ÄCv)36Âð€—^šÀ«sl, 8(UÜ÷‰q‘A„D�Þƒ‰�“ì|÷ܧOF³
æÝY‡3f'ŽÎÐ:ºÖiš¼5F0–Ò0ÅeDŒ£ÄZ¦[äØZ´Ö}Yõ`t“Õ])Ðz»vnuµÔ†:îÁhº)6C‡qcº®´d9/ &�V©E‹ã¾Ž9%/æ…É>z0{× wq�µ>©'¶˜ÄDÌá>j²e6ž�ŠVì‰;nó; ŽúA—ÏyíRÎnA7Yq`V‘EÉpÒ5ý¢v%·J¸ †ÕUÎU™&¤£1µ`ÿ9‘2 ¶¾…e�Þ˜«Ž4¢)et‚ûÔôó<‹(
²[7ïe”'ååÑÙ¥c¦š—Wª(Ê\g+Ü-TlEçôðO(«$É&¼£È"Ïe4ÇdVÙ{Ö•xÖ}œu™ ýMì›%,èY@T>õªcš=ÒbÛ Uí7Æì÷]íS {–F»ðâôÿE·j ÂR£`غµ$¿ió¼ŽnñŒ<†—´±±äVËŸž3eº%ºrÓ¯ìßšHs©1�7CÀÕG\ÇXQ[¨í2àÕꃱWŠB}ë ƒ þ¯X0ÕÀ(Øf­ŽüYR␍Šn2�]ìe†µj#›a5k,j‚�æ'�è}¯BFÜg“´Ûoò¦ºÝŽ Ñ Œz�jÎ>v”?žZ¶Ó]o#É"Åu¸§6[^�¯‰¬Fcpþ²GY™PE4oû¼r~WÍnÖ¾`Ò¹n4âT¯c6êhÁô<³\Âá¼Nùj‹ì°ÑñÔe/¾ãraø>ca­_“·lè&™úŒŸ·]É5ܲÝÝ«‘\ˆÞX»'³ÍÏØO/ÖSo U65¹Ür˜˜žÍKâDŒ 4ðl΀\_iuËÉôPXM3ÊÇŽïg,¬}Qލg´aº6ö¼ÔäöSQºÏŒÕÈl$ÔaÖ{�=o` wa>T™Ýl¹mLÞ9Ú�¡@q␍ç8‚Ñ´$ÛõLÿf³Haµlõ1ÖÜT»oõÁdÇ,cr@”ÖG␍-JÇ3ó(¿³ öOZs×ÐË‚8�oŒ ó`!=lJxkhþ"ª:žÞX�–ëp!jçf…T™�YÈãÆ˜'<cOT'F`?cTv;çD;«ÿFö`8ú~ÑXéó(š~œ™ž:œ%Ý­´;Š.­×�!¡ÅœÒýG{¢ö8>Ü8 d4&k`‰—Èn(Ò?Q’±ÍM¬¿4¦ìgd×7öüœçߘÈ45
6d·÷Áï{ŸÛÓ† ã ÕÅI»µÑ®tC$*ÁIûd£%ª»Å�dqÐÏÀT΀]q=Iki¨—똌¶µãvñ‹l'Ö#©k ÿáWÚnŒ>…¤1Ûº£›aeÎh›îæ¦ô…0"»¦ÇvúTÜîÄ ÛÍðj!‰"»øê@Ó§&Þåaµío(t UFv½Ûý­=ÏR¸î‘~cÓ©îa4˜sò0h(òhÛ<“[©8°ŒÇsåáVu¦93sV&=ý¹rG#Þ:ˆ$i•Ã'-œT*ô`ö¸‡07uNEË9ÙY“Þó¬f¸ÁFÅÈ.l␍Ûþó¹só¡±9&|‰ìꨢ{ÆÑŒžŸ5k©#»•acL~ÚUy%ßÒê�1…Fž�%Þ˜LøJw�·;›níÚ#Ï<q¹1$¡eæµ=º‹ˆ2d^Òžvå61Ñ–Ów|·á•#9)›£zEˆ{:ñP¿:kWBÕ"×�)‘Ì-Æ(QÕ YÝ“F_ÏV0^„^l9“cô‹a¶€—‡<ËefKl,ˆë`ØÎ„[y=| æÚž½5à”÷4\¬ƒTÖîÑõȼ•$/TUîDF{Ôo8cE}%‰k,Tu’屇ëÍO5·-Ñvæ)çË:Vnb᜴˜€_,–ïPc1Ò’*ÈuBB�Íþ/Ñu‚c¹‘Aô*u‚·Ïåþ›gÉdKuuÉ̈p7÷¤+>f«@À—Èñ8g�»á�¾Ü¤WÓ¡–ì&¾š
¯:êHØŸ?Ö{4Ì3Óû\À{e.�vÖ¿³␍Ì#¬ŠÎ~®TŒ#<®Ä¦0Mh@¤Îo³Fš±êý¼ïá¤û’
'Ó‰J<mñúž;k'ô9K|kLSëNÄl�?c½p%æûMCva—=LÐÞ0VÙ“öy…jàŸ‡3{fð—±Bz˜Þ·í>Q·N¿ÅXÕ 1EÝ91CNqÌ+Õò×…Ps¿4ê«Ù‰#ü\ðj|?ó‘NµNê)†ºi¤ƒÚg!Ñ EÜoÔTã¡[(„�~¹æ‘–{l(9 kO�üd ÔÈÖô‰d_‘7R©Ø#LîM®…ämG†¼N&Ô‰ðw‰Äª æ.÷êš_ýV£Qb_/�ªÁNûš¦éúoògÑFŸÝ©SÙÙz’™¹‘s¢.‰ @ÔÞævÆ‚‚•ËÞa¶¸fUšr ö—•­Ž>¦•”ÌÒiž€$­¯Æl#KR·Ÿï€ÑˆChËÈíñ¯šÛÿËö„üÌ€ÜíòºôM*D&Þâ˜3ÔÒµd_™¾Ÿ£Æ ­û’©¼ú¤Ê픑Oߣæ<­€­ˆgtq.ÚVêk%6й\#¡ýf*{^áâEæ.R8ÂÏm�iËž®K¿EkªÉýŽÑô©Oìâ¯ii9«9Úûk#%ËúÌôçÂÜáVï:�C(ºˆ!Ù˜5™]×µþÖñ.¶¿”+ñ¹gÒL©‹_=j"e&»KqðM¬ºÌÈœÊoVód$§)t¸1¨,ø'ÞNn‰„^vZfõëõÊÁ�“a«åVžQ²“”›êašq… A
%ØqÃ| ¤P\iy?ù(Bh…O!ÌUÐ*W¼Ç|ãrà‰�ÿVí�6úZÜt,c.޶¯]‚—Å…jl/Å@"ÇkG»–[•q7&Ô¦?Û[™üuF¿­„;†??í„-ï(#¼ü(p�ŪqM«¨¤=×»Hñ)ømƒÞžûÞ}à÷=ïX‚@º’AÓe5Š×œÄp¼Y
”îƒ=�þÚœÞù*f÷ö^2¸õr w&ºY¾aF�M{#â^³H_ ³.£ÆàjßL°Þš³¤W;K[ÇN°sƒ�¨Ä>kV»Þˆ)DÈuaœÔÛ8�³cÝûM£{TÃb�à>Áûœ#⌢pWã˜òL¶¹¾*®„m¬w°Ùß m£0åƒöY³˜}KÝïª&+ü5 íä¨�o‹ÏÂÇZISCs·¼iTÈ`¶‘¨±7¬™°B Ëû+„e¹ŒÌ=+ùUcûûîùwÌ€æúÀ«–f4ÜÜ‘H&5¾X¶<ÚŒ|ØÍnpëChÇìFM6
z4�9lYÒ½IyY�újÖhb|´a)2T¨¿¬lÔ\Á--ÁÖ:*WR%šˆíã›·8߬¦�lAÉÚ’m¾§D3KbOÁ×xö*\½ÐE'—“^7Þ¸(Ðô6û5°‘Î:ˆoÚf�ÈÚb…ŠWt°'qÌi·»Š�Ç!Ç.B£ÉïÉaô¾…ºÐì5HÇêÁþ2Õ¬ÁJ¾ßòB̘ç(Ǭã\/£nnõ©¥¿dw�¯®„ª»rÎ}ÖpÝ»Œqò‡jZ…»˜æÞcÑnB–¥Vø$r©ËöZ’"˜?.×ï.ïw á÷°j�Û^á§àÎY*êy?ÙÍ÷³’Gà¯f#¿2*O˜v£îÀ8ÓkÏB]€í.,&ë¿>Žîbî2ŸTä‚›Xùg{ÑR␍‰`AÞݬ …\ƒï®ñÛWS,Q쳎š<]óÜóñ¶b¥Ä„YZbp¥)]?Ò•œnyW}ÍîòY¾áù%
Ô7›¡ç:f�ÍKßÇJ/úI`¶&÷{Õ:Ðv<#9T&Àܯù­ŒÞ®ã[ÊR-‚ËŽÕ=kòÆ< M�h�{ZÂÚm–0$½`ֿ⟹uÙ%I½zupmæؤ|[ñ�p늋I^fMÑ…M8?OІx�øÍ—�#,ÅÔ"«1*.hÖ$L‚<¸¯Xa¨½o:ÿjŽKÏ®$Tü3(…ÊámDô«a+8×gØ-¬ÛÆŽ\¿é‘ÕÈv‡×¨ê/V|íY÷DÂjz9Ó_�Æ_°À‹Â²k™Úݹp€•£,(Xò2Ýß»˜ “ 3ªY¶¡Wš½¿*×]’Á. h¸p÷—¾ãë(ÇàP¥ë-�7·gÈÍ×R†�)¨¹dÇé$Èþ8G�³jÁ½»’¿há~î“×}3˜‹ðZ#E£ÚºæŽîþåmw7=‹¯*7W׌±_5Pr¤Éñý��yªYzÓ„šk(Í“Ýþaiî ¿éþ-hcDHº�ë+x‹ç®1Fì„}s-¬Í/õY¾
øMpI;Á¬b‰ýü$‚Þ¦ìÄóæí àþ�Â>ô.ÅX¦¯-:uɲ¤ß
¦ˆndNÇåâÎ�y6kö¦Ó¬I‚¼ñ<?�Xí+µo(ÏÎXL¾eÀ�©ÿDû*2ò޽š˜×Ü!Ú=kØ ©;²©ûûݱ©ûäk׬‰ežq2¸UìëU|=ßV²ô ܳŒ[‰WlŽ‹>çï³ÉÐSž­Ž“'òPm_g␍C-ú,®tÊ$Gúìè&¶Gרo‘p,³´BǬ\Q
âoŽÏ0jãbðàsµžË0Y±^µwiÈçýã”�;ÛÒ¶UžaIŽ{~ÎçWÈÀr% ý²&çüœæß÷úê¾¶Á?Gç_éý¿çܹÃï.‚l©…~SW´EÃÖYS+%°g@¶–kñõ7©»í2á qÂä®fÓô_Ébû|�ÿ$pÀQ €ì«9®ttÐ`B©—Wú¯3ózÔÜ␍¯a0gÕ8:+X¶óûä;J~°’ßO”A{v–å”Sz9)Lÿ¡î@X}�0Ÿ¡•�%O-giÇóÍŽñ¿6³}¿Vc’R¾~3 ÚÉmmŠ·6æ·½âõo¾RZF:ϬÏi˜®K–”¾ùB9ƒÒbêjÈ3¦0Wÿæ�
"Sÿ —=úü@ø»kc]€�˱hÊcÅŸ¡ý¯2©áP.ïqqX~�éæ±Ìömñ2(Ý êt�#b­”fý6�´ä1§A’ìð,-Ÿ¢²ØêŒr* µ:\\õ1 Ú‘+ír¯¡N„ykZ±Íš ŒÛ*·~&ìKá¥8¹ ìòèsn9J¬Æ^²íÛ¾šÃ§ i|·eDµöø”´MÓos“?Tã&jùìub»␍‹òîÙ°¢Ž'¡éYpÆ<È\œQé’Ÿ J£Á3B,±79WŒ\ý‚í!ì¿I¥Wš½[—õ\phºpâýBÌwùŽrlœRÍUlô‡eÿý‹=œ–xö~œ¶·�Ú4–�fIº‡?\b0ûs3[^õkgÂÚÆ¥÷oèO0ùêûL"á2ɱ¬ærk␍ÚÞ.sºëó)Œ).fØŠ)PA¢mGgò«FlÝÞ¸²'Hîl�ÂU¸¤‘УèQèÒfÌÙÅ{�*í5ÆËHBÕX1gKôž\␍ ;Ê {Ð0VõyÛó6tçV@ÙJ¹Ñ¤/7¼¥¿×¬yü†—áöÔ\ùùî×öã¿+ïæ«ti„Â_hRD�Mßk² Pz´ñOà‚xϼf5~‡ù˜‚æI␍ g¹—¿ßsvÍD€¬r,ºÔa\�MßwEœBáÑi¶JÌš“ƒ¡ûš¯ªƒOhƒ8F •õb␍q£Œh±“ÂË@L�tõ‹.@×<•î(�a—–úÚG·B÷¯Æ.:¨Â|Y␍P‚šg¤Æ©@€ÕÅ«­>Öjô¥€°êè;§ ÀCÒŠÅãŽj¬�>€ #÷Õ°˜t¡°45f‰�
Xtp¸gê‹=‡5R·Ë‹Œ:/<ßßh=␍”a©[GÇ—Ÿ%4Wˆ|ˆŸ.Q␍«‡·#l¼ÁQ�bK²Bìue"HÚÂ%�oͯÀIˆ+×5ÏPZæi…F␍m¢£»5VïjŽ”¬\¸_/I—þÏx¬êrTQ‚ûßÄéµ»ª»ªKGAœø"‚A! ¾}~«ªú85�ÜädŸî®Ú{¯õ_¬�}úõ=ò«ÜÀ³&9LCi»iYÏ¡H™¸û½Y#8ÚY,C"ëzÿŽeº©Yä'É‚ÇÖùÍftŠQõ«‹i ¬ªíš÷ƒNޏu[Ñ�4F¢5ç:löñ%9k
Ðßeoñê´â¨¨pÂá¢{…†pT␍­¦íÒ@¾åq³¦ˆ]f€¨%¬¥
šðn×vÄÂÅçƒ"‚@Ô„Ë=*ìºï_vo&r«±«�÷[x­Ÿ5Sõë‘M"Õ®�Ÿp€K mo�ß“1lV²L:\5šÿÎéÕ=˜p?y³?×4C…FbLZŒin²é�¬Ö␍Rô3!†YÅC•p=_Öâ—OÛ5#¯6nìŽôÈNwèš%–u;ø�èxƈ“§Æå´Ù/[5ã;ô¸ÚÆLÓOnщZž]#Òâž…"©^™©,ÜR\è,Jkà�ac$sÁÕ…;ÁsCŽÒÓ)Í0V/¬ÓxŸ^0>¾gl«èÈÁÿu z=k܇spÚ‘f§&,˜D€<×Lh@2ÊçJ($"ù{i*b¨y€u
!¤†hs†+G]¯Æ-´‚Sƒ¼8=·Üó[–²h2ÛaæqÛ;¾k¿¨Ö’x5#4@Œæ•³uE±N?]5„åšZÌ!L3ó¿c7îÏ&Ý÷®‹`£ãW8ƒÒ «L›×7‹¦þ5Ĉ+Úg=×Ñ(&4ê»æ ˆ%þ=ØcH²�Á|Î)ÅkNÆåžÔTÙ�¾RõkaOÀ‚Ä=ÇqL37gûròu¬ç»‡ÝÜW{R㈡´3ÜÐvÍ” SEfµÏRšÓ†ÞçÌ�RfW␍Zº|„L®•L‚�ù%¿¥ÄÎ
¡Ôé\+ªäžœ„4‡s]®¤ƒ:ʵÈR␍åŠSøa8‹ÄÚÜh ѧ&ÃK½ª6›Ý¤N†9©åo␍Vɦ„{Ø
'Æ Ð{¤ðI§dA&ïÔYEbhµ×fáâ}!G蓜P =Ô½h.ÃÃn4;�„ƒZbÂî]â—�ìÙg?ÕDqFtÃ$¶]ãn9„µåÀ ?^éÐ0L68wMþÌg<ÊgŠg ¥fšWj Ñ'�!ldD8W´&Xëä‚0Ó„ÜbM�>šµðÝÑv‰õEA�1³!„KÞÌh×¾kÄ·¬?€ªOR¨¾è9Ô¤å­a^䎒ÜÖ™$kÍÝû9D )†{Lâ�›wVÛŽ¯š;kozXÞ‡eª-aï;ÿU3´ð°Ô›=ÏÇDT]ÙûÍ@–`à¿˜š° ¦1ÍÏûÉ1MGI"ô¢ÂAéi¦§�÷XžlC•ò…½Èæk}kDT¿ç— Uj\'Ãóõ9|¢ÏëÒÃO‡ÓÙÍü1vCך PjsÞì #ïoÓ+ꤑn|@Yø+9Äj?ï"uäbvk›5aÍ+§$çï€i
ml#Jø€�l­"ñí}U␍Hºúú DÚ8ÚÒÅûÿ=äîå*)ñ¸#¬ @,x°U¼‘¢Ô¤‰0­ H6cSWÙ5-¸šfõŸ°1nÆLDúüÚrºéŽý€ÿ¤†/rÛÉæßwÙ Ì–#ØX¬~‡¿L3!¯êà/0>Eùü@þ‘ÁÖÍÈÎ[ƒŽÝ‹THý•”ž�‚]ѵKè(¹eSVûSFm$¶Áˆ-¥$` $sk¤ fr:­|v‰µô½&*ñPÖÁ®]`2Éçš?êo ã#8�,ÊU’ƒSŠ‘êu‘Ûõ’”§…KÔÄ<4Ï‹rc†¬¼Ùél~d¸–CõœýYzÛrŒ3yÃÓr¬šF@¦0±d×艽&<…ÓÔ dI6ëQÓíŸÜªØz»Wf‰?Ä¥+~¾ËQ8Ú5}%7ƒy|Ð^øêðµ¦5jŽèlN½–ïëš"$(õÈs\‹(1ý}á…­´V-©'%¾ "›}ïaöHL oϧÄÀž#áŒéïfå Þ¬Åž?RpàždåÙÆgKâ;®Ù”}
8tw“pºVƵdwÈ2Sª&Ö=Gî¾mÐV¾W =ûSº�05ú¬iWÃue�XsI‰Ê4’ߘ×Í”h¢(0jÎÄGa’½ï”å´Xy,ú¦æñ/‡ë}×Jì¯�t
5f&ÖC{7\°Kû‚°�|cOM¾>(š…¨»FûÌ I‰ë–ûû\Ÿ#!®ï€«Z(°å¸wjx…L/x–c1L2™dŸÏanÈ+RNvM°]!cÖ`ÀmŒ]a߉ ‹Åh?Åb‘QóèXç¢iv)d�¾gÈSÓ
ùxqÝËÇ/“4tªOOSs/z�Ðíiï;I35A[ëÎGV ÙŒ¬ÅÒ”h@¼žø÷5ÉìÒ§Ïô_IÍ1[""hƵkrq=ó#á~J ‚hghëÖ–¨sŠ#Â<k¼,‰…ï,-¸"_ŒØ43¶”< =V'‹=?‡]ztøßó)þ¡Ö)Ÿ×.)Oö÷˜‰mÖ�% ç¯g×´„P/¢a#‘šzçnÌÆ’‹+£â©nÒά1lä-Ô¹|DM&ÖE½{–<1(‰É?Ö¡¤ˆp³ž7>ŽÎZ€øëà5Ï.aØyÉAü'¿v-‡U“¡˜új–S#Bø|`ÌNf ¶ (!‚èéìçÎ�ÔU¢ã¹ÀÐP©³åLæòÜEX—K‰U"¯›_C;ë!09U?wÍÌ<>ËIÎԸΠC-š1{Å0]•÷ø=K›šá %”6æ»æ“ CãCJÙ™3‰Œc†%Ú®¡Ð”ŠMÙŠÔÐo€¯”␍Óø»y)½QcƒêôƒÅÀÌ0ŒÇ␍îSb‰t $C×® n{¿­…×$eæ:”ÀVÇlÇ´8
␍ØÛÔx‘«ÐBƒ0”‹Ñ@6ëŽ^ü·ýùÑ9kþñí7ýí?ÿò‡ÿþË�?ýûo?ÿ÷ó;?ú½¿¿Ÿ¿|;?üV>ú”Ï??ìƒ^&¨ÀŒ+ÈõŸÀB1ä ¬«ûóÿñÚ©1%ŒåúΧÌy‰VƒÌë®`ÌW®A4¸¼ÆÜD…Þk°q2k./:ÅdlöHä’îÞ+ϵŒ0BcWjh–¡à©TûÞ�“uîôÖŒénŒh”™·lgy'àöyœQ"¹SCµÉº}5 Ï®I|¼DµÔÀyŸh±KÛßÅHÊH¶ëq0•+ô”Ëô×=ÙŒ& n MÅ9lC ‰yµ)Ý[tE‹)9-LI½þû´Xwß»X|'¢ìýŒ1¢5ª$Ä^ïÚ»… X¦ZR3aIÏlöè»f芩æ
ç|—�lmïY÷çX>¤Ü¬ˆœ5RS‚¿¾Å¬%¢Tà¶P²2õ75uÒ£é×�­ŠIdâ®o<×s²úÁ×®W€s�´ûÉRÎ\–›)të8‚a"¾ÊÕ΀î:“␍žmüþ˜b‘›蚬bÅÏ×2‰‡!iÊ=;w2MÜÇb=Ý,_IPA›\¡ë¥·�Þ÷ëu9§¬QÔ,~ZáÛlìàçõuÔj°í:¤»çÑ]2�ਡãí̼ˆÛXÀ°�Ô5¦0жýÝ2 ×7™;v$~&¥ºÕ±kÌaæÙÇÂ’¥Ñ®bŒ¾pƒn¥)Ïf2ÎõL›ëÆÂ1ƒ”}.…t
)K´tÉ4ü‘%ÂÞõ+ûwÄU µ~A+éÅ_x­h␍ô›äçy)"}H %ä4å ƒÿ„â_6~rÀð¿æœj¼ƒ9²£{‰+|„ Æ}s�ò¤ùf‹‡Ÿ‹␍¡ªöÖÌ{™/Eê•3­©žš0Ý3␍>gÌ-K¤CÎhQw|™÷£²oúül¯�ÒJÄÚ‚(Bª/q½ &?:tžXN KçÐ6KÃ7of8Xû`êfzÚ\Ÿt¦½Çx£‡-zÂYÑÃiaÁ~�`„e‡:à&XXk“f�`6t<’"Þ°ô·ø&a7ÎsgEìžèVvæJÑSg‹TðŸôqå©ÿËw6Ï­%%*€PZ¥5o’¼KTƒ"ƒ¦eˆ~—�N¤´q‡Å2Új†6ŽœÔäŽ]Ó&%ÿJt½ Ynã@ÝJ­`Béícs.Eµ=1w5J óæÚŒ]#åpŒ'FJ²ª¹c‰´‹ò•X¤%+;@ùÌÔp ½á%{{5švÇGý5ëÿ"3NÑV�ð¦¹ÝuŸ1GM;f�€‹‰jhI:�y_µ•r$Û”²d ¶÷Võ,{-û¬ñÁ€-Ñ[Gj½’y$ú\ãè7`Ë´¯2‘€?[ɇx-¯¤¨1OtÆž¸žj„Á¯» m–<Ñ
e
[5Ïmy¬ ù½¯âéûÑôP=å»ÀùÊÑ!ÉòÌ*ëÚá.ùu  \ßÅR2ÓXâ¿l7‰ôON26âö‰&öÀýìÕ@ËêÏÖdÓtÔ<¸°a»¿ßÐ÷í÷nŸš{pHŠ»ÿq]š´™Ñ+XßgI¼èé–ß©rÝ5iq~/hÝe¾'è3ˆÄ4Ûµ ¶ã\�¶ñ­ñuö‘Œøÿ_$}¦ôÕ­³fWÁ&Öjt3UFFëKj¦”+|�Å7=¶Ó£pï¬!·ë:¢‹b»ô
ËR¯åš×Díoº&•Ù®sÏûËÅýÒOlz™&c4”óÕÿjÈPöX&ùãºý�5ß'{Oé’ò¸x5æì|åiÿ}Ÿü##Î:„äï¨[`Ç:ÝÐW³E#RlÇ�7{×+ïë6ÜÊÆ�±]µ¿dØöß7ß46Ç„ÿe»:êÒ‹�÷W£çP÷
÷?¶kP0Ùgîª]Vò,­5¦ÐÈÉ$qÖ4á ß!Þ¾Ùtk×–=câsÖ° ‚ÖÌk{¾Kˆ2'¹¿võ5A´åôÏQB™"Ë7ªOFük )M¾ûƒvgR␍ÙgÍ™e®IPâªUC݃G?ßV/Fþ²ÆjK·°år~ËefÏ0V‰Ï¡°?blåóé�;×ööÖ€sÞÂt�Ïî9ÉÑ/›·’ì…«nWb´å~Û§ é3”h\T媯X
_šM}ºúÚ3owjˆrOÖ±s
rºFŒz –çpãýnI]È3a+žù>h³U °—@ÑÝqÍwÃ!}¹I¯¦C-ÙM|5^uÔ‘°ÿþXïÐ0ÏLïsï]Ÿ ÔYÿ®60�°*:û¹/3` ±MašÐ €H�ßf�4cÕûyßÃIöWH*œL$*ñ´Åë{žT¬�Ðç,ñ­1M­;³þŒõ•˜ïœ†ìÂî³t»¡½a¬{A”Í+Tÿ<œÙ3ƒ¿Œ‚¸ÐÃô¾m÷‰ºu™ø-ƪfˆ)(
讉rŠcÞ©–ç¸.„šû¥Q_ÍNáç€Wãû™ˆtªuRO1ÔM› Ô> qˆ^(ây£¦š"l(„�ο\óHË=6”œ„µ'Hwi—w©‘1¬é/’}EÞHQ¤b�0¹ÿ5¹’·ò:™P'Âß%«&˜»Ý«k~õ[�F‰|½4ª;íkš¦ëçäÏ¢�>»S§²³õ$3s#×D]€:¨½ÍíŒ+—½ÃlqÍ(ª4åì/+[}L+)™5¤Ó<IZ_�ÙF–¤n¿Þ£‡Ð–‘Û㳚ÇËö„üÌ€ÜíòºôM7*D&Þâ˜3ÔÒµd_™¾_£Æ ­û’©¼ú¤Ê픑O?£æº¬€­ˆgtq.ÚVêk%6йÜ#¡�3•=ïpñ&s7)ágŽ¶Î´eOץߢ5Õä~ÇhúÔ'öñ×4‰´\Õíý½‘’eýÍôçÂÜáVﺎC(º‰!Ù˜5™]×µžëxÛß␍Ê�ø<3i¦ÔÅ/�5‘2“Ý¥8ø&V]fdNå7«ùe$—)t¸1¨,øo'·DBo»-³úõ~åàÈɰÕr+¿Q²“”‡êašq… A
%ØqÃ| ¤P\iy?ù(Bh…O!ÌUÐ*W¼Ç|ãrà‰�ÿVí�6úZÜt,c.޶¯]‚—Å…jl/Å@"ÇkG»–[•q7&Ô¦?Û[™üuE¿­„;†?§v–w”^~¸ÆbÕ¸¦UTÒžû] ¤ø+ømƒÞžûÞ}à÷3ïX‚@º’AÓe5Š×œÄp¼Y
”îƒ=�þÚœ>ù*fÏö^2¸õr w&ºY~aF�M{#â^³H_ ³.£ÆàjßL°Þš«¤W;K[ÇN°sƒ�¨Ä>kV»Þˆ)DÈucœÔÛ8�³cÝûM£{TÃb�à>Áûœ#⌢$à©Æ1å™ls} T\ ÛXï`³¿AÚ2FaÊí³f1û"–ºó®&+<›…vrÔÀ·Åÿ®ÂÇZISCs·¼iTÈ`¶‘¨±7¬™°B Ëû+„e¹ŒÌ=+9«±¿ý}÷|³ ¹>ðª¥Y␍7w$’I�/–-�†6#v³ÜúÚ1»Q“�‚Mg[–ôlR^ÖF£¾š5šmX
„ Õê/+5wpK D°µŽÊ•T‰fbûøæ-Î7«)$[P²¶d›ï)ÑÌ’ØSð5ž½
W/tÑÉå¤×�7.
4½␍Æž£6ÒYñMÛ¬Y[¬PñŽöá$Ž9-`ãvw1€ãqà8dàØMh4ù=9ŒÞ·PšýF␍Ò±z°¿L5k°’ï·¼3æ9Ê1ë8×˨›[ýÕÒ3ÙÝã«;¡ê®œsŸ5\÷)c\ü¡šVá)¦ù�÷X´Û‡�e©•€¾‰\ê²½–¤†æ�Ë}ž!!páò~Ç~�«öh°í~Šîœ¥¢ž÷“Ý|?+yþj6ò+£ò„i7jàŒ3½ö,ÔØîÂb²®1ðëÏÑ]ÌSæ“ÊÀ‚\ð+ÿl/Zª!,È»›´�kðÝ5~ûjbŠ%Šý­£&O×<÷|¼­X)1a––\iJ×�t%§[ÞU_³»|–ox~‰‚õÍfèw³Ææ¥ïã␍¥ý$0[“û½jh;~#9T&À<¯ù­ŒÞ®ã[ÊR-‚ËŽÕ3kòÆ< M�h�{ZÂÚm–0$½`ÖgñÏܺ쒤^½:¸6s„lR¾­øG¸uÅÅ$/³¦èÂ&œŸ'Å
ü‡Fœ³Æ%äK1µÈjŒŠ„ š5‰“ î+Vjï�οšãÖ³; ÿ J¡rxýjØ
Îõv +À¶±#÷9=²ÙîðºUýÅ
ƒ¯=ë™HXM/gú+Ðø xQXv/S»;°rT€ @^f" ûù½K�É0™0£šez¥Ùû«rÝ¡Ñ%ì’€† OYà;¾Žr U:±nÑys{�Ü|-eؘ‚š+AvœN‚ì�s9«Fܧ+ù‹žßScòºos^k¤hc´@[×ÜÑÝ£¼íî¦gñU%àæîš1ö«JŽ4YÃ"¾¿#°s"O5KošPs¥ùe·XAš;èoDº Ú’nçþÃ
ÞÁâÁÄǹkŒ;aß\ +Dó Aý-_ü&¸¤�`V±Ä~~AoSvâyóvpHaz—b,Ó×�ºe␍YÒoSD72§cŠrqçÁ<›µ¿zÓeÖ$AÞx]ŸG¬ö•Ú7”Wg,&_‚2àÇÔ¢}yÇ^MÌkží™5lƒÔÙÔý�Olê>ùÚ=kb™ß8ܪ␍öõ.¾^ï
+YúîYÆ­Ä«6ÇE×ùY␍Ždè)ÏVÇɇy¨¶¯³†!€ý–␍W:å’#}vôÛ#ŠkÔ·H8–YZ¡cÖ®g”‚ø›ã+ŒÚ¸<ø\­ç2LV¬W­ÃSòyÿ8ecGÁŽÅ¶´m„gX’„ã^Ÿóù2°\C H‡‡¬É5?§ù÷½>‚º¯mðéèü+½ÿ÷œ'w8Ÿ"È–Zè7uE[4l�5µRû␍ÈVÃr-ž£ž“º«Ñ.ž'LžájÖ1Mÿ•,¶ÏøW u°È¾šãN@␍&”zy§ÿ:3¯GÍÓðsV�£³‚%l»¾O~¢äVòû‰2(`OÂβüƒrJ/'…é?Ôëâï¯æ3´²³£ä—DËYÚñûfÇø?›Ù~^«±I)_¿Píä¶6Å[sn¯xý›¯„”–‘Î+ës¦ë’%¥o¾PΠ´˜ºòžë&çr¥Âð
؃'L/v•í²a„Ä ±„ �é‚„Ø=Od•ôݯût»~2#Þx« ãê_¿SAD¢ëßrÙ3ˇcl4¡0qq,šòñ·´*“åðeù¹™œ<–ißïEézÐýA9"¬¥9¾I'm¹ú´$’<‹–/QÙMuŒr* µ␍îŽú\™‘ír®A�æXsmÕÄÀ(°©rêw„}OxIœì;<ú·¬£Ñ“l³¶¯æ´ôC€k1¢\íù)i&Í}ë›øCj<@ç@-Ë>¶›°PÞsÚVôÂzš^wXƒé‹;TºÇÏ¥ºà!v�èéœF®¾`zûµ¨tD³÷³å°ÞŽê.œøLˆiá._á(gã”jFb£¿ìýú{8-ñÌûqØnAjݘ„´J¡=øÃ%ŠÙ߇Ùòª+s¸V«CÏÿƒþ“?® ¯$ò.͹#–©NM¡AmÞ‚0çv-ŸÂèâÄ óC1*HÔVp´'_ÕbG›q¥G�œÙ±„+á’FB�D�„ž’6mÎ.æJ¨´Wï•„RcÄ졆hî\␍ ;“A{ ¡Vjyí�Ú¹•␍P6€’Üh Ò—nÑß±j^ÿ†áe¸^AÍ‘÷€�uOèçO׈wóUºT¡ð
š$¢®Kï¹d#@É£ÕˆÄ{×1«ñæ£ ÒOj`8Ë%¸|x®çÎ1"¤±’cÑ¥ÆÕØt¾+Ä)žÙMK‰^³s0ôŒõªÜà´AUBe-@¬!îÕÊ€Û)¼ ˆ©‘®®ÐèZ»r;ÊŰKC=zÝV„Àý¨1‹6ª0¾¬(A—§¥jW Àèâ¿ÃTŸGjÜKÂáFgŸ‚‰Vìw¦Æø¸p¡å¾B(,M�^â£,÷ …Z±ç°Fê6Œ±ˆÁ¨ã…÷¬±Fã©¡4KnëLÇñåwÔ¢ ñà©aõð¶ÂÆ ŽjäS+Ä^#&‚¤␍\¤sÖ\ œÄ�¸rͪyKi™§ªÚDG»1VŸÔœQ²äÂ>&I'°Bö­éçzäW16¸�1ª&9Ì…ÒvÝ2ŸC=�2q÷½ªÍ,–!‘}>‡ŒŠû4ÝÔ¼ä'É‚ÇöZ³^�bTÿQƒÅ\ ¬ê÷YçƒNö¸õ=£
iŒÄÕs[°Ùâ[rÖ4à~C”ãŽWç*öŽ
']34„£zh5×.␍áï<®jšØ¥ˆZÂZj  fmE,Ð,9¢&\ö¸£Æ®Çª±²+xSȭƬ>Þoà]}Õ”ê÷‹H�‡&‘º®•Ÿp€ËšÞ^ëIÞF²Î—ÿŽòêL¸ž¼ÙïÙÍPá&1:-ÆT“¬{c@«y‚ýHˆaVñP%\ÏÊîøås¯š7¯ÖNìŠôÈNWèš%¶y:ø�èxÆ'O�ùë¼lÖ¼?A�ó¾Â˜¹ôƒ›Dtb�†gÕÈŸ´xdàŸHªW¦+[�[j‚ ƒå@ix¥FØx“¹àêÄ�à‚¾!G¹Ó’fë.ŒÓû='¼ }¬ç]V1�ƒµ␍z]5ÎÃ>8í›ËNMX0‰yÎ. 0èЀd”-ΕPHDò351ô<À8…RC´9Ù­ÎŽWcö;´‚Sƒ¼8=7Üu†w†²¹d¶ÃÌã¶W|×|Q­)ñjÞÐ=КgjôÖÅ:|:kËYZÌ!t3ó¿b7ÎÏ$]תy'ÁFÇÏp/¤F™6Ï5‹¦þbÄ÷6Ÿkk�UóÄöh’ÌdПU"¥xÍÁ¸,áIM—Ýè+U?'ö,ˆAÜóÝ÷‚0}sd°O;ŸÛz~ò� ›óºŸÔØb(í7Ü«æ
J†©"³®ÏPê݆¾çTHé³³-_º¼‡LΙt‚�ù’o)1³B(u:æˆ*¹‚'áÍá\‡+é ŽvN²TC¹â> çb‘X›m!úÔ¤y©WwÍz·©“ajDy߯«dRB‚#ì…cPè5Rø$‰S² “WjöŒ"14Ú³ 3pñ¾�#ôINèÐêž4„á‰a7š�@ÂA␍1a×*ñe {ŒºO5Qœ7º¡ïUãl9„±åÀ ?^iÓ0L68VMþæÓm+ñ¼C©éæ™ZBBôÉA`ÎQ­ ÖܹàÌ\BN±§Æ=êµðÝ~¯=jEA�·²!„KÞLk÷±jÄ·Œ?€êOR¨{qçP“B´¯„y‘3JþqZG’¬>ÔwßrlˆR ç˜Ä7Öï¬öÞÔ\{ÝÃò6–©¶…½¯tü�š×z³çzLDÕ‘}k²‡øbj‚˜F7?ß’cš¶’Dè1D…ƒÒÓtÏý~Ûòdª”/„(èE&ßÕ�¯FDõ=_ÒT© p¥�4Ï�åð‰QÇå·§3›ùõ® �-¨ƒX@é®~33Œ||—ÞÐ �tceá¯ä£ý|MˆÔ‘‹ÞíwÕ„5Ïì’œ␍æRhãýF 7ÈvU$þþ^Õ’޾o�HG[F xý»ÖCî6ÑΖ�ÛÃ
Ä„SÅ)JMšÓ:€d36u¶UsW3¬~ ãfÌD¤�SN7�±øOjø"1�lþ{— JoÙ‚‰ÅêWøK7‚÷SüÆK”�␍ò¿il·Ùùjбs‘
©¿’6R0¢#:W %·lÊho=À¡ÕÞÄ6±¤t€ „D`n�ôtΠ•Ï*1–Ö«£eì:&�|Ìþ£þ†0>‚ÓÈ¢\%9Ø¥©¡>¹/Iyîp‰š˜‡Ë³¢}RnÌ�•ßfú›› wgS#{¦ÞÞÙÆ‘¼áiÙVÏ# ]˜X²j܉¹&<�Óô dK6QÓåŸÜª™z³×ªÄ/qéŒ�ŸÇrŽv–¯$঑ �MÑá…�¯_{®FÍ�M£Ã©Ïò­îVdƒ¥ïyŽc%Êß'^˜Jcu'õ¤Äº 2Ù×*f÷Äòöl-öì gL]V6êÍ®ØóßÔ¸'Yy–ñ™’øŽcÖe[‡6àlN—Ãʸ†ì
Y¦KÕĺ ç›³¿è+ëu…ž½µa"tD‡>³ÛÕp]$ÖÜR¢2ÉoôëbJ 4Q” h 5Gâ£0ÉÞWJˆr¬¼ m�©ÙAüËæÆX5�ók&íB�ž‰õÐÞìÒ¼ ì=k©Éꃢˆ¾j\ŸÔ)qÝvýTã³'Ä�•pÕ
¼³Ý+5¼B¦�<Ó±&™L²Œ×s˜òŠ”ÓŸUlw‰��Q5XpkcG8V"ÁBÍ`1Ú­,2ªmë˜4Í.… Ã÷4yjî‡B>^Ü×ðñË$␍75ÊÓÔ\“^#t+ÄDî´÷•¤™š ‹)‹}å##�lFÖbiJ\@¼žø�ÙÉìÒÒ+}ÅWR³×•ˆ.ã\59¸‘þ‘p·ƒ ÚiÚ¾´€¥êìb�0W�—%±ð�©gä‹ëfÆ–’'¡Çèd°k9ìÒ£Ãÿ~ÕSü¡ö’Ïs•´'ó»Wb«²dàüïY5wB¨Ѱ7‘š~ålôÆ”‹3­b‰T7i§j4y uNQ“ŽuÐ@朗'%1ùÏÜ”nvç·¯�£³;@ücã=Ï,íaØ:ä þ“¯�ÓaÕ¤)J_õrjDËÆì¤J°A DOë>¯pš¤Ï7ž ␍µ^WÎdNÏQ„y8°”X%âðºZ␍íì»ÀdWãX5•y,ËNŽÔ8ΠCo.£îŠa:*ïñ=C›š×Z(lÔ»æ“ CãCJ™™#‰Œc†%îUC¡)›2©¡ß_i 8¦öw2òRîF� ¾Q§&3à 0×\¸O‰!r-b?WMpÛûM-¼&)•ëP[}ë"8¦Á�PhÀܦƋ…+Ô5 \Œ’è°Ù°õæïæãÍGGÕüû¿üÓ¯~ûó~÷·¿üçoÿúçŸþßökýÆÏ/öí�~þêç÷Û¾ý};¶ÿnǾý¡ì›i@t¶’iü¶'½Ýö¿ý£\—ÛÂ"µRuR¡”‰bÓ½³U{–”s§ÿ3^oIv£Z@§ât��˜ÿÄîJ„*ºÜ|\·£Ãu*�û‘k6Iäþ2`y¢OI²×¤à¼ä 眚ÿÅÍ‹ui�ø]ªlýË'Þ-�ÁWñç,—îz�m3œŸ¾'j:t‹ò�P×£ ¨lùÇaÖë˜$m\‰oÓ†±0¬ë6ÓŒ9L-⊈ŒÛ¹ ,L,’™,ó1±<àpùw|G9õNh­slqB␍e·E®=n?+4W„ƸóÍ‘Åy½?­‘C'‡N¶ñ¬‚aZü#Ø‘£0׈ü#TßHhZÆçŽ÷rã—óz,]”÷Zê}w=PmÁx ×…ÈÄX.™YÄ: %"I÷s
”o Ó,ÏäθÇ#ÚÎwþã&B]ÉkÞn´ís¸Áäõ{ £¯|¾éáÁXE­MÞã;—™@ÈÛ¡zí»y␍GOÞë3UœÑ´P³Ÿã¸C:8>[Œ®õŒ K]ua¨{–yJèš µGÜÓº}®Dº2ì)@ ÆòjqlòÑ?WÒFØé°øu>‡Âõ�ÞÑZ˜Ä˜Êkbj\´]zžÏqXIkL�=¸ML‰š¢Ý+†ba<äT3SꃕE)?#V°œËíbæ—7ÈâÄÄ␍æõN2}ý!Ìiüsâj‚IˆqÅ F[ÆÅ”(Xf>>€£M¯¨Ýù%3¯åë²8†Fäɰ‘‘ú®:s“ê”ôÚ8Ãpywt)‚ƒdZDÜr£â |œ@Rá‹QƒSfp •=þc;êëÂÙ$;Áí%øáƒ2fûb¥ÌËø0E¥BOÎ Ã-„@¬É+
\Râd¼›�±öÅOú¥ ÃJS§è¾t£*å…!€å¤RÂ1£™0n␍UB>?Yµw§–Uƒ9bÛ#µ†hY©L_ vëÁøÉäXvïZ¶M‰ã ŸQX
í&cÙ-¿ÆsHË߉q`ó„~Ž·0ö^—ÍCD
FP3†ÙóïeÉ4¸Ä2Œs^‹®œ ?ê³<�¥0’wÚðà°`êÌ¥tµ¿ƒÛ6‰[îcf'†¿FìÕJ)0'B0sÈ áeî17ô® ‚Wz"T¢Ö‹é™Jæ ¾ÒkǃÓ0ɵÁ1‚ʇŒÎ¶?aÕᜆu{-êaŒ×Á±>ûò�>oh+Öªû*“~o$£$l»Å#&Ùp»‰;û®WÏ6¤5ž¹Žíô0‰vÁ38±úNϦ0F2i2óÎl§™“‘R‡T‘s»0-™EâñèírÅl¾Ù,ÃÚw;
±vQv²ÕíªÃ˜-Æ€õjOÙR?ªWÒ*¾�²¥œv”l�…ÞP?ª£.¬>ž-Â05N“Qì[JåYï‘üJ^ë¹#fO¼â{ùï{Ëï,k,/wÞÕ|ít†æg´Ìn¬ïFo`Ôo°ËšúÔ­nÅúÎð®bwúW³2@OOu§£UZІË!ïºÕcí“–Ÿ²•õš¸uª¯ùë¯ù�=ø?œx0heÄŒX¨{kWªÏj¼�V�rmm c\IŸ˜tŽ­{ª®jѤ-4±7a Ü_^uµ5s0FÅ»ö­'¬æ©è\³–çÙ·ÞæÔv´~þó?õq¸Æ½[;·^&RSÒÖ·žæ`Ò¼ÛÅÏsk½Ïç/oµ%¹˜Ý�ƒÁ�¾%UàƒmH*²|ýŒ$ £»@‘Xä†d¶£Æ¾Ë% øEëz\üØÆ›¤"[ƒ¥�êÝ·)i&Ä&®"êlñ&l%hÎIvÙi�6¡ÍM©pAp(?#øWö{!Ì.æm2cŠudduSºzOÍ3_ÓÀ£³æt3}7×?²‹êú-ëm¯ÇcEבÍ�{/ì9áÑ‚¹Õù‘hÆ•.»xS†LU§jïyªŠEc�Eªl&mºv* Có£éÀÜ ¸N£.ÅöiÓ0XlD0÷Ã?„â.uA“È+)©ÿ±D¹dÂNhå}ylY­zKƒð4fD+ÞÍ‚±cÔ($kâ`B®v 0ý ã;wžô„©q:U óh>Ì‘½êšÕrd“5§�Q»É;¨ñŽ�ÎÿœòO¸*oµìh±õ…1³é¦0ª`ἡÛ’öõ±0'Õ¼â0t0›k aç‚RÒÝrs:©�á¹Þ#S «éª†á „ G”­=”­-ˆqD�–/ Aˆ5¾ÃB×Zb’é ãYg (Û½ Výv˜:ÙiÐA0:"‡ûK)qw‰–?yŽ~hf"JïÖÄt(Œy âÄ<%OQœÒß"Çߨ»…3›gýCw�½øÉÔ™žcdc;Ï™Ç`$ªgpf~¡œÆ×>J
\@ ”™(ó} 3÷.ªÄYs¥[ÄgãÅ<šÃ†›õÌi…°ZcaP\$Ò¬z•ãÅúè®WÖ¾ H™"òš h0H2V 畟WéÝü˜Úüi3[°3l÷ê‚Ô0¥ÕVÆ3¾µ‡œúXR S¢ñS ÝŠó³”ã¶Ì틉žZ‰ìÖ ±pàËXçðœæ¬%”Œ6þp¢V¡–�w[dcž8lÓ]ƒÑsöÏ¢.kBÒðoò‡1V3ª/†³,L<Jå{3• WX)çÕóï4Bæ]crP@0^DwFl÷k`(‚OÜ]ùÿðò$ÏŒRìR~^…E“6JV7¢�ÿ}Š�>ŒY/iŒ)ð®+zÄþØûˆÝ‡9æœÖp
È3ÉÔcÚ7‚S³hh1Š!êÔÈÅ�åº~ª#Ÿ¤S š%˜sîI_÷÷ëy’HÒv8rVâ²md*zûa¢6qRÑ>3t²„ÿ?g©-0-ƒÒBM¤®¿ÄŒa!X4ñœD¡d7öù£[n˜?Â+Váb–×ûÏs¬5…ð␍+Ú¯swž+Ág»)Ÿ^¶÷‚áÙÓ쀉ÞÕçBžt6Y ñŒ²«3L‹oÖ—|^wý‚‰_ì\’ã•sÓö‹…å$<ÑÜ•ëÙMÌÕ¢…×ÓvSxñž-´ƒç²•»i†±O1†…¥­»­¸ˆ|ùQi5›åºbø]ÁʼnO¯»½âÝ€SȱúnÕa°½‡ž×Oèý›2®þÏŒx씂=ÏŽz®éÈ”J•#œ;
»nw—�g½?Ì/*„ÑÑ+jCnÄjzk�ë9?È/b¾<V»•�¨>?Gþ7¿ƒPa|Ë/œ¨c'ט³ëÒ-ê'[¿äæŠËŽÄìÕ7²ý-[�ôV „[òIí/ùƒ¹bé¦+:߸ú·ŒöìD”`ʾóü’c<`IÙ¤øƒ�¬ÃÈ#ÅgüÌXì/{Ðù­Çô‰@N|~âß.„}<{Œˆ™þüÌ/³Òkh%£\ìäñ™•{�TX[2šõÙY'˜Ñé,¨SmXg¯¢4yª/~nï—“ƒÁþyWBÓÊH9ÂnoòP=ÅÌõs±¿œeO.PÅâóëΠ‚ŒÄÎ �qÚùÜÞcîq„VžºõË07K�bòüËÃþå»»ÍzžÒk¶¦¼+ñ·}‡1Yþm‘Ü.€�ÇXe+s÷ïU¿ÂD·Ôa¦èÇ\~…ÎýHüJ\|vá†bÛ35Bju’º5"åjdëzÉàï°ã_jsÆ<ÛÐ3‰Ý·ÆÑ¯/´ýÊ~÷aÜm¾‘s¬»¯¸j–” TùÞÝOXÛTR¸ñEÚT‡é¸BÌ0ÕïÙÍd­Ð&–ðA1ày½ö—¼aºKxFI{Ò ¾³ÄÓ°ß+Je\žGT±_ã +Íu]uîÿÉpöÍ÷fO�„ÙóF¦zÝýFžCròôsŽØ™�ô\óÕ'þaGâêÕ¡Á²�‘_ÙE/Œ2F Ïçh…0&Þ9çOO¹"y˜ô’­¸Þ”(˜«ñan£â²q-ž¤aÏÙ²oÆbY§ðh˜t ÍÒ�g… sHV¹dÒ%ÐXöÞˆ#K±¿q¶$›xM„_Zó+ôÙÊ‚à´Çv3·Çd°�¦SlcýY.ì™õFü“Á¬Ÿ<Äñ³™‚~MÓ_䤭×õAŽkßÈE&¬>ÎÊþ�î:Kvb(º•^A‡(NÒþ7Öeû«¢ü`™bf7eä,;�eüA1.ÏÅ^¼*QW·wíeBˆ¡˜Ýz=Çá9ÚÈ>Ñ^wB¢üÍÅèJ àwê9CÞHä5°æþ‡ŒnyqþäÙçÙçq“S|°øô*+?ê␍çyòã§P‰¿º1á�b×éç4Ý|=×ÑØÕR‹2␍àÜþkÝ µ¤l<wÐVs¯Tå“5¥õsG'y-g¼UM’¾šä%�™æ(¹ÂÍe"Þ´ñRf*,W¢IØ\o-bŽ'´˜ŽÐÍ?G4[º6×Å-ë£aÑZÓlã"v3Mõ–h›o@ª8bÈÀµh²É†Ö÷7 〸Z›öº:â:#›ä–4-÷e‚û¸ ­…UÍG핱Ê.½Ú ë�ÉKÃ'ü?'.�eï•�Fãå.ŒÞü��âð õM·‡+›Ìò^K{ß*F­äîШ…O÷¬P£æ|…” –G�æžã4íœ/ñê@¢w/Áeˆ«Ýk°ãžÁJFzy;#Ÿ:pžÙ/>ßI_ŒÆéŽ,>Û_ÍÀÒêÔöšãgéMSŽ¿Ü:lÓÚn�Âè_óöÒhD]�Œ{%Ñè=víø<§È§=\ ×zÀ%¤³c"/{v™C³!9‹v;bÞí¥JsÀoÍ:;�F¾…Þ�gŸªtO¿>±°ews“␍­>KI␍ÐË"Au-uø¼æw%ÿç4;GñžY ÖËáïs¤ãûI•O9¿Žsü_s=>yÆü÷­ì¼žhª 9æêrHŒ�”´ŽÅ™WwÜd®Â…Î8êªV4üY´3½þG­þ¬9M&*Üg’öºêœf‰— �휫lá}-š«Nn-»¡ãY Zû û×@и¨Hæïs®«–“Ò'i¹PS²(r¡ÙWƒNÆŠ·¶Ðžc_F“=îÊ_- ýIÐoß!qËLփΗ<¿Ý«‰ ‘ldÕå}Ê— Ò´ke‘Yí‰_3mY�<Ø•YœV¦Ü¶ìŠ-'bPýµ¯/soY†7e0´â¾
‰šêù‚NPü'e†ÆBDõ³¶|…VEÂŒ4z¦£WÙWCÔµ]ÛbÏóg„’”lL5×l{X%q•f¨ø(}w¬�Fõ�àš)Ø^ù"ƒj¸œUêÅò2ÈŸ|AÁ¾4çneI)$˜ï™üþRÊíT”ŽçâaÞ{{—–/j¢á1Áûê§ooÿ…/šmXk£¥¼œ÷'ÃU°L¬ekY¡ �Ò½©êm?DY¯ÿ¢†‘ëx`ç‡KiF¶š´Û}Ùõ‹oiö”ɼòÏãeà/N®nK�pàð¢ÌoÓXKÒÅÞ|<oþÃí4KE³‰¡÷ÿW­Ô­>êe.æj�¨iZ¼íêün³?ë�×ËÆë¢ë»ù|m5Uô9è¼6WƲڎhDgÌ4Æ»½ÏùÚ²hDþ×¢‡ûÙÖvΩ™Ô<ÎóÌðÏÖ·'Œùaqõ›óÑ8�:c’ºÍhp¢ÍH¤{Ö}f‰x=È÷ü7ôå2’R5É>v%–è¢qæcó�í}J(ÔèYÑÄc¾²"g²ã^é,‡‡)ÆÙ#ßh×3|ÐM êì™úå␍˜‹7° <ÆÄÐæ "%J$ÂZÄEñÔÓ¥*�E0@†hÔÛ½ÇÛm¸4HU¤;ŽÑ‰Ã(¡YŸs” ¿dQÿ(Þ¼<GªÌÇÓ+
ç«:NŠí‰k}ª 6Ç;G®ž3yêëÕj4šÝqöxýñHÂ([vÅózÊfXDxç¶Ò r˜„¬ÎVCäRƒÁ�FuC�ÙTJ4o~„␍›k�Æ[7x :Ñpb�iÈC—¦òW)èxrDˆò%{�Ò>šÙbëó�«nÇP áÀà¦ð÷-7EvƒÃ›eöc†5öz4=ïÁ¯€ÒŒÆañ18ç£ÑGø,»A4ÄwX! ¿$ü"d<ö‡H çVC�4óÑ(­1ÞóÛ1Åž¾2¯vÞû¥\<:Ä«¹Á�6Ž…×í=ëÊSÞã”:kèmV�A(¹
ô<£a”äY×øá¥1ç‡sarï:ÏÏ™þ;oK!ÑWDn
Q#ÁBWÀ¨û¥ìx>Pg×”VßS´7é“òhz"_+‰—MÜ08öïIă-M¡çÛ¥1ÍY
[Ö‘ûz BMy-%�f¤QMÅÐuíÑ̘ðÌoIÄ®^ƒ*Rù¸k~¡ +H$z2‰Jâ'qÅÊ#^Áà:B4;Ö”ÂùjŠpT"wºV¹ErfÏ£0Ü«±wÙ%öá.’Ýl$ ëþhÌ”`1 %}Qr�W\µ¸Ã¥ñë¼Ì{†5Ë¥‘ôbâ¼ëÙraÙ$ÐÀÛñ\�"O}g»û+´jrPäˆaD#…LÚ© êÍ¡^­n›¼�1šP«¥À]Ü=ˆ°Zr�{ßša°ô³8У1ΣºA5»Þ˸'␍룉O;Ÿêa:tºOhÝáü6eÝ®çH•²Ç/gãÑøy° Wî�•eÓ´÷–`K)Òž#W{�¹'èŠüžý›– Õ\Æ)—{i"�IùÖ]¯™¸æÿ+[K4†Ì]}4-�)’Óÿ÷œ3?Ÿ^­ÿsœã_3HÜ·Œßê­Ž8„ˆù°¢åíH^␍0šÛÞ×·œ}Mª%MÚÝ=U«Û}-«ÏØ—U§‘2Þ¨„×�e÷Ðh¬#`Tžûmž «‡ƒ÷:—ÍL3³Þ•„ǹ/‡¢ïœšwkËÙ"Ù+¼ÏlËíx:�)¶ÿõT.ü=w,ü‚àb/)# ÇÒuº` «q=‡^›�iq1*^¶¶4Á.0“"8Ðp�K3í g¼)äk@jeÊ4¼]:A»ZÆÒÜ;6ÍVæwFPt4A8ä2úÕ¥gMvê¢+›C;‹È¢YÝÌU½¸`}]™3·�UæXFh ž¡Ìäc_F1␍ LftÊ2Ð;¨HÅCÎóh+. �Yñ¶,cK¼ Ñ”␍a»�s.1el¬À<è&ós,q‡&‹NVÌÞÖÔ4ð"ÎÚ÷ëÎŽ%}Ñð€îƒ3“»¤¸‘yô×»›Ë’‡PåjÙ—TIwUJ†îiø¿Ù”X7lª±ÎâŽì²ư^;–¨LÃ4�wË·/‘›Æ7œ Sw–Ýÿ`f&~␍endstream␍endobj␍24 0 obj␍<</Filter[/FlateDecode]/Length 6152>>stream
H‰„—ÝÊ¥9…¯ ïaŸxºMU%•”␍‚à‰7 "#:Â0 s÷>+oöwÒ{¦›þv¯�ÔϪU+ežµz¯xýëÛÈþ³ê++øýòùÓºGõX+ê`²¯èóçdõîK˜¢V‹2k•¹^¾Þæ½ó•–«blÌxG[mYoÍúÆô¶æ\|¥WσIÂY=F/+aˆÕ–µ}Ô�T¯¹8פŠÀˆn™Ûܘ|{Fúò1ÃÁÔÛ˹Çú˜>ó`ø;Ñä궦0ƒ@ú**1ë9g½�`�ø²ûRæük^•m׿ß~ó×ßþðó/øñï¿üøŸŸþöó¯¯ßñÑïùý­½þÂï?~óן^þú竽[›”¨'Åís�×_ñ¦Ò�_Ë›�ª×Ÿÿÿ­ÿB r¸çháO×8”úÇ gi;x:éÃÔÖÝ… ÍÛâK1ÇÁØj­ŒŽøàœ|ëï3—»Ù)Ô
"$†œ]þ�†­±fZHŸ£é«äµ„‰IÃbŒ|ç�˜␍®u÷␍iÓ[,ú? ó´–SÖê°3DãçÉ kM*1êÃ""©ßTûǸr\Udù@TO}pcU9áÀjýCéh3²�x9ü¥1ÛèÜý™ B]I9Vˆ š‚$çÙ`ôxHôÁ^µ¢ašàNãkáv ŠÓ°ý()>H´3#¶¦Mò¡ÌdL¯tn$ß[nÔncü�“PÚXÂp`1´ÎI­Æ'ÃÓfÏÒŒñ¸8Ϩ–?ãl~6nÊeÂXháx�ƒaRjFÕäv÷w5Q�9ŒŸc¥¢ãŒcarqÙZ-ó3‡í�Îå� HG˜ždYµø~®ƒqÎöÑ!7ÌCÀ-Ç ©ö”gÔ{.ˆŽÀ½! ]KQ�¤FLÐz†¤†7JHšƒ˜›Á©¹v×Záô�¤]˜D®2mW΃A‘€Ö™¥}Ú—Áß¹í‘;0�äW£Ø°˜¶B„yÎa$ã fŒÍÆÀ/Žà#åc(‚ë¶R}Ú»f'¥ÒÒÝö‘ïIbðWZ¶„YVÈØ`¾ý`ã¢Ä\Àõ`È’¶tãI}¼¥sc‰óH�¡^Åäú~Bf¶Ê608’ÍÆÏ]dszF}0)TÇÔkè,ŒSCcÌ'•Ck¸!T 7Ä6CfÓöAææ2R¶øU�þÜÚEÆHÐ
ôÀj·¯;ZàËcTJ¢±3˜åS˜øÌ„|Q:¶�aìYAA¿èÁÁg°IºZŠ@¥¸P°1öžäSAYqaÈ”I|¾0žP2ÏɆ¦õL5�ÓÞbG9ê–ÂðÌaL Ö fš8Bƒž­Ñ[)“�z'Ub ’èü¿1 Ÿ�Ÿö´ sO—áeÆKr™9çÞ5´—v•ï´Ø+d¡QK?6~Mµa¡aÂh߈¦šä�aMmáNR;ugçÚÉü=ì3ØÁ‰䆴BÝ÷„Î8t%6b&ÅÊÁþxV[×îÖâ)ɸŸÃÂ�‚”1ò~Gvc¨Žuð{Zl(½Úªówåa5Ôô¢­¨VÜ«Ì:ñjÔuŒqïV¼Y©ÍþÊ÷®cP\ º*)¾±§;CPœaI>~e!TÂ/ÓfW6wC÷YAIEü:`X¿’HçèëpuÉšòN‘5o3
DËšD‡|ãuÔÁÀ-ŒÁˆèË®’DHSL:ŒÎ_¥ šÖL –Uu•°�ñœ(œT½ÖU
Á`˜
¤¶y^%5&³Ž¼ã°[øM˜Ap"•šäÕæUß[†EÃËù øuÛ`Øù¢ÜmëºoÀP¿2<e‹ëÞŠ�Ö±Üepð¶ÿB3!‡­žRÔÛ�þÖ¾ÂpäŒë>C;kËò²ëZœ[¤‰ƒùX‘ïìz,O�°È¢^ld¥dF¨yµ+áz}­*WÛc¬¾ÄVÕÕ=©2hsR�v7a@pºju5s` ,$ïšWOð‰Ç‹žeæ¢àÅ[‚á©Ö°£ññŸßyT?|­!ï.³rñº`…·�JÚóê™ÁðÀS)HÜýj½y°q9oC½\àîÅÁAù¯
ôàúЫˆáã‘wú¼>(ô,"CÖl"�y{—A_h]ÊÅ×õy£WSƒJCÕ™×WŸñbhX¾™šâËc ˆo&“ì¶N—G™²…␍�CòEÁï^œ‚`vQ®ê[U¬&ÊÒM^Wë`ЩóØ9ëD·ß_ŸÌékU•ô»0Œ7s]‹=!Ãò,.LEèZZ`&u^¼h†”³8Ù )LJ*YDÕŸx‚ŠiÇB UN2é´“ò±„ê`Øy#ì@¹�@àØF�WlHßæƒ…�f.ÜñbQL‹‘N"^z%å‹!R’zìHVž›X�]£“×ÄÆ x4¦´+žÉÃŒ±�$²0ŒÄ•ÙB0ýÃw¦NZRj´9¥ð|0Ms•4«+d4FcΆԶۺƒ4NÙiýA”/i•neؑŞgÕM£LšWt›ÉîË:gk9 :( ×"Áj~ �WÒì
žnFˆ¨␍äOÈl F“T!ÃŽPö¾Ølý@ #ÒÉði´d�§Thœ!feòŽá,É&oV|f˜íÌ’ÝÖ9†�Ö’Có‘9�© -_:‡^ì ”‰¥ôL�L…aDDܘe:…âX>E–¿¡î Üôx±w¡=ÏOLìù` ¬l§ï÷^T!gàâïÁ (}™G^
¸(8aû¾ƒÙs§­„³f¨[ŸÕƒY4ÂcG=„©R+F«‰ÓŠ„«\Ex²>t—+#Qf#â51 Â ’²bhž}]EïöÇl›Wßo ì ␍föâ@BJÉhSFßš§¬³ŠÁ˜vü^Ðd…óc:Ø|(noŒö)#¡ÙZ°,8dc“ÇÐ4b5I2²ñ‰2
aï~Ä Xrذ;„¡çØ?õX+ ì5<åM^cêGé ä´ƒ‘G |¯X dH•/=ÿDÃ#s†L ±wJ¶û1`Ø|Bî”ÿ…—gåÁQ6¶Ù×U¨¨^¦Ñ†¥�þó)‚ôÁÀuSc`w␍í#ìs¯e÷Á´ÍÓ�¦Y[L9¦(¸w;Ô`Åà©ZSÃ5¾ªÃûD�ÒCÓ„ÙÏœ¹åk~Îa<�Éjk„¬‘LkJûöƒÑ¶‘“Òî‡;Áâoõ…!–è
t¥KšXuù�0�……ÅNô�A(¨kWöù C·È~@˜�WT sp¼Þwç0Öl¾Áˆæð[<C4›LñévÍ {ª€Ñ·ú Ä“=«·ÂSv«3˜.ßL_þGw�%¹ncAÝJ¯ÀA#÷¿±>ÉAQ’á/»ôRp‡òyYõ &~±sI®·‹¶7–“p¢¹ÛÛ\MÌŒ�ªÑÂ6ëj
ïYC;x.[¹šf 1wc¸³´eµ�Èg‘§J«Ù¹X®Ãï N|zYíh‹ôN!×ê«U‡Áö=Ú'ôþRFëÿ\��R°9WÔÓ.G¦Tªá\QX,6îÞCže¼˜/*„Ñѵ‹¡?Œ
b5ýj�ë9^È17Çj·2Õù¹ò_~¡Âø–_8PÇJ&ÚyÍR¬K·¨¯l}ÉM‹ËŽÄì•;²ýÊV'½Åá„Í–¼Rû%0-–îrEÇWe´g'’ ¤SöÞçKŽað€%e“âV²#�ì>ãgÎǃý؃ÎoMÓ'¹ññZˆ¿.„}<zŒˆ™~ýÌ—Yé%´’QÞíäöš•¿ž$Ö–Œf™+ësÖD: êVKÖÙ«(MNõÅ×í}99ìŸßJhz2Ò�#ìö&‡ê)f.¯‹ýr–=¹@a‹Ï/+ƒ
r&vfèŒÓÊçös0Î-´2ËÒ/à –:Åäùû㻻͚sï%[³ß+ñkßaL–ÿ7‚Hn•@Èc¬²•ýý©¯0Ñ-uØ…)úö—¯Pùo‰_‰‹sn`(¶=S#¤VV!©[#b°·J¶ÚM¿a Æÿ©Ís0—¡␍æ"vß:·ÞÞÐö•ýÆfÜm¾‘s­ÑŸ¸j–” Ty¿Ý_XÛTR¸ó�´©ÓÑBÌ0Å¿²Ád=¡M„ÝÃ`Ä ƒæU<ôÚoò†éáŒ=íI/øÎ=ž†ý~¢TÆeNQÅ~�3t¬43êúÔ¹ÿ³%ÃÙ7ß»zº%Ì ›êçíyž’“Ó�kÄŽl¤sMÌ[Ÿø„‰+רž,Ûù'»è…QÆ(!ãë­ÆÄ;÷üô”Ë!’›Iß³cãM‰‚¹:_Ì0*÷QƒáI*ö¼ZöÎX kàކI·Ð,Ý™O2‡d•K&]�eï•8â±ûg+A²‰×…ð�Ö¼…>ëþ@pÚ´ÝÌív1Ø�¦Slcù,öÌz#þ‹Á¬Ÿ¿Íâñ·™‚Þ.Ó_䤭­½�­]×7r‘ «O…³²4rì: eøA3.Îå½pU¤®loìEBÃnwËuŽËc´ž<Q_vâDñ›Â˜J
àwÊ9â¼9‘—Àªúw]ópüËsŒ³�y;§ð`‹á×Ы␍¨|–Ûœçä‡OY%üªbÄ#Í.ÃϺñr®«¡«-N-–©3Ž ƒê¿Ô�P÷ ‚Äs m±÷ZµT¢¤µ~nÆàD¯éŒW•(鋉^r4ÓE÷ãpS¬˜ˆWm<ÊNÅËíÁDl®W“˜ùˆÒ!ú½úÏ fËÔ¦\ز<m$xš­_ŽÝ [½EÚÆ+�:Î1dáj0I²Ö¡µãÈ0 _mL[�»ša�ž$ùK˜šzÙàÖ/“VãUíGí…±‚.=mÄë�ÑKËGü?7Þc–½+ŒÁK-¬Þø8ÍÁAú›i�¯¬4Ë»&J{_¢Ör5´jñ§G"ƒQr¿Ç…ìY,Î^6÷Œ1ÎÐŽñ:B“èmÌKì2‹kÜKlÇkx:*é™åí „|šÀq&_|0¾Ñ£,¾ŒÛÍ„?Ÿ/¦óÒúT�’ëgé¥iÇk¿T�m3Úªau­¯Cú¸¹4RWÂýŽ$½Å‚ÍYççœ�>ñt­Å¸„ƒLvH䵃óH–™:˜„ä.Æm†¼ëë*í¾µëè<ú÷î>Çø¸J7qúõ‰À–즒•[}BH‰¡§E„ê
uüyÉïRþÏmŒâ�‰ëpø{u<C_=ªòiç×uæ?á5åñɳ濯’y�h«'…ìcUk@%ű0óªÆ•æj\\ÂF]õ
?“v¤×þôêoÏa²Qñ}6é(«É©BT¿HÐzlçXM`�oa£g,¢ ¹šäZ“␍]O$¨õcÝ¿F¡r!šŒ±Z¬³•æp¢–«…A1{‚"mµè0ÌØîÕíÙ�aTÚ£VþUHh�‚~óˆ*#Y�¯óüf¯J2D´Uïï)_$S¯ÈB³ê³¿dZ�¬$3ÁiEÊuKV¬¹‚j/}}‘{Mš*e1Œâ±‰’îù‚IÐüGeÄF bcˆÊ'¶|‰Vá„i$ôÌD¯´¯ÄQÔz¥ÅöÞ範‚ìIL%e–VJ\˜J;´û(s7WŠ£û3vÍl¯ ùrÅr¹=Wi÷׃üõèË``îº/]
Ï7ã€l~{]Ê—Û)\:?óîí␍-_® ÇÄÞ?}sû¯ù‚ÙºXTß÷×çýõp…YŒŒ¬%µ¬¬ ŒÖv ½éêM?޲\r␍=åxÌÎ�/…éI59´ûz×/ s¤MöÎ×ùä¢Zf 0¯•ùñÛ0bI¦ØËûóòßc±t4IŒ{_ùÿb”šè£_öb¬bDÉÐ2ÀÛ¡Ïošý‰#0ž—Ä«ÐåM>_©¦�>WrE,«tC:C¦!Þí=ç+eÁ� þ߈~î'­˜Ó0éy˜çÙáŸÔwD¬ù\ýæx0n£Ï<IÙF0|¢dDÒ�ußÙBr¼²ÁíþŒûRŒ¨Ôãšf´]‘%¸`TÀ~l¾³½§Ä…Z=�<æ+ÛŒ!r'÷ÂPg:Üm1ŸÝƒñ�z�áƒö`jŒ¡Éé_^€\¼@@xˆ ¡�‹MØ!Ö$.ˆ§ŸŠª5‚"ÃÀ2£ßêZ¬7áÂpª$Ýu¬N0< €Úõ÷œ¹gùý ŠúŸæ�‹s¨ÊxH0³¢q¾jâ¨Ø¹6§Ú 9Þ:rÍœÍÓ_O+Áv×9Âõó�Ä£lÉŠçuÊfYˆø�›JKø-–ƒ�‰Èšl]±DŠü`t72IeÆåí±AsõÁx¥uct'Ll2-yÜÁ…)ø•
º Ùƒaˆò%¹Nk̨¡õ1éªêXj"3¸iü]åªÉ*ؽ,»r°4\c! Óò|Å(�`\–?Ã"ç|0F`ÆŸ%C@|¢ð ‚/âŒc�ýC ,çVâaƃÑZk|ä·CŠ-se_eÞûQ
Ïò«©` Ƈ­ëv= «äiŽaJ“ÕM�1+Æ"ì)÷<‚A”à‰køðÂØóIÀŒî]÷9Â9ßã¦s5˜ÈM#J üÑ5lÔý(Ïú¬LÙaý=I{õ‘9ÙL‹ä%ò2‚ ÆÎ í[G"ñÌ–¡0óõÂØæ„š8r—‡U(Ñ#ÏÒÒ`zÕVtSWÌ �ü5Œèš5V…*Ï»ç—uA‘D'ƒè$ÿD®ðÏþ@H„'X\Wæàµ %q¾†">*’;”•n�9r÷bä.�bOµˆ‘ ìv#bXŽc§‹Ù3{
xÉU␍;\¿ŽË¼3^s¿04žLœw?k
–$Á␍l¡çzê;Û=_q«6‡‹ì!Œ`¨�M;␍A¹}A\¯Q—&ob &®U(P‹{9ì-º†½oLä�vî.ô`¬s/*¨g×»ìᮀGÔ°<˜ð´áiF=žŽ»Ž»�hÝáþ’жn×9Te?—£ôþ`ü¼␍8ˆ+ö FdÙÌì�¤”�Úcä]i¯;·ÝN¿G»Å¦FC␍—uJq/L4)ߺû5"×øŸÁJj ÆÒ2#DWLÍ °Ñéÿ:çÌÏgVË\gþcgb�-ë·zÕ C€�*ZV‡ò8£ªö±®ròU‹šÔ{zþÕ­&û¸Z¢ÏÁ°/»Ce¼h�_ŸËé�1X3Æhìw[@¢‡‹·2–à 3ïöˆÇy,—¢18-n^Õ–»Ò“+< gÖåŽ6~:&“.lÿ±ê-VyÇ¹à €Ë{QbØ—¬ÓK¼Ösé5yÁØ…Ññ}«Kl3*ÂZ®sI¦-âÌoù#µ"eÜN�X»²÷%¹7Þ4©ÌïôXÑ•HÀÄÂq.½]Súo­i±�¦èÒæ¸�…dÁôD7{U._°�¾ÿÓ]v­�Qþþ‡¹Ø�hœ‰Ó½Šl�.Ù–ö®Hj­Ð8Aí.ý÷}Ži®r"Áy5:çëy-óˆ:c7`••SG¨@ôB™2­:ŠÑÐ% ¥tu [ @Jxˆ÷y¦qÐC,ÞB̘ŠhHÊ ÂfüJÅ· Pdõ“«¸ƒFŒŽXL›éÔäàE8+MÇ=ËUúBC°\ðR¹*Å9©GVOÙœ¨4è(‚@¸2q‡*U¢w‰34•„¿dS$€v§*­SC\'^VŠQX/ËUTFCÓä}bâR¹Ñpo UçÝA&L(ü’SµhèôÂ;ndåK#�‚œ¥y�ò”‰êGÁ!¸4#š^¦û4T4ˆ²´â5{„ÄgžAD}K.\–cßÝR‰¥{Õ¬¡á7oãHÂ|¥š>—sÜ¥t‚,½«ø
iîãÞôQü<_wïf?4¡-»OsÃ¥ŸœÑƒ¾–K��›ó]U¾›ÉzãÍæp Ý`ŠðѾôæ>§æÊYBõ³ç#¿~O†!N·Q2ô¬ëÚ]S¿␍çyíºv[½~K'ŒËñ˜šùß¡kÚÚLŠb½ßva(å OÂñÛ½™LÍÓc´-¢x½±Ï·í˶ü¬ºÙ,Šã?e]Ýweó^uQÝ—ÿ*S¶­<£:²bê®ê‡ÐU¦ ÿå
·œåq|{÷;ú`˜Ý-␍endstream␍endobj␍6 0 obj␍[5 0 R]␍endobj␍25 0 obj␍<</CreationDate(D:20180717180955+08'00')/Creator(Adobe Illustrator CC 2015 \(Macintosh\))/ModDate(D:20180717180955+08'00')/Producer(Adobe PDF library 15.00)/Title(þÿžÑœ|v}^•)>>␍endobj␍xref␍0 26␍0000000000 65535 f
0000000016 00000 n
0000000144 00000 n
0000025173 00000 n
0000000000 00000 f
0000065496 00000 n
0000216446 00000 n
0000025224 00000 n
0000025562 00000 n
0000065799 00000 n
0000065686 00000 n
0000064745 00000 n
0000064935 00000 n
0000064983 00000 n
0000065570 00000 n
0000065601 00000 n
0000065872 00000 n
0000066155 00000 n
0000067473 00000 n
0000085125 00000 n
0000098214 00000 n
0000119906 00000 n
0000150354 00000 n
0000180599 00000 n
0000210222 00000 n
0000216469 00000 n
trailer␍<</Size 26/Root 1 0 R/Info 25 0 R/ID[<4C85CA3C59FB4A1F9FC1A1814DCA7035><636425E0298441309A895498F62E903C>]>>␍startxref␍216662␍%%EOF␍
Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

+10872
View File
File diff suppressed because it is too large. Load diff
+2
View File
@@ -0,0 +1,2 @@
/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-lLine truncated
+1
View File
@@ -0,0 +1 @@
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=52)}({52:function(e,t,r){}});
+4
View File
@@ -0,0 +1,4 @@
/**
* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document);
+4
View File
@@ -0,0 +1,4 @@
/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
+1
View File
@@ -0,0 +1 @@
!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=21)}([function(e,t,r){const n=r(6),{MAX_LENGTH:i,MAX_SAFE_INTEGER:s}=r(5),{re:o,t:a}=r(3),l=r(7),{compareIdentifiers:h}=r(11);class u{constructor(e,t){if(t=l(t),e instanceof u){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>i)throw new TypeError(`version is longer than ${i} characters`);n("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?o[a.LOOSE]:o[a.FULL]);if(!r)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<s)return t}return e}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version}toString(){return this.version}compare(e){if(n("SemVer.compare",this.version,this.options,e),!(e instanceof u)){if("string"==typeof e&&e===this.version)return 0;e=new u(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof u||(e=new u(e,this.options)),h(this.major,e.major)||h(this.minor,e.minor)||h(this.patch,e.patch)}comparePre(e){if(e instanceof u||(e=new u(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const r=this.prerelease[t],i=e.prerelease[t];if(n("prerelease compare",t,r,i),void 0===r&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===r)return-1;if(r!==i)return h(r,i)}while(++t)}compareBuild(e){e instanceof u||(e=new u(e,this.options));let t=0;do{const r=this.build[t],i=e.build[t];if(n("prerelease compare",t,r,i),void 0===r&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===r)return-1;if(r!==i)return h(r,i)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this}}e.exports=u},function(e,t,r){const n=r(0);e.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))},function(e,t,r){class n{constructor(e,t){if(t=s(t),e instanceof n)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new n(e.raw,t);if(e instanceof o)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter(e=>!m(e[0])),0===this.set.Line truncated
+297
View File
@@ -0,0 +1,297 @@
/*
* language_data.js
* ~~~~~~~~~~~~~~~~
*
* This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
/* Non-minified version is copied as a separate JS file, is available */
/**
* Porter Stemmer
*/
var Stemmer = function() {
var step2list = {
ational: 'ate',
tional: 'tion',
enci: 'ence',
anci: 'ance',
izer: 'ize',
bli: 'ble',
alli: 'al',
entli: 'ent',
eli: 'e',
ousli: 'ous',
ization: 'ize',
ation: 'ate',
ator: 'ate',
alism: 'al',
iveness: 'ive',
fulness: 'ful',
ousness: 'ous',
aliti: 'al',
iviti: 'ive',
biliti: 'ble',
logi: 'log'
};
var step3list = {
icate: 'ic',
ative: '',
alize: 'al',
iciti: 'ic',
ical: 'ic',
ful: '',
ness: ''
};
var c = "[^aeiou]"; // consonant
var v = "[aeiouy]"; // vowel
var C = c + "[^aeiouy]*"; // consonant sequence
var V = v + "[aeiou]*"; // vowel sequence
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
var s_v = "^(" + C + ")?" + v; // vowel in stem
this.stemWord = function (w) {
var stem;
var suffix;
var firstch;
var origword = w;
if (w.length < 3)
return w;
var re;
var re2;
var re3;
var re4;
firstch = w.substr(0,1);
if (firstch == "y")
w = firstch.toUpperCase() + w.substr(1);
// Step 1a
re = /^(.+?)(ss|i)es$/;
re2 = /^(.+?)([^s])s$/;
if (re.test(w))
w = w.replace(re,"$1$2");
else if (re2.test(w))
w = w.replace(re2,"$1$2");
// Step 1b
re = /^(.+?)eed$/;
re2 = /^(.+?)(ed|ing)$/;
if (re.test(w)) {
var fp = re.exec(w);
re = new RegExp(mgr0);
if (re.test(fp[1])) {
re = /.$/;
w = w.replace(re,"");
}
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1];
re2 = new RegExp(s_v);
if (re2.test(stem)) {
w = stem;
re2 = /(at|bl|iz)$/;
re3 = new RegExp("([^aeiouylsz])\\1$");
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re2.test(w))
w = w + "e";
else if (re3.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
else if (re4.test(w))
w = w + "e";
}
}
// Step 1c
re = /^(.+?)y$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(s_v);
if (re.test(stem))
w = stem + "i";
}
// Step 2
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step2list[suffix];
}
// Step 3
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step3list[suffix];
}
// Step 4
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
re2 = /^(.+?)(s|t)(ion)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
if (re.test(stem))
w = stem;
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1] + fp[2];
re2 = new RegExp(mgr1);
if (re2.test(stem))
w = stem;
}
// Step 5
re = /^(.+?)e$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
re2 = new RegExp(meq1);
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
w = stem;
}
re = /ll$/;
re2 = new RegExp(mgr1);
if (re.test(w) && re2.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
// and turn initial Y back to y
if (firstch == "y")
w = firstch.toLowerCase() + w.substr(1);
return w;
}
}
var splitChars = (function() {
var result = {};
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
var i, j, start, end;
for (i = 0; i < singles.length; i++) {
result[singles[i]] = true;
}
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
for (i = 0; i < ranges.length; i++) {
start = ranges[i][0];
end = ranges[i][1];
for (j = start; j <= end; j++) {
result[j] = true;
}
}
return result;
})();
function splitQuery(query) {
var result = [];
var start = -1;
for (var i = 0; i < query.length; i++) {
if (splitChars[query.charCodeAt(i)]) {
if (start !== -1) {
result.push(query.slice(start, i));
start = -1;
}
} else if (start === -1) {
start = i;
}
}
if (start !== -1) {
result.push(query.slice(start));
}
return result;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

+74
View File
@@ -0,0 +1,74 @@
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight { background: #eeffcc; }
.highlight .c { color: #408090; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #007020 } /* Comment.Preproc */
.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #333333 } /* Generic.Output */
.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #007020 } /* Keyword.Pseudo */
.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #902000 } /* Keyword.Type */
.highlight .m { color: #208050 } /* Literal.Number */
.highlight .s { color: #4070a0 } /* Literal.String */
.highlight .na { color: #4070a0 } /* Name.Attribute */
.highlight .nb { color: #007020 } /* Name.Builtin */
.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
.highlight .no { color: #60add5 } /* Name.Constant */
.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #007020 } /* Name.Exception */
.highlight .nf { color: #06287e } /* Name.Function */
.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #bb60d5 } /* Name.Variable */
.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #208050 } /* Literal.Number.Bin */
.highlight .mf { color: #208050 } /* Literal.Number.Float */
.highlight .mh { color: #208050 } /* Literal.Number.Hex */
.highlight .mi { color: #208050 } /* Literal.Number.Integer */
.highlight .mo { color: #208050 } /* Literal.Number.Oct */
.highlight .sa { color: #4070a0 } /* Literal.String.Affix */
.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
.highlight .sc { color: #4070a0 } /* Literal.String.Char */
.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */
.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
.highlight .sx { color: #c65d09 } /* Literal.String.Other */
.highlight .sr { color: #235388 } /* Literal.String.Regex */
.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
.highlight .ss { color: #517918 } /* Literal.String.Symbol */
.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #06287e } /* Name.Function.Magic */
.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
+525
View File
@@ -0,0 +1,525 @@
/*
* searchtools.js
* ~~~~~~~~~~~~~~~~
*
* Sphinx JavaScript utilities for the full-text search.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
if (!Scorer) {
/**
* Simple result scoring code.
*/
var Scorer = {
// Implement the following function to further tweak the score for each result
// The function takes a result array [filename, title, anchor, descr, score]
// and returns the new score.
/*
score: function(result) {
return result[4];
},
*/
// query matches the full name of an object
objNameMatch: 11,
// or matches in the last dotted part of the object name
objPartialMatch: 6,
// Additive scores depending on the priority of the object
objPrio: {0: 15, // used to be importantResults
1: 5, // used to be objectResults
2: -5}, // used to be unimportantResults
// Used when the priority is not in the mapping.
objPrioDefault: 0,
// query found in title
title: 15,
partialTitle: 7,
// query found in terms
term: 5,
partialTerm: 2
};
}
if (!splitQuery) {
function splitQuery(query) {
return query.split(/\s+/);
}
}
/**
* Search Module
*/
var Search = {
_index : null,
_queued_query : null,
_pulse_status : -1,
htmlToText : function(htmlString) {
var virtualDocument = document.implementation.createHTMLDocument('virtual');
var htmlElement = $(htmlString, virtualDocument);
htmlElement.find('.headerlink').remove();
docContent = htmlElement.find('[role=main]')[0];
if(docContent === undefined) {
console.warn("Content block not found. Sphinx search tries to obtain it " +
"via '[role=main]'. Could you check your theme or template.");
return "";
}
return docContent.textContent || docContent.innerText;
},
init : function() {
var params = $.getQueryParameters();
if (params.q) {
var query = params.q[0];
$('input[name="q"]')[0].value = query;
this.performSearch(query);
}
},
loadIndex : function(url) {
$.ajax({type: "GET", url: url, data: null,
dataType: "script", cache: true,
complete: function(jqxhr, textstatus) {
if (textstatus != "success") {
document.getElementById("searchindexloader").src = url;
}
}});
},
setIndex : function(index) {
var q;
this._index = index;
if ((q = this._queued_query) !== null) {
this._queued_query = null;
Search.query(q);
}
},
hasIndex : function() {
return this._index !== null;
},
deferQuery : function(query) {
this._queued_query = query;
},
stopPulse : function() {
this._pulse_status = 0;
},
startPulse : function() {
if (this._pulse_status >= 0)
return;
function pulse() {
var i;
Search._pulse_status = (Search._pulse_status + 1) % 4;
var dotString = '';
for (i = 0; i < Search._pulse_status; i++)
dotString += '.';
Search.dots.text(dotString);
if (Search._pulse_status > -1)
window.setTimeout(pulse, 500);
}
pulse();
},
/**
* perform a search for something (or wait until index is loaded)
*/
performSearch : function(query) {
// create the required interface elements
this.out = $('#search-results');
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
this.dots = $('<span></span>').appendTo(this.title);
this.status = $('<p class="search-summary">&nbsp;</p>').appendTo(this.out);
this.output = $('<ul class="search"/>').appendTo(this.out);
$('#search-progress').text(_('Preparing search...'));
this.startPulse();
// index already loaded, the browser was quick!
if (this.hasIndex())
this.query(query);
else
this.deferQuery(query);
},
/**
* execute search (requires search index to be loaded)
*/
query : function(query) {
var i;
// stem the searchterms and add them to the correct list
var stemmer = new Stemmer();
var searchterms = [];
var excluded = [];
var hlterms = [];
var tmp = splitQuery(query);
var objectterms = [];
for (i = 0; i < tmp.length; i++) {
if (tmp[i] !== "") {
objectterms.push(tmp[i].toLowerCase());
}
if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i] === "") {
// skip this "word"
continue;
}
// stem the word
var word = stemmer.stemWord(tmp[i].toLowerCase());
var toAppend;
// select the correct list
if (word[0] == '-') {
toAppend = excluded;
word = word.substr(1);
}
else {
toAppend = searchterms;
hlterms.push(tmp[i].toLowerCase());
}
// only add if not already in the list
if (!$u.contains(toAppend, word))
toAppend.push(word);
}
var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
// console.debug('SEARCH: searching for:');
// console.info('required: ', searchterms);
// console.info('excluded: ', excluded);
// prepare search
var terms = this._index.terms;
var titleterms = this._index.titleterms;
// array of [filename, title, anchor, descr, score]
var results = [];
$('#search-progress').empty();
// lookup as object
for (i = 0; i < objectterms.length; i++) {
var others = [].concat(objectterms.slice(0, i),
objectterms.slice(i+1, objectterms.length));
results = results.concat(this.performObjectSearch(objectterms[i], others));
}
// lookup as search terms in fulltext
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
// let the scorer override scores with a custom scoring function
if (Scorer.score) {
for (i = 0; i < results.length; i++)
results[i][4] = Scorer.score(results[i]);
}
// now sort the results by score (in opposite order of appearance, since the
// display function below uses pop() to retrieve items) and then
// alphabetically
results.sort(function(a, b) {
var left = a[4];
var right = b[4];
if (left > right) {
return 1;
} else if (left < right) {
return -1;
} else {
// same score: sort alphabetically
left = a[1].toLowerCase();
right = b[1].toLowerCase();
return (left > right) ? -1 : ((left < right) ? 1 : 0);
}
});
// for debugging
//Search.lastresults = results.slice(); // a copy
//console.info('search results:', Search.lastresults);
// print the results
var resultCount = results.length;
function displayNextItem() {
// results left, load the summary and display it
if (results.length) {
var item = results.pop();
var listItem = $('<li></li>');
var requestUrl = "";
var linkUrl = "";
if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
// dirhtml builder
var dirname = item[0] + '/';
if (dirname.match(/\/index\/$/)) {
dirname = dirname.substring(0, dirname.length-6);
} else if (dirname == 'index/') {
dirname = '';
}
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname;
linkUrl = requestUrl;
} else {
// normal html builders
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX;
linkUrl = item[0] + DOCUMENTATION_OPTIONS.LINK_SUFFIX;
}
listItem.append($('<a/>').attr('href',
linkUrl +
highlightstring + item[2]).html(item[1]));
if (item[3]) {
listItem.append($('<span> (' + item[3] + ')</span>'));
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();
}, 5);
} else if (DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY) {
$.ajax({url: requestUrl,
dataType: "text",
complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText;
if (data !== '' && data !== undefined) {
var summary = Search.makeSearchSummary(data, searchterms, hlterms);
if (summary) {
listItem.append(summary);
}
}
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();
}, 5);
}});
} else {
// just display title
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();
}, 5);
}
}
// search finished, update title and status message
else {
Search.stopPulse();
Search.title.text(_('Search Results'));
if (!resultCount)
Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
else
Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
Search.status.fadeIn(500);
}
}
displayNextItem();
},
/**
* search for object names
*/
performObjectSearch : function(object, otherterms) {
var filenames = this._index.filenames;
var docnames = this._index.docnames;
var objects = this._index.objects;
var objnames = this._index.objnames;
var titles = this._index.titles;
var i;
var results = [];
for (var prefix in objects) {
for (var iMatch = 0; iMatch != objects[prefix].length; ++iMatch) {
var match = objects[prefix][iMatch];
var name = match[4];
var fullname = (prefix ? prefix + '.' : '') + name;
var fullnameLower = fullname.toLowerCase()
if (fullnameLower.indexOf(object) > -1) {
var score = 0;
var parts = fullnameLower.split('.');
// check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part)
if (fullnameLower == object || parts[parts.length - 1] == object) {
score += Scorer.objNameMatch;
// matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) {
score += Scorer.objPartialMatch;
}
var objname = objnames[match[1]][2];
var title = titles[match[0]];
// If more than one term searched for, we require other words to be
// found in the name/title/description
if (otherterms.length > 0) {
var haystack = (prefix + ' ' + name + ' ' +
objname + ' ' + title).toLowerCase();
var allfound = true;
for (i = 0; i < otherterms.length; i++) {
if (haystack.indexOf(otherterms[i]) == -1) {
allfound = false;
break;
}
}
if (!allfound) {
continue;
}
}
var descr = objname + _(', in ') + title;
var anchor = match[3];
if (anchor === '')
anchor = fullname;
else if (anchor == '-')
anchor = objnames[match[1]][1] + '-' + fullname;
// add custom score for some objects according to scorer
if (Scorer.objPrio.hasOwnProperty(match[2])) {
score += Scorer.objPrio[match[2]];
} else {
score += Scorer.objPrioDefault;
}
results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]);
}
}
}
return results;
},
/**
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
*/
escapeRegExp : function(string) {
return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
},
/**
* search for full-text terms in the index
*/
performTermsSearch : function(searchterms, excluded, terms, titleterms) {
var docnames = this._index.docnames;
var filenames = this._index.filenames;
var titles = this._index.titles;
var i, j, file;
var fileMap = {};
var scoreMap = {};
var results = [];
// perform the search on the required terms
for (i = 0; i < searchterms.length; i++) {
var word = searchterms[i];
var files = [];
var _o = [
{files: terms[word], score: Scorer.term},
{files: titleterms[word], score: Scorer.title}
];
// add support for partial matches
if (word.length > 2) {
var word_regex = this.escapeRegExp(word);
for (var w in terms) {
if (w.match(word_regex) && !terms[word]) {
_o.push({files: terms[w], score: Scorer.partialTerm})
}
}
for (var w in titleterms) {
if (w.match(word_regex) && !titleterms[word]) {
_o.push({files: titleterms[w], score: Scorer.partialTitle})
}
}
}
// no match but word was a required one
if ($u.every(_o, function(o){return o.files === undefined;})) {
break;
}
// found search word in contents
$u.each(_o, function(o) {
var _files = o.files;
if (_files === undefined)
return
if (_files.length === undefined)
_files = [_files];
files = files.concat(_files);
// set score for the word in each file to Scorer.term
for (j = 0; j < _files.length; j++) {
file = _files[j];
if (!(file in scoreMap))
scoreMap[file] = {};
scoreMap[file][word] = o.score;
}
});
// create the mapping
for (j = 0; j < files.length; j++) {
file = files[j];
if (file in fileMap && fileMap[file].indexOf(word) === -1)
fileMap[file].push(word);
else
fileMap[file] = [word];
}
}
// now check if the files don't contain excluded terms
for (file in fileMap) {
var valid = true;
// check if all requirements are matched
var filteredTermCount = // as search terms with length < 3 are discarded: ignore
searchterms.filter(function(term){return term.length > 2}).length
if (
fileMap[file].length != searchterms.length &&
fileMap[file].length != filteredTermCount
) continue;
// ensure that none of the excluded terms is in the search result
for (i = 0; i < excluded.length; i++) {
if (terms[excluded[i]] == file ||
titleterms[excluded[i]] == file ||
$u.contains(terms[excluded[i]] || [], file) ||
$u.contains(titleterms[excluded[i]] || [], file)) {
valid = false;
break;
}
}
// if we have still a valid result we can add it to the result list
if (valid) {
// select one (max) score for the file.
// for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
results.push([docnames[file], titles[file], '', null, score, filenames[file]]);
}
}
return results;
},
/**
* helper function to return a node containing the
* search summary for a given text. keywords is a list
* of stemmed words, hlwords is the list of normal, unstemmed
* words. the first one is used to find the occurrence, the
* latter for highlighting it.
*/
makeSearchSummary : function(htmlText, keywords, hlwords) {
var text = Search.htmlToText(htmlText);
if (text == "") {
return null;
}
var textLower = text.toLowerCase();
var start = 0;
$.each(keywords, function() {
var i = textLower.indexOf(this.toLowerCase());
if (i > -1)
start = i;
});
start = Math.max(start - 120, 0);
var excerpt = ((start > 0) ? '...' : '') +
$.trim(text.substr(start, 240)) +
((start + 240 - text.length) ? '...' : '');
var rv = $('<p class="context"></p>').text(excerpt);
$.each(hlwords, function() {
rv = rv.highlightText(this, 'highlighted');
});
return rv;
}
};
$(document).ready(function() {
Search.init();
});
+62
View File
@@ -0,0 +1,62 @@
/* override table width restrictions */
@media screen and (min-width: 767px) {
.wy-table-responsive table td {
/* !important prevents the common CSS stylesheets from overriding
this as on RTD they are loaded after this stylesheet */
white-space: normal !important;
}
.wy-table-responsive {
overflow: visible !important;
}
}
.wy-side-nav-search {
background-color: #e3e3e3 !important;
}
.wy-side-nav-search input[type=text] {
border-radius: 0px !important;
border-color: #333333 !important;
}
.icon-home {
color: #333333 !important;
}
.icon-home:hover {
background-color: #d6d6d6 !important;
}
.version {
color: #000000 !important;
}
a:hover {
color: #bd2c2a !important;
}
.logo {
width: 240px !important;
}
/* For space between the return type and function name */
a.internal + code.descname::before {
content: ' ';
}
/* For space between the arguments of the function */
a.internal + em::before {
content: ' ';
}
.tool-sha256 {
word-break: break-all;
}
/* Fix extra space in nested toctrees */
.toctree-wrapper ul li>* {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
File diff suppressed because it is too large. Load diff
+6
View File
@@ -0,0 +1,6 @@
!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){
// Underscore.js 1.13.1
// https://underscorejs.org
// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
// Underscore may be freely distributed under the MIT license.
var n="1.13.1",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return"function"===r||"object"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||"[object Boolean]"===a.call(n)}function x(n){var r="[object "+n+"]";return function(n){return a.call(n)===r}}var S=x("String"),O=x("Number"),M=x("Date"),E=x("RegExp"),B=x("Error"),N=x("Symbol"),I=x("ArrayBuffer"),T=x("Function"),k=r.document&&r.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof k&&(T=function(n){return"function"==typeof n||!1});var D=T,R=x("Object"),F=l&&R(new DataView(new ArrayBuffer(8))),V="undefined"!=typeof Map&&R(new Map),P=x("DataView");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x("Array");function W(n,r){return null!=n&&f.call(n,r)}var z=x("Arguments");!function(){z(arguments)||(z=function(n){return W(n,"callee")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return"number"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i="constructor";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un="[object DataView]";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return("function"===o||"object"===o||"object"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&"[object Object]"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case"[object RegExp]":case"[object String]":return""+r==""+t;case"[object Number]":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case"[object Date]":case"[object Boolean]":return+r==+t;case"[object Symbol]":return u.valueOf.call(r)===u.valueOf.call(t);case"[object ArrayBuffer]":case un:return n(en(r),en(t),e,o)}var f="[object Array]"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if("object"!=typeof r||"object"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&"constructor"in r&&"constructor"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn="forEach",ln="has",sn=["clear","delete"],pn=["get",ln,"set"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=["add"].concat(sn,cn,ln),dn=V?fn(vn):x("Map"),gn=V?fn(hn):x("WeakMap"),bn=V?fn(yn):x("Set"),mn=x("Line truncated
+143
View File
@@ -0,0 +1,143 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Index - ESP32 - &mdash; ESP-Protocols latest documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/copybutton.css" type="text/css" />
<link rel="stylesheet" href="_static/theme_overrides.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript">
DOCUMENTATION_OPTIONS.PAGENAME = 'genindex';
DOCUMENTATION_OPTIONS.PROJECT_SLUG = 'esp-idf';
DOCUMENTATION_OPTIONS.LATEST_BRANCH_NAME = 'master';
DOCUMENTATION_OPTIONS.VERSIONS_URL = 'https://github.com/espressif/esp-protocols/docs/docs_versions.js';
DOCUMENTATION_OPTIONS.LANGUAGES = ["en", "zh_CN"];
DOCUMENTATION_OPTIONS.IDF_TARGET = 'esp32';
DOCUMENTATION_OPTIONS.HAS_IDF_TARGETS = ["esp32"]
DOCUMENTATION_OPTIONS.RELEASE = 'latest';
</script>
<script type="text/javascript" src="https://github.com/espressif/esp-protocols/docs/docs_versions.js"></script>
<link rel="index" title="Index" href="#" />
<link rel="search" title="Search" href="search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> ESP-Protocols
<img src="_static/espressif-logo.svg" class="logo" alt="Logo"/>
</a>
<div class="selectors">
<select id="target-select" style="width: 150px;" hidden>
<option value="" disabled selected>Choose target...</option>
</select>
</div>
<div class="selectors">
<select id="version-select" style="width: 150px;" hidden>
<option value="" disabled selected>Choose version...</option>
</select>
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<!-- Local TOC -->
<div class="local-toc"></div>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">ESP-Protocols</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Index</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/espressif/esp-protocols/blob/dc8b916/docs/en/genindex" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2016 - 2022, Espressif Systems (Shanghai) Co., Ltd.</p>
</div>
<ul class="footer">
<li>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/espressif/sphinx_idf_theme">theme</a> based on <a href="https://github.com/readthedocs/sphinx_rtd_theme">Read the Docs Sphinx Theme</a>.
</li>
<li class="footer-aside">
<a href="./esp-idf-en-master-esp32.pdf" class="fa fa-file-pdf-o"> Download PDF</a>
</li>
</ul>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>
+211
View File
@@ -0,0 +1,211 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ASIO port - ESP32 - &mdash; ESP-Protocols latest documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/copybutton.css" type="text/css" />
<link rel="stylesheet" href="_static/theme_overrides.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript">
DOCUMENTATION_OPTIONS.PAGENAME = 'index';
DOCUMENTATION_OPTIONS.PROJECT_SLUG = 'esp-idf';
DOCUMENTATION_OPTIONS.LATEST_BRANCH_NAME = 'master';
DOCUMENTATION_OPTIONS.VERSIONS_URL = 'https://github.com/espressif/esp-protocols/docs/docs_versions.js';
DOCUMENTATION_OPTIONS.LANGUAGES = ["en", "zh_CN"];
DOCUMENTATION_OPTIONS.IDF_TARGET = 'esp32';
DOCUMENTATION_OPTIONS.HAS_IDF_TARGETS = ["esp32"]
DOCUMENTATION_OPTIONS.RELEASE = 'latest';
</script>
<script type="text/javascript" src="https://github.com/espressif/esp-protocols/docs/docs_versions.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="#" class="icon icon-home"> ESP-Protocols
<img src="_static/espressif-logo.svg" class="logo" alt="Logo"/>
</a>
<div class="selectors">
<select id="target-select" style="width: 150px;" hidden>
<option value="" disabled selected>Choose target...</option>
</select>
</div>
<div class="selectors">
<select id="version-select" style="width: 150px;" hidden>
<option value="" disabled selected>Choose version...</option>
</select>
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<!-- Local TOC -->
<div class="local-toc"><ul>
<li><a class="reference internal" href="#">ASIO port</a><ul>
<li><a class="reference internal" href="#overview">Overview</a><ul>
<li><a class="reference internal" href="#asio-documentation">ASIO documentation</a></li>
<li><a class="reference internal" href="#supported-features">Supported features</a></li>
</ul>
</li>
<li><a class="reference internal" href="#application-example">Application Example</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="#">ESP-Protocols</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="#" class="icon icon-home"></a> &raquo;</li>
<li>ASIO port</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/espressif/esp-protocols/blob/dc8b916/docs/en/index.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="asio-port">
<h1>ASIO port<a class="headerlink" href="#asio-port" title="Permalink to this headline"></a></h1>
<section id="overview">
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline"></a></h2>
<p>Asio is a cross-platform C++ library, see <a class="reference external" href="https://think-async.com/Asio/">https://think-async.com/Asio/</a>. It provides a consistent asynchronous model using a modern C++ approach.</p>
<section id="asio-documentation">
<h3>ASIO documentation<a class="headerlink" href="#asio-documentation" title="Permalink to this headline"></a></h3>
<p>Please refer to the original asio documentation at <a class="reference external" href="https://think-async.com/Asio/Documentation">https://think-async.com/Asio/Documentation</a>.
Asio also comes with a number of examples which could be find under Documentation/Examples on that web site.</p>
</section>
<section id="supported-features">
<h3>Supported features<a class="headerlink" href="#supported-features" title="Permalink to this headline"></a></h3>
<p>ESP platform port currently supports only network asynchronous socket operations; does not support serial port.
SSL/TLS support is disabled by default and could be enabled in component configuration menu by choosing TLS library from</p>
<ul class="simple">
<li><p>mbedTLS with OpenSSL translation layer (default option)</p></li>
<li><p>wolfSSL</p></li>
</ul>
<p>SSL support is very basic at this stage and it does include following features:</p>
<ul class="simple">
<li><p>Verification callbacks</p></li>
<li><p>DH property files</p></li>
<li><p>Certificates/private keys file APIs</p></li>
</ul>
<p>Internal asio settings for ESP include</p>
<ul class="simple">
<li><p>EXCEPTIONS are enabled in ASIO if enabled in menuconfig</p></li>
<li><p>TYPEID is enabled in ASIO if enabled in menuconfig</p></li>
</ul>
</section>
</section>
<section id="application-example">
<h2>Application Example<a class="headerlink" href="#application-example" title="Permalink to this headline"></a></h2>
<p>ESP examples are based on standard asio <a class="reference external" href="https://github.com/espressif/esp-protocols/tree/dc8b916/examples/../examples">examples </a>:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/espressif/esp-protocols/tree/dc8b916/examples/../examples/udp_echo_server">udp_echo_server </a></p></li>
<li><p><a class="reference external" href="https://github.com/espressif/esp-protocols/tree/dc8b916/examples/../examples/tcp_echo_server">tcp_echo_server </a></p></li>
<li><p><a class="reference external" href="https://github.com/espressif/esp-protocols/tree/dc8b916/examples/../examples/asio_chat">asio_chat </a></p></li>
<li><p><a class="reference external" href="https://github.com/espressif/esp-protocols/tree/dc8b916/examples/../examples/ssl_client_server">ssl_client_server </a></p></li>
</ul>
<p>Please refer to the specific example README.md for details</p>
</section>
</section>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2016 - 2022, Espressif Systems (Shanghai) Co., Ltd.</p>
</div>
<ul class="footer">
<li>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/espressif/sphinx_idf_theme">theme</a> based on <a href="https://github.com/readthedocs/sphinx_rtd_theme">Read the Docs Sphinx Theme</a>.
</li>
<li class="footer-aside">
<a href="./esp-idf-en-master-esp32.pdf" class="fa fa-file-pdf-o"> Download PDF</a>
</li>
</ul>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html><script type=text/javascript>
window.onload =(function() {
var myAnchor = document.getElementById('version-select');
var mySpan = document.createElement('input');
mySpan.setAttribute('type', 'text');
mySpan.setAttribute('maxLength', '10');
mySpan.value = 'latest';
mySpan.setAttribute('disabled', true);
myAnchor.parentNode.replaceChild(mySpan, myAnchor);
var myAnchor = document.getElementById('target-select');
var mySpan = document.createElement('input');
mySpan.setAttribute('type', 'text');
mySpan.setAttribute('maxLength', '10');
mySpan.value = 'all targets';
mySpan.setAttribute('disabled', true);
myAnchor.parentNode.replaceChild(mySpan, myAnchor);
})();
</script>
BIN
View File
Binary file not shown.
+157
View File
@@ -0,0 +1,157 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Search - ESP32 - &mdash; ESP-Protocols latest documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/copybutton.css" type="text/css" />
<link rel="stylesheet" href="_static/theme_overrides.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript">
DOCUMENTATION_OPTIONS.PAGENAME = 'search';
DOCUMENTATION_OPTIONS.PROJECT_SLUG = 'esp-idf';
DOCUMENTATION_OPTIONS.LATEST_BRANCH_NAME = 'master';
DOCUMENTATION_OPTIONS.VERSIONS_URL = 'https://github.com/espressif/esp-protocols/docs/docs_versions.js';
DOCUMENTATION_OPTIONS.LANGUAGES = ["en", "zh_CN"];
DOCUMENTATION_OPTIONS.IDF_TARGET = 'esp32';
DOCUMENTATION_OPTIONS.HAS_IDF_TARGETS = ["esp32"]
DOCUMENTATION_OPTIONS.RELEASE = 'latest';
</script>
<script type="text/javascript" src="https://github.com/espressif/esp-protocols/docs/docs_versions.js"></script>
<script src="_static/searchtools.js"></script>
<script src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="#" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> ESP-Protocols
<img src="_static/espressif-logo.svg" class="logo" alt="Logo"/>
</a>
<div class="selectors">
<select id="target-select" style="width: 150px;" hidden>
<option value="" disabled selected>Choose target...</option>
</select>
</div>
<div class="selectors">
<select id="version-select" style="width: 150px;" hidden>
<option value="" disabled selected>Choose version...</option>
</select>
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="#" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<!-- Local TOC -->
<div class="local-toc"></div>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">ESP-Protocols</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Search</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<noscript>
<div id="fallback" class="admonition warning">
<p class="last">
Please activate JavaScript to enable the search functionality.
</p>
</div>
</noscript>
<div id="search-results">
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2016 - 2022, Espressif Systems (Shanghai) Co., Ltd.</p>
</div>
<ul class="footer">
<li>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/espressif/sphinx_idf_theme">theme</a> based on <a href="https://github.com/readthedocs/sphinx_rtd_theme">Read the Docs Sphinx Theme</a>.
</li>
<li class="footer-aside">
<a href="./esp-idf-en-master-esp32.pdf" class="fa fa-file-pdf-o"> Download PDF</a>
</li>
</ul>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<script>
jQuery(function() { Search.loadIndex("searchindex.js"); });
</script>
<script id="searchindexloader"></script>
</body>
</html>
+1
View File
@@ -0,0 +1 @@
Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,sphinx:56},filenames:["index.rst"],objects:{},objnames:{},objtypes:{},terms:{"default":0,It:0,also:0,api:0,approach:0,ar:0,asio_chat:0,async:0,asynchron:0,base:0,basic:0,c:0,callback:0,certif:0,choos:0,com:0,come:0,compon:0,configur:0,consist:0,could:0,cross:0,current:0,detail:0,dh:0,disabl:0,doe:0,enabl:0,esp:0,except:0,file:0,find:0,follow:0,from:0,http:0,includ:0,intern:0,kei:0,layer:0,librari:0,mbedtl:0,md:0,menu:0,menuconfig:0,model:0,modern:0,network:0,number:0,onli:0,openssl:0,oper:0,option:0,origin:0,platform:0,pleas:0,privat:0,properti:0,provid:0,readm:0,refer:0,see:0,serial:0,set:0,site:0,socket:0,specif:0,ssl:0,ssl_client_serv:0,stage:0,standard:0,tcp_echo_serv:0,thi:0,think:0,tl:0,translat:0,typeid:0,udp_echo_serv:0,under:0,us:0,veri:0,verif:0,web:0,which:0,wolfssl:0},titles:["ASIO port"],titleterms:{applic:0,asio:0,document:0,exampl:0,featur:0,overview:0,port:0,support:0}})
+12
View File
@@ -0,0 +1,12 @@
var DOCUMENTATION_VERSIONS = {
VERSIONS: [
{ name: "latest", has_targets: true, supported_targets: [ "esp32", "esp32s2", "esp32s3", "esp32c2", "esp32c3" ] },
],
IDF_TARGETS: [
{ text: "ESP32", value: "esp32"},
{ text: "ESP32-S2", value: "esp32s2"},
{ text: "ESP32-S3", value: "esp32s3"},
{ text: "ESP32-C2", value: "esp32c2"},
{ text: "ESP32-C3", value: "esp32c3"}
],
};
+4
View File
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: d740c71820b26864ed688d5e0db8a303
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+236
View File
@@ -0,0 +1,236 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>ESP MODEM &#8212; esp-modem documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="C API Documentation" href="api_docs.html" />
<link rel="prev" title="ESP-MODEM Programmers manual" href="index.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="esp-modem">
<h1>ESP MODEM<a class="headerlink" href="#esp-modem" title="Permalink to this headline"></a></h1>
<p>This component is used to communicate with modems in the command mode (using AT commands), as well as the data mode
(over PPPoS protocol).
The modem device is modeled with a DCE (Data Communication Equipment) object, which is composed of:</p>
<ul class="simple">
<li><p>DTE (Data Terminal Equipment), which abstracts the terminal (currently only UART implemented).</p></li>
<li><p>PPP Netif representing a network interface communicating with the DTE using PPP protocol.</p></li>
<li><p>Module abstracting the specific device model and its commands.</p></li>
</ul>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">+-----+</span>
<span class="o">|</span> <span class="n">DTE</span> <span class="o">|--+</span>
<span class="o">+-----+</span> <span class="o">|</span> <span class="o">+-------+</span>
<span class="o">+--&gt;|</span> <span class="n">DCE</span> <span class="o">|</span>
<span class="o">+-------+</span> <span class="o">|</span> <span class="o">|</span><span class="n">o</span><span class="o">---</span> <span class="n">set_mode</span><span class="p">(</span><span class="n">command</span><span class="o">/</span><span class="n">data</span><span class="p">)</span>
<span class="o">|</span> <span class="n">Module</span><span class="o">|---&gt;|</span> <span class="o">|</span>
<span class="o">+-------+</span> <span class="o">|</span> <span class="o">|</span><span class="n">o</span><span class="o">---</span> <span class="n">send_commands</span>
<span class="o">+-&gt;|</span> <span class="o">|</span>
<span class="o">+------+</span> <span class="o">|</span> <span class="o">+-------+</span>
<span class="o">|</span> <span class="n">PPP</span> <span class="o">|--+</span>
<span class="o">|</span> <span class="n">netif</span><span class="o">|------------------&gt;</span> <span class="n">network</span> <span class="n">events</span>
<span class="o">+------+</span>
</pre></div>
</div>
<section id="modem-components">
<h2>Modem components<a class="headerlink" href="#modem-components" title="Permalink to this headline"></a></h2>
<section id="dce">
<h3>DCE<a class="headerlink" href="#dce" title="Permalink to this headline"></a></h3>
<p>This is the basic operational unit of the esp_modem component, abstracting a specific module in software,
which is basically configured by</p>
<ul class="simple">
<li><p>the I/O communication media (UART), defined by the DTE configuration</p></li>
<li><p>the specific command library supported by the device model, defined with the module type</p></li>
<li><p>network interface configuration (PPPoS config in lwip)</p></li>
</ul>
<p>After the object is created, the application interaction with the DCE is in</p>
<ul class="simple">
<li><p>issuing specific commands to the modem</p></li>
<li><p>switching between data and command mode</p></li>
</ul>
</section>
<section id="dte">
<h3>DTE<a class="headerlink" href="#dte" title="Permalink to this headline"></a></h3>
<p>Is an abstraction of the physical interface connected to the modem. Current implementation supports only UART</p>
</section>
<section id="ppp-netif">
<h3>PPP netif<a class="headerlink" href="#ppp-netif" title="Permalink to this headline"></a></h3>
<p>Is used to attach the specific network interface to a network communication protocol used by the modem. Currently implementation supports only PPPoS protocol.</p>
</section>
<section id="module">
<h3>Module<a class="headerlink" href="#module" title="Permalink to this headline"></a></h3>
<p>Abstraction of the specific modem device. Currently the component supports SIM800, BG96, SIM7600.</p>
</section>
</section>
<section id="use-cases">
<h2>Use cases<a class="headerlink" href="#use-cases" title="Permalink to this headline"></a></h2>
<p>Users interact with the esp-modem using the DCE’s interface, to basically</p>
<ul class="simple">
<li><p>Switch between command and data mode to connect to the internet via cellular network.</p></li>
<li><p>Send various commands to the device (e.g. send SMS)</p></li>
</ul>
<p>The applications typically register handlers for network events to receive notification on the network availability and
IP address changes.</p>
<p>Common use cases of the esp-modem are also listed as the examples:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">examples/pppos_client</span></code> – simple client which reads some module properties and switches to the data mode to connect to a public mqtt broker.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">examples/modem_console</span></code> – is an example to exercise all possible module commands in a console application.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">examples/ap_to_pppos</span></code> – this example focuses on the network connectivity of the esp-modem and provides a WiFi AP that forwards packets (and uses NAT) to and from the PPPoS connection.</p></li>
</ul>
</section>
<section id="extensibility">
<h2>Extensibility<a class="headerlink" href="#extensibility" title="Permalink to this headline"></a></h2>
<section id="cmux">
<h3>CMUX<a class="headerlink" href="#cmux" title="Permalink to this headline"></a></h3>
<p>Implementation of virtual terminals is an experimental feature, which allows users to also issue commands in the data mode,
after creating multiple virtual terminals, designating some of them solely to data mode, others solely to command mode.</p>
</section>
<section id="dte-s">
<h3>DTE’s<a class="headerlink" href="#dte-s" title="Permalink to this headline"></a></h3>
<p>Currently, we support only UART (and USB as a preview feature), but modern modules support other communication interfaces, such as USB, SPI.</p>
</section>
<section id="other-devices">
<h3>Other devices<a class="headerlink" href="#other-devices" title="Permalink to this headline"></a></h3>
<p>Adding a new device is a must-have requirement for the esp-modem component. Different modules support different commands,
or some commands might have a different implementation. Adding a new device means to provide a new implementation
as a class derived from <code class="docutils literal notranslate"><span class="pre">GenericModule</span></code>, where we could add new commands or modify the existing ones.</p>
</section>
</section>
<section id="configuration">
<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline"></a></h2>
<p>Modem abstraction is configurable both compile-time and run-time.</p>
<section id="component-kconfig">
<h3>Component Kconfig<a class="headerlink" href="#component-kconfig" title="Permalink to this headline"></a></h3>
<p>Compile-time configuration is provided using menuconfig. Please check the description for the CMUX mode configuration options.</p>
</section>
<section id="runtime-configuration">
<h3>Runtime configuration<a class="headerlink" href="#runtime-configuration" title="Permalink to this headline"></a></h3>
<p>Is defined using standard configuration structures for <code class="docutils literal notranslate"><span class="pre">DTE</span></code> and <code class="docutils literal notranslate"><span class="pre">DCE</span></code> objects separately. Please find documentation of</p>
<ul class="simple">
<li><p>:cpp:class:<code class="docutils literal notranslate"><span class="pre">esp_modem_dte_config_t</span></code></p></li>
<li><p>:cpp:class:<code class="docutils literal notranslate"><span class="pre">esp_modem_dce_config_t</span></code></p></li>
</ul>
</section>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">esp-modem</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Brief intro</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#modem-components">Modem components</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#dce">DCE</a></li>
<li class="toctree-l3"><a class="reference internal" href="#dte">DTE</a></li>
<li class="toctree-l3"><a class="reference internal" href="#ppp-netif">PPP netif</a></li>
<li class="toctree-l3"><a class="reference internal" href="#module">Module</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#use-cases">Use cases</a></li>
<li class="toctree-l2"><a class="reference internal" href="#extensibility">Extensibility</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#cmux">CMUX</a></li>
<li class="toctree-l3"><a class="reference internal" href="#dte-s">DTE’s</a></li>
<li class="toctree-l3"><a class="reference internal" href="#other-devices">Other devices</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#configuration">Configuration</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#component-kconfig">Component Kconfig</a></li>
<li class="toctree-l3"><a class="reference internal" href="#runtime-configuration">Runtime configuration</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="api_docs.html">C interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="cxx_api_docs.html">C++ interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced_api.html">Advanced use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_design.html">Internal design</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_docs.html">Internal implementation</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="index.html" title="previous chapter">ESP-MODEM Programmers manual</a></li>
<li>Next: <a href="api_docs.html" title="next chapter">C API Documentation</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2016 - 2021, Espressif Systems (Shanghai) Co., Ltd.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
|
<a href="_sources/README.md.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

+92
View File
@@ -0,0 +1,92 @@
# ESP MODEM
This component is used to communicate with modems in the command mode (using AT commands), as well as the data mode
(over PPPoS protocol).
The modem device is modeled with a DCE (Data Communication Equipment) object, which is composed of:
* DTE (Data Terminal Equipment), which abstracts the terminal (currently only UART implemented).
* PPP Netif representing a network interface communicating with the DTE using PPP protocol.
* Module abstracting the specific device model and its commands.
```
+-----+
| DTE |--+
+-----+ | +-------+
+-->| DCE |
+-------+ | |o--- set_mode(command/data)
| Module|--->| |
+-------+ | |o--- send_commands
+->| |
+------+ | +-------+
| PPP |--+
| netif|------------------> network events
+------+
```
## Modem components
### DCE
This is the basic operational unit of the esp_modem component, abstracting a specific module in software,
which is basically configured by
* the I/O communication media (UART), defined by the DTE configuration
* the specific command library supported by the device model, defined with the module type
* network interface configuration (PPPoS config in lwip)
After the object is created, the application interaction with the DCE is in
* issuing specific commands to the modem
* switching between data and command mode
### DTE
Is an abstraction of the physical interface connected to the modem. Current implementation supports only UART
### PPP netif
Is used to attach the specific network interface to a network communication protocol used by the modem. Currently implementation supports only PPPoS protocol.
### Module
Abstraction of the specific modem device. Currently the component supports SIM800, BG96, SIM7600.
## Use cases
Users interact with the esp-modem using the DCE's interface, to basically
* Switch between command and data mode to connect to the internet via cellular network.
* Send various commands to the device (e.g. send SMS)
The applications typically register handlers for network events to receive notification on the network availability and
IP address changes.
Common use cases of the esp-modem are also listed as the examples:
* `examples/pppos_client` -- simple client which reads some module properties and switches to the data mode to connect to a public mqtt broker.
* `examples/modem_console` -- is an example to exercise all possible module commands in a console application.
* `examples/ap_to_pppos` -- this example focuses on the network connectivity of the esp-modem and provides a WiFi AP that forwards packets (and uses NAT) to and from the PPPoS connection.
## Extensibility
### CMUX
Implementation of virtual terminals is an experimental feature, which allows users to also issue commands in the data mode,
after creating multiple virtual terminals, designating some of them solely to data mode, others solely to command mode.
### DTE's
Currently, we support only UART (and USB as a preview feature), but modern modules support other communication interfaces, such as USB, SPI.
### Other devices
Adding a new device is a must-have requirement for the esp-modem component. Different modules support different commands,
or some commands might have a different implementation. Adding a new device means to provide a new implementation
as a class derived from `GenericModule`, where we could add new commands or modify the existing ones.
## Configuration
Modem abstraction is configurable both compile-time and run-time.
### Component Kconfig
Compile-time configuration is provided using menuconfig. Please check the description for the CMUX mode configuration options.
### Runtime configuration
Is defined using standard configuration structures for `DTE` and `DCE` objects separately. Please find documentation of
* :cpp:class:`esp_modem_dte_config_t`
* :cpp:class:`esp_modem_dce_config_t`
+48
View File
@@ -0,0 +1,48 @@
Advanced esp-modem use cases
============================
This chapter outlines basic extensibility of the esp-modem component.
.. _dce_factory:
Custom instantiation with DCE factory
--------------------------------------
It is possible to create a modem handle in many different ways:
- Build a DCE on top a generic module, user defined module or build the module only (in case the application will only use AT command interface)
- Create the DCE as a shared, unique or a vanilla pointer
- Create a generic DCE or a templated DCE_T of a specific module (this could be one of the supported modules or a user defined module)
All the functionality is provided by the DCE factory
.. doxygengroup:: ESP_MODEM_DCE_FACTORY
:members:
.. _create_custom_module:
Create custom module
--------------------
Creating a custom module is necessary if the application needs to use a specific device that is not supported
and their commands differ from any of the supported devices. In this case it is recommended to define a new class
representing this specific device and derive from the :cpp:class:`esp_modem::GenericModule`. In order to instantiate
the appropriate DCE of this module, application could use :ref:`the DCE factory<dce_factory>`, and build the DCE with
the specific module, using :cpp:func:`esp_modem::dce_factory::Factory::build`.
Please refer to the implementation of the existing modules.
Please note that the ``modem_console`` example defines a trivial custom modem DCE which overrides one command,
for demonstration purposes only.
Create new communication interface
----------------------------------
In order to connect to a device using an unsupported interface (e.g. SPI or I2C), it is necessary to implement
a custom DTE object and supply it into :ref:`the DCE factory<dce_factory>`. The DCE is typically created in two steps:
- Define and create the corresponding terminal, which communicates on the custom interface. This terminal should support basic IO methods defined in :cpp:class:`esp_modem::Terminal` and derive from it.
- Create the DTE which uses the custom Terminal
Please refer to the implementation of the existing UART DTE.
+57
View File
@@ -0,0 +1,57 @@
.. _c_api:
C API Documentation
===================
The C API is very simple and consist of these two basic parts:
- :ref:`lifecycle_api`
- :ref:`modem_commands`
The Typical application workflow is to:
- Create a DCE instance (using :cpp:func:`esp_modem_new`)
- Call specific functions to issue AT commands (:ref:`modem_commands`)
- Switch to the data mode (using :cpp:func:`esp_modem_set_mode`)
- Perform desired network operations (using standard networking API, unrelated to ESP-MODEM)
- Optionally switch back to command mode (again :cpp:func:`esp_modem_set_mode`)
- Destroy the DCE handle (sing :cpp:func:`esp_modem_destroy`)
Note the configuration structures for DTE and DCE, needed for creating the DCE instance, is documented in :ref:`api_config`
.. _lifecycle_api:
Lifecycle API
-------------
These functions are used to create, destroy and set modem working mode.
- :cpp:func:`esp_modem_new`
- :cpp:func:`esp_modem_destroy`
- :cpp:func:`esp_modem_set_mode`
.. doxygengroup:: ESP_MODEM_C_API
.. _modem_commands:
Modem commands
--------------
These functions are the actual commands to communicate with the modem using AT command interface.
Note that the functions which implement AT commands returning textual values use plain ``char *``
pointer as the return value. The API expects the output data to point to user allocated space of at least
``ESP_MODEM_C_API_STR_MAX`` (64 by default) bytes, it also truncates the output data to this size.
.. doxygenfile:: esp_modem_api_commands.h
.. _api_config:
Configuration structures
------------------------
.. doxygengroup:: ESP_MODEM_CONFIG
:members:
+44
View File
@@ -0,0 +1,44 @@
C++ API Documentation
=====================
Similar to the :ref:`c_api`, the basic application workflow consist of
.. toctree::
- :ref:`Construction of the DCE<cpp_init>`
- :ref:`Switching modes<cpp_mode_switch>`
- :ref:`Sending (AT) commands<cpp_modem_commands>`
- :ref:`Destroying the DCE<cpp_destroy>`
.. _cpp_init:
Create DTE and DCE
------------------
.. doxygengroup:: ESP_MODEM_INIT_DTE
.. doxygengroup:: ESP_MODEM_INIT_DCE
.. _cpp_mode_switch:
Mode switching commands
-----------------------
.. doxygenclass:: esp_modem::DCE_T
:members:
.. _cpp_modem_commands:
Modem commands
--------------
.. include:: cxx_api_links.rst
.. _cpp_destroy:
Destroy the DCE
---------------
The DCE object is created as ``std::unique_ptr`` by default and as such doesn't have to be explicitly destroyed.
It simply gets destroyed and cleaned-up automatically if the object goes out of the block scope.
+37
View File
@@ -0,0 +1,37 @@
- :cpp:func:`esp_modem::DCE::sync`
- :cpp:func:`esp_modem::DCE::get_operator_name`
- :cpp:func:`esp_modem::DCE::store_profile`
- :cpp:func:`esp_modem::DCE::set_pin`
- :cpp:func:`esp_modem::DCE::at`
- :cpp:func:`esp_modem::DCE::read_pin`
- :cpp:func:`esp_modem::DCE::set_echo`
- :cpp:func:`esp_modem::DCE::sms_txt_mode`
- :cpp:func:`esp_modem::DCE::sms_character_set`
- :cpp:func:`esp_modem::DCE::send_sms`
- :cpp:func:`esp_modem::DCE::resume_data_mode`
- :cpp:func:`esp_modem::DCE::set_pdp_context`
- :cpp:func:`esp_modem::DCE::set_command_mode`
- :cpp:func:`esp_modem::DCE::set_cmux`
- :cpp:func:`esp_modem::DCE::get_imsi`
- :cpp:func:`esp_modem::DCE::get_imei`
- :cpp:func:`esp_modem::DCE::get_module_name`
- :cpp:func:`esp_modem::DCE::set_data_mode`
- :cpp:func:`esp_modem::DCE::get_signal_quality`
- :cpp:func:`esp_modem::DCE::set_flow_control`
- :cpp:func:`esp_modem::DCE::hang_up`
- :cpp:func:`esp_modem::DCE::get_battery_status`
- :cpp:func:`esp_modem::DCE::power_down`
- :cpp:func:`esp_modem::DCE::reset`
- :cpp:func:`esp_modem::DCE::set_baud`
- :cpp:func:`esp_modem::DCE::set_operator`
- :cpp:func:`esp_modem::DCE::set_network_attachment_state`
- :cpp:func:`esp_modem::DCE::get_network_attachment_state`
- :cpp:func:`esp_modem::DCE::set_radio_state`
- :cpp:func:`esp_modem::DCE::get_radio_state`
- :cpp:func:`esp_modem::DCE::set_network_mode`
- :cpp:func:`esp_modem::DCE::set_preferred_mode`
- :cpp:func:`esp_modem::DCE::set_network_bands`
- :cpp:func:`esp_modem::DCE::get_network_system_mode`
- :cpp:func:`esp_modem::DCE::set_gnss_power_mode`
- :cpp:func:`esp_modem::DCE::get_gnss_power_mode`
+11
View File
@@ -0,0 +1,11 @@
ESP-MODEM Programmers manual
============================
.. toctree::
Brief intro <README>
C interface <api_docs>
C++ interface <cxx_api_docs>
Advanced use cases <advanced_api>
Internal design <internal_design>
Internal implementation <internal_docs>
+36
View File
@@ -0,0 +1,36 @@
# Internal design
## Design decisions
* Use C++ with additional C API
* Use exceptions
- Use macro wrapper over `try-catch` blocks when exceptions off (use `abort()` if `THROW()`)
* Initializes and allocates in the constructor (might throw)
- easier code with exceptions ON, with exceptions OFF alloc/init failures are not treated as runtime error (program aborts)
- break down long initialization in constructor into more private methods
* Implements different devices using inheritance from `GenericModule`, which is the most general implementation of a common modem
- Internally uses templates with device specialization (modeled as `DCE<SpecificModule>`) which could be used as well for some special cases,
such as implantation of a minimal device (ModuleIf), add new AT commands (oOnly in compile time), or using the Module with DTE only (no DCE, no Netif) for sending AT commands without network
## DCE collaboration model
The diagram describes how the DCE class collaborates with DTE, PPP and the device abstraction
![DCE_architecture](DCE_DTE_collaboration.png)
## Terminal inheritance
Terminal is a class which can read or write data, and can handle callbacks when data are available. UART specialization
is provided implementing these method using the uart driver.
## CMUX terminal
The below diagram depicts the idea of using CMUX terminal mode using the CMuxInstance class which is a terminal
(it implements the basic read/write methods) interfacing arbitrary number of virtual terminals,
but at the same time it is also composed of CMux class, which consumes the original terminal and uses its read/write methods
to multiplex the terminal.
![CMUX Terminal](CMux_collaboration.png)
+117
View File
@@ -0,0 +1,117 @@
DCE Internal implementation
===========================
This chapter provides a detailed description of the classes and building blocks of the esp-modem component and their responsibilities.
The esp-modem actually implements the DCE class, which in turn aggregates these thee units:
- :ref:`DTE<dte_impl>` to communicate with the device on a specific Terminal interface such as UART.
- :ref:`Netif<netif_impl>` to provide the network connectivity
- :ref:`Module<module_impl>` to define the specific command library
Developers would typically have to
* Add support for a new module
* Implement a generic (common for all modules) AT command
This is explained in the :ref:`Module<module_impl>` section, as :ref:`Adding new module or command<module_addition>`
------------
.. doxygengroup:: ESP_MODEM_DCE
:members:
.. _dte_impl:
DTE abstraction
---------------
DTE is a basic unit to talk to the module using a Terminal interface. It also implements and uses the CMUX to multiplex
terminals. Besides the DTE documentation, this section also refers to the
- :ref:`Terminal interface<term_impl>`
- :ref:`CMUX implementation<cmux_impl>`
------------
.. doxygengroup:: ESP_MODEM_DTE
:members:
.. _term_impl:
Terminal interface
^^^^^^^^^^^^^^^^^^
.. doxygengroup:: ESP_MODEM_TERMINAL
:members:
.. _cmux_impl:
CMUX implementation
^^^^^^^^^^^^^^^^^^^
.. doxygengroup:: ESP_MODEM_CMUX
:members:
.. _netif_impl:
Netif
-----
.. doxygengroup:: ESP_MODEM_NETIF
:members:
.. _module_impl:
Module abstraction
------------------
.. doxygengroup:: ESP_MODEM_MODULE
:members:
.. _module_addition:
Adding new devices
^^^^^^^^^^^^^^^^^^
To support a new module, developers would have to implement a new class derived from :cpp:class:`esp_modem::GenericModule` the same way
as it is described in the :ref:`Advanced user manual<create_custom_module>`. The only difference is that the new class (and factory extension)
would be available in the esp_modem code base.
Implement a new generic command
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Adding a generic command, i.e. the command that is shared for all modules and is included in the :cpp:class:`esp_modem::GenericModule`,
has to be declared first in the ``include/generate/esp_modem_command_declare.inc`` file, which is the single source
of supported command definitions, that is used in:
* public C API
* public CPP API
* generated documentation
* implementation of the command
Therefore, a care must be taken, to correctly specify all parameters and types, especially:
* Keep number of parameters low (<= 6, used in preprocessor's forwarding to the command library)
* Use macros to specify parameter types (as they are used both from C and C++ with different underlying types)
* Parameter names are used only for clarity and documentation, they get expanded to numbered arguments.
Please use the following pattern: ``INT_IN(p1, baud)``, meaning that the parameter is an input integer,
human readable argument name is ``baud``, it's the first argument, so expands to ``p1`` (second argument would be ``p2``, etc)
Command library
^^^^^^^^^^^^^^^
This is a namespace holding a library of typical AT commands used by supported devices.
Please refer to the :ref:`c_api` for the list of supported commands.
.. doxygengroup:: ESP_MODEM_DCE_COMMAND
:members:
Modem types
-----------
.. doxygengroup:: ESP_MODEM_TYPES
:members:
+703
View File
@@ -0,0 +1,703 @@
@import url("basic.css");
/* -- page layout ----------------------------------------------------------- */
body {
font-family: Georgia, serif;
font-size: 17px;
background-color: #fff;
color: #000;
margin: 0;
padding: 0;
}
div.document {
width: 940px;
margin: 30px auto 0 auto;
}
div.documentwrapper {
float: left;
width: 100%;
}
div.bodywrapper {
margin: 0 0 0 220px;
}
div.sphinxsidebar {
width: 220px;
font-size: 14px;
line-height: 1.5;
}
hr {
border: 1px solid #B1B4B6;
}
div.body {
background-color: #fff;
color: #3E4349;
padding: 0 30px 0 30px;
}
div.body > .section {
text-align: left;
}
div.footer {
width: 940px;
margin: 20px auto 30px auto;
font-size: 14px;
color: #888;
text-align: right;
}
div.footer a {
color: #888;
}
p.caption {
font-family: inherit;
font-size: inherit;
}
div.relations {
display: none;
}
div.sphinxsidebar a {
color: #444;
text-decoration: none;
border-bottom: 1px dotted #999;
}
div.sphinxsidebar a:hover {
border-bottom: 1px solid #999;
}
div.sphinxsidebarwrapper {
padding: 18px 10px;
}
div.sphinxsidebarwrapper p.logo {
padding: 0;
margin: -10px 0 0 0px;
text-align: center;
}
div.sphinxsidebarwrapper h1.logo {
margin-top: -10px;
text-align: center;
margin-bottom: 5px;
text-align: left;
}
div.sphinxsidebarwrapper h1.logo-name {
margin-top: 0px;
}
div.sphinxsidebarwrapper p.blurb {
margin-top: 0;
font-style: normal;
}
div.sphinxsidebar h3,
div.sphinxsidebar h4 {
font-family: Georgia, serif;
color: #444;
font-size: 24px;
font-weight: normal;
margin: 0 0 5px 0;
padding: 0;
}
div.sphinxsidebar h4 {
font-size: 20px;
}
div.sphinxsidebar h3 a {
color: #444;
}
div.sphinxsidebar p.logo a,
div.sphinxsidebar h3 a,
div.sphinxsidebar p.logo a:hover,
div.sphinxsidebar h3 a:hover {
border: none;
}
div.sphinxsidebar p {
color: #555;
margin: 10px 0;
}
div.sphinxsidebar ul {
margin: 10px 0;
padding: 0;
color: #000;
}
div.sphinxsidebar ul li.toctree-l1 > a {
font-size: 120%;
}
div.sphinxsidebar ul li.toctree-l2 > a {
font-size: 110%;
}
div.sphinxsidebar input {
border: 1px solid #CCC;
font-family: Georgia, serif;
font-size: 1em;
}
div.sphinxsidebar hr {
border: none;
height: 1px;
color: #AAA;
background: #AAA;
text-align: left;
margin-left: 0;
width: 50%;
}
div.sphinxsidebar .badge {
border-bottom: none;
}
div.sphinxsidebar .badge:hover {
border-bottom: none;
}
/* To address an issue with donation coming after search */
div.sphinxsidebar h3.donation {
margin-top: 10px;
}
/* -- body styles ----------------------------------------------------------- */
a {
color: #004B6B;
text-decoration: underline;
}
a:hover {
color: #6D4100;
text-decoration: underline;
}
div.body h1,
div.body h2,
div.body h3,
div.body h4,
div.body h5,
div.body h6 {
font-family: Georgia, serif;
font-weight: normal;
margin: 30px 0px 10px 0px;
padding: 0;
}
div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
div.body h2 { font-size: 180%; }
div.body h3 { font-size: 150%; }
div.body h4 { font-size: 130%; }
div.body h5 { font-size: 100%; }
div.body h6 { font-size: 100%; }
a.headerlink {
color: #DDD;
padding: 0 4px;
text-decoration: none;
}
a.headerlink:hover {
color: #444;
background: #EAEAEA;
}
div.body p, div.body dd, div.body li {
line-height: 1.4em;
}
div.admonition {
margin: 20px 0px;
padding: 10px 30px;
background-color: #EEE;
border: 1px solid #CCC;
}
div.admonition tt.xref, div.admonition code.xref, div.admonition a tt {
background-color: #FBFBFB;
border-bottom: 1px solid #fafafa;
}
div.admonition p.admonition-title {
font-family: Georgia, serif;
font-weight: normal;
font-size: 24px;
margin: 0 0 10px 0;
padding: 0;
line-height: 1;
}
div.admonition p.last {
margin-bottom: 0;
}
div.highlight {
background-color: #fff;
}
dt:target, .highlight {
background: #FAF3E8;
}
div.warning {
background-color: #FCC;
border: 1px solid #FAA;
}
div.danger {
background-color: #FCC;
border: 1px solid #FAA;
-moz-box-shadow: 2px 2px 4px #D52C2C;
-webkit-box-shadow: 2px 2px 4px #D52C2C;
box-shadow: 2px 2px 4px #D52C2C;
}
div.error {
background-color: #FCC;
border: 1px solid #FAA;
-moz-box-shadow: 2px 2px 4px #D52C2C;
-webkit-box-shadow: 2px 2px 4px #D52C2C;
box-shadow: 2px 2px 4px #D52C2C;
}
div.caution {
background-color: #FCC;
border: 1px solid #FAA;
}
div.attention {
background-color: #FCC;
border: 1px solid #FAA;
}
div.important {
background-color: #EEE;
border: 1px solid #CCC;
}
div.note {
background-color: #EEE;
border: 1px solid #CCC;
}
div.tip {
background-color: #EEE;
border: 1px solid #CCC;
}
div.hint {
background-color: #EEE;
border: 1px solid #CCC;
}
div.seealso {
background-color: #EEE;
border: 1px solid #CCC;
}
div.topic {
background-color: #EEE;
}
p.admonition-title {
display: inline;
}
p.admonition-title:after {
content: ":";
}
pre, tt, code {
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
font-size: 0.9em;
}
.hll {
background-color: #FFC;
margin: 0 -12px;
padding: 0 12px;
display: block;
}
img.screenshot {
}
tt.descname, tt.descclassname, code.descname, code.descclassname {
font-size: 0.95em;
}
tt.descname, code.descname {
padding-right: 0.08em;
}
img.screenshot {
-moz-box-shadow: 2px 2px 4px #EEE;
-webkit-box-shadow: 2px 2px 4px #EEE;
box-shadow: 2px 2px 4px #EEE;
}
table.docutils {
border: 1px solid #888;
-moz-box-shadow: 2px 2px 4px #EEE;
-webkit-box-shadow: 2px 2px 4px #EEE;
box-shadow: 2px 2px 4px #EEE;
}
table.docutils td, table.docutils th {
border: 1px solid #888;
padding: 0.25em 0.7em;
}
table.field-list, table.footnote {
border: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
table.footnote {
margin: 15px 0;
width: 100%;
border: 1px solid #EEE;
background: #FDFDFD;
font-size: 0.9em;
}
table.footnote + table.footnote {
margin-top: -15px;
border-top: none;
}
table.field-list th {
padding: 0 0.8em 0 0;
}
table.field-list td {
padding: 0;
}
table.field-list p {
margin-bottom: 0.8em;
}
/* Cloned from
* https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68
*/
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
table.footnote td.label {
width: .1px;
padding: 0.3em 0 0.3em 0.5em;
}
table.footnote td {
padding: 0.3em 0.5em;
}
dl {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding: 0;
}
dl dd {
margin-left: 30px;
}
blockquote {
margin: 0 0 0 30px;
padding: 0;
}
ul, ol {
/* Matches the 30px from the narrow-screen "li > ul" selector below */
margin: 10px 0 10px 30px;
padding: 0;
}
pre {
background: #EEE;
padding: 7px 30px;
margin: 15px 0px;
line-height: 1.3em;
}
div.viewcode-block:target {
background: #ffd;
}
dl pre, blockquote pre, li pre {
margin-left: 0;
padding-left: 30px;
}
tt, code {
background-color: #ecf0f3;
color: #222;
/* padding: 1px 2px; */
}
tt.xref, code.xref, a tt {
background-color: #FBFBFB;
border-bottom: 1px solid #fff;
}
a.reference {
text-decoration: none;
border-bottom: 1px dotted #004B6B;
}
/* Don't put an underline on images */
a.image-reference, a.image-reference:hover {
border-bottom: none;
}
a.reference:hover {
border-bottom: 1px solid #6D4100;
}
a.footnote-reference {
text-decoration: none;
font-size: 0.7em;
vertical-align: top;
border-bottom: 1px dotted #004B6B;
}
a.footnote-reference:hover {
border-bottom: 1px solid #6D4100;
}
a:hover tt, a:hover code {
background: #EEE;
}
@media screen and (max-width: 870px) {
div.sphinxsidebar {
display: none;
}
div.document {
width: 100%;
}
div.documentwrapper {
margin-left: 0;
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
}
div.bodywrapper {
margin-top: 0;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
}
ul {
margin-left: 0;
}
li > ul {
/* Matches the 30px from the "ul, ol" selector above */
margin-left: 30px;
}
.document {
width: auto;
}
.footer {
width: auto;
}
.bodywrapper {
margin: 0;
}
.footer {
width: auto;
}
.github {
display: none;
}
}
@media screen and (max-width: 875px) {
body {
margin: 0;
padding: 20px 30px;
}
div.documentwrapper {
float: none;
background: #fff;
}
div.sphinxsidebar {
display: block;
float: none;
width: 102.5%;
margin: 50px -30px -20px -30px;
padding: 10px 20px;
background: #333;
color: #FFF;
}
div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p,
div.sphinxsidebar h3 a {
color: #fff;
}
div.sphinxsidebar a {
color: #AAA;
}
div.sphinxsidebar p.logo {
display: none;
}
div.document {
width: 100%;
margin: 0;
}
div.footer {
display: none;
}
div.bodywrapper {
margin: 0;
}
div.body {
min-height: 0;
padding: 0;
}
.rtd_doc_footer {
display: none;
}
.document {
width: auto;
}
.footer {
width: auto;
}
.footer {
width: auto;
}
.github {
display: none;
}
}
/* misc. */
.revsys-inline {
display: none!important;
}
/* Make nested-list/multi-paragraph items look better in Releases changelog
* pages. Without this, docutils' magical list fuckery causes inconsistent
* formatting between different release sub-lists.
*/
div#changelog > div.section > ul > li > p:only-child {
margin-bottom: 0;
}
/* Hide fugly table cell borders in ..bibliography:: directive output */
table.docutils.citation, table.docutils.citation td, table.docutils.citation th {
border: none;
/* Below needed in some edge cases; if not applied, bottom shadows appear */
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
/* relbar */
.related {
line-height: 30px;
width: 100%;
font-size: 0.9rem;
}
.related.top {
border-bottom: 1px solid #EEE;
margin-bottom: 20px;
}
.related.bottom {
border-top: 1px solid #EEE;
}
.related ul {
padding: 0;
margin: 0;
list-style: none;
}
.related li {
display: inline;
}
nav#rellinks {
float: right;
}
nav#rellinks li+li:before {
content: "|";
}
nav#breadcrumbs li+li:before {
content: "\00BB";
}
/* Hide certain items when printing */
@media print {
div.related {
display: none;
}
}
+906
View File
@@ -0,0 +1,906 @@
/*
* basic.css
* ~~~~~~~~~
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/* -- main layout ----------------------------------------------------------- */
div.clearer {
clear: both;
}
div.section::after {
display: block;
content: '';
clear: left;
}
/* -- relbar ---------------------------------------------------------------- */
div.related {
width: 100%;
font-size: 90%;
}
div.related h3 {
display: none;
}
div.related ul {
margin: 0;
padding: 0 0 0 10px;
list-style: none;
}
div.related li {
display: inline;
}
div.related li.right {
float: right;
margin-right: 5px;
}
/* -- sidebar --------------------------------------------------------------- */
div.sphinxsidebarwrapper {
padding: 10px 5px 0 10px;
}
div.sphinxsidebar {
float: left;
width: 230px;
margin-left: -100%;
font-size: 90%;
word-wrap: break-word;
overflow-wrap : break-word;
}
div.sphinxsidebar ul {
list-style: none;
}
div.sphinxsidebar ul ul,
div.sphinxsidebar ul.want-points {
margin-left: 20px;
list-style: square;
}
div.sphinxsidebar ul ul {
margin-top: 0;
margin-bottom: 0;
}
div.sphinxsidebar form {
margin-top: 10px;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
div.sphinxsidebar #searchbox form.search {
overflow: hidden;
}
div.sphinxsidebar #searchbox input[type="text"] {
float: left;
width: 80%;
padding: 0.25em;
box-sizing: border-box;
}
div.sphinxsidebar #searchbox input[type="submit"] {
float: left;
width: 20%;
border-left: none;
padding: 0.25em;
box-sizing: border-box;
}
img {
border: 0;
max-width: 100%;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li p.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
margin-left: auto;
margin-right: auto;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable {
width: 100%;
}
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable ul {
margin-top: 0;
margin-bottom: 0;
list-style-type: none;
}
table.indextable > tbody > tr > td > ul {
padding-left: 0em;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
div.modindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
div.genindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
/* -- domain module index --------------------------------------------------- */
table.modindextable td {
padding: 2px;
border-collapse: collapse;
}
/* -- general body styles --------------------------------------------------- */
div.body {
min-width: 450px;
max-width: 800px;
}
div.body p, div.body dd, div.body li, div.body blockquote {
-moz-hyphens: auto;
-ms-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}
a.headerlink {
visibility: hidden;
}
a.brackets:before,
span.brackets > a:before{
content: "[";
}
a.brackets:after,
span.brackets > a:after {
content: "]";
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink,
caption:hover > a.headerlink,
p.caption:hover > a.headerlink,
div.code-block-caption:hover > a.headerlink {
visibility: visible;
}
div.body p.caption {
text-align: inherit;
}
div.body td {
text-align: left;
}
.first {
margin-top: 0 !important;
}
p.rubric {
margin-top: 30px;
font-weight: bold;
}
img.align-left, figure.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, figure.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, figure.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
img.align-default, figure.align-default, .figure.align-default {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-default {
text-align: center;
}
.align-right {
text-align: right;
}
/* -- sidebars -------------------------------------------------------------- */
div.sidebar,
aside.sidebar {
margin: 0 0 0.5em 1em;
border: 1px solid #ddb;
padding: 7px;
background-color: #ffe;
width: 40%;
float: right;
clear: right;
overflow-x: auto;
}
p.sidebar-title {
font-weight: bold;
}
div.admonition, div.topic, blockquote {
clear: left;
}
/* -- topics ---------------------------------------------------------------- */
div.topic {
border: 1px solid #ccc;
padding: 7px;
margin: 10px 0 10px 0;
}
p.topic-title {
font-size: 1.1em;
font-weight: bold;
margin-top: 10px;
}
/* -- admonitions ----------------------------------------------------------- */
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 7px;
}
div.admonition dt {
font-weight: bold;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
div.body p.centered {
text-align: center;
margin-top: 25px;
}
/* -- content of sidebars/topics/admonitions -------------------------------- */
div.sidebar > :last-child,
aside.sidebar > :last-child,
div.topic > :last-child,
div.admonition > :last-child {
margin-bottom: 0;
}
div.sidebar::after,
aside.sidebar::after,
div.topic::after,
div.admonition::after,
blockquote::after {
display: block;
content: '';
clear: both;
}
/* -- tables ---------------------------------------------------------------- */
table.docutils {
margin-top: 10px;
margin-bottom: 10px;
border: 0;
border-collapse: collapse;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
table.align-default {
margin-left: auto;
margin-right: auto;
}
table caption span.caption-number {
font-style: italic;
}
table caption span.caption-text {
}
table.docutils td, table.docutils th {
padding: 1px 8px 1px 5px;
border-top: 0;
border-left: 0;
border-right: 0;
border-bottom: 1px solid #aaa;
}
table.footnote td, table.footnote th {
border: 0 !important;
}
th {
text-align: left;
padding-right: 5px;
}
table.citation {
border-left: solid 1px gray;
margin-left: 1px;
}
table.citation td {
border-bottom: none;
}
th > :first-child,
td > :first-child {
margin-top: 0px;
}
th > :last-child,
td > :last-child {
margin-bottom: 0px;
}
/* -- figures --------------------------------------------------------------- */
div.figure, figure {
margin: 0.5em;
padding: 0.5em;
}
div.figure p.caption, figcaption {
padding: 0.3em;
}
div.figure p.caption span.caption-number,
figcaption span.caption-number {
font-style: italic;
}
div.figure p.caption span.caption-text,
figcaption span.caption-text {
}
/* -- field list styles ----------------------------------------------------- */
table.field-list td, table.field-list th {
border: 0 !important;
}
.field-list ul {
margin: 0;
padding-left: 1em;
}
.field-list p {
margin: 0;
}
.field-name {
-moz-hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
hyphens: manual;
}
/* -- hlist styles ---------------------------------------------------------- */
table.hlist {
margin: 1em 0;
}
table.hlist td {
vertical-align: top;
}
/* -- object description styles --------------------------------------------- */
.sig {
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
}
.sig-name, code.descname {
background-color: transparent;
font-weight: bold;
}
.sig-name {
font-size: 1.1em;
}
code.descname {
font-size: 1.2em;
}
.sig-prename, code.descclassname {
background-color: transparent;
}
.optional {
font-size: 1.3em;
}
.sig-paren {
font-size: larger;
}
.sig-param.n {
font-style: italic;
}
/* C++ specific styling */
.sig-inline.c-texpr,
.sig-inline.cpp-texpr {
font-family: unset;
}
.sig.c .k, .sig.c .kt,
.sig.cpp .k, .sig.cpp .kt {
color: #0033B3;
}
.sig.c .m,
.sig.cpp .m {
color: #1750EB;
}
.sig.c .s, .sig.c .sc,
.sig.cpp .s, .sig.cpp .sc {
color: #067D17;
}
/* -- other body styles ----------------------------------------------------- */
ol.arabic {
list-style: decimal;
}
ol.loweralpha {
list-style: lower-alpha;
}
ol.upperalpha {
list-style: upper-alpha;
}
ol.lowerroman {
list-style: lower-roman;
}
ol.upperroman {
list-style: upper-roman;
}
:not(li) > ol > li:first-child > :first-child,
:not(li) > ul > li:first-child > :first-child {
margin-top: 0px;
}
:not(li) > ol > li:last-child > :last-child,
:not(li) > ul > li:last-child > :last-child {
margin-bottom: 0px;
}
ol.simple ol p,
ol.simple ul p,
ul.simple ol p,
ul.simple ul p {
margin-top: 0;
}
ol.simple > li:not(:first-child) > p,
ul.simple > li:not(:first-child) > p {
margin-top: 0;
}
ol.simple p,
ul.simple p {
margin-bottom: 0;
}
dl.footnote > dt,
dl.citation > dt {
float: left;
margin-right: 0.5em;
}
dl.footnote > dd,
dl.citation > dd {
margin-bottom: 0em;
}
dl.footnote > dd:after,
dl.citation > dd:after {
content: "";
clear: both;
}
dl.field-list {
display: grid;
grid-template-columns: fit-content(30%) auto;
}
dl.field-list > dt {
font-weight: bold;
word-break: break-word;
padding-left: 0.5em;
padding-right: 5px;
}
dl.field-list > dt:after {
content: ":";
}
dl.field-list > dd {
padding-left: 0.5em;
margin-top: 0em;
margin-left: 0em;
margin-bottom: 0em;
}
dl {
margin-bottom: 15px;
}
dd > :first-child {
margin-top: 0px;
}
dd ul, dd table {
margin-bottom: 10px;
}
dd {
margin-top: 3px;
margin-bottom: 10px;
margin-left: 30px;
}
dl > dd:last-child,
dl > dd:last-child > :last-child {
margin-bottom: 0;
}
dt:target, span.highlighted {
background-color: #fbe54e;
}
rect.highlighted {
fill: #fbe54e;
}
dl.glossary dt {
font-weight: bold;
font-size: 1.1em;
}
.versionmodified {
font-style: italic;
}
.system-message {
background-color: #fda;
padding: 5px;
border: 3px solid red;
}
.footnote:target {
background-color: #ffa;
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
.guilabel, .menuselection {
font-family: sans-serif;
}
.accelerator {
text-decoration: underline;
}
.classifier {
font-style: oblique;
}
.classifier:before {
font-style: normal;
margin: 0 0.5em;
content: ":";
display: inline-block;
}
abbr, acronym {
border-bottom: dotted 1px;
cursor: help;
}
/* -- code displays --------------------------------------------------------- */
pre {
overflow: auto;
overflow-y: hidden; /* fixes display issues on Chrome browsers */
}
pre, div[class*="highlight-"] {
clear: both;
}
span.pre {
-moz-hyphens: none;
-ms-hyphens: none;
-webkit-hyphens: none;
hyphens: none;
white-space: nowrap;
}
div[class*="highlight-"] {
margin: 1em 0;
}
td.linenos pre {
border: 0;
background-color: transparent;
color: #aaa;
}
table.highlighttable {
display: block;
}
table.highlighttable tbody {
display: block;
}
table.highlighttable tr {
display: flex;
}
table.highlighttable td {
margin: 0;
padding: 0;
}
table.highlighttable td.linenos {
padding-right: 0.5em;
}
table.highlighttable td.code {
flex: 1;
overflow: hidden;
}
.highlight .hll {
display: block;
}
div.highlight pre,
table.highlighttable pre {
margin: 0;
}
div.code-block-caption + div {
margin-top: 0;
}
div.code-block-caption {
margin-top: 1em;
padding: 2px 5px;
font-size: small;
}
div.code-block-caption code {
background-color: transparent;
}
table.highlighttable td.linenos,
span.linenos,
div.highlight span.gp { /* gp: Generic.Prompt */
user-select: none;
-webkit-user-select: text; /* Safari fallback only */
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */
}
div.code-block-caption span.caption-number {
padding: 0.1em 0.3em;
font-style: italic;
}
div.code-block-caption span.caption-text {
}
div.literal-block-wrapper {
margin: 1em 0;
}
code.xref, a code {
background-color: transparent;
font-weight: bold;
}
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
background-color: transparent;
}
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
font-family: sans-serif;
}
div.viewcode-block:target {
margin: -1px -10px;
padding: 0 10px;
}
/* -- math display ---------------------------------------------------------- */
img.math {
vertical-align: middle;
}
div.body div.math p {
text-align: center;
}
span.eqno {
float: right;
}
span.eqno a.headerlink {
position: absolute;
z-index: 1;
}
div.math:hover a.headerlink {
visibility: visible;
}
/* -- printout stylesheet --------------------------------------------------- */
@media print {
div.document,
div.documentwrapper,
div.bodywrapper {
margin: 0 !important;
width: 100%;
}
div.sphinxsidebar,
div.related,
div.footer,
#top-link {
display: none;
}
}
+1
View File
@@ -0,0 +1 @@
/* This file intentionally left blank. */
+358
View File
@@ -0,0 +1,358 @@
/*
* doctools.js
* ~~~~~~~~~~~
*
* Sphinx JavaScript utilities for all documentation.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/**
* select a different prefix for underscore
*/
$u = _.noConflict();
/**
* make the code below compatible with browsers without
* an installed firebug like debugger
if (!window.console || !console.firebug) {
var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
"dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
"profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {};
}
*/
/**
* small helper function to urldecode strings
*
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
*/
jQuery.urldecode = function(x) {
if (!x) {
return x
}
return decodeURIComponent(x.replace(/\+/g, ' '));
};
/**
* small helper function to urlencode strings
*/
jQuery.urlencode = encodeURIComponent;
/**
* This function returns the parsed url parameters of the
* current request. Multiple values per key are supported,
* it will always return arrays of strings for the value parts.
*/
jQuery.getQueryParameters = function(s) {
if (typeof s === 'undefined')
s = document.location.search;
var parts = s.substr(s.indexOf('?') + 1).split('&');
var result = {};
for (var i = 0; i < parts.length; i++) {
var tmp = parts[i].split('=', 2);
var key = jQuery.urldecode(tmp[0]);
var value = jQuery.urldecode(tmp[1]);
if (key in result)
result[key].push(value);
else
result[key] = [value];
}
return result;
};
/**
* highlight a given string on a jquery object by wrapping it in
* span elements with the given class name.
*/
jQuery.fn.highlightText = function(text, className) {
function highlight(node, addItems) {
if (node.nodeType === 3) {
var val = node.nodeValue;
var pos = val.toLowerCase().indexOf(text);
if (pos >= 0 &&
!jQuery(node.parentNode).hasClass(className) &&
!jQuery(node.parentNode).hasClass("nohighlight")) {
var span;
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
if (isInSVG) {
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
} else {
span = document.createElement("span");
span.className = className;
}
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
document.createTextNode(val.substr(pos + text.length)),
node.nextSibling));
node.nodeValue = val.substr(0, pos);
if (isInSVG) {
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className);
addItems.push({
"parent": node.parentNode,
"target": rect});
}
}
}
else if (!jQuery(node).is("button, select, textarea")) {
jQuery.each(node.childNodes, function() {
highlight(this, addItems);
});
}
}
var addItems = [];
var result = this.each(function() {
highlight(this, addItems);
});
for (var i = 0; i < addItems.length; ++i) {
jQuery(addItems[i].parent).before(addItems[i].target);
}
return result;
};
/*
* backward compatibility for jQuery.browser
* This will be supported until firefox bug is fixed.
*/
if (!jQuery.browser) {
jQuery.uaMatch = function(ua) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
jQuery.browser = {};
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
}
/**
* Small JavaScript module for the documentation.
*/
var Documentation = {
init : function() {
this.fixFirefoxAnchorBug();
this.highlightSearchWords();
this.initIndexTable();
this.initOnKeyListeners();
},
/**
* i18n support
*/
TRANSLATIONS : {},
PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
LOCALE : 'unknown',
// gettext and ngettext don't access this so that the functions
// can safely bound to a different name (_ = Documentation.gettext)
gettext : function(string) {
var translated = Documentation.TRANSLATIONS[string];
if (typeof translated === 'undefined')
return string;
return (typeof translated === 'string') ? translated : translated[0];
},
ngettext : function(singular, plural, n) {
var translated = Documentation.TRANSLATIONS[singular];
if (typeof translated === 'undefined')
return (n == 1) ? singular : plural;
return translated[Documentation.PLURALEXPR(n)];
},
addTranslations : function(catalog) {
for (var key in catalog.messages)
this.TRANSLATIONS[key] = catalog.messages[key];
this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
this.LOCALE = catalog.locale;
},
/**
* add context elements like header anchor links
*/
addContextElements : function() {
$('div[id] > :header:first').each(function() {
$('<a class="headerlink">\u00B6</a>').
attr('href', '#' + this.id).
attr('title', _('Permalink to this headline')).
appendTo(this);
});
$('dt[id]').each(function() {
$('<a class="headerlink">\u00B6</a>').
attr('href', '#' + this.id).
attr('title', _('Permalink to this definition')).
appendTo(this);
});
},
/**
* workaround a firefox stupidity
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
*/
fixFirefoxAnchorBug : function() {
if (document.location.hash && $.browser.mozilla)
window.setTimeout(function() {
document.location.href += '';
}, 10);
},
/**
* highlight the search words provided in the url in the text
*/
highlightSearchWords : function() {
var params = $.getQueryParameters();
var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
if (terms.length) {
var body = $('div.body');
if (!body.length) {
body = $('body');
}
window.setTimeout(function() {
$.each(terms, function() {
body.highlightText(this.toLowerCase(), 'highlighted');
});
}, 10);
$('<p class="highlight-link"><a href="javascript:Documentation.' +
'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
.appendTo($('#searchbox'));
}
},
/**
* init the domain index toggle buttons
*/
initIndexTable : function() {
var togglers = $('img.toggler').click(function() {
var src = $(this).attr('src');
var idnum = $(this).attr('id').substr(7);
$('tr.cg-' + idnum).toggle();
if (src.substr(-9) === 'minus.png')
$(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
else
$(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
}).css('display', '');
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
togglers.click();
}
},
/**
* helper function to hide the search marks again
*/
hideSearchWords : function() {
$('#searchbox .highlight-link').fadeOut(300);
$('span.highlighted').removeClass('highlighted');
var url = new URL(window.location);
url.searchParams.delete('highlight');
window.history.replaceState({}, '', url);
},
/**
* helper function to focus on search bar
*/
focusSearchBar : function() {
$('input[name=q]').first().focus();
},
/**
* make the url absolute
*/
makeURL : function(relativeURL) {
return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
},
/**
* get the current relative url
*/
getCurrentURL : function() {
var path = document.location.pathname;
var parts = path.split(/\//);
$.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
if (this === '..')
parts.pop();
});
var url = parts.join('/');
return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
},
initOnKeyListeners: function() {
// only install a listener if it is really needed
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS)
return;
$(document).keydown(function(event) {
var activeElementType = document.activeElement.tagName;
// don't navigate when in search box, textarea, dropdown or button
if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT'
&& activeElementType !== 'BUTTON') {
if (event.altKey || event.ctrlKey || event.metaKey)
return;
if (!event.shiftKey) {
switch (event.key) {
case 'ArrowLeft':
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS)
break;
var prevHref = $('link[rel="prev"]').prop('href');
if (prevHref) {
window.location.href = prevHref;
return false;
}
break;
case 'ArrowRight':
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS)
break;
var nextHref = $('link[rel="next"]').prop('href');
if (nextHref) {
window.location.href = nextHref;
return false;
}
break;
case 'Escape':
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS)
break;
Documentation.hideSearchWords();
return false;
}
}
// some keyboard layouts may need Shift to get /
switch (event.key) {
case '/':
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS)
break;
Documentation.focusSearchBar();
return false;
}
}
});
}
};
// quick alias for translations
_ = Documentation.gettext;
$(document).ready(function() {
Documentation.init();
});
@@ -0,0 +1,14 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
FILE_SUFFIX: '.html',
LINK_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false,
SHOW_SEARCH_SUMMARY: true,
ENABLE_SEARCH_SHORTCUTS: true,
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

+10872
View File
File diff suppressed because it is too large. Load diff
+2
View File
@@ -0,0 +1,2 @@
/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-lLine truncated
+297
View File
@@ -0,0 +1,297 @@
/*
* language_data.js
* ~~~~~~~~~~~~~~~~
*
* This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
/* Non-minified version is copied as a separate JS file, is available */
/**
* Porter Stemmer
*/
var Stemmer = function() {
var step2list = {
ational: 'ate',
tional: 'tion',
enci: 'ence',
anci: 'ance',
izer: 'ize',
bli: 'ble',
alli: 'al',
entli: 'ent',
eli: 'e',
ousli: 'ous',
ization: 'ize',
ation: 'ate',
ator: 'ate',
alism: 'al',
iveness: 'ive',
fulness: 'ful',
ousness: 'ous',
aliti: 'al',
iviti: 'ive',
biliti: 'ble',
logi: 'log'
};
var step3list = {
icate: 'ic',
ative: '',
alize: 'al',
iciti: 'ic',
ical: 'ic',
ful: '',
ness: ''
};
var c = "[^aeiou]"; // consonant
var v = "[aeiouy]"; // vowel
var C = c + "[^aeiouy]*"; // consonant sequence
var V = v + "[aeiou]*"; // vowel sequence
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
var s_v = "^(" + C + ")?" + v; // vowel in stem
this.stemWord = function (w) {
var stem;
var suffix;
var firstch;
var origword = w;
if (w.length < 3)
return w;
var re;
var re2;
var re3;
var re4;
firstch = w.substr(0,1);
if (firstch == "y")
w = firstch.toUpperCase() + w.substr(1);
// Step 1a
re = /^(.+?)(ss|i)es$/;
re2 = /^(.+?)([^s])s$/;
if (re.test(w))
w = w.replace(re,"$1$2");
else if (re2.test(w))
w = w.replace(re2,"$1$2");
// Step 1b
re = /^(.+?)eed$/;
re2 = /^(.+?)(ed|ing)$/;
if (re.test(w)) {
var fp = re.exec(w);
re = new RegExp(mgr0);
if (re.test(fp[1])) {
re = /.$/;
w = w.replace(re,"");
}
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1];
re2 = new RegExp(s_v);
if (re2.test(stem)) {
w = stem;
re2 = /(at|bl|iz)$/;
re3 = new RegExp("([^aeiouylsz])\\1$");
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re2.test(w))
w = w + "e";
else if (re3.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
else if (re4.test(w))
w = w + "e";
}
}
// Step 1c
re = /^(.+?)y$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(s_v);
if (re.test(stem))
w = stem + "i";
}
// Step 2
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step2list[suffix];
}
// Step 3
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem))
w = stem + step3list[suffix];
}
// Step 4
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
re2 = /^(.+?)(s|t)(ion)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
if (re.test(stem))
w = stem;
}
else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1] + fp[2];
re2 = new RegExp(mgr1);
if (re2.test(stem))
w = stem;
}
// Step 5
re = /^(.+?)e$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
re2 = new RegExp(meq1);
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
w = stem;
}
re = /ll$/;
re2 = new RegExp(mgr1);
if (re.test(w) && re2.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
// and turn initial Y back to y
if (firstch == "y")
w = firstch.toLowerCase() + w.substr(1);
return w;
}
}
var splitChars = (function() {
var result = {};
var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
var i, j, start, end;
for (i = 0; i < singles.length; i++) {
result[singles[i]] = true;
}
var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
[722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
[1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
[1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
[1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
[2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
[2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
[2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
[2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
[2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
[2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
[2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
[3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
[3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
[3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
[3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
[3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
[3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
[4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
[4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
[4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
[4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
[5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
[6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
[6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
[6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
[6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
[7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
[7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
[8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
[8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
[8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
[10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
[11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
[12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
[12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
[12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
[19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
[42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
[42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
[43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
[43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
[43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
[43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
[44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
[57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
[64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
[65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
[65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
for (i = 0; i < ranges.length; i++) {
start = ranges[i][0];
end = ranges[i][1];
for (j = start; j <= end; j++) {
result[j] = true;
}
}
return result;
})();
function splitQuery(query) {
var result = [];
var start = -1;
for (var i = 0; i < query.length; i++) {
if (splitChars[query.charCodeAt(i)]) {
if (start !== -1) {
result.push(query.slice(start, i));
start = -1;
}
} else if (start === -1) {
start = i;
}
}
if (start !== -1) {
result.push(query.slice(start));
}
return result;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

+82
View File
@@ -0,0 +1,82 @@
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight { background: #f8f8f8; }
.highlight .c { color: #8f5902; font-style: italic } /* Comment */
.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */
.highlight .g { color: #000000 } /* Generic */
.highlight .k { color: #004461; font-weight: bold } /* Keyword */
.highlight .l { color: #000000 } /* Literal */
.highlight .n { color: #000000 } /* Name */
.highlight .o { color: #582800 } /* Operator */
.highlight .x { color: #000000 } /* Other */
.highlight .p { color: #000000; font-weight: bold } /* Punctuation */
.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #8f5902 } /* Comment.Preproc */
.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */
.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */
.highlight .gd { color: #a40000 } /* Generic.Deleted */
.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */
.highlight .gr { color: #ef2929 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #745334 } /* Generic.Prompt */
.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */
.highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */
.highlight .ld { color: #000000 } /* Literal.Date */
.highlight .m { color: #990000 } /* Literal.Number */
.highlight .s { color: #4e9a06 } /* Literal.String */
.highlight .na { color: #c4a000 } /* Name.Attribute */
.highlight .nb { color: #004461 } /* Name.Builtin */
.highlight .nc { color: #000000 } /* Name.Class */
.highlight .no { color: #000000 } /* Name.Constant */
.highlight .nd { color: #888888 } /* Name.Decorator */
.highlight .ni { color: #ce5c00 } /* Name.Entity */
.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #000000 } /* Name.Function */
.highlight .nl { color: #f57900 } /* Name.Label */
.highlight .nn { color: #000000 } /* Name.Namespace */
.highlight .nx { color: #000000 } /* Name.Other */
.highlight .py { color: #000000 } /* Name.Property */
.highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #000000 } /* Name.Variable */
.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */
.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */
.highlight .mb { color: #990000 } /* Literal.Number.Bin */
.highlight .mf { color: #990000 } /* Literal.Number.Float */
.highlight .mh { color: #990000 } /* Literal.Number.Hex */
.highlight .mi { color: #990000 } /* Literal.Number.Integer */
.highlight .mo { color: #990000 } /* Literal.Number.Oct */
.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */
.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */
.highlight .sc { color: #4e9a06 } /* Literal.String.Char */
.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */
.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */
.highlight .se { color: #4e9a06 } /* Literal.String.Escape */
.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */
.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */
.highlight .sx { color: #4e9a06 } /* Literal.String.Other */
.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */
.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */
.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */
.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #000000 } /* Name.Function.Magic */
.highlight .vc { color: #000000 } /* Name.Variable.Class */
.highlight .vg { color: #000000 } /* Name.Variable.Global */
.highlight .vi { color: #000000 } /* Name.Variable.Instance */
.highlight .vm { color: #000000 } /* Name.Variable.Magic */
.highlight .il { color: #990000 } /* Literal.Number.Integer.Long */
+525
View File
@@ -0,0 +1,525 @@
/*
* searchtools.js
* ~~~~~~~~~~~~~~~~
*
* Sphinx JavaScript utilities for the full-text search.
*
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
if (!Scorer) {
/**
* Simple result scoring code.
*/
var Scorer = {
// Implement the following function to further tweak the score for each result
// The function takes a result array [filename, title, anchor, descr, score]
// and returns the new score.
/*
score: function(result) {
return result[4];
},
*/
// query matches the full name of an object
objNameMatch: 11,
// or matches in the last dotted part of the object name
objPartialMatch: 6,
// Additive scores depending on the priority of the object
objPrio: {0: 15, // used to be importantResults
1: 5, // used to be objectResults
2: -5}, // used to be unimportantResults
// Used when the priority is not in the mapping.
objPrioDefault: 0,
// query found in title
title: 15,
partialTitle: 7,
// query found in terms
term: 5,
partialTerm: 2
};
}
if (!splitQuery) {
function splitQuery(query) {
return query.split(/\s+/);
}
}
/**
* Search Module
*/
var Search = {
_index : null,
_queued_query : null,
_pulse_status : -1,
htmlToText : function(htmlString) {
var virtualDocument = document.implementation.createHTMLDocument('virtual');
var htmlElement = $(htmlString, virtualDocument);
htmlElement.find('.headerlink').remove();
docContent = htmlElement.find('[role=main]')[0];
if(docContent === undefined) {
console.warn("Content block not found. Sphinx search tries to obtain it " +
"via '[role=main]'. Could you check your theme or template.");
return "";
}
return docContent.textContent || docContent.innerText;
},
init : function() {
var params = $.getQueryParameters();
if (params.q) {
var query = params.q[0];
$('input[name="q"]')[0].value = query;
this.performSearch(query);
}
},
loadIndex : function(url) {
$.ajax({type: "GET", url: url, data: null,
dataType: "script", cache: true,
complete: function(jqxhr, textstatus) {
if (textstatus != "success") {
document.getElementById("searchindexloader").src = url;
}
}});
},
setIndex : function(index) {
var q;
this._index = index;
if ((q = this._queued_query) !== null) {
this._queued_query = null;
Search.query(q);
}
},
hasIndex : function() {
return this._index !== null;
},
deferQuery : function(query) {
this._queued_query = query;
},
stopPulse : function() {
this._pulse_status = 0;
},
startPulse : function() {
if (this._pulse_status >= 0)
return;
function pulse() {
var i;
Search._pulse_status = (Search._pulse_status + 1) % 4;
var dotString = '';
for (i = 0; i < Search._pulse_status; i++)
dotString += '.';
Search.dots.text(dotString);
if (Search._pulse_status > -1)
window.setTimeout(pulse, 500);
}
pulse();
},
/**
* perform a search for something (or wait until index is loaded)
*/
performSearch : function(query) {
// create the required interface elements
this.out = $('#search-results');
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
this.dots = $('<span></span>').appendTo(this.title);
this.status = $('<p class="search-summary">&nbsp;</p>').appendTo(this.out);
this.output = $('<ul class="search"/>').appendTo(this.out);
$('#search-progress').text(_('Preparing search...'));
this.startPulse();
// index already loaded, the browser was quick!
if (this.hasIndex())
this.query(query);
else
this.deferQuery(query);
},
/**
* execute search (requires search index to be loaded)
*/
query : function(query) {
var i;
// stem the searchterms and add them to the correct list
var stemmer = new Stemmer();
var searchterms = [];
var excluded = [];
var hlterms = [];
var tmp = splitQuery(query);
var objectterms = [];
for (i = 0; i < tmp.length; i++) {
if (tmp[i] !== "") {
objectterms.push(tmp[i].toLowerCase());
}
if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i] === "") {
// skip this "word"
continue;
}
// stem the word
var word = stemmer.stemWord(tmp[i].toLowerCase());
var toAppend;
// select the correct list
if (word[0] == '-') {
toAppend = excluded;
word = word.substr(1);
}
else {
toAppend = searchterms;
hlterms.push(tmp[i].toLowerCase());
}
// only add if not already in the list
if (!$u.contains(toAppend, word))
toAppend.push(word);
}
var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
// console.debug('SEARCH: searching for:');
// console.info('required: ', searchterms);
// console.info('excluded: ', excluded);
// prepare search
var terms = this._index.terms;
var titleterms = this._index.titleterms;
// array of [filename, title, anchor, descr, score]
var results = [];
$('#search-progress').empty();
// lookup as object
for (i = 0; i < objectterms.length; i++) {
var others = [].concat(objectterms.slice(0, i),
objectterms.slice(i+1, objectterms.length));
results = results.concat(this.performObjectSearch(objectterms[i], others));
}
// lookup as search terms in fulltext
results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
// let the scorer override scores with a custom scoring function
if (Scorer.score) {
for (i = 0; i < results.length; i++)
results[i][4] = Scorer.score(results[i]);
}
// now sort the results by score (in opposite order of appearance, since the
// display function below uses pop() to retrieve items) and then
// alphabetically
results.sort(function(a, b) {
var left = a[4];
var right = b[4];
if (left > right) {
return 1;
} else if (left < right) {
return -1;
} else {
// same score: sort alphabetically
left = a[1].toLowerCase();
right = b[1].toLowerCase();
return (left > right) ? -1 : ((left < right) ? 1 : 0);
}
});
// for debugging
//Search.lastresults = results.slice(); // a copy
//console.info('search results:', Search.lastresults);
// print the results
var resultCount = results.length;
function displayNextItem() {
// results left, load the summary and display it
if (results.length) {
var item = results.pop();
var listItem = $('<li></li>');
var requestUrl = "";
var linkUrl = "";
if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
// dirhtml builder
var dirname = item[0] + '/';
if (dirname.match(/\/index\/$/)) {
dirname = dirname.substring(0, dirname.length-6);
} else if (dirname == 'index/') {
dirname = '';
}
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname;
linkUrl = requestUrl;
} else {
// normal html builders
requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX;
linkUrl = item[0] + DOCUMENTATION_OPTIONS.LINK_SUFFIX;
}
listItem.append($('<a/>').attr('href',
linkUrl +
highlightstring + item[2]).html(item[1]));
if (item[3]) {
listItem.append($('<span> (' + item[3] + ')</span>'));
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();
}, 5);
} else if (DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY) {
$.ajax({url: requestUrl,
dataType: "text",
complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText;
if (data !== '' && data !== undefined) {
var summary = Search.makeSearchSummary(data, searchterms, hlterms);
if (summary) {
listItem.append(summary);
}
}
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();
}, 5);
}});
} else {
// just display title
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();
}, 5);
}
}
// search finished, update title and status message
else {
Search.stopPulse();
Search.title.text(_('Search Results'));
if (!resultCount)
Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
else
Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
Search.status.fadeIn(500);
}
}
displayNextItem();
},
/**
* search for object names
*/
performObjectSearch : function(object, otherterms) {
var filenames = this._index.filenames;
var docnames = this._index.docnames;
var objects = this._index.objects;
var objnames = this._index.objnames;
var titles = this._index.titles;
var i;
var results = [];
for (var prefix in objects) {
for (var iMatch = 0; iMatch != objects[prefix].length; ++iMatch) {
var match = objects[prefix][iMatch];
var name = match[4];
var fullname = (prefix ? prefix + '.' : '') + name;
var fullnameLower = fullname.toLowerCase()
if (fullnameLower.indexOf(object) > -1) {
var score = 0;
var parts = fullnameLower.split('.');
// check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part)
if (fullnameLower == object || parts[parts.length - 1] == object) {
score += Scorer.objNameMatch;
// matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) {
score += Scorer.objPartialMatch;
}
var objname = objnames[match[1]][2];
var title = titles[match[0]];
// If more than one term searched for, we require other words to be
// found in the name/title/description
if (otherterms.length > 0) {
var haystack = (prefix + ' ' + name + ' ' +
objname + ' ' + title).toLowerCase();
var allfound = true;
for (i = 0; i < otherterms.length; i++) {
if (haystack.indexOf(otherterms[i]) == -1) {
allfound = false;
break;
}
}
if (!allfound) {
continue;
}
}
var descr = objname + _(', in ') + title;
var anchor = match[3];
if (anchor === '')
anchor = fullname;
else if (anchor == '-')
anchor = objnames[match[1]][1] + '-' + fullname;
// add custom score for some objects according to scorer
if (Scorer.objPrio.hasOwnProperty(match[2])) {
score += Scorer.objPrio[match[2]];
} else {
score += Scorer.objPrioDefault;
}
results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]);
}
}
}
return results;
},
/**
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
*/
escapeRegExp : function(string) {
return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
},
/**
* search for full-text terms in the index
*/
performTermsSearch : function(searchterms, excluded, terms, titleterms) {
var docnames = this._index.docnames;
var filenames = this._index.filenames;
var titles = this._index.titles;
var i, j, file;
var fileMap = {};
var scoreMap = {};
var results = [];
// perform the search on the required terms
for (i = 0; i < searchterms.length; i++) {
var word = searchterms[i];
var files = [];
var _o = [
{files: terms[word], score: Scorer.term},
{files: titleterms[word], score: Scorer.title}
];
// add support for partial matches
if (word.length > 2) {
var word_regex = this.escapeRegExp(word);
for (var w in terms) {
if (w.match(word_regex) && !terms[word]) {
_o.push({files: terms[w], score: Scorer.partialTerm})
}
}
for (var w in titleterms) {
if (w.match(word_regex) && !titleterms[word]) {
_o.push({files: titleterms[w], score: Scorer.partialTitle})
}
}
}
// no match but word was a required one
if ($u.every(_o, function(o){return o.files === undefined;})) {
break;
}
// found search word in contents
$u.each(_o, function(o) {
var _files = o.files;
if (_files === undefined)
return
if (_files.length === undefined)
_files = [_files];
files = files.concat(_files);
// set score for the word in each file to Scorer.term
for (j = 0; j < _files.length; j++) {
file = _files[j];
if (!(file in scoreMap))
scoreMap[file] = {};
scoreMap[file][word] = o.score;
}
});
// create the mapping
for (j = 0; j < files.length; j++) {
file = files[j];
if (file in fileMap && fileMap[file].indexOf(word) === -1)
fileMap[file].push(word);
else
fileMap[file] = [word];
}
}
// now check if the files don't contain excluded terms
for (file in fileMap) {
var valid = true;
// check if all requirements are matched
var filteredTermCount = // as search terms with length < 3 are discarded: ignore
searchterms.filter(function(term){return term.length > 2}).length
if (
fileMap[file].length != searchterms.length &&
fileMap[file].length != filteredTermCount
) continue;
// ensure that none of the excluded terms is in the search result
for (i = 0; i < excluded.length; i++) {
if (terms[excluded[i]] == file ||
titleterms[excluded[i]] == file ||
$u.contains(terms[excluded[i]] || [], file) ||
$u.contains(titleterms[excluded[i]] || [], file)) {
valid = false;
break;
}
}
// if we have still a valid result we can add it to the result list
if (valid) {
// select one (max) score for the file.
// for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
results.push([docnames[file], titles[file], '', null, score, filenames[file]]);
}
}
return results;
},
/**
* helper function to return a node containing the
* search summary for a given text. keywords is a list
* of stemmed words, hlwords is the list of normal, unstemmed
* words. the first one is used to find the occurrence, the
* latter for highlighting it.
*/
makeSearchSummary : function(htmlText, keywords, hlwords) {
var text = Search.htmlToText(htmlText);
if (text == "") {
return null;
}
var textLower = text.toLowerCase();
var start = 0;
$.each(keywords, function() {
var i = textLower.indexOf(this.toLowerCase());
if (i > -1)
start = i;
});
start = Math.max(start - 120, 0);
var excerpt = ((start > 0) ? '...' : '') +
$.trim(text.substr(start, 240)) +
((start + 240 - text.length) ? '...' : '');
var rv = $('<p class="context"></p>').text(excerpt);
$.each(hlwords, function() {
rv = rv.highlightText(this, 'highlighted');
});
return rv;
}
};
$(document).ready(function() {
Search.init();
});
File diff suppressed because it is too large. Load diff
+6
View File
@@ -0,0 +1,6 @@
!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){
// Underscore.js 1.13.1
// https://underscorejs.org
// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
// Underscore may be freely distributed under the MIT license.
var n="1.13.1",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return"function"===r||"object"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||"[object Boolean]"===a.call(n)}function x(n){var r="[object "+n+"]";return function(n){return a.call(n)===r}}var S=x("String"),O=x("Number"),M=x("Date"),E=x("RegExp"),B=x("Error"),N=x("Symbol"),I=x("ArrayBuffer"),T=x("Function"),k=r.document&&r.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof k&&(T=function(n){return"function"==typeof n||!1});var D=T,R=x("Object"),F=l&&R(new DataView(new ArrayBuffer(8))),V="undefined"!=typeof Map&&R(new Map),P=x("DataView");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x("Array");function W(n,r){return null!=n&&f.call(n,r)}var z=x("Arguments");!function(){z(arguments)||(z=function(n){return W(n,"callee")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return"number"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i="constructor";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un="[object DataView]";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return("function"===o||"object"===o||"object"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&"[object Object]"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case"[object RegExp]":case"[object String]":return""+r==""+t;case"[object Number]":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case"[object Date]":case"[object Boolean]":return+r==+t;case"[object Symbol]":return u.valueOf.call(r)===u.valueOf.call(t);case"[object ArrayBuffer]":case un:return n(en(r),en(t),e,o)}var f="[object Array]"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if("object"!=typeof r||"object"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&"constructor"in r&&"constructor"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn="forEach",ln="has",sn=["clear","delete"],pn=["get",ln,"set"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=["add"].concat(sn,cn,ln),dn=V?fn(vn):x("Map"),gn=V?fn(hn):x("WeakMap"),bn=V?fn(yn):x("Set"),mn=x("Line truncated
+302
View File
@@ -0,0 +1,302 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Advanced esp-modem use cases &#8212; esp-modem documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Internal design" href="internal_design.html" />
<link rel="prev" title="C++ API Documentation" href="cxx_api_docs.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="advanced-esp-modem-use-cases">
<h1>Advanced esp-modem use cases<a class="headerlink" href="#advanced-esp-modem-use-cases" title="Permalink to this headline"></a></h1>
<p>This chapter outlines basic extensibility of the esp-modem component.</p>
<section id="custom-instantiation-with-dce-factory">
<span id="dce-factory"></span><h2>Custom instantiation with DCE factory<a class="headerlink" href="#custom-instantiation-with-dce-factory" title="Permalink to this headline"></a></h2>
<p>It is possible to create a modem handle in many different ways:</p>
<ul class="simple">
<li><p>Build a DCE on top a generic module, user defined module or build the module only (in case the application will only use AT command interface)</p></li>
<li><p>Create the DCE as a shared, unique or a vanilla pointer</p></li>
<li><p>Create a generic DCE or a templated DCE_T of a specific module (this could be one of the supported modules or a user defined module)</p></li>
</ul>
<p>All the functionality is provided by the DCE factory</p>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___f_a_c_t_o_r_y"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_DCE_FACTORY</span></span></dt>
<dd><p><a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> modem factory. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
<dl class="cpp enum-class">
<dt class="sig sig-object cpp" id="_CPPv49ModemType">
<span id="_CPPv39ModemType"></span><span id="_CPPv29ModemType"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___f_a_c_t_o_r_y_1ga34f5bd407ce186b43f44b5c8cfbf2fd9"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ModemType</span></span></span><a class="headerlink" href="#_CPPv49ModemType" title="Permalink to this definition"></a><br /></dt>
<dd><p>Specific modem choice when creating by the <a class="reference internal" href="#classesp__modem_1_1dce__factory_1_1_factory"><span class="std std-ref">Factory</span></a>. </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N9ModemType13GenericModuleE">
<span id="_CPPv3N9ModemType13GenericModuleE"></span><span id="_CPPv2N9ModemType13GenericModuleE"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___f_a_c_t_o_r_y_1gga34f5bd407ce186b43f44b5c8cfbf2fd9aa8bf3237121049ad32b6caa9e888a248"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GenericModule</span></span></span><a class="headerlink" href="#_CPPv4N9ModemType13GenericModuleE" title="Permalink to this definition"></a><br /></dt>
<dd><p>Default generic module with the most common commands </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N9ModemType7SIM7600E">
<span id="_CPPv3N9ModemType7SIM7600E"></span><span id="_CPPv2N9ModemType7SIM7600E"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___f_a_c_t_o_r_y_1gga34f5bd407ce186b43f44b5c8cfbf2fd9aa0e5dcb06d41510dde0b20f2e59e75a2"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SIM7600</span></span></span><a class="headerlink" href="#_CPPv4N9ModemType7SIM7600E" title="Permalink to this definition"></a><br /></dt>
<dd><p>Derived from the <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_generic_module"><span class="std std-ref">GenericModule</span></a>, specifics applied to <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_s_i_m7600"><span class="std std-ref">SIM7600</span></a> model </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N9ModemType7SIM7070E">
<span id="_CPPv3N9ModemType7SIM7070E"></span><span id="_CPPv2N9ModemType7SIM7070E"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___f_a_c_t_o_r_y_1gga34f5bd407ce186b43f44b5c8cfbf2fd9a17612eb64619563fb0b5c35d046d419d"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SIM7070</span></span></span><a class="headerlink" href="#_CPPv4N9ModemType7SIM7070E" title="Permalink to this definition"></a><br /></dt>
<dd><p>Derived from the <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_generic_module"><span class="std std-ref">GenericModule</span></a>, specifics applied to <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_s_i_m7070"><span class="std std-ref">SIM7070</span></a> model </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N9ModemType7SIM7000E">
<span id="_CPPv3N9ModemType7SIM7000E"></span><span id="_CPPv2N9ModemType7SIM7000E"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___f_a_c_t_o_r_y_1gga34f5bd407ce186b43f44b5c8cfbf2fd9a719215eb78ae5f264bb9af70af9aedaa"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SIM7000</span></span></span><a class="headerlink" href="#_CPPv4N9ModemType7SIM7000E" title="Permalink to this definition"></a><br /></dt>
<dd><p>Derived from the <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_generic_module"><span class="std std-ref">GenericModule</span></a>, specifics applied to <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_s_i_m7000"><span class="std std-ref">SIM7000</span></a> model </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N9ModemType4BG96E">
<span id="_CPPv3N9ModemType4BG96E"></span><span id="_CPPv2N9ModemType4BG96E"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___f_a_c_t_o_r_y_1gga34f5bd407ce186b43f44b5c8cfbf2fd9a80e1af61101ed94123673230a16bdbe0"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">BG96</span></span></span><a class="headerlink" href="#_CPPv4N9ModemType4BG96E" title="Permalink to this definition"></a><br /></dt>
<dd><p>Derived from the <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_generic_module"><span class="std std-ref">GenericModule</span></a>, specifics applied to BG69 model </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N9ModemType6SIM800E">
<span id="_CPPv3N9ModemType6SIM800E"></span><span id="_CPPv2N9ModemType6SIM800E"></span><span class="target" id="group___e_s_p___m_o_d_e_m___d_c_e___f_a_c_t_o_r_y_1gga34f5bd407ce186b43f44b5c8cfbf2fd9a6705b747abfe5514ac06e14ef95ebc44"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SIM800</span></span></span><a class="headerlink" href="#_CPPv4N9ModemType6SIM800E" title="Permalink to this definition"></a><br /></dt>
<dd><p>Derived from the <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_generic_module"><span class="std std-ref">GenericModule</span></a> with specifics applied to <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_s_i_m800"><span class="std std-ref">SIM800</span></a> model </p>
</dd></dl>
</dd></dl>
</div>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem11dce_factory13FactoryHelperE">
<span id="_CPPv3N9esp_modem11dce_factory13FactoryHelperE"></span><span id="_CPPv2N9esp_modem11dce_factory13FactoryHelperE"></span><span id="esp_modem::dce_factory::FactoryHelper"></span><span class="target" id="classesp__modem_1_1dce__factory_1_1_factory_helper"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FactoryHelper</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem11dce_factory13FactoryHelperE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce_factory.hpp&gt;</em></div>
<p>Helper class for creating a user define pointer in a specific way, either as a plain pointer, shared_ptr or unique_ptr. </p>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4I0EN9esp_modem11dce_factory7CreatorE">
<span id="_CPPv3I0EN9esp_modem11dce_factory7CreatorE"></span><span id="_CPPv2I0EN9esp_modem11dce_factory7CreatorE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">T_Module</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classesp__modem_1_1dce__factory_1_1_creator"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Creator</span></span></span><a class="headerlink" href="#_CPPv4I0EN9esp_modem11dce_factory7CreatorE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce_factory.hpp&gt;</em></div>
<p><a class="reference internal" href="#classesp__modem_1_1dce__factory_1_1_creator"><span class="std std-ref">Creator</span></a> class for building a DCE_T&lt;Module&gt; in a specific way, either from a Module object or by default from the <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> and netif. </p>
<dl class="field-list simple">
<dt class="field-odd">Throws </dt>
<dd class="field-odd"><p></p></dd>
</dl>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem11dce_factory7FactoryE">
<span id="_CPPv3N9esp_modem11dce_factory7FactoryE"></span><span id="_CPPv2N9esp_modem11dce_factory7FactoryE"></span><span id="esp_modem::dce_factory::Factory"></span><span class="target" id="classesp__modem_1_1dce__factory_1_1_factory"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">dce_factory</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">Factory</span></span></span><a class="headerlink" href="#_CPPv4N9esp_modem11dce_factory7FactoryE" title="Permalink to this definition"></a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;esp_modem_dce_factory.hpp&gt;</em></div>
<p><a class="reference internal" href="#classesp__modem_1_1dce__factory_1_1_factory"><span class="std std-ref">Factory</span></a> class for creating virtual <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> objects based on the configuration of the supplied module. This could also be used to create a custom module or a DCE_T&lt;module&gt;, provided user app derives from this factory. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args">
<span id="_CPPv3IDpEN9esp_modem11dce_factory7Factory12build_uniqueEPK6configDpRR4Args"></span><span id="_CPPv2IDpEN9esp_modem11dce_factory7Factory12build_uniqueEPK6configDpRR4Args"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="sig-name descname"><span class="n"><span class="pre">Args</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classesp__modem_1_1dce__factory_1_1_factory_1a5fd0210522a31e645f28c0b0f23ffb67"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCEE" title="esp_modem::DCE"><span class="n"><span class="pre">DCE</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">build_unique</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">config</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">cfg</span></span>, <a class="reference internal" href="#_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args" title="esp_modem::dce_factory::Factory::build_unique::Args"><span class="n"><span class="pre">Args</span></span></a><span class="p"><span class="pre">&amp;</span></span><span class="p"><span class="pre">&amp;</span></span><span class="p"><span class="pre">...</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">args</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create a default unique_ptr <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> generically, with the chosen module derived from the <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_generic_module"><span class="std std-ref">GenericModule</span></a>. </p>
<dl class="field-list simple">
<dt class="field-odd">Template Parameters</dt>
<dd class="field-odd"><p><strong>Args</strong> – Arguments to the builder, i.e. constructor of <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e___t"><span class="std std-ref">esp_modem::DCE_T</span></a> class </p>
</dd>
<dt class="field-even">Parameters</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>cfg</strong> – <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> configuration structure <a class="reference internal" href="api_docs.html#structesp__modem__dte__config"><span class="std std-ref">esp_modem_dte_config</span></a> </p></li>
<li><p><strong>args</strong> – typically a <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> object and a netif handle for PPP network </p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>unique_ptr <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> of the created <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> on success </p>
</dd>
</dl>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args">
<span id="_CPPv3I0DpEN9esp_modem11dce_factory7Factory12build_uniqueEPK6configDpRR4Args"></span><span id="_CPPv2I0DpEN9esp_modem11dce_factory7Factory12build_uniqueEPK6configDpRR4Args"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">T_Module</span></span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="sig-name descname"><span class="n"><span class="pre">Args</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classesp__modem_1_1dce__factory_1_1_factory_1a2a4686de666658fb89a8d80ce2935bf2"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCEE" title="esp_modem::DCE"><span class="n"><span class="pre">DCE</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">build_unique</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">config</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">cfg</span></span>, <a class="reference internal" href="#_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args" title="esp_modem::dce_factory::Factory::build_unique::Args"><span class="n"><span class="pre">Args</span></span></a><span class="p"><span class="pre">&amp;</span></span><span class="p"><span class="pre">&amp;</span></span><span class="p"><span class="pre">...</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">args</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create a default unique_ptr <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> in a specific way (from the module) </p>
<dl class="field-list simple">
<dt class="field-odd">Template Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>Module</strong> – Specific Module used in this <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> </p></li>
<li><p><strong>Args</strong> – Arguments to the builder, i.e. constructor of <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e___t"><span class="std std-ref">esp_modem::DCE_T</span></a> class </p></li>
</ul>
</dd>
<dt class="field-even">Parameters</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>cfg</strong> – <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> configuration structure <a class="reference internal" href="api_docs.html#structesp__modem__dte__config"><span class="std std-ref">esp_modem_dte_config</span></a> </p></li>
<li><p><strong>args</strong> – typically a <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> object and a netif handle for PPP network </p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>unique_ptr <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> of the created <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> on success </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args">
<span id="_CPPv3I0DpEN9esp_modem11dce_factory7Factory5buildEPK6configDpRR4Args"></span><span id="_CPPv2I0DpEN9esp_modem11dce_factory7Factory5buildEPK6configDpRR4Args"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">T_Module</span></span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">typename</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="sig-name descname"><span class="n"><span class="pre">Args</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classesp__modem_1_1dce__factory_1_1_factory_1a2dfb050a53429bb651fb58de5841c04d"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCEE" title="esp_modem::DCE"><span class="n"><span class="pre">DCE</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">build</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">config</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">cfg</span></span>, <a class="reference internal" href="#_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args" title="esp_modem::dce_factory::Factory::build::Args"><span class="n"><span class="pre">Args</span></span></a><span class="p"><span class="pre">&amp;</span></span><span class="p"><span class="pre">&amp;</span></span><span class="p"><span class="pre">...</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">args</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create a <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a>. </p>
<dl class="field-list simple">
<dt class="field-odd">Template Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>Module</strong> – Specific Module used in this <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> </p></li>
<li><p><strong>Args</strong> – Arguments to the builder, i.e. constructor of <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e___t"><span class="std std-ref">esp_modem::DCE_T</span></a> class </p></li>
</ul>
</dd>
<dt class="field-even">Parameters</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>cfg</strong> – <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> configuration structure <a class="reference internal" href="api_docs.html#structesp__modem__dte__config"><span class="std std-ref">esp_modem_dte_config</span></a> </p></li>
<li><p><strong>args</strong> – typically a <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> object and a netif handle for PPP network </p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> pointer the created <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> on success </p>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
</dd></dl>
</section>
<section id="create-custom-module">
<span id="id1"></span><h2>Create custom module<a class="headerlink" href="#create-custom-module" title="Permalink to this headline"></a></h2>
<p>Creating a custom module is necessary if the application needs to use a specific device that is not supported
and their commands differ from any of the supported devices. In this case it is recommended to define a new class
representing this specific device and derive from the <a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem13GenericModuleE" title="esp_modem::GenericModule"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">esp_modem::GenericModule</span></code></a>. In order to instantiate
the appropriate DCE of this module, application could use <a class="reference internal" href="#dce-factory"><span class="std std-ref">the DCE factory</span></a>, and build the DCE with
the specific module, using <a class="reference internal" href="#_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args" title="esp_modem::dce_factory::Factory::build"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::dce_factory::Factory::build()</span></code></a>.</p>
<p>Please refer to the implementation of the existing modules.</p>
<p>Please note that the <code class="docutils literal notranslate"><span class="pre">modem_console</span></code> example defines a trivial custom modem DCE which overrides one command,
for demonstration purposes only.</p>
</section>
<section id="create-new-communication-interface">
<h2>Create new communication interface<a class="headerlink" href="#create-new-communication-interface" title="Permalink to this headline"></a></h2>
<p>In order to connect to a device using an unsupported interface (e.g. SPI or I2C), it is necessary to implement
a custom DTE object and supply it into <a class="reference internal" href="#dce-factory"><span class="std std-ref">the DCE factory</span></a>. The DCE is typically created in two steps:</p>
<ul class="simple">
<li><p>Define and create the corresponding terminal, which communicates on the custom interface. This terminal should support basic IO methods defined in <a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem8TerminalE" title="esp_modem::Terminal"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">esp_modem::Terminal</span></code></a> and derive from it.</p></li>
<li><p>Create the DTE which uses the custom Terminal</p></li>
</ul>
<p>Please refer to the implementation of the existing UART DTE.</p>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">esp-modem</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="README.html">Brief intro</a></li>
<li class="toctree-l1"><a class="reference internal" href="api_docs.html">C interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="cxx_api_docs.html">C++ interface</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Advanced use cases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#custom-instantiation-with-dce-factory">Custom instantiation with DCE factory</a></li>
<li class="toctree-l2"><a class="reference internal" href="#create-custom-module">Create custom module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#create-new-communication-interface">Create new communication interface</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="internal_design.html">Internal design</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_docs.html">Internal implementation</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="cxx_api_docs.html" title="previous chapter">C++ API Documentation</a></li>
<li>Next: <a href="internal_design.html" title="next chapter">Internal design</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2016 - 2021, Espressif Systems (Shanghai) Co., Ltd.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
|
<a href="_sources/advanced_api.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>
File diff suppressed because it is too large. Load diff
+302
View File
@@ -0,0 +1,302 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>C++ API Documentation &#8212; esp-modem documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Advanced esp-modem use cases" href="advanced_api.html" />
<link rel="prev" title="C API Documentation" href="api_docs.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="c-api-documentation">
<h1>C++ API Documentation<a class="headerlink" href="#c-api-documentation" title="Permalink to this headline"></a></h1>
<p>Similar to the <a class="reference internal" href="api_docs.html#c-api"><span class="std std-ref">C API Documentation</span></a>, the basic application workflow consist of</p>
<div class="toctree-wrapper compound">
</div>
<ul class="simple">
<li><p><a class="reference internal" href="#cpp-init"><span class="std std-ref">Construction of the DCE</span></a></p></li>
<li><p><a class="reference internal" href="#cpp-mode-switch"><span class="std std-ref">Switching modes</span></a></p></li>
<li><p><a class="reference internal" href="#cpp-modem-commands"><span class="std std-ref">Sending (AT) commands</span></a></p></li>
<li><p><a class="reference internal" href="#cpp-destroy"><span class="std std-ref">Destroying the DCE</span></a></p></li>
</ul>
<section id="create-dte-and-dce">
<span id="cpp-init"></span><h2>Create DTE and DCE<a class="headerlink" href="#create-dte-and-dce" title="Permalink to this headline"></a></h2>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_t_e"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_INIT_DTE</span></span></dt>
<dd><p>Create <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a>’s. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv410dce_config">
<span id="_CPPv310dce_config"></span><span id="_CPPv210dce_config"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_t_e_1ga66d8d640adc724af2e6fe9dc7c051afa"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">dce_config</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="api_docs.html#_CPPv420esp_modem_dce_config" title="esp_modem_dce_config"><span class="n"><span class="pre">esp_modem_dce_config</span></span></a><a class="headerlink" href="#_CPPv410dce_config" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv410dte_config">
<span id="_CPPv310dte_config"></span><span id="_CPPv210dte_config"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_t_e_1ga741a0f27d09386e4c8844076a8954ac1"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">dte_config</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="api_docs.html#_CPPv420esp_modem_dte_config" title="esp_modem_dte_config"><span class="n"><span class="pre">esp_modem_dte_config</span></span></a><a class="headerlink" href="#_CPPv410dte_config" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv415create_uart_dtePK10dte_config">
<span id="_CPPv315create_uart_dtePK10dte_config"></span><span id="_CPPv215create_uart_dtePK10dte_config"></span><span id="create_uart_dte__dte_configCP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_t_e_1ga4a4f7f00866211c2d390fd3edb282531"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DTE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">create_uart_dte</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv410dte_config" title="dte_config"><span class="n"><span class="pre">dte_config</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">config</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415create_uart_dtePK10dte_config" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create UART <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a>. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>config</strong> – <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> configuration </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>shared ptr to <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> on success nullptr on failure (either due to insufficient memory or wrong dte configuration) if exceptions are disabled the API abort()’s on error </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv414create_vfs_dtePK10dte_config">
<span id="_CPPv314create_vfs_dtePK10dte_config"></span><span id="_CPPv214create_vfs_dtePK10dte_config"></span><span id="create_vfs_dte__dte_configCP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_t_e_1ga5795216bc8c5a8a3c08e1008c7576253"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DTE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">create_vfs_dte</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv410dte_config" title="dte_config"><span class="n"><span class="pre">dte_config</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">config</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv414create_vfs_dtePK10dte_config" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create VFS <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a>. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>config</strong> – <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> configuration </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>shared ptr to <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> on success nullptr on failure (either due to insufficient memory or wrong dte configuration) if exceptions are disabled the API abort()’s on error </p>
</dd>
</dl>
</dd></dl>
</div>
</dd></dl>
<dl>
<dt class="sig sig-object cpp">
<span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_c_e"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">ESP_MODEM_INIT_DCE</span></span></dt>
<dd><p>ESP_MODEM Initialization API for <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a>. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">
<span id="_CPPv318create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="_CPPv218create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="create_SIM7600_dce__dce_configCP.std::shared_ptr:DTE:.esp_netif_tP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_c_e_1ga4afd7f37219025f4dfd936784e5a56e1"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DCE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">create_SIM7600_dce</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv410dce_config" title="dce_config"><span class="n"><span class="pre">dce_config</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">config</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DTE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">dte</span></span>, <span class="n"><span class="pre">esp_netif_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">netif</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> based on <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_s_i_m7600"><span class="std std-ref">SIM7600</span></a> module. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>config</strong> – <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> configuration </p></li>
<li><p><strong>dte</strong> – reference to the communicating <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a> </p></li>
<li><p><strong>netif</strong> – reference to the network interface</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>unique ptr to the created <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> on success nullptr on failure if exceptions are disabled the API abort()’s on error </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">
<span id="_CPPv318create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="_CPPv218create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="create_SIM7070_dce__dce_configCP.std::shared_ptr:DTE:.esp_netif_tP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_c_e_1gab043e285535f359c1b1024a9bcffea23"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DCE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">create_SIM7070_dce</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv410dce_config" title="dce_config"><span class="n"><span class="pre">dce_config</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">config</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DTE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">dte</span></span>, <span class="n"><span class="pre">esp_netif_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">netif</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> based on <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_s_i_m7070"><span class="std std-ref">SIM7070</span></a> module. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">
<span id="_CPPv318create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="_CPPv218create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="create_SIM7000_dce__dce_configCP.std::shared_ptr:DTE:.esp_netif_tP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_c_e_1ga472839e7151b9ec7e89856225e0ae62a"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DCE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">create_SIM7000_dce</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv410dce_config" title="dce_config"><span class="n"><span class="pre">dce_config</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">config</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DTE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">dte</span></span>, <span class="n"><span class="pre">esp_netif_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">netif</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> based on <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_s_i_m7000"><span class="std std-ref">SIM7000</span></a> module. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">
<span id="_CPPv317create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="_CPPv217create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="create_SIM800_dce__dce_configCP.std::shared_ptr:DTE:.esp_netif_tP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_c_e_1gab349608fb7df969de3a107c9cd5caeb1"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DCE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">create_SIM800_dce</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv410dce_config" title="dce_config"><span class="n"><span class="pre">dce_config</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">config</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DTE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">dte</span></span>, <span class="n"><span class="pre">esp_netif_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">netif</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> based on <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_s_i_m800"><span class="std std-ref">SIM800</span></a> module. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">
<span id="_CPPv315create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="_CPPv215create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="create_BG96_dce__dce_configCP.std::shared_ptr:DTE:.esp_netif_tP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_c_e_1gaddc0b6cdc955e5eec170e46181bfddb1"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DCE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">create_BG96_dce</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv410dce_config" title="dce_config"><span class="n"><span class="pre">dce_config</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">config</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DTE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">dte</span></span>, <span class="n"><span class="pre">esp_netif_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">netif</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> based on <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_b_g96"><span class="std std-ref">BG96</span></a> module. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">
<span id="_CPPv318create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="_CPPv218create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t"></span><span id="create_generic_dce__dce_configCP.std::shared_ptr:DTE:.esp_netif_tP"></span><span class="target" id="group___e_s_p___m_o_d_e_m___i_n_i_t___d_c_e_1ga533398ff0278c20dfe4e0bc55719d71e"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">unique_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DCE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">create_generic_dce</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv410dce_config" title="dce_config"><span class="n"><span class="pre">dce_config</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">config</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">DTE</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">dte</span></span>, <span class="n"><span class="pre">esp_netif_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">netif</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t" title="Permalink to this definition"></a><br /></dt>
<dd><p>Create generic <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a>. </p>
</dd></dl>
</div>
</dd></dl>
</section>
<section id="mode-switching-commands">
<span id="cpp-mode-switch"></span><h2>Mode switching commands<a class="headerlink" href="#mode-switching-commands" title="Permalink to this headline"></a></h2>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4I0EN9esp_modem5DCE_TE">
<span id="_CPPv3I0EN9esp_modem5DCE_TE"></span><span id="_CPPv2I0EN9esp_modem5DCE_TE"></span><span class="k"><span class="pre">template</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SpecificModule</span></span></span><span class="p"><span class="pre">&gt;</span></span><br /><span class="target" id="classesp__modem_1_1_d_c_e___t"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">esp_modem</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">DCE_T</span></span></span><a class="headerlink" href="#_CPPv4I0EN9esp_modem5DCE_TE" title="Permalink to this definition"></a><br /></dt>
<dd><p>General <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_c_e"><span class="std std-ref">DCE</span></a> class templated on a specific module. It is responsible for all the necessary transactions related to switching modes and consequent synergy with aggregated objects of <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_d_t_e"><span class="std std-ref">DTE</span></a>, <a class="reference internal" href="internal_docs.html#classesp__modem_1_1_netif"><span class="std std-ref">Netif</span></a> and a specific Module. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N9esp_modem5DCE_T8set_dataEv">
<span id="_CPPv3N9esp_modem5DCE_T8set_dataEv"></span><span id="_CPPv2N9esp_modem5DCE_T8set_dataEv"></span><span id="esp_modem::DCE_T::set_data"></span><span class="target" id="classesp__modem_1_1_d_c_e___t_1a0f41a6dbf86ff8058cb3ef727cefdc5f"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">set_data</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N9esp_modem5DCE_T8set_dataEv" title="Permalink to this definition"></a><br /></dt>
<dd><p>Set data mode! </p>
</dd></dl>
</div>
</dd></dl>
</section>
<section id="modem-commands">
<span id="cpp-modem-commands"></span><h2>Modem commands<a class="headerlink" href="#modem-commands" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE4syncEv" title="esp_modem::DCE::sync"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::sync()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringERi" title="esp_modem::DCE::get_operator_name"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_operator_name()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE13store_profileEv" title="esp_modem::DCE::store_profile"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::store_profile()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE" title="esp_modem::DCE::set_pin"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_pin()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE2atERKNSt6stringERNSt6stringEi" title="esp_modem::DCE::at"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::at()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8read_pinERb" title="esp_modem::DCE::read_pin"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::read_pin()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8set_echoEKb" title="esp_modem::DCE::set_echo"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_echo()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE12sms_txt_modeEKb" title="esp_modem::DCE::sms_txt_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::sms_txt_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE17sms_character_setEv" title="esp_modem::DCE::sms_character_set"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::sms_character_set()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE" title="esp_modem::DCE::send_sms"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::send_sms()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE16resume_data_modeEv" title="esp_modem::DCE::resume_data_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::resume_data_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext" title="esp_modem::DCE::set_pdp_context"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_pdp_context()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE16set_command_modeEv" title="esp_modem::DCE::set_command_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_command_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8set_cmuxEv" title="esp_modem::DCE::set_cmux"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_cmux()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE" title="esp_modem::DCE::get_imsi"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_imsi()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE" title="esp_modem::DCE::get_imei"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_imei()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE" title="esp_modem::DCE::get_module_name"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_module_name()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE13set_data_modeEv" title="esp_modem::DCE::set_data_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_data_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi" title="esp_modem::DCE::get_signal_quality"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_signal_quality()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE16set_flow_controlEii" title="esp_modem::DCE::set_flow_control"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_flow_control()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE7hang_upEv" title="esp_modem::DCE::hang_up"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::hang_up()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi" title="esp_modem::DCE::get_battery_status"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_battery_status()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE10power_downEv" title="esp_modem::DCE::power_down"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::power_down()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE5resetEv" title="esp_modem::DCE::reset"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::reset()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8set_baudEi" title="esp_modem::DCE::set_baud"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_baud()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE" title="esp_modem::DCE::set_operator"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_operator()()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi" title="esp_modem::DCE::set_network_attachment_state"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_network_attachment_state()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi" title="esp_modem::DCE::get_network_attachment_state"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_network_attachment_state()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE15set_radio_stateEi" title="esp_modem::DCE::set_radio_state"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_radio_state()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE15get_radio_stateERi" title="esp_modem::DCE::get_radio_state"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_radio_state()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE16set_network_modeEi" title="esp_modem::DCE::set_network_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_network_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE18set_preferred_modeEi" title="esp_modem::DCE::set_preferred_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_preferred_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii" title="esp_modem::DCE::set_network_bands"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_network_bands()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE23get_network_system_modeERi" title="esp_modem::DCE::get_network_system_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_network_system_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi" title="esp_modem::DCE::set_gnss_power_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_gnss_power_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE19get_gnss_power_modeERi" title="esp_modem::DCE::get_gnss_power_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_gnss_power_mode()</span></code></a></p></li>
</ul>
</section>
<section id="destroy-the-dce">
<span id="cpp-destroy"></span><h2>Destroy the DCE<a class="headerlink" href="#destroy-the-dce" title="Permalink to this headline"></a></h2>
<p>The DCE object is created as <code class="docutils literal notranslate"><span class="pre">std::unique_ptr</span></code> by default and as such doesn’t have to be explicitly destroyed.
It simply gets destroyed and cleaned-up automatically if the object goes out of the block scope.</p>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">esp-modem</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="README.html">Brief intro</a></li>
<li class="toctree-l1"><a class="reference internal" href="api_docs.html">C interface</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">C++ interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#create-dte-and-dce">Create DTE and DCE</a></li>
<li class="toctree-l2"><a class="reference internal" href="#mode-switching-commands">Mode switching commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="#modem-commands">Modem commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="#destroy-the-dce">Destroy the DCE</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="advanced_api.html">Advanced use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_design.html">Internal design</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_docs.html">Internal implementation</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="api_docs.html" title="previous chapter">C API Documentation</a></li>
<li>Next: <a href="advanced_api.html" title="next chapter">Advanced esp-modem use cases</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2016 - 2021, Espressif Systems (Shanghai) Co., Ltd.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
|
<a href="_sources/cxx_api_docs.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>
+144
View File
@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>&lt;no title&gt; &#8212; esp-modem documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<ul class="simple">
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE4syncEv" title="esp_modem::DCE::sync"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::sync()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringERi" title="esp_modem::DCE::get_operator_name"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_operator_name()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE13store_profileEv" title="esp_modem::DCE::store_profile"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::store_profile()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE" title="esp_modem::DCE::set_pin"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_pin()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE2atERKNSt6stringERNSt6stringEi" title="esp_modem::DCE::at"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::at()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8read_pinERb" title="esp_modem::DCE::read_pin"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::read_pin()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8set_echoEKb" title="esp_modem::DCE::set_echo"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_echo()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE12sms_txt_modeEKb" title="esp_modem::DCE::sms_txt_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::sms_txt_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE17sms_character_setEv" title="esp_modem::DCE::sms_character_set"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::sms_character_set()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE" title="esp_modem::DCE::send_sms"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::send_sms()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE16resume_data_modeEv" title="esp_modem::DCE::resume_data_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::resume_data_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext" title="esp_modem::DCE::set_pdp_context"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_pdp_context()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE16set_command_modeEv" title="esp_modem::DCE::set_command_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_command_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8set_cmuxEv" title="esp_modem::DCE::set_cmux"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_cmux()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE" title="esp_modem::DCE::get_imsi"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_imsi()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE" title="esp_modem::DCE::get_imei"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_imei()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE" title="esp_modem::DCE::get_module_name"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_module_name()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE13set_data_modeEv" title="esp_modem::DCE::set_data_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_data_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi" title="esp_modem::DCE::get_signal_quality"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_signal_quality()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE16set_flow_controlEii" title="esp_modem::DCE::set_flow_control"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_flow_control()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE7hang_upEv" title="esp_modem::DCE::hang_up"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::hang_up()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi" title="esp_modem::DCE::get_battery_status"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_battery_status()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE10power_downEv" title="esp_modem::DCE::power_down"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::power_down()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE5resetEv" title="esp_modem::DCE::reset"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::reset()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE8set_baudEi" title="esp_modem::DCE::set_baud"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_baud()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE" title="esp_modem::DCE::set_operator"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_operator()()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi" title="esp_modem::DCE::set_network_attachment_state"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_network_attachment_state()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi" title="esp_modem::DCE::get_network_attachment_state"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_network_attachment_state()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE15set_radio_stateEi" title="esp_modem::DCE::set_radio_state"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_radio_state()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE15get_radio_stateERi" title="esp_modem::DCE::get_radio_state"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_radio_state()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE16set_network_modeEi" title="esp_modem::DCE::set_network_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_network_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE18set_preferred_modeEi" title="esp_modem::DCE::set_preferred_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_preferred_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii" title="esp_modem::DCE::set_network_bands"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_network_bands()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE23get_network_system_modeERi" title="esp_modem::DCE::get_network_system_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_network_system_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi" title="esp_modem::DCE::set_gnss_power_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::set_gnss_power_mode()</span></code></a></p></li>
<li><p><a class="reference internal" href="internal_docs.html#_CPPv4N9esp_modem3DCE19get_gnss_power_modeERi" title="esp_modem::DCE::get_gnss_power_mode"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">esp_modem::DCE::get_gnss_power_mode()</span></code></a></p></li>
</ul>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">esp-modem</a></h1>
<h3>Navigation</h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="README.html">Brief intro</a></li>
<li class="toctree-l1"><a class="reference internal" href="api_docs.html">C interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="cxx_api_docs.html">C++ interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced_api.html">Advanced use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_design.html">Internal design</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_docs.html">Internal implementation</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2016 - 2021, Espressif Systems (Shanghai) Co., Ltd.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
|
<a href="_sources/cxx_api_links.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>
+662
View File
@@ -0,0 +1,662 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Index &#8212; esp-modem documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="#" />
<link rel="search" title="Search" href="search.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
<a href="#C"><strong>C</strong></a>
| <a href="#D"><strong>D</strong></a>
| <a href="#E"><strong>E</strong></a>
| <a href="#G"><strong>G</strong></a>
| <a href="#M"><strong>M</strong></a>
| <a href="#P"><strong>P</strong></a>
| <a href="#S"><strong>S</strong></a>
| <a href="#T"><strong>T</strong></a>
</div>
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv410cmux_state">cmux_state (C++ enum)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10cmux_state6FOOTERE">cmux_state::FOOTER (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10cmux_state6HEADERE">cmux_state::HEADER (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10cmux_state4INITE">cmux_state::INIT (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10cmux_state7PAYLOADE">cmux_state::PAYLOAD (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10cmux_state7RECOVERE">cmux_state::RECOVER (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv414command_result">command_result (C++ enum)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N14command_result4FAILE">command_result::FAIL (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N14command_result2OKE">command_result::OK (C++ enumerator)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv4N14command_result7TIMEOUTE">command_result::TIMEOUT (C++ enumerator)</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv415create_BG96_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">create_BG96_dce (C++ function)</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv418create_generic_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">create_generic_dce (C++ function)</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv418create_SIM7000_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">create_SIM7000_dce (C++ function)</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv418create_SIM7070_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">create_SIM7070_dce (C++ function)</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv418create_SIM7600_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">create_SIM7600_dce (C++ function)</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv417create_SIM800_dcePK10dce_configNSt10shared_ptrI3DTEEEP11esp_netif_t">create_SIM800_dce (C++ function)</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv415create_uart_dtePK10dte_config">create_uart_dte (C++ function)</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv414create_vfs_dtePK10dte_config">create_vfs_dte (C++ function)</a>
</li>
</ul></td>
</tr></table>
<h2 id="D">D</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="cxx_api_docs.html#_CPPv410dce_config">dce_config (C++ type)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="cxx_api_docs.html#_CPPv410dte_config">dte_config (C++ type)</a>
</li>
</ul></td>
</tr></table>
<h2 id="E">E</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv4N9esp_modem4BG96E">esp_modem::BG96 (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem4CMuxE">esp_modem::CMux (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem4CMux6deinitEv">esp_modem::CMux::deinit (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem4CMux6detachEv">esp_modem::CMux::detach (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem4CMux4initEv">esp_modem::CMux::init (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem4CMux11set_read_cbEiNSt8functionIFbP7uint8_t6size_tEEE">esp_modem::CMux::set_read_cb (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem4CMux5writeEiP7uint8_t6size_t">esp_modem::CMux::write (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem12CMuxInstanceE">esp_modem::CMuxInstance (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem12CMuxInstance4readEP7uint8_t6size_t">esp_modem::CMuxInstance::read (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem12CMuxInstance5writeEP7uint8_t6size_t">esp_modem::CMuxInstance::write (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem13CommandableIfE">esp_modem::CommandableIf (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem13CommandableIf7commandERKNSt6stringE11got_line_cb8uint32_tKc">esp_modem::CommandableIf::command (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCEE">esp_modem::DCE (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE2atERKNSt6stringERNSt6stringEi">esp_modem::DCE::at (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE18get_battery_statusERiRiRi">esp_modem::DCE::get_battery_status (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE19get_gnss_power_modeERi">esp_modem::DCE::get_gnss_power_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE8get_imeiERNSt6stringE">esp_modem::DCE::get_imei (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE8get_imsiERNSt6stringE">esp_modem::DCE::get_imsi (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE15get_module_nameERNSt6stringE">esp_modem::DCE::get_module_name (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE28get_network_attachment_stateERi">esp_modem::DCE::get_network_attachment_state (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE23get_network_system_modeERi">esp_modem::DCE::get_network_system_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE17get_operator_nameERNSt6stringERi">esp_modem::DCE::get_operator_name (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE15get_radio_stateERi">esp_modem::DCE::get_radio_state (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE18get_signal_qualityERiRi">esp_modem::DCE::get_signal_quality (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE7hang_upEv">esp_modem::DCE::hang_up (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE10power_downEv">esp_modem::DCE::power_down (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE8read_pinERb">esp_modem::DCE::read_pin (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE5resetEv">esp_modem::DCE::reset (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE16resume_data_modeEv">esp_modem::DCE::resume_data_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE8send_smsERKNSt6stringERKNSt6stringE">esp_modem::DCE::send_sms (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE8set_baudEi">esp_modem::DCE::set_baud (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE8set_cmuxEv">esp_modem::DCE::set_cmux (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE16set_command_modeEv">esp_modem::DCE::set_command_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE13set_data_modeEv">esp_modem::DCE::set_data_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE8set_echoEKb">esp_modem::DCE::set_echo (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE16set_flow_controlEii">esp_modem::DCE::set_flow_control (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE19set_gnss_power_modeEi">esp_modem::DCE::set_gnss_power_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE28set_network_attachment_stateEi">esp_modem::DCE::set_network_attachment_state (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE17set_network_bandsERKNSt6stringEPKii">esp_modem::DCE::set_network_bands (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE16set_network_modeEi">esp_modem::DCE::set_network_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE12set_operatorEiiRKNSt6stringE">esp_modem::DCE::set_operator (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE15set_pdp_contextER10PdpContext">esp_modem::DCE::set_pdp_context (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE7set_pinERKNSt6stringE">esp_modem::DCE::set_pin (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE18set_preferred_modeEi">esp_modem::DCE::set_preferred_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE15set_radio_stateEi">esp_modem::DCE::set_radio_state (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE17sms_character_setEv">esp_modem::DCE::sms_character_set (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE12sms_txt_modeEKb">esp_modem::DCE::sms_txt_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE13store_profileEv">esp_modem::DCE::store_profile (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DCE4syncEv">esp_modem::DCE::sync (C++ function)</a>
</li>
<li><a href="advanced_api.html#_CPPv4I0EN9esp_modem11dce_factory7CreatorE">esp_modem::dce_factory::Creator (C++ class)</a>
</li>
<li><a href="advanced_api.html#_CPPv4N9esp_modem11dce_factory7FactoryE">esp_modem::dce_factory::Factory (C++ class)</a>
</li>
<li><a href="advanced_api.html#_CPPv4I0DpEN9esp_modem11dce_factory7Factory5buildEP3DCEPK6configDpRR4Args">esp_modem::dce_factory::Factory::build (C++ function)</a>
</li>
<li><a href="advanced_api.html#_CPPv4I0DpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args">esp_modem::dce_factory::Factory::build_unique (C++ function)</a>, <a href="advanced_api.html#_CPPv4IDpEN9esp_modem11dce_factory7Factory12build_uniqueENSt10unique_ptrI3DCEEEPK6configDpRR4Args">[1]</a>
</li>
<li><a href="advanced_api.html#_CPPv4N9esp_modem11dce_factory13FactoryHelperE">esp_modem::dce_factory::FactoryHelper (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem8DCE_ModeE">esp_modem::DCE_Mode (C++ class)</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv4I0EN9esp_modem5DCE_TE">esp_modem::DCE_T (C++ class)</a>, <a href="internal_docs.html#_CPPv4I0EN9esp_modem5DCE_TE">[1]</a>
</li>
<li><a href="cxx_api_docs.html#_CPPv4N9esp_modem5DCE_T8set_dataEv">esp_modem::DCE_T::set_data (C++ function)</a>, <a href="internal_docs.html#_CPPv4N9esp_modem5DCE_T8set_dataEv">[1]</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DTEE">esp_modem::DTE (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_t">esp_modem::DTE::command (C++ function)</a>, <a href="internal_docs.html#_CPPv4N9esp_modem3DTE7commandERKNSt6stringE11got_line_cb8uint32_tc">[1]</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DTE3DTEEPK20esp_modem_dte_configNSt10unique_ptrI8TerminalEE">esp_modem::DTE::DTE (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DTE4readEPP7uint8_t6size_t">esp_modem::DTE::read (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DTE12set_error_cbENSt8functionIFv14terminal_errorEEE">esp_modem::DTE::set_error_cb (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DTE8set_modeE10modem_mode">esp_modem::DTE::set_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DTE11set_read_cbENSt8functionIFbP7uint8_t6size_tEEE">esp_modem::DTE::set_read_cb (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem3DTE5writeEP7uint8_t6size_t">esp_modem::DTE::write (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem13GenericModuleE">esp_modem::GenericModule (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem13GenericModule21configure_pdp_contextENSt10unique_ptrI10PdpContextEE">esp_modem::GenericModule::configure_pdp_context (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem13GenericModule13GenericModuleENSt10shared_ptrI3DTEEENSt10unique_ptrI10PdpContextEE">esp_modem::GenericModule::GenericModule (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem13GenericModule17get_operator_nameERNSt6stringE">esp_modem::GenericModule::get_operator_name (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem13GenericModule8set_modeE10modem_mode">esp_modem::GenericModule::set_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem13GenericModule15setup_data_modeEv">esp_modem::GenericModule::setup_data_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem8ModuleIfE">esp_modem::ModuleIf (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem8ModuleIf8set_modeE10modem_mode">esp_modem::ModuleIf::set_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem8ModuleIf15setup_data_modeEv">esp_modem::ModuleIf::setup_data_mode (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem5NetifE">esp_modem::Netif (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem5Netif5startEv">esp_modem::Netif::start (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem5Netif4stopEv">esp_modem::Netif::stop (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem5Netif20wait_until_ppp_exitsEv">esp_modem::Netif::wait_until_ppp_exits (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem10PdpContextE">esp_modem::PdpContext (C++ struct)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem7SIM7000E">esp_modem::SIM7000 (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem7SIM7070E">esp_modem::SIM7070 (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem7SIM7600E">esp_modem::SIM7600 (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem6SIM800E">esp_modem::SIM800 (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem8TerminalE">esp_modem::Terminal (C++ class)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem8Terminal4readEP7uint8_t6size_t">esp_modem::Terminal::read (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N9esp_modem8Terminal5writeEP7uint8_t6size_t">esp_modem::Terminal::write (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv412esp_modem_atPKcPci">esp_modem_at (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv417esp_modem_commandP15esp_modem_dce_tPKcPF9esp_err_tP7uint8_t6size_tE8uint32_t">esp_modem_command (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv420esp_modem_dce_config">esp_modem_dce_config (C++ struct)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dce_config3apnE">esp_modem_dce_config::apn (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv422esp_modem_dce_config_t">esp_modem_dce_config_t (C++ type)</a>
</li>
<li><a href="api_docs.html#c.ESP_MODEM_DCE_DEFAULT_CONFIG">ESP_MODEM_DCE_DEFAULT_CONFIG (C macro)</a>
</li>
<li><a href="api_docs.html#_CPPv420esp_modem_dce_device">esp_modem_dce_device (C++ enum)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dce_device18ESP_MODEM_DCE_BG96E">esp_modem_dce_device::ESP_MODEM_DCE_BG96 (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_GENETICE">esp_modem_dce_device::ESP_MODEM_DCE_GENETIC (C++ enumerator)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7000E">esp_modem_dce_device::ESP_MODEM_DCE_SIM7000 (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7070E">esp_modem_dce_device::ESP_MODEM_DCE_SIM7070 (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dce_device21ESP_MODEM_DCE_SIM7600E">esp_modem_dce_device::ESP_MODEM_DCE_SIM7600 (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dce_device20ESP_MODEM_DCE_SIM800E">esp_modem_dce_device::ESP_MODEM_DCE_SIM800 (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv422esp_modem_dce_device_t">esp_modem_dce_device_t (C++ type)</a>
</li>
<li><a href="api_docs.html#_CPPv418esp_modem_dce_mode">esp_modem_dce_mode (C++ enum)</a>
</li>
<li><a href="api_docs.html#_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_CMUXE">esp_modem_dce_mode::ESP_MODEM_MODE_CMUX (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N18esp_modem_dce_mode26ESP_MODEM_MODE_CMUX_MANUALE">esp_modem_dce_mode::ESP_MODEM_MODE_CMUX_MANUAL (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N18esp_modem_dce_mode34ESP_MODEM_MODE_CMUX_MANUAL_COMMANDE">esp_modem_dce_mode::ESP_MODEM_MODE_CMUX_MANUAL_COMMAND (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N18esp_modem_dce_mode31ESP_MODEM_MODE_CMUX_MANUAL_DATAE">esp_modem_dce_mode::ESP_MODEM_MODE_CMUX_MANUAL_DATA (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N18esp_modem_dce_mode31ESP_MODEM_MODE_CMUX_MANUAL_EXITE">esp_modem_dce_mode::ESP_MODEM_MODE_CMUX_MANUAL_EXIT (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N18esp_modem_dce_mode31ESP_MODEM_MODE_CMUX_MANUAL_SWAPE">esp_modem_dce_mode::ESP_MODEM_MODE_CMUX_MANUAL_SWAP (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N18esp_modem_dce_mode22ESP_MODEM_MODE_COMMANDE">esp_modem_dce_mode::ESP_MODEM_MODE_COMMAND (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N18esp_modem_dce_mode19ESP_MODEM_MODE_DATAE">esp_modem_dce_mode::ESP_MODEM_MODE_DATA (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv420esp_modem_dce_mode_t">esp_modem_dce_mode_t (C++ type)</a>
</li>
<li><a href="internal_docs.html#c.ESP_MODEM_DECLARE_DCE_COMMAND">ESP_MODEM_DECLARE_DCE_COMMAND (C macro)</a>
</li>
<li><a href="api_docs.html#_CPPv417esp_modem_destroyP15esp_modem_dce_t">esp_modem_destroy (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv420esp_modem_dte_config">esp_modem_dte_config (C++ struct)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dte_config15dte_buffer_sizeE">esp_modem_dte_config::dte_buffer_size (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dte_config16extension_configE">esp_modem_dte_config::extension_config (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dte_config13task_priorityE">esp_modem_dte_config::task_priority (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dte_config15task_stack_sizeE">esp_modem_dte_config::task_stack_size (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dte_config11uart_configE">esp_modem_dte_config::uart_config (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N20esp_modem_dte_config10vfs_configE">esp_modem_dte_config::vfs_config (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv422esp_modem_dte_config_t">esp_modem_dte_config_t (C++ type)</a>
</li>
<li><a href="api_docs.html#c.ESP_MODEM_DTE_DEFAULT_CONFIG">ESP_MODEM_DTE_DEFAULT_CONFIG (C macro)</a>
</li>
<li><a href="api_docs.html#_CPPv421esp_modem_flow_ctrl_t">esp_modem_flow_ctrl_t (C++ enum)</a>
</li>
<li><a href="api_docs.html#_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_HWE">esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_HW (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N21esp_modem_flow_ctrl_t27ESP_MODEM_FLOW_CONTROL_NONEE">esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_NONE (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N21esp_modem_flow_ctrl_t25ESP_MODEM_FLOW_CONTROL_SWE">esp_modem_flow_ctrl_t::ESP_MODEM_FLOW_CONTROL_SW (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv428esp_modem_get_battery_statusPiPiPi">esp_modem_get_battery_status (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv429esp_modem_get_gnss_power_modePi">esp_modem_get_gnss_power_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv418esp_modem_get_imeiPc">esp_modem_get_imei (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv418esp_modem_get_imsiPc">esp_modem_get_imsi (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv425esp_modem_get_module_namePc">esp_modem_get_module_name (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv438esp_modem_get_network_attachment_statePi">esp_modem_get_network_attachment_state (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv433esp_modem_get_network_system_modePi">esp_modem_get_network_system_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv427esp_modem_get_operator_namePcPi">esp_modem_get_operator_name (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv425esp_modem_get_radio_statePi">esp_modem_get_radio_state (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv428esp_modem_get_signal_qualityPiPi">esp_modem_get_signal_quality (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv417esp_modem_hang_upv">esp_modem_hang_up (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv413esp_modem_newPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t">esp_modem_new (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv417esp_modem_new_dev22esp_modem_dce_device_tPK22esp_modem_dte_config_tPK22esp_modem_dce_config_tP11esp_netif_t">esp_modem_new_dev (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv420esp_modem_power_downv">esp_modem_power_down (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv418esp_modem_read_pinPb">esp_modem_read_pin (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv415esp_modem_resetv">esp_modem_reset (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv426esp_modem_resume_data_modev">esp_modem_resume_data_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv418esp_modem_send_smsPKcPKc">esp_modem_send_sms (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv418esp_modem_set_baudi">esp_modem_set_baud (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv418esp_modem_set_cmuxv">esp_modem_set_cmux (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv426esp_modem_set_command_modev">esp_modem_set_command_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv423esp_modem_set_data_modev">esp_modem_set_data_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv418esp_modem_set_echoKb">esp_modem_set_echo (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv422esp_modem_set_error_cbP15esp_modem_dce_t28esp_modem_terminal_error_cbt">esp_modem_set_error_cb (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv426esp_modem_set_flow_controlii">esp_modem_set_flow_control (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv429esp_modem_set_gnss_power_modei">esp_modem_set_gnss_power_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv418esp_modem_set_modeP15esp_modem_dce_t20esp_modem_dce_mode_t">esp_modem_set_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv438esp_modem_set_network_attachment_statei">esp_modem_set_network_attachment_state (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv427esp_modem_set_network_bandsPKcPKii">esp_modem_set_network_bands (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv426esp_modem_set_network_modei">esp_modem_set_network_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv422esp_modem_set_operatoriiPKc">esp_modem_set_operator (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv425esp_modem_set_pdp_contextP22esp_modem_PdpContext_t">esp_modem_set_pdp_context (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv417esp_modem_set_pinPKc">esp_modem_set_pin (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv428esp_modem_set_preferred_modei">esp_modem_set_preferred_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv425esp_modem_set_radio_statei">esp_modem_set_radio_state (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv427esp_modem_sms_character_setv">esp_modem_sms_character_set (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv422esp_modem_sms_txt_modeKb">esp_modem_sms_txt_mode (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv423esp_modem_store_profilev">esp_modem_store_profile (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv414esp_modem_syncv">esp_modem_sync (C++ function)</a>
</li>
<li><a href="api_docs.html#_CPPv424esp_modem_terminal_error">esp_modem_terminal_error (C++ enum)</a>
</li>
<li><a href="api_docs.html#_CPPv4N24esp_modem_terminal_error34ESP_MODEM_TERMINAL_BUFFER_OVERFLOWE">esp_modem_terminal_error::ESP_MODEM_TERMINAL_BUFFER_OVERFLOW (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N24esp_modem_terminal_error33ESP_MODEM_TERMINAL_CHECKSUM_ERRORE">esp_modem_terminal_error::ESP_MODEM_TERMINAL_CHECKSUM_ERROR (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N24esp_modem_terminal_error30ESP_MODEM_TERMINAL_DEVICE_GONEE">esp_modem_terminal_error::ESP_MODEM_TERMINAL_DEVICE_GONE (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N24esp_modem_terminal_error42ESP_MODEM_TERMINAL_UNEXPECTED_CONTROL_FLOWE">esp_modem_terminal_error::ESP_MODEM_TERMINAL_UNEXPECTED_CONTROL_FLOW (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv4N24esp_modem_terminal_error32ESP_MODEM_TERMINAL_UNKNOWN_ERRORE">esp_modem_terminal_error::ESP_MODEM_TERMINAL_UNKNOWN_ERROR (C++ enumerator)</a>
</li>
<li><a href="api_docs.html#_CPPv428esp_modem_terminal_error_cbt">esp_modem_terminal_error_cbt (C++ type)</a>
</li>
<li><a href="api_docs.html#_CPPv426esp_modem_terminal_error_t">esp_modem_terminal_error_t (C++ type)</a>
</li>
<li><a href="api_docs.html#_CPPv426esp_modem_uart_term_config">esp_modem_uart_term_config (C++ struct)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config9baud_rateE">esp_modem_uart_term_config::baud_rate (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config10cts_io_numE">esp_modem_uart_term_config::cts_io_num (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config9data_bitsE">esp_modem_uart_term_config::data_bits (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config16event_queue_sizeE">esp_modem_uart_term_config::event_queue_size (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config12flow_controlE">esp_modem_uart_term_config::flow_control (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config6parityE">esp_modem_uart_term_config::parity (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config8port_numE">esp_modem_uart_term_config::port_num (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config10rts_io_numE">esp_modem_uart_term_config::rts_io_num (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config14rx_buffer_sizeE">esp_modem_uart_term_config::rx_buffer_size (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config9rx_io_numE">esp_modem_uart_term_config::rx_io_num (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config10source_clkE">esp_modem_uart_term_config::source_clk (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config9stop_bitsE">esp_modem_uart_term_config::stop_bits (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config14tx_buffer_sizeE">esp_modem_uart_term_config::tx_buffer_size (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N26esp_modem_uart_term_config9tx_io_numE">esp_modem_uart_term_config::tx_io_num (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv425esp_modem_vfs_term_config">esp_modem_vfs_term_config (C++ struct)</a>
</li>
<li><a href="api_docs.html#_CPPv4N25esp_modem_vfs_term_config7deleterE">esp_modem_vfs_term_config::deleter (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N25esp_modem_vfs_term_config2fdE">esp_modem_vfs_term_config::fd (C++ member)</a>
</li>
<li><a href="api_docs.html#_CPPv4N25esp_modem_vfs_term_config8resourceE">esp_modem_vfs_term_config::resource (C++ member)</a>
</li>
</ul></td>
</tr></table>
<h2 id="G">G</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv426get_battery_status_sim7xxxP13CommandableIfRiRiRi">get_battery_status_sim7xxx (C++ function)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv411got_line_cb">got_line_cb (C++ type)</a>
</li>
</ul></td>
</tr></table>
<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv410modem_mode">modem_mode (C++ enum)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10modem_mode19CMUX_MANUAL_COMMANDE">modem_mode::CMUX_MANUAL_COMMAND (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10modem_mode16CMUX_MANUAL_DATAE">modem_mode::CMUX_MANUAL_DATA (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10modem_mode16CMUX_MANUAL_EXITE">modem_mode::CMUX_MANUAL_EXIT (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10modem_mode16CMUX_MANUAL_MODEE">modem_mode::CMUX_MANUAL_MODE (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10modem_mode16CMUX_MANUAL_SWAPE">modem_mode::CMUX_MANUAL_SWAP (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10modem_mode9CMUX_MODEE">modem_mode::CMUX_MODE (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10modem_mode12COMMAND_MODEE">modem_mode::COMMAND_MODE (C++ enumerator)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv4N10modem_mode9DATA_MODEE">modem_mode::DATA_MODE (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N10modem_mode5UNDEFE">modem_mode::UNDEF (C++ enumerator)</a>
</li>
<li><a href="advanced_api.html#_CPPv49ModemType">ModemType (C++ enum)</a>
</li>
<li><a href="advanced_api.html#_CPPv4N9ModemType4BG96E">ModemType::BG96 (C++ enumerator)</a>
</li>
<li><a href="advanced_api.html#_CPPv4N9ModemType13GenericModuleE">ModemType::GenericModule (C++ enumerator)</a>
</li>
<li><a href="advanced_api.html#_CPPv4N9ModemType7SIM7000E">ModemType::SIM7000 (C++ enumerator)</a>
</li>
<li><a href="advanced_api.html#_CPPv4N9ModemType7SIM7070E">ModemType::SIM7070 (C++ enumerator)</a>
</li>
<li><a href="advanced_api.html#_CPPv4N9ModemType7SIM7600E">ModemType::SIM7600 (C++ enumerator)</a>
</li>
<li><a href="advanced_api.html#_CPPv4N9ModemType6SIM800E">ModemType::SIM800 (C++ enumerator)</a>
</li>
</ul></td>
</tr></table>
<h2 id="P">P</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv418power_down_sim70xxP13CommandableIf">power_down_sim70xx (C++ function)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv418power_down_sim76xxP13CommandableIf">power_down_sim76xx (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv417power_down_sim8xxP13CommandableIf">power_down_sim8xx (C++ function)</a>
</li>
</ul></td>
</tr></table>
<h2 id="S">S</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv420set_data_mode_sim8xxP13CommandableIf">set_data_mode_sim8xx (C++ function)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv427set_gnss_power_mode_sim76xxP13CommandableIfi">set_gnss_power_mode_sim76xx (C++ function)</a>
</li>
<li><a href="internal_docs.html#_CPPv425set_network_bands_sim76xxP13CommandableIfRKNSt6stringEPKii">set_network_bands_sim76xx (C++ function)</a>
</li>
</ul></td>
</tr></table>
<h2 id="T">T</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv414terminal_error">terminal_error (C++ enum)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N14terminal_error15BUFFER_OVERFLOWE">terminal_error::BUFFER_OVERFLOW (C++ enumerator)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="internal_docs.html#_CPPv4N14terminal_error14CHECKSUM_ERRORE">terminal_error::CHECKSUM_ERROR (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N14terminal_error11DEVICE_GONEE">terminal_error::DEVICE_GONE (C++ enumerator)</a>
</li>
<li><a href="internal_docs.html#_CPPv4N14terminal_error23UNEXPECTED_CONTROL_FLOWE">terminal_error::UNEXPECTED_CONTROL_FLOW (C++ enumerator)</a>
</li>
</ul></td>
</tr></table>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">esp-modem</a></h1>
<h3>Navigation</h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="README.html">Brief intro</a></li>
<li class="toctree-l1"><a class="reference internal" href="api_docs.html">C interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="cxx_api_docs.html">C++ interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced_api.html">Advanced use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_design.html">Internal design</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_docs.html">Internal implementation</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2016 - 2021, Espressif Systems (Shanghai) Co., Ltd.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
</div>
</body>
</html>
+179
View File
@@ -0,0 +1,179 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>ESP-MODEM Programmers manual &#8212; esp-modem documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="ESP MODEM" href="README.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="esp-modem-programmers-manual">
<h1>ESP-MODEM Programmers manual<a class="headerlink" href="#esp-modem-programmers-manual" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="README.html">Brief intro</a><ul>
<li class="toctree-l2"><a class="reference internal" href="README.html#modem-components">Modem components</a><ul>
<li class="toctree-l3"><a class="reference internal" href="README.html#dce">DCE</a></li>
<li class="toctree-l3"><a class="reference internal" href="README.html#dte">DTE</a></li>
<li class="toctree-l3"><a class="reference internal" href="README.html#ppp-netif">PPP netif</a></li>
<li class="toctree-l3"><a class="reference internal" href="README.html#module">Module</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="README.html#use-cases">Use cases</a></li>
<li class="toctree-l2"><a class="reference internal" href="README.html#extensibility">Extensibility</a><ul>
<li class="toctree-l3"><a class="reference internal" href="README.html#cmux">CMUX</a></li>
<li class="toctree-l3"><a class="reference internal" href="README.html#dte-s">DTE’s</a></li>
<li class="toctree-l3"><a class="reference internal" href="README.html#other-devices">Other devices</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="README.html#configuration">Configuration</a><ul>
<li class="toctree-l3"><a class="reference internal" href="README.html#component-kconfig">Component Kconfig</a></li>
<li class="toctree-l3"><a class="reference internal" href="README.html#runtime-configuration">Runtime configuration</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="api_docs.html">C interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="api_docs.html#lifecycle-api">Lifecycle API</a></li>
<li class="toctree-l2"><a class="reference internal" href="api_docs.html#modem-commands">Modem commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="api_docs.html#configuration-structures">Configuration structures</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="cxx_api_docs.html">C++ interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="cxx_api_docs.html#create-dte-and-dce">Create DTE and DCE</a></li>
<li class="toctree-l2"><a class="reference internal" href="cxx_api_docs.html#mode-switching-commands">Mode switching commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="cxx_api_docs.html#modem-commands">Modem commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="cxx_api_docs.html#destroy-the-dce">Destroy the DCE</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="advanced_api.html">Advanced use cases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="advanced_api.html#custom-instantiation-with-dce-factory">Custom instantiation with DCE factory</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced_api.html#create-custom-module">Create custom module</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced_api.html#create-new-communication-interface">Create new communication interface</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="internal_design.html">Internal design</a><ul>
<li class="toctree-l2"><a class="reference internal" href="internal_design.html#design-decisions">Design decisions</a></li>
<li class="toctree-l2"><a class="reference internal" href="internal_design.html#dce-collaboration-model">DCE collaboration model</a></li>
<li class="toctree-l2"><a class="reference internal" href="internal_design.html#terminal-inheritance">Terminal inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="internal_design.html#cmux-terminal">CMUX terminal</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="internal_docs.html">Internal implementation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="internal_docs.html#dte-abstraction">DTE abstraction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="internal_docs.html#terminal-interface">Terminal interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="internal_docs.html#cmux-implementation">CMUX implementation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="internal_docs.html#netif">Netif</a></li>
<li class="toctree-l2"><a class="reference internal" href="internal_docs.html#module-abstraction">Module abstraction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="internal_docs.html#adding-new-devices">Adding new devices</a></li>
<li class="toctree-l3"><a class="reference internal" href="internal_docs.html#implement-a-new-generic-command">Implement a new generic command</a></li>
<li class="toctree-l3"><a class="reference internal" href="internal_docs.html#command-library">Command library</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="internal_docs.html#modem-types">Modem types</a></li>
</ul>
</li>
</ul>
</div>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="#">esp-modem</a></h1>
<h3>Navigation</h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="README.html">Brief intro</a></li>
<li class="toctree-l1"><a class="reference internal" href="api_docs.html">C interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="cxx_api_docs.html">C++ interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced_api.html">Advanced use cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_design.html">Internal design</a></li>
<li class="toctree-l1"><a class="reference internal" href="internal_docs.html">Internal implementation</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="#">Documentation overview</a><ul>
<li>Next: <a href="README.html" title="next chapter">ESP MODEM</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2016 - 2021, Espressif Systems (Shanghai) Co., Ltd.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
|
<a href="_sources/index.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>
+160
View File
@@ -0,0 +1,160 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Internal design &#8212; esp-modem documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="DCE Internal implementation" href="internal_docs.html" />
<link rel="prev" title="Advanced esp-modem use cases" href="advanced_api.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="internal-design">
<h1>Internal design<a class="headerlink" href="#internal-design" title="Permalink to this headline"></a></h1>
<section id="design-decisions">
<h2>Design decisions<a class="headerlink" href="#design-decisions" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Use C++ with additional C API</p></li>
<li><p>Use exceptions</p>
<ul>
<li><p>Use macro wrapper over <code class="docutils literal notranslate"><span class="pre">try-catch</span></code> blocks when exceptions off (use <code class="docutils literal notranslate"><span class="pre">abort()</span></code> if <code class="docutils literal notranslate"><span class="pre">THROW()</span></code>)</p></li>
</ul>
</li>
<li><p>Initializes and allocates in the constructor (might throw)</p>
<ul>
<li><p>easier code with exceptions ON, with exceptions OFF alloc/init failures are not treated as runtime error (program aborts)</p></li>
<li><p>break down long initialization in constructor into more private methods</p></li>
</ul>
</li>
<li><p>Implements different devices using inheritance from <code class="docutils literal notranslate"><span class="pre">GenericModule</span></code>, which is the most general implementation of a common modem</p>
<ul>
<li><p>Internally uses templates with device specialization (modeled as <code class="docutils literal notranslate"><span class="pre">DCE&lt;SpecificModule&gt;</span></code>) which could be used as well for some special cases,
such as implantation of a minimal device (ModuleIf), add new AT commands (oOnly in compile time), or using the Module with DTE only (no DCE, no Netif) for sending AT commands without network</p></li>
</ul>
</li>
</ul>
</section>
<section id="dce-collaboration-model">
<h2>DCE collaboration model<a class="headerlink" href="#dce-collaboration-model" title="Permalink to this headline"></a></h2>
<p>The diagram describes how the DCE class collaborates with DTE, PPP and the device abstraction</p>
<p><img alt="DCE_architecture" src="_images/DCE_DTE_collaboration.png" /></p>
</section>
<section id="terminal-inheritance">
<h2>Terminal inheritance<a class="headerlink" href="#terminal-inheritance" title="Permalink to this headline"></a></h2>
<p>Terminal is a class which can read or write data, and can handle callbacks when data are available. UART specialization
is provided implementing these method using the uart driver.</p>
</section>
<section id="cmux-terminal">
<h2>CMUX terminal<a class="headerlink" href="#cmux-terminal" title="Permalink to this headline"></a></h2>
<p>The below diagram depicts the idea of using CMUX terminal mode using the CMuxInstance class which is a terminal
(it implements the basic read/write methods) interfacing arbitrary number of virtual terminals,
but at the same time it is also composed of CMux class, which consumes the original terminal and uses its read/write methods
to multiplex the terminal.</p>
<p><img alt="CMUX Terminal" src="_images/CMux_collaboration.png" /></p>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">esp-modem</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="README.html">Brief intro</a></li>
<li class="toctree-l1"><a class="reference internal" href="api_docs.html">C interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="cxx_api_docs.html">C++ interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced_api.html">Advanced use cases</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Internal design</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#design-decisions">Design decisions</a></li>
<li class="toctree-l2"><a class="reference internal" href="#dce-collaboration-model">DCE collaboration model</a></li>
<li class="toctree-l2"><a class="reference internal" href="#terminal-inheritance">Terminal inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="#cmux-terminal">CMUX terminal</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="internal_docs.html">Internal implementation</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="advanced_api.html" title="previous chapter">Advanced esp-modem use cases</a></li>
<li>Next: <a href="internal_docs.html" title="next chapter">DCE Internal implementation</a></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2016 - 2021, Espressif Systems (Shanghai) Co., Ltd.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 4.5.0</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.13</a>
|
<a href="_sources/internal_design.md.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>
File diff suppressed because it is too large. Load diff
Binary file not shown.
Loaded 100 of 266 files, more files were not shown because too many files have changed in this diff. Show more