From 2654351f7106d26da926c3b6925ffbc86f8e6450 Mon Sep 17 00:00:00 2001 From: frgfm <26927750+frgfm@users.noreply.github.com> Date: Mon, 22 Apr 2024 08:48:45 +0000 Subject: [PATCH] [skip ci] Documentation updates --- .buildinfo | 2 +- .doctrees/changelog.doctree | Bin 8519 -> 8534 bytes .doctrees/environment.pickle | Bin 383971 -> 385631 bytes .doctrees/index.doctree | Bin 17978 -> 18068 bytes .doctrees/installing.doctree | Bin 5854 -> 5869 bytes .doctrees/methods.doctree | Bin 172291 -> 172309 bytes .doctrees/metrics.doctree | Bin 22454 -> 22469 bytes .doctrees/notebooks.doctree | Bin 5082 -> 5097 bytes .doctrees/utils.doctree | Bin 12367 -> 12382 bytes _modules/index.html | 4 +- _modules/torchcam/methods/activation.html | 4 +- _modules/torchcam/methods/gradient.html | 4 +- _modules/torchcam/metrics.html | 4 +- _modules/torchcam/utils.html | 4 +- _static/basic.css | 2 +- _static/doctools.js | 2 +- _static/language_data.js | 4 +- _static/searchtools.js | 165 +++++++++++------- changelog.html | 20 +-- genindex.html | 4 +- index.html | 13 +- installing.html | 12 +- latest/.buildinfo | 2 +- latest/.doctrees/changelog.doctree | Bin 9400 -> 9415 bytes latest/.doctrees/environment.pickle | Bin 385757 -> 387420 bytes latest/.doctrees/index.doctree | Bin 17978 -> 18068 bytes latest/.doctrees/installing.doctree | Bin 5854 -> 5869 bytes latest/.doctrees/methods.doctree | Bin 172291 -> 172309 bytes latest/.doctrees/metrics.doctree | Bin 22454 -> 22469 bytes latest/.doctrees/notebooks.doctree | Bin 5082 -> 5097 bytes latest/.doctrees/utils.doctree | Bin 12367 -> 12382 bytes latest/_modules/index.html | 4 +- .../_modules/torchcam/methods/activation.html | 4 +- .../_modules/torchcam/methods/gradient.html | 4 +- latest/_modules/torchcam/metrics.html | 4 +- latest/_modules/torchcam/utils.html | 4 +- latest/_static/basic.css | 2 +- latest/_static/doctools.js | 2 +- latest/_static/language_data.js | 4 +- latest/_static/searchtools.js | 165 +++++++++++------- latest/changelog.html | 22 +-- latest/genindex.html | 4 +- latest/index.html | 13 +- latest/installing.html | 12 +- latest/methods.html | 32 ++-- latest/metrics.html | 12 +- latest/notebooks.html | 6 +- latest/search.html | 4 +- latest/searchindex.js | 2 +- latest/utils.html | 8 +- methods.html | 32 ++-- metrics.html | 12 +- notebooks.html | 6 +- search.html | 4 +- searchindex.js | 2 +- utils.html | 8 +- 56 files changed, 355 insertions(+), 263 deletions(-) diff --git a/.buildinfo b/.buildinfo index dcd75e5..527fb8a 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +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: 474b23a2edc3936fbc65d7811ba6f6f3 +config: cd8740786265d3c259316800322faaf6 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/changelog.doctree b/.doctrees/changelog.doctree index e50eddc89328ad9c388fc8a9dc076c20515362fc..0881885fa9c6c97cd0ae5a577ec6634a745ffb92 100644 GIT binary patch delta 72 zcmV-O0Js0gLe@eAfCZIHu>?yQ5OQyCbYF0CWoBu3l#Br{l#@*vN)m{S4Rd8C3&T}@fB(LMY&VF88`2iRA6NE*nCIo N8xs?dds()b830;R6jlHL diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index ca386d89e314d82992a46f0fd2de5d728500fd49..462fa15d1b4972164c78eee04552049cdb5c6a8c 100644 GIT binary patch literal 385631 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

1lRoR*hU+kYlnHT$4Y-mhAscTsx_CGZBM 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­3WKn9@G>FDAVUGtQQ5dIR- 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 literal 383971 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 z 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 Uk5~XREQ*WszwdJaTq45szv7Xl*Z=?k diff --git a/.doctrees/index.doctree b/.doctrees/index.doctree index 6f064bd64533065c0e1a8724e39a3dfa38490d72..2cc5ead52ac7a78c515b30e604beee7ec8a3287c 100644 GIT binary patch delta 269 zcmdnh!#Jgvk)?rkYUf6l=WP7489Etq-W(ay89W&>8O)o1vaMl)3i1O5`@n*mIb~pi z0x-eJ4cs!De{#EWutSVc+H5QGiy6vM-fSkZ48~E}d|UbtGap2mYKC-{HzNZBM7w+% zOuOdhIE@Q19a@`pbsn%l&C=e?WB3XtqqF&|NiR%BcXOlVG!}uP{QQ#mf}+&4%!(;J zjQUe1i`sb!b@cESrzV%=mFC7*q~#aoPU+ZOY^T7;czg2{`)^E)9h-Zc)-eMB`@&Q| delta 183 zcmbQz%ebqDk)?rks{Tfn=WKk^89W&>8O#~789Etqew%->tziO+^&yLG<&1ly%$vO=mNIYtF8!OCMLNryaq>k=z0EobVH}eab%Zz1)!4(l zIZ@|63z!#ec#Rp%@G-4q*?iV=D$C>&I}Z_W#vb0{)Z~)9(%krpwEUvnDc+2m&)F$3 TGTz+$-u@dC6OjANX&o~F@-{#{ diff --git a/.doctrees/installing.doctree b/.doctrees/installing.doctree index c73d6a05ffec0b050462a57fa841b6515ca435d7..66ba399b3ec6daf89520048c67890af9615c8315 100644 GIT binary patch delta 72 zcmV-O0Js0%E$uA?fCZJ}u>_qD5OQyCbYF0CWoBu3l#Br{l#`ziN)m{S4Rd8drz08fpzNTjVyEdCvWEW5bMmQJBWAl)v6X5 zB(cqhr{B>>=5wB?Q%2^0d@U}*J5`v0kpToUw6h|oS2Hr|ZFOc;L$+)CWpT!EMTo}K z?Gr2+RiLJ%P6u*$wyVW5W{5(iK_cwie-|-+R6-GnoW^)o8fHY#CPpt^7{}%T<4bvt zrwc$%U|^U$aiZ{62PRHvIHYc0&(6dTw+_hR-EOGO^d4y4c3?1dL1l`z%cU~y6oD9N zw4JMp$z2G_nGWRGZ9mk*beCJ8C_ld>zMv>IEwf@u52OB+>2qf=c?os&@D`^gm*kb^ k##f}}7v)ar*#3J4lL8~7<93-@Oy8IoJGP6=WqQvH0MvAoG5`Po delta 430 zcmbPwh^zS!7fS={RF;h_@~nK)837qG8O#~789Etqew&S0#Te1VCWo`#=SEUCS= zb0WI{JEO&91M9-gkNJFb7%es%Si6XWMKU+v3u;z}Fel#&;@y0ssznCMDC+d`;%rCFSMJ8V;VrQSq!@$VEz%ad@kx_T68>1T3(Cyd68N(GBEvA2%%9yi# zmL;PsP$z_=63dt?3gHw_pXSKqzTKyoaj_Dk#de@tOQ6*tWvScyH!*tY!Z`L17+=bB zTw4IN2?!=X>=B-9`$T$c9Md~CsFLaG+DyFL_p>uGK`lz%4ixzVwJ3Farz4XpOlCTe z!@FHEm1(C4*gHnsd8?S*g&^$dK(^iXqdiP_xu(0&Dg_RoSIycSDG7Nk(OVS fJH?xEJKszu1x7~u?fSErzA-TY1=Qv;y=MjhpuLUY diff --git a/.doctrees/metrics.doctree b/.doctrees/metrics.doctree index 1026aa41f76b90f86b513f2540bc2a72e5715f04..b0a85f57ad2bde1e304b51a669932a8b8bf30388 100644 GIT binary patch delta 139 zcmdnCp7H2W?%*@yvr(etiVNQi_@% delta 126 zcmX@Qo^jiHMwSNFsjD}#IIuBVOpf(V-@JzHrU;bzR+>W?%*@yvr(etiVNQk;<2M@y OePdz*ay3HdG64YOkSf3c diff --git a/.doctrees/notebooks.doctree b/.doctrees/notebooks.doctree index effa8989971627dc8e9e05fe5c1667c3d0e6ecb5..29b3159a2667a06a2105daab9f96286efca20e5f 100644 GIT binary patch delta 83 zcmV-Z0IdJoC+Q~yfCZJ_u>^Dt5OQyCbYF0CWoBu3l#Br{l#_N1N)m{S4Rd865M7$Y$c#Bh$OY%x{<15ngi*l!UGj4vutH8+7*u$4v YRFq#d`68e2W_kX3j7&h8eFECd0DJEk9smFU diff --git a/.doctrees/utils.doctree b/.doctrees/utils.doctree index 6706276d01e8eb45cfe271505427cefadb8b6a95..68d38bea2c1353b9b3e384fa2d0941a898628bde 100644 GIT binary patch delta 90 zcmV-g0Hy!WVBTN^fCZIPu>{ux0XdUy7GSeH1Thi;IkRpS{}K>#Z*O#8aB^j4X?T>3 w0WXx3Ybi<+h>Q($Wn*-1b!}gGW^ZzBl!&v*DIfs>sk7=T_5uNjv*Imn0{2lOuK)l5 delta 76 zcmcbYa6W;hfpx0OMwaW$j24sg#1b~!uowz4T5Qe}`!6)PUeiOwo3V$tI5oK>uQWHl gA}zltcZxUT=9`)djEu`S|I+%##02Di)XilA02uijhX4Qo diff --git a/_modules/index.html b/_modules/index.html index 81d75c7..f71592f 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -13,7 +13,7 @@ - + Overview: module code - TorchCAM @@ -256,7 +256,7 @@

All modules for which code is available

- + diff --git a/_modules/torchcam/methods/activation.html b/_modules/torchcam/methods/activation.html index 8dc015a..0073003 100644 --- a/_modules/torchcam/methods/activation.html +++ b/_modules/torchcam/methods/activation.html @@ -13,7 +13,7 @@ - + torchcam.methods.activation - TorchCAM @@ -681,7 +681,7 @@

Source code for torchcam.methods.activation

     
   
- + diff --git a/_modules/torchcam/methods/gradient.html b/_modules/torchcam/methods/gradient.html index 20fe14e..9592e1f 100644 --- a/_modules/torchcam/methods/gradient.html +++ b/_modules/torchcam/methods/gradient.html @@ -13,7 +13,7 @@ - + torchcam.methods.gradient - TorchCAM @@ -660,7 +660,7 @@

Source code for torchcam.methods.gradient

     
   
- + diff --git a/_modules/torchcam/metrics.html b/_modules/torchcam/metrics.html index 58f242b..2f68a0d 100644 --- a/_modules/torchcam/metrics.html +++ b/_modules/torchcam/metrics.html @@ -13,7 +13,7 @@ - + torchcam.metrics - TorchCAM @@ -394,7 +394,7 @@

Source code for torchcam.metrics

     
   
- + diff --git a/_modules/torchcam/utils.html b/_modules/torchcam/utils.html index 73271ab..66fc8bd 100644 --- a/_modules/torchcam/utils.html +++ b/_modules/torchcam/utils.html @@ -13,7 +13,7 @@ - + torchcam.utils - TorchCAM @@ -302,7 +302,7 @@

Source code for torchcam.utils

     
   
- + diff --git a/_static/basic.css b/_static/basic.css index 30fee9d..f316efc 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/_static/doctools.js b/_static/doctools.js index d06a71d..4d67807 100644 --- a/_static/doctools.js +++ b/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/_static/language_data.js b/_static/language_data.js index 250f566..367b8ed 100644 --- a/_static/language_data.js +++ b/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ 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 */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/_static/searchtools.js b/_static/searchtools.js index 7918c3f..92da3f8 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,16 +304,32 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { let score = Math.round(100 * queryLower.length / title.length) - results.push([ + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", @@ -308,46 +344,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // 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((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +398,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +508,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +542,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +594,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/changelog.html b/changelog.html index 9505053..432eb0a 100644 --- a/changelog.html +++ b/changelog.html @@ -14,7 +14,7 @@ - + Changelog - TorchCAM @@ -222,33 +222,33 @@
-

Changelog#

+

Changelog

-

v0.3.2 (2022-08-02)#

+

v0.3.2 (2022-08-02)

Release note: v0.3.2

-

v0.3.1 (2021-10-31)#

+

v0.3.1 (2021-10-31)

Release note: v0.3.1

-

v0.3.0 (2021-10-31)#

+

v0.3.0 (2021-10-31)

Release note: v0.3.0

-

v0.2.0 (2021-04-10)#

+

v0.2.0 (2021-04-10)

Release note: v0.2.0

-

v0.1.2 (2020-12-27)#

+

v0.1.2 (2020-12-27)

Release note: v0.1.2

-

v0.1.1 (2020-08-03)#

+

v0.1.1 (2020-08-03)

Release note: v0.1.1

-

v0.1.0 (2020-03-24)#

+

v0.1.0 (2020-03-24)

Release note: v0.1.0

@@ -327,7 +327,7 @@

v0.1.0 (2020-03-24) - + diff --git a/genindex.html b/genindex.html index cb75cf2..b948581 100644 --- a/genindex.html +++ b/genindex.html @@ -13,7 +13,7 @@ - Index - TorchCAM + Index - TorchCAM @@ -361,7 +361,7 @@

X

- + diff --git a/index.html b/index.html index 2e16210..7b82c29 100644 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@ - + TorchCAM @@ -222,7 +222,7 @@
-

TorchCAM: class activation explorer#

+

TorchCAM: class activation explorer

TorchCAM provides a minimal yet flexible way to explore the spatial importance of features on your PyTorch model outputs. Check out the live demo on HuggingFace Spaces 🤗

code_snippet

This project is meant for:

@@ -233,9 +233,9 @@

TorchCAM: class activation explorer
-

CAM zoo#

+

CAM zoo

-

Activation-based methods#

+

Activation-based methods

- + + \ No newline at end of file diff --git a/installing.html b/installing.html index 3841fca..26a0295 100644 --- a/installing.html +++ b/installing.html @@ -14,7 +14,7 @@ - + Installation - TorchCAM @@ -222,24 +222,24 @@
-

Installation#

+

Installation

This library requires Python 3.8 or higher.

-

Via Python Package#

+

Via Python Package

Install the last stable release of the package using pip:

pip install torchcam
 
-

Via Conda#

+

Via Conda

Install the last stable release of the package using conda:

conda install -c frgfm torchcam
 
-

Via Git#

+

Via Git

Install the library in developer mode:

git clone https://github.com/frgfm/torch-cam.git
 pip install -e torch-cam/.
@@ -326,7 +326,7 @@ 

Via Git#<

- + diff --git a/latest/.buildinfo b/latest/.buildinfo index dcd75e5..527fb8a 100644 --- a/latest/.buildinfo +++ b/latest/.buildinfo @@ -1,4 +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: 474b23a2edc3936fbc65d7811ba6f6f3 +config: cd8740786265d3c259316800322faaf6 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/latest/.doctrees/changelog.doctree b/latest/.doctrees/changelog.doctree index a54a2e549efac1a55402b1a91c8710981faa91ba..e0c341119bbb0e87a9707615c9bc18cb97408e4a 100644 GIT binary patch delta 72 zcmV-O0Js0RNykY9fCZJju>^=55OQyCbYF0CWoBu3l#Br{l#_}aN)m{S4Rd86xiH zBtf#Wd%CNut6sf&^;OlYs`nmW@Y=Z-%(;O6oHgaCY_4!Jo+%v9m5PPQOrbLCth%k5 z%cpPm1wA#}_oCS|v%Su|wII%{Pb)k-cOPfR5%*?ewn)>)i5 zSSj6ur`f0Q;hce4XMVOgnVEGKma2t91|QBpQ7j#sb(U0$rBpVSN>0vZS2**Lba~cU zFh(>Waz0tfltI*zxXiOWTbaEVFUqA9WuINro9)Ri%`VF>&#u6~m3ULEmQooREmbUx z=O$*I<&sMEyl{_r;TEkYbFz{tlyk*GdG-h>c3E?>5>HkuMPxtgT&Vbkz(R7Wn9mdo zdg$?7=0vKPMmg8{;!*f~gybZS;hc@hk=lP71Li$(0rWYNyWefP7@YVnjv6{k*( zRVx+Baak#oDo#$K#*)NBnN@nL?t0E%iB2wjJ@9^O8U<{Yd{Z@n279G!&i2t)r&tQCWd?=pI93Px@7L_vj zOtOp;tnh+k6FKCy0M(K_HJcqKA;Mi^e6oTbA|6Y0j^AxGUak2l~0z-sD~M+XEIr?WJ(E^q6Imy4|Tp=NNS>79Usq~B?AaJzLF?G(81SBlIb*x zUr14@k!}fakEdKE2RXPB-%KXPQ7uGwqLdlWAkS0=@|#2ppK+G)heBM5%`2u(O%RAd!Yijhv$J>{ zxfarSYIa!&Xr6@Bt$m2b)G3I1VH0H8dtICo)rz`bQOQhBF$OWRku>!r+%WKHrFuw= zm2zpcvr%XHu}o$vaUxkNpi+pc)#d8c6bpnKh;-I4?J^`$IW@(CvJO0C@j#oR1`c7$ zkZ@4O5RF7;Dwi)#AQyguq=~0B%qfCM2u@-=pG3yfUL?KCyDUr_=aLE)VK+LGKlJGYH zg2vD`(Y&d$I4JW7*bd2K5`icx9u;lc>8a$)37}PO{1l#+(o+foS*nz&Vyb0IY=Zhy zd|5^XR3529ez{5b9urAf=y{Lqg{ZFezmko&%z<7J-t&4d$aDmgq;b_zZi1Xxhie_7Z4AXc%DIT22i@C4v$sa%qz33nbm#pwWCtbaMrgGyn*b z3Xw<%&<9d-BI!&yRmw5Y5K}}T1}A98=;YD)B5*awJWBbI6z&OGCW*qBmT4XRdM=RsTG~180401xEM9{SPT3ohuf0)IQo$0scGX~koio$FK867?N> z0A8i_7Ah+r3==V9%;25t2iIFPuDY#w68F}iHMAA~t=|>Og!0@$BT!B=RzhdAbA9G` zrcg|$*IVhG>kn+R2KQ`=Z@~}#$(wB{zTIpM$A`CDTjN_cSzF?pZ?bNRZ`qD<$RK{V z#NtEZXA?ff!}eHwa3~hvHq5_6@y**~!w89Qx(UBqHpN81Rz%yr8By>%Oo7|PGd>%N z41$35 zFSZOJaRd#;Z$hfWF+>3g+qR3FP4Vqps04_(i6Wwipk|n<807fzOPOc zTagE{MlM7Nr8q={Z35B5poFd{1=S6{M}e(ji(VjuO_Ullm-s~~&~JS6X1v5dRAqcS zWrjCH;2pl$O7T!q6q4c(fnd}X7YU`_6u)T;m1PU=wr@d|#fP`Vw``8zgzBU;Hw!9= zDa^y|f|StCy^mn;X%-SG{f4n`+!0WF*q7^mM|`01W`m!wTvIelg9}S z@VuO#Z6C(2;*fF$qu!LlmR@HO##$6I>l_{cxC~?g)fluEi+S{k+04K_Ji;14Wue&& zoZPy30Q18EIqr&Y9{@`-F^uPq5y%dNCOZQv`HX}%j9W@cmA!M3C;~>;iRx4ulSPbB zc@iMVFQZ=>OQO%i5JyDCI2CwWEF|+tgJ2zRF62bSAc=4~m*UP^KD%D#4zqe6AwFeny7Td?+C*$4!Gf3lT<%BYd6so`r>i)V#o%AFt31 zKu}3t33{qRIg>=C(%eVnOI@D&VpN9tQyG=tbH3gLZQ8j+WJ@D(ktR|RGgb6ezIUuC z0GUEgsH>uR33VCkC^<1TrMb`KR0Tt1yaR2QhhOE&VzfAg4)q$}>tZ2)iYJmP4N%Y3 zaH%g+2@~Yw7|w7mR3ZKhC?1V@DyMjuN3U=2eM{*f1B_P+Ri3ydQrTn)gD?z4KYP%vX* zP>TkdmWlP8>FF8RxUt9DXx+o!fz~y~HqU=Pv#l(m;))x3BMJPUnnYU_^pB(!3D|Zsyt^ zu=ZfmGY0I1L}Uu6ToO-9G-WGSMlmr3%%tPigBYV(V;O6T6dI5R$Pi~;$tEk-3GhM2 z>_N$ZFx5QADOeMw>^fUQ_`g<55C`LaDf~J%?IfXhMPv*;+ev7b%QV_BB6VOnF zqkj8k#fUdvC^6=Cf)+h8VG8B0AY~5_1u3mx-)|9y>@BAD5`u7$5`g1~!t>=RQBU;D zP4VU)t}(E1Z_zrDvCueCGpK5dvO(dzeDF>}SJ@)2uD|Q{dvA{cv7n)Y`eXeqoD!uB zHWJB1B&fLNnpzb5Bi|*+=D7YMxU{888FaI<1k_f6RW!8*z!CH_IgmssaA+P**>UpJ z5>!PfPEb=2oIrMk%n1MwL*9mmdpB4&)~rngZ|LidZ|vL9$H@XqP@@tY8>FYfDphDu zRQf`xi&BI0zy%?Q#7q*4hmLr)CrW-tv5K0IGUmOUC{}zGzyhef^ce1YCvqg_-C3*% zS@h*eBGKzbQH_Y|7_|@eF@_+$8x9vX^!Yi>GKN$r)i^)&3g!z=67#5%M6|~qv;2gM zM@gzbQTj?RzDP4pil|=7%1fQ%YDJ1qRm<64-{*QAf1&TgMG&|uqFWl5ByXW`EI)|Oh>K5^;zx%*>jru-VbOH~Qlmy`nP%af&RyeBuJEHveEO$`JLvaMkiq;C;v!E)O$YG=}zT*@X zi``}wFJo1z_c(Q;xPVmd<^9xB|0J6hT92PAb}?5F?M$?2jG(9@0O0p>SBwr7bCn#J zF+uP~Od-Hb9xvw77Oe?EMNwdwqg-*)U`oo3wTC?`W0(ritcp1HS zrgyO4iVX?r*G2@sm>3K|&*vdxLJnD=XN?olg(7KF#oR}fANqW?=&*nn9Z0{JOQPX%LUo@$}9jHS-(-ro3eUY>!P&=3^jkp~Y|Sd|pGGtL_IOahz`>$KC(Wp1c9zZRox*4SRG zUSmZJvqQOfR>Umn(mU?ozuy|&ec*O$$L$Ap-@X6V-Fx@md;7tIyD($-z7ngLm{-yQ z<=XwbNAJ9U_nr7;|NdL^xp=WOf#^$Vq2{F0hc1LpyvkZq5iHdltHcu)vQfP}(Z{OA zWxHxmvv9#SkgGBms+QX%B%ADy+dmxmqfo zpjBX*Co78mI(*3s5l-4ITESUGZHI@RzV)8Vy+Ea7cL$sFk?%dPlA5)CJl0~^`!&tV98CRoJf|jq6lqy0nwI2l*Jk;3(|~p83jxxk3r)j zM3L6IS?xgUb!*THa)t3?LKpH?Dp(UT6&RA=)#{B;f)}f`ShP*`x=@6cq=H@!f?GxI zm#7!1QV}aO?xHQRpVF)-nrR9HNnNyYXY7URZ#)WhC%=^)CEm=h7O?W^T*$$+zU+1* z+_R{(*ond2vNFp*5t!1jGk|SEbPTk%IA9<`je} zP0bBDPACAef=JZzU2z=Lp|N3QWD%ifo|f~MkWL804btx}riD_{)Q}QaC`@VQT!I>J zStW}ZR64<%63{rWPN632FH>Henwk$ z1!D&aDJywtdO@ZTt3m=U@m|ZX)H^-fO8yU*&}y82(<4kInbb7$p1wOkq)%M}K)IohFxokm_%S~;hs zaT#~D8&|!+<`*wEm`RK7)IMkn5cr4&z{{dElwmgNN@yP5aX7)88u~#w{Rny-FrD{_ z@J}k@#WP9YUQYzPzssy+;#t7m2Z@iq;il_U!?2Y zln7;#Y3#4zwIJ@+q?lVK=S%PzWI&e258Jl*N7IA1f-qP)M z4{#Pis*A^xISfL4fZ3akW#i5~Z1kOdVm3RF9kl-fdw_8}1RDPkznij~`FBfpt9o@) zcAL80o*h=VBctkWWA;XMdvkV&y4{t%Mcv*y<1CU>ILdYRjCyffc8|Pu7SpavZs~4V zc5n7}74tdSed>09_JF#5ZuTB^d#_8*!D$tCpL=(|d-p*0LG}8OOULuwyBB01;^H69 z9#PRA&L-6D(QK06rbhWE?S7WYj;lBmZeTW><7l=^+A;So?-DebEvQfXN3+A=Pcb{i zzmK@FOEVl$&Q|!hnmx|HC)}(~?wg|$IhB1>-M++4;H7TNm$_k2xFo#Xy_!_q(k$t7Q{aKZ^+(boc7T!FRjWd-$=k6=Zz7D1P`RwcX_x0H~(68ES##yR z->0*0QiXU+pSpX-y?bl+7gXRcW`9ZE+MhyuvHt`YPU=^(Z&z`Cb>BR7`wo|7@65hS z1^$}iQ}*5aE>MB*$-dWD5b9>+{xDAcHzc9IDSv+}`#uhTfA#|`S-+kAApd?S`#b#m zr`bQFUvIshXOgt}L%hg-S_tl+i=V#`Kfj!P8-M+o>}UD+FSCEezyBxuH~jl~5$y}v zFY@D;vVY6Je>crPUlu=qpM91ee_cHO!wf(Dqj>s?`1!xtuX5-=Nv!#2k?{W$KVK7( zzAk?LMf`jt`%V7jN7?_TUz<)W@Edy$)x%t>2MV8u8&1ZaPvHwx_(HlFCONbh;Z}UQ zSOn5{OX&8!oJ0?9mC)Nu@xVo}m*LJ{PSGg-3VK?po>tM*YW1|1o-R^Pm*9peaQB5FT>rm{UuzH!{z>mEATL*-dxFV1YX-$;laL|E;7KP`)lYT6IxIA*LnfY zGO1fCV0MZ<2#crE*dUDAGZdnbnU&%###&64Ne8v z*CXr7Y?66@1MV5z>^UvPwt?uR$xZkogTac9SH;ioum zMBD)iA5`H(^fauVHqp~&^>iIQ5q+G(P4u))J#D9_5&7h-aJeFOa-Csj**8<99qN;v z^t4Mo-9k^ds;AxbbenqGLr;6v)9tv~H-~AsgKn?l+dJuY0pH$*TT$k_ac4gV7Y^T# zn?AlffIC;u#37>y5#Kyl-8oB0Pb9WEiCXnlL_ii(MGrf4)_x3Gx z|BNr-t#tnjzJOn(`(N?}{4(9Y%@^=1xOa1SyZ_-=@!&R_clh7D)Bo@;f3#ooKfK%j z@E-red;Jf;?tl0VJhF$1XdMzb+zh1kR# zcl)qK_sHH%oi@#0l)VJA+&i*&fj?_;iiM7LiOs-DO`5&KS&a6`I?~x!VGUvdsc&fo zVlspI5f&!+t^|bv^oXRCqQyVltJ8%`u)b25$k6#PrzeLEOwd)(ish@FRjluY`j)2M z4CZH${&F`ypA58z=b?XI!m|<)Fhl_>yp%-fCJJ3DX%azk6-2~|paBY6=298QSw?%1 z!f<2}r4o^12&jTONfi;uIucOF)Yw}Q!6q{7o9IGW+uP_uIojLlLK)d3bfM(!o9RO7 z+BNAoH&br7P-Pp3lW8WZKz=FLFXJM(@;7VfP&l zN$*?Y9*kDOVuFYGmj*KOmQaWcb;ekIMmqs!_sw-K3VbD&IA-_F59LosNby0Cta2rd z;Ow=aV4+BBcHd5H>yXPAkPVurh~4qf!mZK5u|oj+m!Z#*WRc2kF?d58R!H&Oi-iwp z=V+Y`x=1>)=*%TO)^efi$`_O3i0XV=3cy5_^z&HIqf?rgz=Ov#(2yb4F>K(*S|XIQ zX*w|pP3yF?YzpTosoUX2656mX&LSbW92ab$9RN5mv4Udybgx)fD2=Cl-`=3U#ZiGI zmie%|wG_`~D&w301aE-)M@osl(^7)uV;`!w@g=*@S%D9DAdonTwc$x(8tGEY)iFJE zwOXacUgvSzb8-w(d$LI!t>p~`v|PQ8*G?c>SR}-H6Y?Q_DlHOU=sy@J#w4_$z%Z4a zmpwG&ELZ9gR3HwCWpBj6SUPr?Q0ES-&SJEFYFJ!X+?t+T^vsUWJo=7x3%Nx-xoG?e z@kFia$wi-dn|Pv@_2i-tyz6rulUmo4i$1dV|L_yFuqPLNG$)>@l|8v=?{D%`l@1Tn z4h!rPqP2TxDfT1K#&{Hsp5)2_Hegg>A3&UDgec+FJZf-H&AtqW{Cl}w6ZR!KaI!=V zat0(;4Pb9_8i#``5TRM;p>E_rJCr!}WH(Z$nR@uesVq!VV8;O3 z9=Ci!xcEGKT76|tgJx*UXYg|bBK*_%g`onTE@*L_C41ZsTE-TU=ii4FR%#W#2rruz z1~?Y-nto;0{uxSk2^CKeZ9hTTt{Zg-U^BC$)v=`0AEUyWSsH`3)5ba@k9M9$7FIQcc184%Vz252LW zcQ({_2a4T;YJm~Qn~~bSxz#b-!HuYcAU9v5zi}=+PBX(ni_A>mpy6O_XnWtR;^xmG za_tzBouVY~K{S6!Mr|U5IA}kO8*t8k2ERbuUl2dPB!1o|e%{VMRr?+I_3`Ij^yuS{ z{Z0ztA}&A?SuB>&vL9e*D(eaz7udPyUhL69hlf3{mCT5BRF-mw>b;^*;SNY^8RY@g z*?{ktwKLD9G2T`{O9;Olr$L zVozDrmTdN*`9A}x`ii&&Mf_d7_MvMnupz2j5l(z(2sTUSM{vOYWPnVD zm(CF8!3)yU;pM_8dQ57>4=5Vy1 zyryx48ks4M3~|=5$S@e&G*lBu0x>ikxvdjY8^V!W0;&3NWO=hVGSniD3>o6cJpo!> zB#pw6P7vnDks%#N4n@(^I*tsrg(E{@93h@{5J!d@;K)#@)d?J-@Q86qmMDzC5kY+? zaAbwR5nbFPab$>aL^jk=i3E-WnrfhUP2&hPGE*E8Q=xh|5{RMU$jdt+wILjNX&_Y} zj;wALM+RHOkwHTod2N8!hB(p*!u&WgsN=|+qUdQIM+V!%k-;#I5YIY@BZCcar1ty< z27;n-1diz99*HAt6|+8$1e$8AI6{rg3`by(NsdPbH)BXrV>}Xy zq2b7%bV6!FIP%Frsy-aKs5u-Vs#}@Y;5$Pc`Fw!Z1~}3g!aN*7dOD6g8%0m6I6^tJ zKChv#W&L{d8sb^Ua0EHj#SzQ|LcKSQM~JdOL-Xb}|4I}_;E15U6F9O?;D|2n5jcWk zi17$F)KH0NJc1JGjX6*}QJ^ODBh<*ua0Eu&IBV!-G5xx!29AVcXgIQZL4qjVu)^UWs4&ey# ztYbKW9O~i-rURi?M>s;11sa-%BR3I+5jY~K?*xuqCU8U-_Xr$8F$hOwLk*RPa0DgN z8*`v|P2&hPGE*E8Q>sDMvu>)1BY_wijy%u_sSV-C!9c1$9J#Vt9BEAr0V9@%IFb&~ z+7L%NL6{#$0{W4B6g{ouNIUuwFf@!K#Ip|KNPYbXW&)vBCvc>We&jKtFak#e^_{?x zs|1ed;vR`3tRImLHB=&jBY~#cDvnSiGsO`x6aslr2yd>5BY_wij=Z50QX9gNpAV$! z!;x#6#gW$LHL%QUh$C+g(Ap43IzgBpM*{Pj_eRmvI*zn6uK`2DI6^$@Adb|Z*9=9> zYlyNyL-WQXzfTlK;E15U6F9P7;D|2nkvPKh8re`Ia3s)F1H}^sYGPi4Miwj{?B}?f zbAqes+AB?Qt>;MlV*HD{zGjV0E=KaHeA;jl&RS(ZiS`L%lQBCR;XRmeh(d*jHYnJ-mLJG{QM7GTnB$S#GvRXq#UrCau&jff+SofRF^4w$yfo{vzjKV>wU@93|n)@b8J?f(t;f%VWh;hat8C{!XK1qJIlzZ26mbX>t?8Vc{bDaBw>$% zZaDS8-amH_E_O_lrKKCocrqbrgfmbqJ4L zKe!ni8xQj*FQ88zqED8D?(JxMI4-Mp*Hr{LbGnNjx!Yk0buHouW_E z^y!rVDPh1`$RfDIWMc0x8||?lMl5U(MoZ=sd19CHw4I<}`yi!rA6@R}=Lc||wvX~X z9f80OIGoPsb^x(N6<`B9TbYu!NQ6}rY<31eD?kc>5w`WR6_PbtsMuAAjhRSo+!<0=kRWnS{G*dIfluR=fGfcrW z=RU(ZPgi*}B4x)s;_Xb#Bi>HMJo;N=6!VC;Mlg@Aqrx(ec$t%Vl%p`_5ieOVkA989 zm`ALBWFCEo!k9;_N?;ysBQ7wHcv`?bIzwU1BktmfNA^c?sXEJD+(xByl`mHZC}@+t z2%+->DxPOCM}>%Z*r$r-F*#Pu!?1{O3&l~_1_IsKOSEW9RIdEd8h?%i>M+lRrhZW{ zE%^qWDo`#3JEMT0S=$Deoke@(<5Q4h-l@C-dpdzr@PJij_X408&Y56%oxn{CUg`#O z^IEFx-_VI2eASaCu$4IFjUzCSkn~!}bn|N35yc$!juPF}E zdF10b!3iE&u)c*uEqUt{Y~7E;@>`BPQDIxUuv^b;W0U7_QdWThB1@Q*fgvv#q#d`$ zVLcnxvSInWV4XtGWZiR$Ga(c5nY=VFTaH_M*!Va4dC#bP8kWN7v!i!aCvcR1;tq@~ ztb=4gtL$l`v*O)2LgA%nfIX#^2Lir&FzK@%8<9~H6nEq?Rnu~d@N3V@qU*}&$$%KR z!WG)|b9+a4rdT8z!$5wlfU7~bVR$I|N~T3k5#{BJ$|i$B-o7s2^r z^V=8mBoqud3&eC-$1+reI5EQK=G=*vI2Ld^9tWDBTNxR#RHZj_6o7n!(g{2|53ngd zG>}S`#^}_Lur)n`b7<%R$XHjokb_;^N{?k(2!&-pgkuJkDfRTYvfuof2(nd&Y0NTz z(wNI}!kFfWl-a`=Hs0USnF68TOkpCGdXL`vw2Dwu~4^S+PxV&LGsuxk~8{bEwz(+*d?;AgY;eb}G(QKP9%Q<5kS@dC$K78NK0tI*PRd zx`W6N9i7=lGjf`M>E}0A21@P{%rq_aaYd)?i&33Vz>H7gL#++S1V2tpa@!f0^v4MBjh&rCkBywbxo+54 z#$i<$=_prNuF1?LIoTqiexypL4NuWvPMGKxgEs)Hg<&Ba-~b2Mg$dlO0U7v&z7I45 zGVDCiog9@2$}!y1Z$15*w?F&%E57yg>^pTC{E@~I->|%P`-qPIg#as;ZQSUwO_3uK z#q3}3QzxZok-v6)q_iLbUUMLdRdd+dTJ`B7h}JKr_j*#vN355UA;)nk2eGpX?E-^ zB84#>JU=qq3+1wBv;sD8psjQbQQ$G-ER!>D(%bPD_H87SdvSpWb=aDg&SU4`?43fVX&ofB0hH{{{E2*#OrI{y=F&L!j)VKlWx6t823En@#wn}hp`oWU!DVv9 zLe>DFZ}e#9N0pcT91tS$ehY533b;@ddYGa_ttmJwC5vMxaMl#g3o-nzbB1*gX^B+z zYW3#}-JpS@VG)7iqs5|*2X3g=!yKX9U9fHs4!k3AF9@XS8~g1``C)xJ+}`ak!oYU!Q637e_jD4;(n+{NBoiGlJvcD5 z1%6%!HxF$YjN=iih@OqsK{AyP^X2IVjL3HnX2^9r`29ex4CCe=2kmy&O%<_Mt)efE~VRyN{TI8YTP$GA5yLBzK7}X`JmrsNm70 z6j_ox&2eIQaBypUX!9_9(YlVCx;7VB;*zEJ-!p+m;Wo99 zu4t_L67QCWhwD3@ef*8Baq!v4-=vrF)lsE10Ti`8b6cw|UvB8UPEG0SwSP6V@V0?d zO#!C9gnryVNZ-&Tp18c#2M*3wSX5vbi=_c$F*W^+0mfojHT1z)4AAJpSV&d1ZM{ke zHYsbA9D8)V8*sKU-4%%-eEbeb*WqKOOQh)i^yc*uieGDR5(1Ia=Rgbu_(Tnh?#<&=XG3A8sL#O1PJ31Rk{%#Y3W6(#Yf9L=7ELfn7BJ3M>sL; zXTS(2=I_cGrLd>L8{xzXJi@_`7~zC)>Urzk3`Q(H2Y6@TF_b?ChA%A#s55vBrE;hP zV1Gp{iU2UdzD@wxwPIHCL9P!I$%+CnnP3EfJ$g_ZiixMQGY*UdtZ!38)5bf?{8Z{_ z^&N`b6j~L4R%daT>lTjz>MjDPwsQ|*(tk#k-b8W~ChhG6f9k`KJ{btZ5Y?s$4C(1b z!qDz=ImQ?yr#BLeD2PTzWih=`m?Q@~^+!m1*NZd(J8I74LJ`A^OjN;;Otjh2QqSUO zun|n^1lU|Bz~-CGbrX?^0vnlN1lSxu$Me3x$jGUl6M7UdNd5IPKM^{%^+E`m!?xVf z^=D}ot*963?md9DwlWSO+F(?fO~g|n+AVEzr4g9Ic@ z3Ux^U&I0NZZHyHfLEW-mBsXGt>B*54;E|CmkRETFa@8-<6TVyPK$u`nCm`&40b$oM zuT5km3c_T90>VrvwBytn4-l4$QDSHzLCz&#*ecvUh7bJ;>U}anT^CwoqyHt|rZ=HN zi^Ax3MbgyHk8}b^WKDW%=RzP= zpW3+>1wDfr^67I9eGQ%>Hd<6BzqVC9k0^zzuID910&Ag1<+KN5h$JUM3%8On&1s>x z5~2)m+CHRopdK+d-l$aHikus7gbsF+HUZYrKr>-MHFP8W^GzUQXlQV&tBQp(oJUPA zYdmT~FGj501?%<#jt-Ifwd9~w$6NPhQrSWdj+Pm?YSQXgnOg^F zKVm(_`QSEEoDXmI_;)C#_@(%_o7B^?TGYD{>%Jn+NuV4WZ zxo31VniPz5LCWwZEGxKb^!>?GnUY_yH~_lg5l*^T!v0C?t{l7sVu7FBf?9ic3#_-i zV;x9NiDms7@-#9qFgXcx!-WZU^FBFVnHsn!iFJVT!0^z0ci)px*(r*={Zq|r*q>A! zQ`}U~XTNc{Lz}=j(VnJ8uT4l-C@O0y(4GunM6?$Ev7_r%Lg%o!JVAW`Be_n~5*pmS zCW%CY zcJ@XOZb2EiMt#85E)5~T`gjy4Ok_#{)^l9IYM0LS4S-4;Z-s%1>emRUwDcl@>UKf| z1}bbI#RzJyvi5sp>VL|AP7s0Ft)5mu-h<8uk+kUFTk zUXWlZXeS6x7A!>tl!j_L&QwTLR?~5p3Z9PFL}vf$t2iE5uCoTabV)Q!i%RGOOy4MA z`deJ9CNdla(=x#bn4UggR0@&6y8&$1fp=AqW_{(Nk3MJ$aZesye{S?AZebZp?*){0 zl8z8Y4n}drM7|V8j&_!3^}$cqJcYrJ>e>YS^zpIAj`)nZAhRSUo# zv}*q4j#zO#mMXyGTF|`B=z3r3F1U^0bhA*}spJEAMoK&1)R>fZlzbh)x|Ns{F|HJh z>jYr+3&6UbYr;gJq5w-K7y($XIe!(8fgz*ws`HFgg*tNacV&P)9Yr6G!i>;PyvMPf zmz2ThO!uqGC6!K8n`ZwOfLUau0y@l2Jn9u~0KHagm7 z-yve#Zzp7U2VLHUOUAwn;rr&=cjL!deGjaY!Ki?BuX6e}YwyF08GApj)Aj+rAH{Xw z1@?3K;T~M!5Ak07*zX}J5F!^koi->4eA<@OO^j?}AY{al~=y`c_Y(HcJHJ zwY^mWI|xFw;56oBjE)rshp_a5&l}d=m=S%taUaeEhH_h9A!|vLWeEQTn)A6z%|)nl zt@@^(g{8Vgl4S`0Y|*!=0tSmruord(r6D}Feerb|<|6R<27b}5zsWy-JCXLc5HxCk zo3CUM(*8Hx${ifv&xezl0Ni*Z#p6zwH=U^9pIQo374m*sBQ3c6cKmsNCG zO&4Lq&|ZUkGFfO}h#P>kYpc*+OK9xNCl(ClfPXXx?{di)i-e3>p^qRU0}VhvrMLzg@0@;F`2 z;8L}>_=uWef~J|6875?giI`>rraALz&Ul(Lo#70pIkRcb2yc<g+8XyC#= zK_%wG@;)vuEbl4f!am~`_OI!V3%is`!iC*UcU)NRx45uxbqo7By5qtwqat!)cdNqM zC%DAhxWx8|_}PIU)Y~rcbF28dP5kT?KX-_qyYK@6yqkW&O#ImUaS(4esHx@=v2uayxjp~bIa~7z>Z!%&nI^EDUtq4+o`sq2e~sji*eVf)8I=3 zsXDi|Vm^+GgKb3dQW*}p*`(8aFf2IDzL)I=<#S`$YIMpfWnf8!%)cGI=M;>D6ud)? zCr+GzA9o7llhVp&Q+a@lwQY)Tv#@|iCP6c$xMH82DX*)YgFa!tGEnB|oi{Nf(iAOX zcDqoNO3(WGsH}~;FKGu&AnlVdHd1?cEsDt&zNMv{^;Y*Z zu(=hI^$MMba_ZTSM`hm%2ypTO0d7Uk#p=&E`4_aCR+~fnA*yt`+S>vNXYlhL^yi_z2sWB)i;Xl&W+* zGn?J$%!fgjtdfyeB2y?BJVcNN^@2J})DCE_TwKpagZgb=7h z1UmR?beVaZUP4feJ?iPCUJJf(4S3%THgq0%-x)~N$L0$mSHU4vvL*OCik(jBq}P&R z1-%TDxCoQri?Jwd!FLO9KO87yG~V85K&f793%EEs5_~Kw-&TNDW+0%}wK*EaN!4~d zTOP!O8u)r`6Sd-&GytlSq#&%i!CEWwjK=;IQ4#^HlFFLE8d;6OhTqE2>LLMfdUF83 zUIk)(XJwqLg(xc^jis=aYhrvd0#O^r_JixcAgj)StNjd;v)_tKLp;5>cG-h$b(RpG z3ONtfIlY46S^~3H(Uah&`GM>rLeD#MnC^+Kc4E@whHA*!v$Pw?xhRmT4>@c3oV!6o zPB{n76|fT&2ZV}bw~BT*xx-CSo@PJNihD_bFcxVjfqftigOmo|5cnr zN7#UT}hvCe5-oTk}rIa~yp22YDCn$_F=Me~J{?`;nncIZ6 zRr_43ps5W5<>MVvL9bF1(70N))VlHTYpsJT5KmYImBn4BRME!*sX9B&Rnf9EK0P%2 z%NdMn*6s;~luwpSGL?lAZvv)6Nr#tIHvKI65Ml87LWiMU+w}3C129(# zKNXo&Zk!Ge=TG$`Qq6qfC;;j~bZ0P+S}6ubT5s(pxjrlI?GUV0@+$+?(M~1HQJz{i9sC4$l z!`1A0g$?K->}RO-{*ix&^3z!S3*BU~RAN1iJj@0`a%BEV>igIE8lg<^jT+IYv*0n% zy;L)*6>&r1mP6KhrNakb&A=8m&dg$H2`>afrQV=oJ`k*!JKXHJ6||h8Rx=;e3fW!{ z5EA|sLipd;v6_(yHmsQ|h*bi**d-QF3Of!{Rq{~fSuF@O1?TcQU+G;(-IyAG|Dv1x zmA)YUv}6302?qHaoYB-%3q|c-^dM0-uMi{#tK+>7<^X2*Nq=trjBhYZKLHnI0uBLz zWq3bL5d@xq-3smrQ*crW>l+MxWHvc-lDw5-loYp~kB;(0E}zE%QG5ZBm?8&pZmUww z6E7&t{SXJB(r!;E#EHy=1A`GWUBnIi<|HR_scUp0`7xwl6Wy9??iYiS=B(vb z9N3r~nzoBrf#Feo{aJ93>cfAt)rV-a_*%Cb9Zh5U{AJx3kMQI;=-7fSZ{&b* z_98}kqOJJ0h6^770$#mf8d#PC8m4v<(%7;lP=Jn((bfrB)R_dfkSmYup0-_hXpTFe zc)-9=An#rtvW!?SWWwTwLL32AIQ)>m@dNw_sAiZ> zFiba$Zas!Q2PIrz2)DDe_h>(y6+P4-5Ao3v{EU)jbSMAxTjMFyOtsI26Kk0AoXQZ{ zf}H!RaF6s5%;oi4@p$|Q^6K5xZ^1|uU;6stE$kSMkxi7nPj(khxg&1L;FZkaWC3nk zgdR|nD`)tj9oJUS<&0PxSR^*=>bG{NI!W-#?ug|^u{P}5h23u2+4u$goxX0iGpgAH zDqUotSGog-Vj6-49gN)>m3V|A(wTDtkX*+}%k7jPJN_cN!-~|p!wz?mMvm%lb`!fP zK&SJ{f#OsJDv2@%4wYgtpTbl*Ga&Zz3~Y*Tj}L7hIJtH60QR>Hhy`r~4!|FGMlF7q z2UOD>kcx@{4+yarW`tG~ad-h+WoWP;Y{tI0)S|`Ie~v^PXPJdJAT%(0B>b!N9OU8;mD)1@GHFbZ98gjRQzf@m{wKEx}$=<6BWzU&Ys1Jy*aK&o| zcM2cYvKSGqQ`JJMQmxgUU@Mi5-GQxDZ!soysy?Z24w8BY0{qMUje3)J8&YK7iw~OY zP9*nU86at)E()SgTsD<~tJT6p;v}57>muZinS=JObI$U6-mNV&pn zw%{zn6UHLg&-HPBBSu%V&Q?e%zDw<>~y9GvDE_3STqsd@=hWl!VBFKRpW;isr&ca+JaOMh5k z5UCnYuN{<^W&U(kG$9N6D@`K)iO4lsV=>_7KMDps9biDC*8d--B)tP4)U9Bz`Ad>a zoB#afhFmge{*t6%b@uv&0OAoT7^^%kDf(S9C7jXG&5Vg3Gzr z>8`paomtaDn)BUMI**%@)P3oEsVPb3T&gdf^9h@E@%$N6noPvgnO7XMXSKoBQlE0F z-pHzHQ4Pt(Ljlx!NH6f)Obcu-7xgQl=6LtFOsO)dhR%(5o30hp?(LJN0yM>DvYiy>sy=5jz8y)$~zE@w56Vj*YP-`@amm5+^>nG#M zYQB;5j=D*ELW#!FK41WnJiVx11W# zmH1Xom1KqWWsBA4DvIc&ykJdF_KYDfZG-mvCZrABMW|zFpe28|DMJNd!bB5(B4TsZh2yXjxh8FpLjcFmx`EDwm1EwT(UpjZ1l4Q=M z`qEirG_uc>CKK`O$^c!6Xw)Fayn{DI;*2TB3~EvKrdhz4e{r(WP`qqPQUw__ITmkm z%<&>qlFYgEM1V`p4ZmMyO4!dt@~WvZx8PrtxYlY-=40-DZ4Y9Dy@%c~EI4Re>Ptq& z62oupjWz=R6;pN^G|*o}+AWO0-)Bma0rE?dOflmRO-V9n4U(i_Wv&c}fvV6(qwfX$ zoj%q7Yg6)TiFMTAJKRYu^KYVUZ{6fG5hB!J-Q@q77T7?9BuVvq>Ur2Ytk=Q!Oi41S zgTSH*=iZhUEsF2`N(`m$xnD2jvQ>tIWplopHr>liNit}<5nP&wE#o?$I7GwUUQ@En zITadlH&{5>+I5nmdQtN}#Z(HOV_G%?DUbkeI_NuON|M2#uf=X|+>|79E(HgD%e8YA zdaDV%)7nqPl+-qdfr6t^0$dBL&4+=@y+b89Orm(vYX>E3?#7MkrGQ}y(75voQ|=hZ z)(q0ds4h5OSt!oK=!B_2jkq_M5@!GplDH7`HBkD#-IOE)G?pZpBG&s&Nit}Q5mh+P zCv^?BJ#tj7RzGP=`d{1~%GjxmYkwnjQ11Kpk3<;)3n6d_tm%(-+Dt4+B?K3B*j z+>;S_#C9sVpk%*@b_4TTUGSuoemW<6t+VoYE^{IUyCDgf8Oa8h8NKbWPh+8~IWI8U zlJ9kiNpYUA-tnqgX92dg=hCxwnYOGhjD&?s=yWJL5=9nda(s z=HYn7tkXkBgRm0}N6g`OrlycC6cpFmP@nyHcGy`wUd`wEOo<@3Cs8S;s3t1#p0ao~ z=%i9SfxTw@!iy=3vITEpoWgfZN)&7u;oh!tU@$KPi=$((9$3j>&Y`Vnx|P!#I_~@Q z-IF-sIEhcnR)obD-(mPN4DFRurQ8_K1;gqdJdtIRr2-vw+Y7g&)*U#0UnOJkbVhz} zj$%&caHtfvVtV!$VOK^v3tjJ-%S@I|=8m(0_^I^xz|fYV;rQU@p)G@PJi>6aJARgi zqj$7JuHHAUp$e$AH$UWYZLIs{)Vs?aWHHG8D1bql*n<0gCkF@S{JXfwFf)oU0O@vGXu}$%~ zMO67kfemx{tvV$ML-YCKiE?1X`jb!~ZM?Wgt3sdo0uzAJMAp8IlH_y6^CQHB4ZZhF zCM(&RR^IR2|M2PFRNtAzX$Z-g-jn^-sXiS2zc;i0{=>KBCVCH-tCNTG=-Vpg#4+nc z;+TkT?M@sMkttSRk7sR&8*9f>75o!LJBYFxnp<6j1L|U|L52vOg@x+m7<_%f&t5(` zmdWF0VWD`U1e19)p}FhxkR6639)}l2a5&fyzX>BfFflhmJRdpgGU_O`Kx#eSv3NQ) zUqF*nagQNRf#ZlHc%F$f`i>hXnqbdV5r_1tiODQPMI7z#Aqze-%&jRm+Y=dhpn-|q zVhO{RDOg^n1`X3bd=^rDmO9GdP%Xghk4(uUipF@SdNAxN2xCNS_rlZr$#Kg191+YXUg-llXLX2yZtuo2w#4PEo>eg_s}@?>B&Ee8Y$^aimvg?nPEG2xL>Ie& z^!z>i5|`V0Dd!y1Q+!d^OBXkjL7lwj3%o)WSPHLR>V+ayPy4B^7k!~II&Y(o=kY*9+R?!Iz%3d0~zP3lnIG zpX_>Ju2wBE3V5~AMPvzE9uWKbK55@GGzb-LWYEi!JC2$IjDOj+YZqJ|6s5-lj2F>! zks&1-XbM}du)kFVW)m;1NU5;H{fnOwLwHWL00&rrGa9CT&4E*jgWmye9F1?ime7v zIh2bfH(_DfDv?W{+&MHj=vqS(9mW5!vik>X|A5vJIaqUOTt*TTu`@h07W;c@Yupd( z5~z*O)}ntFquudbCZ87CzuL+n5pMy<(}x{C{gFSd8s<`Z?ok$QpyKjd>+!$PTIi2D zh!{U`Ir4qnX{s|Cr}$|fE2d9H6ta2yye?lt^Uk%REyiL%E7<83jYV-pnXFNcrf~ea zSeVeMahf$ebLE-{HC78FyUQspmZ*zyr$%-QtY;s8%F=rddS6?4#)Cnz&q$V9tM14T zTLff5?ph|dg%XqfUy;OWQR0A|-{=}1^&14SP|+D+CH#-jq(qyjV3L^0kCV4cG8Rg0 zrk@^?7AfL|J>X(F<%_n8bBlODyPp9kJNe zCXcidM&{L)B;CR#Y=KFwOVTass7yeLcz{Fhfc!H{5~6@OMT?Gi+C~!_FIZz}F{<)f z;D#qM#~O$Xy{{uOn|vbEG()svMP|^JoMg|woIKaJt&>EBO;sv`;&9n6^bexH5d$)4 z9#i?M&}jgc#*!7-k5A{Y+C$^bXt~k0iE5&wz0uhG^HKHKmh{XvkREzpM|y5;n@3t1 zBXes@lwQ**QEGvTKXm)Q6|GXSjH-YK4K(O7v)n25w%>KfZU4qev>-D7>Lw8!3`Z~f zHeLf+?xw1*xoSg87_W@re6KTi3fmH-b=KOe$k_+&FMxy2BCIvDp*Q=B^vLEY{m+GB zjO~xZmfNC2QQfXk!7;4hmQLa2GWk+HuSN{HC|q_Utt=E(n2JX!QGVr2r2-|WyF*}5 zTWl5;P1cfqntI#9vv0`a4Vv^7H+|hqUv$z8CENW-(7Em))Up}OQ0rStzBFjfF0Q^a zG?zRSQHoxBtN!NDGMq71nVkQ2ks0=3-||t|HO6*iOx-sP_ltQ+qSNM%cj%nzl4;`~ z5#-cdx;NcjweZ4-l%gQWV0RT!83_$F*V#i;e9w^ae+G)|Jarx!GFENDXU+KGfFRT` zPOJ?qYP{FF-pdUus@Jwbfqe{@+PE9ywP&a}$ZPvD%G@T&oFU=g1lHS$f3DE4i<>Jj%MDlIA~im%8GDs3v9Ehn_CP;!Nlsp%}5&x z9McW32TVya*Z?a@GKJ`eOi40;Xh~AA0+qEhg;4d+_^8-gGoLi2y5AFcbSr8 z(7q)}!S;Q2tpEP5X~E7{2>6hYHPedytZDfTDpryd68{FKPX6AMBm?npkxSn+CCQvi z^}DaIsgoa?lGKLawr}dBMZT|I+r61zi_&?uDM{Uz&X_4lotDlT)_-p{rO8A*!>8Cg zXZ$xxEE*hQf39hH&BdZVLew1K9xlqpH( zf?_%bc!eoR=3J^TyW!sL4W=ZuA-Emu-9n#u;!=a*;HOMU z>OPnL#*`#;F4b=^HEfH0)s!Za78CAp1qE##<`tM8rE4&sW}Cv^oQt|QxRi6+pfP|( zw#8POl4M{Cpv9U0m8K*a$hsscXl9~0+hRAG64s_s2|;X>xYlY-q1B6qs;xYz3-0 zRd(21RmqgzTGAS2&LJ?&Z{J*1f#swF%IX$t*D>XmdF`6w{_9OiGQj;7x%4ZhB$;z5 zi2HLl4eKyQ0UCV0&y=V(F<!KaXR3%$XYOi4264J1jXy}{Q^ zNit{&lB8g7&`EoeKQtxZq;m*Q3_55}^7|1Y)Ib%tdY$38-av#TN%d!E;STz0Q<6;T zpyM5M6yF=zliXxlNOQiMHr?H(BpEc_2re~aPx85@WSMg+q-ANKi#pPElA?N1^FGB? z3LY^nn}HNa05=`*{gf$51_QnpySZ1Gl4Q=M;D9e+Gg3`|_~cUHoi+@7gDI(P4g&>8 zqXf7XR+~@#J7-VwH%+-?AY1Q2+8EUZ$1BQoq*j9}P^-F+ni6LK50bbL^aZT*!1=aD z(x01>WPrw!BvZutTT_w@+G0c%wq;N9Tc-5ZYBNy^i0~M*WA-G!4!S#HPf{?oqX^Mj zV)i#-S}|-mvcV?fZ{wqO&xX)8NO7ii)-kjbc_a3+G_VsHEI{;up?}9Fd}aNu*Pcs< zgXZB9vB7*1UOB6Rr&DIhG^D+Rz9ri19=hwhSUx^6YcEr;+yG*d0{Pvu0hbgUe04RZU?V0>_B_@?dMw+0!f8mM`sY?Ssut;xL}qK4JxKANUdNBV=&$dF$N_Ml3xC zOPU_^=fKu~v>Ysv1Ab%+jJ8C12eBx^5~XAxkE!PbEKx?bCzHNMGwXL=pLi0Ge52M_ zAXz~xc>VX`7qS8>|MK#mWXEi?+B~NzHfM2V|-(DV-Lkkk?nJXl^(I^?O*3{sH z)@ULN*)o9n8qJc3S`9Xu9d6Cx)NZ*rUYSguWDBIv7Zyi*42pnv3d>Nip+KRq(J!DZ`nD&rS4jt`RnV{A=^&~8Oz&H%-y}>dZ3>j;-Pa!EB$!q$^ zR<|%*&sOPsqgrHSn|Cdd222JDn?; z+I)e{O_YAA>qVd2A23hWd~w#u=HzRr?y#OaiXQKc-V1)S>&3cW87Qp_89G(Xmt0A1 zBm1OtE{T{KcdT7r77cdo7Vc00eC8a|Q@pV2h4W-nbX!zG<*^WIE>*A&EY}5a9^hRk z`ueUDeHlq!?e0V;rFn5v1*Co`P(TFfsovD}0$xl7tko52W5CGLbz%&-B4QX590QJn zJsABR9xo+Rr|<7Yw@M?v!*HykOwdnS6g=5?=Ja72A4q)#a7Y#dJY%U#fk+1 z3yv1gR;K=O<#SQ%=W?obVMK)l#+6Q18&on2kHY5ec%}qX_C?_fLb%k4oye78qMp1k zP33bbR)|_Yd-V6agTm@mISEHRG&d_wWl9_~==-Lo4f$kLQwbr=a)~g4V7&=0;6S|* z=Au$=3-^g$H69x<tMt8Y*7CqQbqZ^g*yVi zuDYGFDuueK!VAGw4rFsXG( z+UgzVBE!M_WRXEgt6IjYJqE2%FP=!2((pr8KE}Qsp`3Ir`1jgD=fUT401HEvt}fJrJSyb)==YX-;U}MP#aN$;EOmOAG91T`taVi_$xzDz60|c_OpD zfymJNIwI3yi_(#~wIxbhJ0(gjP~lmW{;gJl&a)^@Lnt#7s&bjyvnc&ct5kRvrGrD( z=nY~f7Nzz5TiQUeZHv;6lMsKIHi*55?*87rdlq*y_CN6TANl$fzW!gnewDBPL|4hj zb7%eenu7-$ntomv+*}vukGf{}d6?`z6Inm5MxWv8F~N$aOxd*sy`|qOSJETac)kcv zraLV-VE*y84*mK_1UKC){nn_IqIw{Mz0yRb8MK8a)t+_epA8V|y!w2y4oxkli>9I9 zA1J&F&k?oMj%ny1qwV)m=8>kM7YIDkhR8BZ8&Q7DxCpHqg>F!U7YB?&-}vKe6#87C zozkoKhHTSz+IsXC3}wc|di3XzHs)2P$6fx}lq7@WE|Mfu2>-4rNd^!uNeZ1MlJKIiD5c9klPh z)9=!4#1hqLJ%-^?3D^B_*Y=P<><9u!i`ZZ5bAyH^x zv1gxYA-gXM&o?E>TogiFYA_s}FeRz`T&kLqWX`4f4W@?m=$Dw%WYS{79c~A#M+;1k z(lwY*vrS>|O{N?(s6{!aH8m>r4pWj04F5=yOu6*irX-njDQHxxIqT7XWJ*|@CZq)a zqQtdUYcf}jb=`XOmra>w&(M=+wj;{w7HhZHlw0PtYl{0@O-VAq{T8{j*OVl4E(LMFvGwSC zO^Ip~^9Ap^i}@GTTtAIo=2+^BuVM*f3)&lPk>i*t-wa@X0%^AZ`=?AvGJt(ak}2%J z+>|5(k(VTO6!u?dO7A&^{nxUbM6Ilv3!G`~{)Q>H%xl*a_J7}$Bm>xQu?>9Mlq7R5 zg<*e-j$?B-ZP9nNf60`nHep}zuDh_mD!3a^@t`+kn-vPGw0bL$oY`?^~?nU8ejpuVYi3-)~Bi0nWF`r5BizWX`1^&d=ioc9_HPqiLWCNuwf})>fel1Rl2pH&4!ei>3saIz>Y(EqxG26ia1Zkp(?Xi_-L&a` z$CM<4rW?VfX57QfxvG0Z-w3kiG+1n2*>#eldQtN}#Z(HeH7%Qg6i5I!9r6vCl4LOC zYq6WV#grs-E(M2t0T(dZp6tLoZ5VjKl+-qdfr6t^0$dBL&DZui=N@L0E>9_Fp4 z^ww%KQ7eq$F=ofy!@L=EcSIQ>nA%Zi(1PkCEFAcHj zHAt+3?qP^F;U4A-B;@p{+{4hlJfSb$!}!jj3WG&Y(bw(~G9YL3?qS~1rhAx!>>I{9 zI9V)KvalxO8vG|SGd%~h$r4N)Dqk^oWRjIC3|;Rprjq&Gqip#w(j(09;NaHy(B|PS zTe|NN=F3sYVh26K6yOo&ES6bURoz8SVA{?-Ni zmrB`n=dY0hfuLW~ngE0+Xb9HKC5tvfHTzT>$F9EG59}TB=CX>C^m}s&6+LK__&J_8 z7sj5BxpL`b!h&t0GOtDvqb*t11g}NuVyaC)E*@j0AD0kggEDnC{kRN8Nm9smaI1b? zwnyb)(u+v6^8C0E-Dr*sQw{yNL>97T+_Jq|m3~}8wHjbmi{L8ymQ>dq+gg&Wdxeop>)tM z%&2RI8#~y>Ff=WWThdCBYamhd#cbSLcylZF_eg`&!cYvfPob6qc-C!3yVw&_pjpSwi4PI-%iTa4i0~JCr7`I=AH}CVIQzTgSSw=WsfcuOvB#J}c7G&bcSYKZd{1I=9p0 zwN0vC{<|$7Jg(=&`VM&95x%HNOwe+ZaJ-bPWTC3YjI9@jQV}*WnS6NI8;F!BwHiiVq7JE8#Jm*d# zl=B|W?r2l4fv!hgdMf}vMNw#MZR#2*7L{^aV{D>Vjj{WicMTNu{nvc4Rgc}sFVHPr zFYZ-pN>R%%P=Aj;b!fhT{Yq*Wi5keSKC8H{8JXAVdS2Jr^sr)6ciNa_B2-U1)pb?{)%TI5=|tCiNd#&Ky-9tov)-i0u5in)q&zd;{niH7!ff8qJwH0uK)p((ns~~z`d;G&I2hkp+B0p>qD+N0K0+ZXq2+8yB@)l9zpA-*LpN*=Z z7MSFT#is?6xQ=Uy1--8$79I5<6`5CClJqBB!WNj+x+I+k9;AK{Rc|dY!jqQoHINp1 zUq@P6^dJ?PYFl#g?`K~wZu8lEAlG8vk_gRzPwC5O*b!ri#WO2aoP>ulp53Z>N7&1l zW;R0GKB2u4!wspazW$ns`f5u`u0g8xx*B?4M@lxe!WOMqkr}ilFjsN0THs9UKyo*Z zjFX_$)^gAys8F0F(`n(EP6U-EX>%Y#yrtD>xoPHD`e;;*wZIJzO`g+0PUw9dIk~L^ zT+zfPGQYOO=FYP(HXZj=_u9D^%(;O6B(BszpIiYDmB4PhDbJUKZ{#T7X#74ARljXX zRhjuM_Pf*?(a`%kQq^IXb&QVXa^?KAEXxi|KOTtP^%w#~*dgWt}zWf(tl@pCFfYLqFyY>i&`h z+&!A%UzjmHt@XvIl%jyt;ItM|X$EAWqlcb@x<3yPdS31Q7A?^8;`Xra0?k<+axS+Knjdk4}-DRdsGiZkEkai2&>|Rrn4Del& zWQq)1O-VA4c}Y@G+trpky1Pv2ttG8d#v%j5{Px|^?PWRXfU>&9+8s0HmU-=(;{KE= zNd~yzB9~rhN|HI3g1Fz<9i3xJRGXMDc-LLbujP(z$o1P1c21=25pHt#@GqJ2%>eeF zLE0_A{%@F)WB~h;BvaV`eN&PQL|&5AQP}^iDZS?u_CL*X(gE0Sv3CE(lw0PtYYO}S zWlE9(?6=6JCD$8{s?E6+f_)F|#73RD2+*`a7n>5*ChQB|br<%}p_8IPQ+68k2K`98 zh2CJ7DM<#sfh5VaH`s4Vl0i$5Bn5kePC6-i*pz&e&LON1>Y$UN7et6qgB6&PX@Lzy zNRm`vDHnE9^tdTWCUwy9d078qXf7XR-0>lJLjb6q8kiH?gp~88fjxx7aXrBe?(dhsz9ykt~Djj z03IZ9A?R!1q-e;LBm*>-B$*=CEv6(Hw8e-jY|BZ}^GxZj)n=mf&fzg;$D9-$0NovN zQY4t#QG{qMu?Qzc4UU|gV<$y(u$8WXlcHb&+#^OIHhl^wc{=E%h-ec|ik>7Pr$^6PdfW3E`55HxZ~kQA&WQ z2>W*_NxvJSP|<_7ocFnIi0&3X&^qRasG}(h#)<0uGZZq~AYx6t>VP96kG0YfQHZrc zsXCjEh`t;pOCd|e${B|1PbXk)b&2~zUm5wQs2p05R?iU;(TxVlK-JI@QDh-oMlN52 zk&cK$wHj!15Co=s#u$ZpmLo_*3Ix~(4Fc?-=_SaoKN3UqH3xy4N9Vpg7W@_8!D8LL(--~9? z%;GFP1~ZPb9^S|y(PdF7wgo*zr-Gi2I3#Mm;0l9H9TN3-oe|ADBx=62s+t=)B-+*W z(zWG~sQCgbYv$7Dm=5F%MX26p?&*5bJ*O|y%wzM#Y26{wSl5fyibJC2ORglhkwcX9zLCm4Z$twcqy4WZIg@8o^CiQiu6o$ z9?|6=)qj-Rm&xGC>F5OdqKIk@jOv}t*>F+Rlp~9wgNpf5(HY*IZ^3FJ+y ziC#6fZNm{z^Tk#@Wg|yG-{^XAuT&mxYB>Um>mV9gzD|JGr4dpdbm{W-j=FS#7OxGT zF04Eib}r9`PnZ8$MfXGS!rpp{m6n{k=t>fpmi0827O>!)ICZ%U#jL3dXaU_kr!E&G zRg}+L3ni@kF?8y(rGwn@ET|75RfYYvY+cj)nsp*{I?+yDB0p>qEd@TtncNoS!82QZ zqbTuDic^<|qbjHcCV67<0>LCpOOhVs61Kpk)+OmY zaO(2%sCsLG5uUWXq=B^1`#RFnqEna1RNIn^$Irf8oOe!L-V;?{ZAr;H8%PPguOlVx zJ9UZ7pe=!U``H(mj(g{jn-n_Zl;dxr>ai{9`Kt!fL+|TIPlugyMCR6(D1D|=qSOKv zo>PwAR;loua?qID%$B`WN_b8=*0xH8=aeHj$BEvg*?8}g=afU=L#fRy+IGruMIVHi zopM}BckGmd@4DcWBPb)zC7!P*u?G{*v)PSCXq#Fnrsc)d_MeGb&7Ky6_hU=-CTc%M z0lWd}BFsS?tn&I6e6zzYD!oR30luYL`g^Hll&0X7T6%|QLtmV2^Ke4%%Yls%G z>eZl96tpjps;{8eqM$*|<+cNY&+x&W=bf>YqJ=%O{t^loCtd|vlgX*FtBe$LvDTB( zSTYhI-fcB4utaV&^XmD!S_}e9EZxa~TlerCg>wdj#?O zk)U%e$w@;OF_(ngO~}t`I*AF^t;-&JD54C#_E!Ck^Y1c)^WR5|&nFkTdk}sZ?yFAa zGY?_MYrhqb$B$qwrFT=mH9WkTFMa*i#*N2LBuf)z?~~nyQ+;Y>yVu?k;K%SoJFcx{ zPF6;&4J_yzcJ*63(wTA!9vmhT<*8%}ZXDbw)`nfX+~b3CZ^;7wPM@P5i4tVn^!!UE zDy66kpq#5@V&M8QZ1yP+sOB*sL4H7CQ+(>wNV=GU321ohu!`fB zimCiB#od^yMR}f4I_>o3(LmANb{SDe?Kpi2ve`aGnR7>mA%Hy<5bs59>HThB+)xdD zr;Urzy5pAy#dvX`7+*i{y}oo1tvs-r4zOXlWP|SJBWw?80moD6h%Q=&X*K?4!x}en z5)8apZE9X~E7{2)GOdL0@88vBRe2H>g-iQb_z8Snj^nlq3W3Z;?x*|DU}# zfs^Z~?u9Me+Qzc6jg5_M;Cf_mk2TY?$QXN&6l8gqG&Z(u3nY2e({pF0TRq)PFIp^y zj}R6KIw2$zLPGK&U-HXFLPA1TLK1i+B!s+|yu9SSmzU(r0wD>6Yy`6F#s8TO)(~`}wNpE>)*aojP^u)T#fGk|gI+2auphBA3Hbl6nx_-l6VO^1Ui;q@3?k z>3p4(q`^yPOG=WQOYNmICXvhcOKFmbXB6Y1e~Da@lvW2AvG+^cD;JCQeGr?-<=3QC zNqQlKBsS1QE-CfLA4uCT9~n~p@fT8(p^dw({e3>m(dq<@l6ZE29(@KH<%2JX9U~DN@{;!piBmk{>75-6QYy5#9Os6GW)Pvh35+1`9+;lhl5uj-osNo0KF;AB5Iqy=UD?;(G^l z=Z&L-Gi^0V(xH2;lqA8>P2f^D=+0ZEWXUBoVsUp^mrM?vq@-C?KBq{f;9hCl1X7?C zxYX!-OiGf#=u0`x<)kFZxfC|~LI}=QtYGMwwLf2xlG>vgs5qJ=z;U`-ZU*)b-T91^ zI|A8yBg%$V7q(YCAZM!wy_;6oy;Dk@Ks{*UBC5|vJ<=|jY1<|9BT|wC+E|k$)mT3# zB}p(A6S}Y`bmxyr>5UsR-P@RbLwEj7(A^hwXT{XMYKU}&C7?TZh%4(iy7TZXBCVRG zc9Dv!t@SnFlg+Od--^(O4%p6N^8HA{2$K$=us&it6Kx9H`9Da+=}!;anSSdd5-;7t z=a~Z`hbpG}3HsU(WryDE9^3g>dc$_6@WwHOSx-Ap6za`f$+M|M}ZLjeU*H!RCt>4o)h7oC+{Fk-l^?(O%5LJ`Qou4I|F#D5xD2q z9vxmg4%qR9PXGbB-?T(Pp@)(URvDu5qI6 z@)B{PA6}$ElFu!V9p^D(;Xsek7#W+#7#S<;F@o1}WAu#~BV(n&7>S(8d34yTVHzCb zVHkv(R>P30aJ(v*k#-eMu!>>SVV&kNXwo+jlM>LRH3MVOq!R~KM76d#=%FiCXG_l4 z2zRBEziyc-5UcRf9~mIDW%0^Bwd~^U{TRVkHx#F+NREKNG@lmjF0MZXQhx7B5hVvw_>w=heg`JZt zPvK$kUXkuSsd4QNS97&S0ruLfo;sb$kF2bm_U{nZY+=+Xj;w^CrPqjt;2^B8@gUSV z(~<59EB8-Wh;#=sui5nDpbneXBtA*!e`cf%NWg6p!&GdY*d>Khf_-cues)^1E$l+z_K)bG=J2Y zb8**)iS|#Lwu5qhQ_?6+)B}bkwi&zGe_%ULzCEdip7a3G?dgH;5skZVt%r8k3DNjH z18-eVh{oMFSdM7?fq^%DgBldJJayls=jf5)jV4=OH|pDV>Hl@$jY@-O+DG`>Dp0^Q; zzQQsl*42|F?cx@uU{ZQXI=|7>%1K?Cf=5P>iX8-rp0^RCKBK86*4C3KE%r;4Qcz*g z)Si=;3WKIbQ>6?dM*F%9n%Y;nh!i4Y(A2`FN%FR6XWzX+Q?qw1ErXzEG_?qYfHXbb(BfYexXV&zXT)QgV`BbZQT%o-tj*i7>d<1 zeiavRtW=7!!Qfc^9tp3%u^*HtFW^{W*Fq~p6JB}p*8HA&L({j`)M!T8oBg~#`~L9=Q}8+N{`fHO+gq#gTS zY5N5ot4WH8e+T%2_e)6BJXjYphgl4luJfq+m{X?@#Qd%93P2VJKuUstJ_d%?Idz+Lh zNiT#>P7f5#Dy9C|C2hZaWJvYLJ}F6ZL6O=3ua=S|=Tdvwjm~aMQj&TQ+`i3j5mD%H zYW%g*Mh;#S-YO+YE(#GYbub6tB_(O_T>4QdNpdc=A22a!Rv(noBpET$3AYbuR!XNQ z`5NTQY^mD&Z&Hp4dQq=wrN9P%CM8L5_*|1D<j z@6w_BZBmj1LpOm--Jn^$LrRvMQxS{1!@A@>11BkI7M0H_QYrX(Y1;%+pcS~(==+G2 zB!SVFa+>?^Qj+9c3LAYP#477#c<7lGk@4qJQhPK56-ScLDMssv9~L`dNaMbU>@JWF?ALMg5Dx z(LGv~RbC=m)xC=zT2(=hfOy!dN=>0w<%1)@$FPcER6XQlR1w>}qT}JJfJwnim zwd~v|#oL8scb&EQi7F?EhP29?LhEeWIM z^j@4|k?OdgL35H1p2sS#jY!m8&MmvE#q1?yGnAXlb8c;QrnSD5n{!L}v7uZ!QOi|V z&qfwtue^$nY8xhM6sial!}4=3QK&wWBsGcXGk&*qi9+?eNj0R9OM^m1bYtkTO1c_2 z7nDkU9$2MiSRJ`~2t7Elk*Rf5U}$I*sz|SfhsIld#t{lt5M3%6amqQID^-_rv&R(D zl){!$xK%@sy89kKe0O0nqY$lp461ghRP_Exc#xe>gawD|U#;j~bf`v%M5tzI9R%b|fN?TFXIJLT%8-ZWX@B(8l)>iA_$ATwQ5Y?b zj65|3%+4uoMoGVPw%Nv8Zgg(NLD5bIzeeH<-QJ#@?JHrp&SUe_>d}&-+44%oOj$5kxpr;c@!!V9JH(Lo=M(3I1#c?*G?>tazx+7Wlc&?Q3 z5g8$zKKR19!FBwmYkg4pegG1mtb9{pJKA;zppJ|~?PiSUe}k7T03)(A<@r;;l<*)^ z{15v{Yv_?&4L-hxTdUh@EcigRGNXpTZ}o9t8*ImqqExicZ0eD|dKO|k{$(GzW3bo$ z45fPdI}Y2Co|~=Dz(QF$36rrM6F*F;GnI(^A0{`&jAan{{zSD{V>^D&hKpcOF z4C5vlQ4f2hW)%GStb#uu8*|(OFwARFWb{I#?v@rDY#QO0LyqoI`XlF*3iXD^!K5US>MTj;H^}2uQkSOSkrAY92SK9eZ3L;$AdiW)^(0E$`Xx#!s4yUpf0R~7 zZh;%_Fc0d0)suMS< zl}pFho!3Gm)o}H+$UZDv4t1zQeRKr>%v8!QbQAqE>a2mn^A=24&er6kF@)PDMk0&snYl%yU6w|4-p zlzjhxrHz#HT`HYFDf|B}QtZZyeVW7ovF(vv-2mjzz;-qImk!6%l#>yM>u6AZ*ZMA<3)U4J7b zNuc31Nm7&OU!)`nq+XL0_IEK9py#!0ul}Q$g_pccXz0etYZ9hU$k6W{v+(OICw*|R zrtIApNVz5NU8&~ZCM8Lr`BQS~E-6WJE`>G!y4!6vhQBT4b-$FP9(BIr++cP7mEp(` zj|I^k4y;t>y{Agg^Bs#tN2M$h==Z}YJB5BPOGy&wcTJL1zrR*Wl0ddKNn!oIo`Zk< z?rX2%^~+YzeutFi9(25}zjay7U8q;xd|{!GUp?E}Ts<|tth4(42{ztan{Xpv%GK+u zGdei%Be<<1``*gZ(g!V{vX6gU$}f2zOSSwjN=XuE`IKDxn3N{95`@3`P z`Hm&*|3gYvkD6X_Z?Kwv4Z-6-D`lr(R`?9cPBANdSxS;%R?s9#XN8S-3ax0tSkNSe zXN7)($3I_6zGQ-kx`6r!9)B$;j}xH|n=WJ01`9+;lhl5ijxNMrE+t9Q2Yp|NCGouj zc>KfCM#}jv9lA%PBngIY0++f0k3S|QOU|i?KfS}Q!>NIjlr)RV=M9_W7Y4G^KStRA_IzwOkQRL8@U4zFT z9L5o!-tgnq(I*CL8QZgaKOtT3E<5*@mvZGiFkK%kFSs=qKb?K>Vn7NH7= z5Js!dS86pk&viE{jH^(^3CJ2izzDC^$yeM3I2#LYxj_eu+*%Ijo<_nrO*?wwn7ya) zP?AQA0M@_f=XYTKuF3fT5*KyCyE|IsA=CV7TqXABL4-xT(MPNUGHuy;Vrw?saQ zm`?%*jnF+}zExf#Vt%#GXSm0F;QU;9%++Iltl*9Lu@a4Wjis;IFxK$K{20c3Jf1#{ zc@I{93@(3+`3Sgvb6An!cqEYK$(0?C3Y>8EG!IjuVfVex@Tp+U6AQi1ng?K2Cn~jL zj-sLs4*wi6Isu1YcLFas?(dgQvh3YNJrbF@x<>Oq&rcYusqcPkd_&N~kUBD8ersVN z`_$@=(-v7>oa>5HJ6f7FrvKAaB%eTDpV0IWj%VwBAJadgiF<(d?^~&gVX7@>(YR#z zu{h?m`hf6nSh_KRrD170mk9swPLiPr_TyC=`_Tug55XI5_8-{B#}6mfAekJslp2U? zq8kH|m0d@`+r&nu)>}o>t3wIB8XhR;6Og{8fzBtwg2VMgYdl=HBy?+BGZh9UH4Val_igrMwiCkt3kKfKZV>*vZ&!a2{>KO2 z`i=%qV$=I!@LZWNFNO@BgFgnZUmU{!Hx4YnonK&b<#ZVd3WB+tmUm9BJXLn?p#)7p zHyc^;k=joWDG>B2!AFAR0v&1D9-t+Z^65gy&7OYNbX?G2z8{KbE!Vf#CMbrG!F+HZ z6hr^g8#oWZ_3!0M&?BvCr2FU);(Otk2g0NB#E-#OU(MAT1$g}D-CE%|HVKZq3eMPd zIMUat!-LPa)Sr6gn?DL*`4YcgI^~s@gP)&@z&=Bv>@cSCkbeKzQ3p_n)k?j_5r@_M|J;rqP<=fbUBs-Rw5+G$z(69aGQ<(BeH+a7<_ zSwQ-zk&s7WgVM!z*&iBs%Qh(8Z&xc9#&W1N>&kYCzd!JX?C5FMvi33(o8ONW%L}_R zOjXWSy^=;+Xir9ys*I0O>`(FiaZ zy!SbKQjCdy%vvr?Y9j_>OQr?Y&S3=M`F>nTwJjx|PLh&{ZP4FU@;@fk+tVyht?_30 zYvQ^fZR77s-FNmxI;oa@g3h-o{`$b#c11|otYMlcE&Uj#!wJJQoI&byea#@Hwk>^} z__TSXLdEneo0JcGuC}_qxtbna++O$cc8l9oxufiDePmEDn|ilFiL6QPsBLJbiL&d> zMQn0MWl$>GXJYzDNj?j6N8Q&)?wFJ=ccWBq(um6)MbBgVL<5mLV=L>#4^wJO zr60eA$xSg$nnXW4REu@)sLqLg&hwN}m81?z!6YLV#}tz|#2`*A=y@Bl=xfTT#JYNt zq$O@)3MQqOq?ZOzdmQ8*i~76Z>VnIQ1Ljoh9dd?vHdHjnSQ>nwcO`XP3QibtS?wS$ z^t_F@yrfG`Smsz_nLUZcJI=jWyaccxBo6fkyrQ|DW7>bdXm^E-9iKP2^8Pm=Pt9VCUGw~>@S zr;bakttV0Xn|_H>3Mx$MxVzF)VN%DD$t+8(q+=AH@$bzFFfl6+REbHuet z9cLfqu@(kBr;Z!j0U_qpaasDsspI(9vnO@jEeEwXpncA`=SOnJdEX5xSzPOjUJd7e zinwQU>bLtza{Z%jfkk*xdiM3_>*62aM5qEe=zA_uum>bE^1LR)V?Pg1{m58G{b5_X%76f2 zq~rVVq$CN(wU8CJmvDZr^6N zh$wUbQT>v%k%Je74ZDQquv`=(T}k|gI+`vDV^x@|&AlVrq1C)_@y zZc{ov$=4uXW=qxHLsE_jdQq=wr8vI_r6dWkSW~Y27o;S~xfI6v?Jjj&LrPeWsJ@DS zN#Yten&hsrHB9dC?NW9M2IyIoox;!kZYfCu&96z4>WrU|k|Y=nnxwEFte?ppJ|rbS zPOQ5J-tA*@hhIt%p$^Nk|1NE?K!h|&?Puy}a)&>ck|gPa(3-6GEPF|O?~vT#U!;wc z^IbZ0zb++7Fmw~R)J<}S%fCfvamzUsvA8>|OKu!ENlCM)d`^){!ML<-0x8f6Tx#^~ zl#(Pc`ch7Fd!;1FxfC|~LJ1r!{JhXJ%Tw?wDXBf0fr_I^0vxBSl`T;3Pg0Yy;g*_#A zc)yh1xG~ecjoG*44nGOH`;y#2F}1H6B3)q#$sIbxm91%VhX&#dIwW@plkdk8Mwqk< zh4nGH1JS0EJA8&joc{EZJJ4?(oUW5Q1cDCLnZj4l*M7t+^k&z|9a_K8OP+$G!@Exw zD$8SYfL)mP(>qK%2P!9U3aIYv&gTJ;-f%-19SAz<-jmf*uI!%?+A}kgoU&nRf>Jh2 zZJ(UdDI3BV3Vlqr@VO)n6G^ska;;kLN2T%E#z&Dwp`X1FNssV_B#wxpSaf=XnJy(J zlolaLV%q0Du;nJ2_kj8ugQe@d2X=Xhc@OsH%%CvI4;pGrjOFy02xUA#3&&hDCdMiY zWBGD9n$loqI8eHu*I*hDV`|8G#fMTE5Ca3n6Z{Dk-zHbVrLXYS&YxWZ_3~L<_O4U< zMl+7(Z(Y`o9Z4KO5f$3`%!`7xKW~HC6*KYrmgffFt24`Hx8}@Tj}*@xyl)7BfN6&0~%aMDO^B z(e&0x2^Xc5OpL&pi~QVef_n_J$?vT&5b>nIumUq@lE_2JTI&A%(;md}X2= zgR;9+1Bs1Ht-Ok+S2rj0YIxB6k{JPjs0{+r76@VL0sCH&?maog1IbbFM29_q%vTX| z?a0c?Y5xulDaKL*)NOvg($F}z=Jsi;LIzR|RaoW;sL=A6ZX?0rdW{uK;@95!JNFdEWQ^g3KFLQ$>9zqj=Xt2zuXSZ4cTa{|myO zyeLTpp=XO4kR*(;`h3h&YXYJ7**=bO1EKeKC>8B9o>Q8KpM?;58+P|^Rd2wrE=H-I zT@r_tM$cn?37sJH5hR!;e)TJqSWCZCz2SK9eZ3L;$&{>JK^(0EK z?3XB|pu#|BeL1aaG|*WzRmy;ABG6f%PD_P>&I+3*$vd%~w-F3j{k~t>#kjXV5ZLZxt_nX-4wr&sEDPJMITNoDQO}R zL>3X1G7S|8lQYm+9|#e8-t0Dd5eyRT#uI;j`vtT3O8e@K-lLuZ-hThLkl zZObq7m*R$`htBHIkT+a_&N{N1i2(Clt`Wp+V5LkX!gD>pXFGEBJ*&sRDC}_wP|?4l zY%GVR@tv36onXZ#jHaR>zEhJV)xuXxNfKybO;RL8*Y4po&{?-gsg7InCq;RNPO%IW zS-?RKcI;cF?H6>cCMhz#b-+q^my{%d_^0I3k4j0BbE(4# z%m{SW2c;zSAh^AQi=^cH??@Xd=etxo|3pgC;HC3ZQj+9cYA>BJ&{_W~rAZ>5Q6!K4 zL1!f?tqy0jH|!alO|D65-v_bKS=UIZlJvs4G;mYukBqea@{u9cA9qMe8od6vM@o{M zOYLPh3Z3<+l%yU6w{NpsL==2as9J@rJ7POQ7o?3GyeKrJB*{e~!le%8;2WeQ4W3Ki zDJ4nHrS=0R20H7%NNJLcnCOJt2k0!N)02D+@@2Mk>GR7{jtP2EuW6+y3coESNpR9# zlO*NR|CEv>=TaC&p*!fTzm^i#BW8l)Uy``SjV8HkYz?8azA9y>V1Pb@vQzlEH{UZj zn_8139Szq>NfL|(O;Xqo)=%iH5h?j`Vx8phj!qJNgwA>~D324N4$HEg(gq8R2TfA@ znK}xcwO2}#qz^)CvfiPylK9>MI%`(iNIBo7Lw8w9l3?g2aH$*UtkY7m zX9rGF(kv>UQ>0SxgVMGMq(CchsnPd7DM7C{I_Rtq_XeHiMKVq^7FMNJC@(q>6x>>_mR~C5b0ud_DOV>9tw!NE<75r(&sFOV z9iiV>!Slk?e0SK{vD9c(r^m;am-9<*c`;jd8{^9hjq3O#xvE>Mk55e=c<_-~ue!lQ zXuUc~(?lS&UVn7hBWrEAV22~^2b5Ny=!u|c%_T78XibVm zD2k><-444WjHY#a8u|45%PfAI zMOI$`wcbia1_8AqO%G!Oy~+pFV&2IBwG~7ZwWnf?IBQxHmprlj84DKuFMBKJP9R%7Dep)&0edK6!I(Y-#o; z^!t*eEdp_Kord2Dli}-7)+)~lJ+^E6`J~z;vy)bC26~IyfZ^L6^j2bnQ>(e6>1PeS z73t^j@Omu7B?LDcl)8mlE^m;u+F@%cL5PLL8b}SnA@zG}Jft*aRfN^yA@xlLS@q{h zBP=qWJ@`Bynd+!Ll9M2-KAluUPh*(q_Qr7ckX7Bc)`R}(1X=aWz+2Z7WL5VKmP1x; zzAv~$?alBo$~oAvv5-~WHz^Hd)r|vhR2s;t?%V9iZ70a8v4OX<17uZVlln2QUXft2 zhajsC-nQI8}xJHp_?yuVWgs2i$VKQadv0Xe@*J61G;&s|T9Zl6$C7Zj1s< zy%9o27;(mSp-|$AF30odWQsdNRNWaubyB>NV>?~OD-rdz?diSt{v>rF4S;z;Qb|eb zP7nY?RLaIt#Mf^So~{ZJ+WPkKO0_Y*RH--I`9`Hu%IC0gKK{rlh--O#d-ksE<2k({ z)RZS^Wot%EzXq4bmnh)S)v7|SNDp80ayU5dQhM2Ytaz+$S?qm4$X*HN&^;&{5+DtX zdqPT*ATUmoB-IP^Qj!FEL6a2jzAf>+-2Mna%<1^!Qqp60C^y&Kh55>Iu25cGDz`S` zFU%;|ul%9QF;~(8x9}AI8!UTT7m?1IEwLBX`2NS zq)BSu4;$3zw5O?eNvV?bMCdfe7He*9U4|a2SKWL8+q|o1TbsdlV3IXU=)s=)p+j{4 zPf1%W?uR7fSP;Ie#$QrFaeWY(mkkcpE0n;7aj3T0Hdb5P%2V0Ns8ejId9NwW?x9Yp zN0x^FgtQX`y!&m{T&aft-%^qUa-m6*YWTmEk|faZnxwFXe_p&8cpaPR05i9qKetuP zm!z$T6YuT=qPstI*Oiv}LV`4P(Dqv%NHG5sEJO)Lp(d%lwvQgXyFp5lq#r`6zT?5W zo_OEk@Lg8gP{BynyqAvT9a546BRQowJR~LQycLHI6aG`uh7MjFN>Y;K;t-ksI>3xP zEhTC2Tsk8qNzSGAIy44my}a_I~+B2c7B=A_)VlB&O-m2yqcliHAxo;v+? zDM^BpfhoJ;~7)Mza(*u8&MrsKj{ifI6>CICHHLSi5v^Xl1Q%ByQz`x!%7j(%6Y8Ihc+|Qw>|$PB z`fc_P6*tr4tE1Z-tLm`ajSrGf$$Pxo3iy=YvRd3iA7A4=HO}hHhJhuqFFVQ)mx}PjoE$mZ# zZ>|1s0ZU@HQj-=(anhjua{8pr`MK4gdg^AYx#+2+n59hdONo8>ANG^h&?C7TPG>aG zJKo}4bx!bs#r3-^G6DfIDY$NemhM2QmUxnPeUL#*chVMuGd9MjL`pzQr~RMsaj^`Y z-lStBb?^v#g~*KTC%DWMZ@StVDXs2yB@XnFeFNw78K-S5FdpoVk&LpRgM*WlB68wHX^sDrG&f82HzHWS|j~ z{|}|67ZZEEq^kCFY2)x>A|(Zt|Vt#xtr6!x~UiwfOb!co}Hg=mMHuO({_Tr&r_kai3eYz119o+aQcVU;dwFL`ahnX9#q|$i zJ-I;#q{Xjim!9OeR0_>3-d8C!`By(uXj0T*zqnwd#()dva6}s}sF9)bE+#VJ<FBlyU`FUY$Gm6xDAc6BbXrXu$1bxc z-QsKM28WDojgA-N+DN1#>io#rJ`%hBrR4fAmbrXd8|sy2Esu~8Zo=o*E0mJYsN4H8Y+I3|M(hT z{{z?Jf70daxST0ow1KYcaGfb$%-2i!dMU1ZFD~X#=HB(i_4L>J;s$=Sk*}L@JySe_ z=SzEwoAF0+h%T4WWeZ&{_wQXnzn(*vE9r6-U0nKbTk&fAo>_YSO!2w+0msfOal7~^ zU9O=g#cTQcJicDX*X#NEe7@em*BfzFT)c_@egXacLb}YMpfkl6;pg6UMF;=vzw*}N zt8jCs_$1YFkS;gVo5OTD%uilTHxJQeD}A_W>EPMoE%f-sbXmZIGsQeTo~O%8aPw^O zDf~QJycNIC6leMOWAyL!Z z5?tO-mwTyzyXkVv7%n%{<-4YEc{^Q7ci~c?%N5AMT)d1fue}$SQ@AvXFAb1#mdQBF zB%I~y&v4aexY{#ZST-$>==fMdrrwDCfqlPz$+n>nKVs zOP80?g`2sJ+WPNsc@)1w7jE$V)arLUAD4I1g`56mYX9%ujLRR;g_-c<#0h2sDYW7N zy1a@m%#It0Cm+q?@^QK_W6lzH-h4YQZ=(ydC{KLawF8$ubYW(#Cyo(9S&;$Fh;79> zUC1}f{@iBqPUd29TK%&F|3CtEsefLf{<&NIbC3GxKK0K7_y?l=ApHYLz(2)(xU3*9 z<5lH{lZJSuM5_9%PE|u%8$mOA*SoLO$fQ zvlJ{pwrt1aB!)~@6~6+LYYGdD^q-n0>Y-9wI}xkB?2gx(<+58FKT)Y2Q{mTRaJdD3 zQRMZw(#sT;P2^^4^@fhGhK7$goPTk5HCJmm3*=jVO%sr64fte^yUy`K9e)AqWf{*4 z^-39W{SBv3cM8kZO0AKD0~)@Vr5s+(IWTk?=fypqD>WICjb=mC&frjStGRmCIk1G% z>diS7Sx80CyYoPOBhQd_^90I+Cy|nJ>q$1`^?tTC!jhynh5EcxU;qcE{X97q@aT4am!A%^N+qg1f&%%TU zi_f@X_h(_=7FQdchMDz`wo~MO_*{>FmSNN>RTc}4`s_m4MELK?l>o?uV=;%UT}7Os zvH!Nyhz7it;j=M=$$0+bNrG1t2NNWfl%xy=+vG%L)Ix4|Oe?Y}Y0ks^NQltZ**>3# zVF_+`6ed~3%>k09U?>D8x7Jlb`Qrj?r&!E$OT+wDsMY>JN$8$la-D}cT>KbS&bkQ8 z!^kn8YvRVA-MaW!tOov(xPj>p|8!{J8$x~8ToYa5aWHx|=(!S7<{D)TSmW z+@Y5S`@2JUi+b1U*XyJd$At+5J*L4^LLvX?4MDBPr)m9JSNT}uPpZV&^?~z4Gulux zXNR7PCMA171c7*p;}Q>JWTG+$ME*(%dH8_H_JFlvtPKB%uKr=$72c?g9u(Q^m*%~r zhECwV)%!c7y)WS2o!kxLQT>pVB*CcGBuPj0K`BXsQLRY|kLsH{%7WLyolc8v@=CIm zXHnWF$+(Zk*gi*}L-&bkcQWlZ(AIW@FW`l^38TY#k=IGvED)`fB((-lQv1!c*oepP zmr^AWj?koF@8%6eEZ~R=?vRF4q`qI;+CGRyhtoB`Hh7YxO7Ig>k_1Xn51tf~`oE=A zJ*y@4bJEtzB~>aGUy+g|7mLWcpu;JfP5XpK_~5zpJSj*TyC05Wqp^FV}f4PcA)fx%|0nff)h5HBq^6(EhS0LrF183mZXIBc)~{U zFG*bEMpMV-W4gi;PS|wtd-Xd<)AMK5{*VnfM9$CE)_U4^nqMvcF&4=tH52U%>ec-} zUkRPgr%=LF`>xLjZ{CB#dO3i?q%Hk6LILRX3Dc%do4k_*iAeQQGtqBNs6I&&@R2IA ze+aLb-9;>3x<5(s{y=J`-N%trY0-7=sa2{@t~~ENSkBj6M7Pjp%$`aaTy)EMSM35G z9ljp{FqBqf+qP*3rPM0Nu_gC}+7P@K0d2W5Z|kVkFZZ}^bqHk~uaugNLZysN!x^_h zJCyaTPRvwCW~N;2WZ`(WQd=Ca&M%BlzHD+LJ2^RV$M%F=On0WG-d?Z1J8AGn@-Q{m zq}lco<6$IU>KpGP>6d;ui5Cgp|JeP-mQKI4S1u$ZXt6?~6ENLE379&Gig)ztcl@n# z>S7FxaL%P$RnDbO8-Ahqmw7Wir4R0O+V`@vB(=K@GxV)mh-FAu=^@`@Lb1E8p@Ik(LMQ7XOS^9b6NkX0_%`ZM}urAx> zaEWNi?#`SnJ?}i+SW}wyUDjxT0EI)*ClBEGPAzxB$t^C{+(iyc&_N9dRiLsYHln|fRExxd(DRbX!a}q||MG-{AhYiIZxh!83(#>%EZ84n z!G`@ogS7+ohb$c(Z~H^=bLz1~EFzi)F+j*P6Fre`am zIpadbl z;il%z(V?1KFFdUxR5N4_jre;qIIV{x^K3ZOKLf!iPtULB_1Al6E6!$gI%}0H7CQZIcb+z9(Zdmx8&HaUEZEf zz4Q8kx96JJ5ok>giOuTABY>9TBx3*|!=RGgJ1iK60mBjFfUh!smziL~l zZ1V2g<-a$n{GK!lQSE7zHnV(UAwm8n+ldFwG)N9 zn^h$qcFXg+mZ8J7!s1dR8@3*v#q9`MCBF>OSxc+r`3YhZ%J$d#b3fG|ukny!!8aC2qY5}Ivrz7Oj;d@akl+9?2FS&=c{;B5_x-zVCNU#cW}wzC3< zcFaoTRw&8A9ME~0?&?sk8a`7HCwBVW70&65hNU$d_r4aT*yB3k2K!rag5x?*wW-vS zU+>V4PCEl9B6)NuKP9~HIK%c@XQoni;Z&r5I86=x@Z>uaIj68eG0uBIc`dw~mKpMo z!l|>DL?nM7s;l*#=gn~zPZG@0kMPNeyMp>g)L&jNL{B$dW0$GZD`>414S?PfeBCQm z^{xHL>fuXggubBf-$GlB2m5u6$OC~A7r?xoj&$PVsyZ6_CNF9QKL0*-|EgMq}?fC)1%C9@lc(Y zk|Y?ank4B^tw~7|3{_21c&HAUN!aVjPDc}>=@Z^4rMrj0+A)1XS7Y?`N@k=T^e$;b z1s$YGip)42!e)O|N|Hc~Q*!BpQj+9cYCogIgw1|bN|QuH(}c|m#58FJkn2dPy#JY$ zYl5EC3P~C|`wvo*1fjDj)%KU9B+0pyE_8Oo!$JeO$Iw~Dza(*u8&Mq%mUM+BgwBSS zX~nP7y3Icm|3zS?2hCVJ1AtiNyjaTpI0hw|ume*$H-qZrW4Li7M*7fT&v#(>8pJBM zZfxVZSnUwR9Bz*9If+Q=ryy8;2x3;z%N)nNm!xTkBAOq=uU0%5L(B7oc<}izXw%vV zj(%V?s73JKT5b)j9=eZy-u^iIGF2=OAdOrPURsCn@zzY)J>gVq1Uf`PI3e7pR3%u8 zjzj$zfO>hSBKXcrfi;CW2bPQtcGD?Ma z)(9yrX9tO<|FWP{ig42*s)$6+yLAFc=ZB7R(({frMXhmwnOR4L!Srokmc>l_k;Trp z^^u(h^!zO-6%6E_T<`q#>%ZHvcOL1vIr$LiMD@w7-7>>!N@AfA1=?MFvy%EZa#NBV zE^$+q9@M`JOgmM?w<>OQjj4as_kWOJ@E?$fdG{nCr!7?S&ANlALJu{cT;22xF)t(~ z4IBc|Y7c^>KBlA$E^>fVRt6+;_jh=r85sgD7E6Kx_br}(FsUO`FwBV0&nku`iVr<+ zBR-D}f@M~-6A9=^)P9AnwK6k&yWei(Wu3=R2Y0{ zd%g-NnH20X_|Uf5V$B&Hk&!#%LqCI7D`?~|(XYQE+))0N9vYc|D-}!M1^;q@3j^AG zywl%DcGRvkPT6?ao3XozX7_QdyWK}!!N9g3r}xC*8)i+j#&!YW?^Lx=Ud-MDMyt{aD zAX>pb;w6F({8oQwF3gVNi-Nw!^)l{$hM8Lp&s$qfs%=#`<4A=0a0#; zxK-@Rr+6EPhv66TGj~AYxm((1fuC8E)V?1s!63G~;SniGai(BWH-zwRxb}81H$Cy* zk6~8E^}12Jq4Uy)%6TvK4A-P234ESiiNktU=Qf{SFD0r6fzb62OeFk?N{hr1yQ!aP#*gVgEl1N=4oO7a2v7K`Tu zd||uxM!bN5=~Nk|Lzbvv>ge7J_@X`Pn65fg7CFcp^7wUp+cLpEW|0-JnkAF4?cFSH6|G>p(#Ep3maf2K$g#hXX4)tr)4bNYv6m1{Mvv~FoedHNAp_L?j2Bpe&X|$vp z4*;>fM-RXsrKQ4n0Bn&Ch*U(KcJ>Gw4}h(*EaB?i1Mu8eq8B(h(lzvpJplY`03Lvz zxL||VfC~Y5o5Y^abeAFOW}gYeJ`?y?KbSxX1=@&$K^CU0OpN#A&9geV)4bvNH2?(C zCMy(sU;@keK;nkfS()BQUY!eBnc!mYB`Xti@f$rW(>5AH8M=HJ4#48C;$re7(ZjR+ zAduyVU*^0U1eaC(5xUT4#ShYjcAty9Sxq)*kxbUL%@{=E3+BoM&0lZAB@kud=VBLR z47&ONa z8>m#6tC6LY&sB4C1*97)xMAd+fz@JlLB5Y&z=jcb!6l{(g8f^ZLv3K_+X&<25}*pL ze)noX2oJvD(u*$I(V$#0&RnH7@78t>PY$cCxt+sE>I7u9Qhj*W&)j7Lk31&L6&fc$X)dJH{JJo!-62t>AAr?R z&#+Uk&E#fw^1MG7m(s|e$ma=k1q~8<6xZ6Jk_;I%G&X<*PbjPG^d;O$_b@=^mn}Ft*fCf%?0v^tzow&HvAlR?|4Ix*l|`p z1`Ch2)i3Cz3pxpgO?UeD9186PokSDxK&G1WQYR^+O_^17SW&{${~KVD0<3U#>0^;i zg4d7*$X46>wpLr%3DUaSi$WOl&6Ehxr~i(zk`sLZLF1j)12LAPWL;n~Gn3VM!3WT5 zW@hH1@d03GEH*9kQU&sq5s&eCKRk=Pc$&MOrl0*EFp!Nj_RPMh)-7BK-<)kY;)DWP91e53QBq z2Z&$1IDa30^mD+l_e0|O>2_^I$3_!#PFu!Z1+^N~+T>V%EFcDZ7=|sIY zUjYemqkShE{4_QME6fUi4^w~u@pQ13430d%gez}N%vard$Ip;@6i zjWucw;19PJ-Nvn>SX5P)a?>hM3wI~7FJnZAaJil+Ws2bhozDqz!h2I~?L?khQuoIp z`S6*Np!$1B&iRL-x>_s!4Czu*nwb1lJq~uCPEQ?|7j%pLUN9k({mA0wr$X)P%**t7 zK*PK&{tZ>GrgW&Ya6H<KZJEZf}FIzpEk<#2l>Yo5Oa$C}7m2@cdUL*w4c6bA>Z_OFhv_&r8Mb^dyO z*?X=OzP@KM>NY8(1ls;3C_BX}=}sw00&TBJl4|?=q$CL>U6T~n_WH;~clti=e8)j4 z%{^%RF3xv!)cFTkS`z$6lErz-KCVgmCGTUY&VRj>B!SLP$))d*k|gI+Sm$2?*QTw= z_>QHJ3Dc@g+apgh^? zj3YC$OKZ@aI`lxlk8)iX%{;4ilKi~0e+$o!fo!6UD}Bnr}kYES&XQAz%0 z7;KO3PhU+utoD$c9O6UOhD#M8qU6ycbdsDim&+eptW}ywl~JH=8(SsGKezPP=ld~e z?DJXY$1aKLm(NY7>FYFL)kL}h1a_3Ku{y} zwmoi6;a!1J(LkerXq_`ic&+OoegvMBq=cf#N8N0ZjrNf_2JI+=Qo)Wyv?F?Mlysm= z)F)R)+GuIY#IGZBROd5rzfRE`9PjXAra5Wx5jXW~Wow{{hE=n>M#UQ8sRez?|MCF@ zPvbCRnuFZSr|QV`>CZILPVR2QW&nR zH$w1q2O*&6ZG>Rh=S6b+tyUzK*OL^SIQLS3^DhYBArWZQa^*VGEYZmV5A-gg0(B2Z zg`itM-;X7AL{HuS!yUSxp10}#Te@nyB>;&f_9OuB?Uw+gpu!;4y(lde=A1eiCW)t& zV;5(79y3UFmvIpSqf7#d@E0gNRv=P{p)tq)FG}s+91EWle2%vBY1WM{>>^Jsar~z~ zw#Qf_pW`k_!4e|~#FBF@2pb;FAJU>S6gf@KfHaQdu;aV~U^2s;HhDwBK)9RzT0C1o z8OnkC7ISawBXiA6e=ACrImd!vVG1YVG906HPr}5>7aFT)TO08wF=e%NiF-1?%I`P8 zJh!o09HmAK;Ux5#;$?JRn>|BY@GBZfwUsGLUT@IzSe>Ijd2x6BX0bT2$Q1hD40}h+ z;>aT81&SA4OYn{-a;0XR2(xwK2{Pok?&Qh@2~(-n+x&e9mBIanfA8o1Sha;nu=DPi^Qk z2y<6GXt6r6?4G3hAh#$*ZE29O#Dn>cAKPUEk}yZ@J-pjQ6*u>8qT_70(Bl`=g%7qB&55^{;O5!lQ*b4AbDmC}m*Z1% z@R3Rn$Ne&mo?pPlKO9GQ{KIh>epciYOSD5*qz%2b1+$^?(wu9yHUWGphlI_!)nbXf zuFJTzE+sHJfQ!6o^-&;6HVTar4CIy7OmT`{c?T|W2D-L>_blbgi*Bj1sIfkkGWcs^ z&RmMwhJb0%Ba@wL-g-a->P+i&1UVq;9aqpCWDitou7|y=X!@rfY1-bIrY#Sa>y2Cq zXQD|Dt65!D{tv<;C#$q@kw93ki6UrIe(t$Rb1CUgW+b{wp*q zVuLy|OB6L*mo_T-z<^I$kr$JeGnwMIK{#4h0g0!IK{yL9Y7V<5)g>FS$lq!#{w`h@ ztCW49Ri;u}n~*5ft(9}7)iWG&(X16#S*f*#azJ{i;L);+)24d;_B$lvybtvt@gd?(vE2?b!(@Gc_@_eQa`KZ1S!VO9LE3xdUNf z>*}q?C&q3cn;0`yuSR&f#0*I>B^aK%X^Svxm^m(DAk5#Monq!sjZNG+HZf&0|2qcD z{Ow~?#C%f0CH5tBx}N{b@O8nE$@C zMVuq%E435L{Qo&<=Cj&KWd0wf<(y&ue@k1$Ibr^k*7=iT6SqV7ZOMOTu*`?PQIgM9 zM>(Ht~$#6>rj13nbi#>ee8^N$Xi`K)$y)ludj zNy|CI{8y(fBFy|0{$S%SSBr=gMHnh}r`4ZCh3AP$TE!&V(V4WX7_nF9U40TY@;G%` z7Jg4!p)hjwU0g()W#Jtg{neiat~mqBuy%eQtxjKxr$s?ZGG2Hb`};7jC| z!ia@Rp5gvFciZE0tJ)5EkLxq~pQWRmRQ1gC@A`BI8 zPpikYCC57hN#n2omR#~)*j%498a1es$u`@&<~pnfbrR?L@5#UVi9*hKM`u)aMh8?`E|YX^mN)H%y2lVx+Q5&PHQD?Cg$&{ zl;?96&wpfKJRf47Beff9jIjEL((=iyIQ~o8A_mUtjl}Bv5rY~O?vD?Q(VLjj$f6Nt z^T*Qi$gue%X^RN6ImH}drWvKHQWRmRcvael=xK(xos*Ph|EHPuQ4e45lQdDII!!fS zOUpPTL|^72+IR>0t?jPiG^>tTnBlNn)f$g4d{uvz9}y0=uHBk1A+OAsseFtokLbV~ zK|zm;kL%MGVTQ%ETtxrnx4TvO?t%4!WL3T^EgOx5zg)2~Nk8<}nBv4)8<8#yX;n)} zu_%04^Ab3gEU8}*^IMDUJU&!Tu$-7#@$o8g11B8ml_mNk1Lr9@1<$P?D^zFeI9q@K zw%KxXc@9Bz$l=G%N7IXk#3kz@%y>G;MI?@=6y}?Y5@X|L)Op;;aA?8}_w#q-8(BFjTplhI{ozg1lFns@g4#~us!^l$dw(;pTyqT8OnE~cls z1(9z4RXGh^cJnWZOJ4hKelXI_|JZvs|AUwjJ#@2bL8O~MBd4LuZvK?G%XE?L^yX+jp- zPvM*PHvEU4&GZ1^*l@8j3Q)qYq#BbOH^S;8x)U!S%Jv({4L)zex_ z*@!8MFjT0uMv5ZBE4~y(7%J2TONt^46<Niw``J!yoD~)dc|PmC-)(@mma6CeU zH>=n07jvx3-f6wWQk5hYS>6c@Hz+a-ey^OQE|ukK`@Ze#&QSZleL);6vdt=R6Wq{z z`0?I5`D1d9#-3}A48hh|cb%+T7M&PBBB!j&zW#M_$&rciLtI3nzU=${(Fuyjzxj|gg2CsSny>XNNdv>+N& z<*u|v7%93VZ4uhiWVjM>|D~~&xC7fkpA`GldDNs%owt~lZKm_)xd^$PnL_s4nAEOS=Os`xP#>6X?_W|oP`-L45SfGcm76Vm0J@@?XhBXi2@(-vX0xe}wo^5MO&YGk(zCOBp-}|4_)$-Ya;eioZx<;*=ou@!pG@ zgyWZ|2q6_5M7Tlf)S7TZ2i>oT&1+y zy1rgrDwI!V)w}gF+&=1PU~;_f-1U$2_K?*^jU3H-gj zFpu8CkIUv=L`&8bu-Hs%<9sF0;6*w&RO>l~`lD{}owKdYv-u_P4v6-vM^;;x&*sXN z@*Z=iIoH})nJXgHi~4ZsrF(${wK>mdZgoKaQX@C&KmF&MfEcVuz+?KPcpsb^E33t6 z{-@cxB##X-JS+ZRNNekcFh8nQpCiRT#~U^`ihqS$GsVBAYil#N{NdWeRkZ$!hPzw^ zs+#)3tMtOI3*B0@2@l*Wir};`SkTb=<#qYDl&)|AwwfOh^4{RFBA);Hmw8v`% zosA`;3GWUslYrqLI$nZ*XfPbX!|^Q;&@Wz%%Xd8=mrve|%i|-s{MRflZ@C?pZ`py% zPw&R%^7|shY!Y?Dh|DpR9X zahcXNkzh0O<+rX4^`SZ(vf8@rVV0eHp-WC7wlc$26|=;oKLeA_HdeoNwe_M%nI_nm zV-}0oAGzqF@V969+vi8V^@HDnU;R7v$hV?LRE@Vpz6#XXz5rG2^CAVPSh8T9?;rvA z5ClNgd2{5GV4WPI6#I2jg%3tP`8^W07eLs$sIbk~s>16dAxf#Sm7N zk3>H9EAOflMM6}H{r$vX-MdJ0`~WnEs(U!O?)IN2RqE}7Sls?8(o{R3n>tq7{&Q7n zw6nag%x;oZ{TArRV%D$z#lbcwdn7g2*o*!i(yPNzpQ-_)U6tUuyMhIMigfdr9`*_v z>#iWrLlP`$6BK;$8lR*a{gPs=VEr9U14YJ(B`jucO0#%5^rAN_Us9{{e5_TqnyQiA zoz0@wWz||`u~MagZJGu2ORWv1+?-qDd7-sw(JjMvaZj!mmr(A~RO@oB)k_u5Y}LAI z_5kI-QNX2-)G8-Qr^8YyJ_O=g8}U8I(6`n<$i=*6b?z;z0F$lEt71XKsWJaAfK?nr zHQwjNW&F|FvY)3jCs@FSx|^%zmsX1>n5vksE_;mMz%fXifmF3xRTW>W+Vfm}TryM% zAT!D8F|6SBYbGGMF@vu@bhxX0mo>weiV__p>-K*lFm(ZR_DM{0f{X!ykK-X_=$`eZkd2HkbTsx zac;2PI3r(6E`in6XvddY(cMHu@$*a_v2Xb?vR0m-?4JR;{Au5aBpUBF&G_+8wEK`OP z-1o9>?k=Ai1%36#sPiyuiCk&aInb<@+))QYS}FSlvaa%q<3F&YQ!2Glr;MVQfb1-5JMTFunT9)ybq>UIwnSkf`aL?5;k`8rb8~2Dc9!I6 z7HK~Z4dce}s58t44gFw4jDP5(9K%P3hK8^#s@EO7o1qd$riUE-R~sH4eh^CrS0#W! zGFg7hhzFf>b1;5txCKt5Wmu!;YlS&VKU8*(4(|i4P@0R*J+51YT;v+fnp@{?xu-yH zE@PMiaN6bi_K_YfJk7TFu<7Ys?PTFNcXD-pVSMtXljz#pCto^|#h<&5&Y~}g*aHwC z-d%8Z`v@)0e$bbp29e;+y9;36JlD>OLAA%2FrE18p{&Z!af?xXI$#}D6KSj-&8EPA*EZZ_(( z$D9+h$JFc2?%8ANWqNBw6^^VLke6w$;Hdw?QQ{D_F3`JZU>Pj&-aUqQR8k<73&dd| z^wPXB^S~lzO|?=l&|K<$s)#r`$`7F$y!$?-e)T6@)-s%%rC!B(Zel#fy%If5b^a)K zVzXRmcqJL)XuO}|ilE)gSeb*vOer$t@@+rMEssug9|+CrzSmj-LRxkklXu3vk9eM} zR+QeLL!bCBDmLtNyb?0i8g{ke^l;~Q9;h|lk*te+Gno7jC?Us_D#IqVQ1zDFsAG`*bJKI%--)Q-!D zsqePij-5aXp!&2!b0ITi#2MSgR2eZUEI^MG2*1CacQZjQjItn%AoUW4qg%F~jX1lU zNmB^17DJ})Iwr$XW|+{nXq-6n6-*&zB+RZit16Xtv(zYHn$nW0Mtgl&%Q=;XH{Duh zBBjmYk?`sc=Ra!K(uak9#j*VQsJ!9FsXLR$u%2r-8Kq&Qf!qHEE7Fms01d|E12dHl2p4p4MVumwjHB1-w2UH zb}Y2eVi`8gA($liMaIVwpDBvsCt+4F3lU*i^VkP0dKi$_n-K;oy%g;*Dps3iMW;r)UvRqNDM$$b~ndt`@c(6zz^fW5!+*zks^Kv$`VBOJrRhx%yQM0w*OeJ;TfVy9Y{PV4Pb561oO;<^(PdEI78`zpdR=m`=?X#0SA0?Q4EMki zV9q7W%v+}Al2=3iH#ByYD&l3(tJJb5vw!v&Y!k=(^Wf~<2rqzUkFEU@$ZNMx+=##S zVWWgBda}XmysRe&1`i4EGc0}PT-=4yR}JUUN3SVESFex`VqWro&dzZSIoP`xZdi$6 z-2zXb(l3F<7`VnSnhxl=EX612g2M}N0Gxh2gT*AV{V*2w-ePpwq1($NE2j@*zA$(7 z?a15S>t^aaT$zWdhc1liI(~K(Q^SH=gUW-02r}j>f5q4dG9Z_gX{ZB?+4$6KdE94v zvs%x=%R#bNftkodb5Kh~9#PN`+-tNDRedgAFM8#K7ma4w_l>n&!}qp;e5#ha_sw8lfBZssLk7k^W(5`%ohER4areaaXXgIo#rXUT=d340{S zUh(^rjRv|ii$IHc`2FDsuEHy)21B;yF2abyf=5fmEL>Ea4`SJQzU53TLNEj` zKjw{9N%o*3R28vPSAA&W2wU#iJQAuQq+ikA-X!Kp%{Ppx)X{(q3g1G|upL!1AGxg( zOk{3#@DoGz9KHrqje%PydVK@l?}DvPX2!YA*)!@qIO;qw>O5&?9wv5P@tJ!6kpB^} zB!i*@_UY6JN(rzj@Mv;mL@g-h@Jb$@h2U$7qRHtaBWw(!P-w3p*?y(4Ua4OCk46Rj zt0YjaXPE~csur1snAO-JwP1PLtySt7P0l9MCqolk3FK2NVHst}cgB$%1G5scs}yy@UPMln{n$6ffo zP3zg%nTHQN*g?cK7eQw z*1|JaA9Y|pWz@}W&ZI9^^dzpT5t~vff2(spc_Uy8X&aGz7jwC}0#Mu#vgoY=W7lx> zJ^hDqahuhr>bB$L;RCWemJC%rOb)50L72zLodO{MTk>`9w$Z6xX@VuA_eqcmUcsOU zbRC)wsElY`(Pg7oDAvIy8)mPNp=w2=ReOauRx6)vYwd z7;ccd@K(K(0kPkTDTcKL_pB}(+H2I=V?@APSE~`FyFYV6>mRUZWYighP?12NAZga+ z=+WF>d+T?ftqu)VyKFY(?1`qW!4671eQsrPP367&)S z!z2e$)m{(JCUAKw(X%Mehstv`=3r8xj?$AtfPPE)KCad;Sk|!%l2t65$}x1=6I>Ol z4p9O1etp|SQ$W>`|$)RROQjk-YF{B~J=irsPc0+YDnZSsJc^^CF~ zEOQN=!36lF!AFY~Ahx$)htiIt|3JmYcs5Co)9K7fy7CoK^#7)G1= zn#AXnt>Ab$<3)~9R2>V3KVlH&jqspY!6EBF$zyJwHuv==f^VA#_elNnw2A%A7rt=7G|poB zmL{bBIgF{qK|779j(#|fshs}$h^fRBeq#DeFWA{P@B50kb>l3iuah0d^mIT@V=B50 z+2`7G%tlpqzHnUmIB0{zv&p<&t&mq)nPJdRx)s{5H8^((&deC1v==3CXN3ZE=kw*2$hb;3MgQ+ zwM*2|e`zSB?=GzLt!OaKe}uCITrA$wyX&wpV(f(_zoR@A&&DM`Ba3W-dFdayU2Rdlq>C~!({wfNJ(bJ_dY-ly=CGs!Of_TFpwud8_NY?Y;6KC}0oc==lM zI1n?f%X`<}cjJ{C%`1`E6#e24?){KmR+P36@BK7h2~wkiKXeJ7+52~RyveI-74+x$ z))j1L8%8kk`>$KK|HbR@!S(uS0%7}aUAO-Mde1K>aADXNpoi2wsEBH=Mj>~pAZFla%hekppc#c# z(;i5MG_glO6d>k)l{AnbVf4>xmHybLGZ8UXjGcarZg~)D0r;3%{eAFMB~Bq&5HeoR zE60~U+h#UFY(yEo@?Be`if`i8meuq%*_91Y5QJnP`+)vSJbfcPcB4w8^7bP_u;iV= z#Bm;upTa=_iWBgWj(pRW4N@KJ$ZzUnJYIS1E2Dis3iq=&{`gZB`^~|C(e1wj!0$sW zW5vlGuM}{otzK^;po<+UU<)0FH|G_BCbW=sJZvlk-Y+%hvN$_G4x~|14*tKYl<_+N zqjZArPITAf+MW1K1iqi)^xWq+lsRMfk|Bv9f0$0o10cyS` zm7tF}(NFJ46My5a@+UaB(#DmbkYirkQ623LE-4y#69`KaszX5z7(&z=nuvsRRs{BS zNS(G)SSi4_;iI};6AWE=KPsn#_#EXLJZ&#)OsI<#9i~61IiY?qtWM|)3Y^6;k*bNN zCgz$5jXKRDIH9FE;LDDGU_arEmMH$9v;mk2O1MW1ql<^uv5b@D1P$x|eHJAPd@haoL}M+wv1ol8F!)t$NaA@ERhPF@A38%~RmmfTy|h_6{iX4v{AN=9 zSrP#{MwA%9D4{cG}eTyCw&?o#wUZJl;?9!;>Fy4(I8-{gZKF%6J&SnLAyi(B&t65mIFw z*6QDjUB;_-&iab#V@-(u=v9^!%>Zl!sJ;xG)d^bP_D9Ng3LOQ4CEXFq3(-ajUlRv>YXBr+ zoXzmmj7Q$VGK17-jzZ}ZHis6W{Id% zb#PPJwr$f67Qw&|gLx4^6FWsYhjXRsQqDs~Rg;jK=zLK&P^ug>;7?k5Vu+o_IAG*FnalJ6 zh`!8Y%4Eke3vZ^2;~(J=bqUuL_c>-6-{`Qr5f*|M&e2sbn0ODbNZS&5YRcFm8NWnj zj1)&ko|;-&IXxAU25AY1ZnYYb8=YGr@Lhzyj?Uqb4%t+`sD%pO-k!YeE81MbO2j+m z(!Gd+&67vf30wW~#K2C+X#1jC<(Bqts6ZvNArco>a=}yqDl%MB91me8M&>-NfB6Ud zSc0aCFM{^czN778zDsZdxPWALyn`K+?%17X)$ie`t__4?@5TUH5U*Wgtssv+{%kvcHiaO2 zewS)koElYszGwsN(F!!w>nQUq%wh0)7LY(8OBYWZ{}h7z>CU||B#at zKD{<*K#&z(Md|MAXLm40(kB-o5 z45iG_Dgn#_8!^OhJ>Zb({6dHUieW)Usx#n~4%WJOV6UE=!Z5&VLY=vie{I*dELuayP4LLx(}Q0u>BT1p&W_;=1P# z@gLv|hH>Bw#8ziFu&hog0kdQe1hD9-;1{1z<~T0lPPwQNAlew_*Zuz9e9v>po#_ z6{AYX8~k`O;w2G*d9pUyt_xE^=Pr1#MM z54iayq%CQ>+_qSgJ_zxtb{yIPeNNm-K%Y~$YZn!>TOWqS0sVRfiB3F#0|JxQCm5^1 zM6bdAh$s$3!4ODNr8c7d6$dbn^bayroio4x!h#`WYLegU!h)eYeAl=IgRf=2VXb^` zF18zpa}8yzhk}mRWpcchoqGuF7BKxt3*tFePy1X_i;OA3$0^n@9ckMhpiSAN{aeL2 z4+QdC?PC7?&p|B4e_`HDycG-74Lp#qwZ=?D!f=77Y$^lvufP5RSR^yK- zEO>zTt8KFR!h$zdfjB8GHiS5fJE9EZ72n*{`8@@fcV8c6#s!&qe^en-}`PauP&M zQ}|u?d!XU|JGT(`qw+I(K|bUqh^9|EZ+%_& zXv{z*5DGLfBzG3)Aqrv4z`c~Fk8)liMwO<0Hjo0De%8_n#;Ld#DB~b}DWJ{6omMUc z<)I1CXWS|l^hl)%rxq5c9E9arP-Z_-c~Ynb<-K5}WF%cY#vq-^aGc(_vTz*(h*G@TrE6_GOTm6sQjIYOiS)5LCv&NV6GEk7vD%Tv-~}|0Nv9MZrnd3*>0D zj-LdIH|{uJvG8_6Z2Xh|%B;Tyj&#s+T!-MUvKwat=r*7Bns(2P#N)z5yN6!>OvQ_^0=sE9a5Rml{UXJjY!lnO(KU!8RN#6OXg1c}~s9FNDD z8)weM9xOj2DB=M{}6n!dM{2Xz@*>HieZ?pPStf$!wd@7UvqZ zwy0>P{vgOE#Y6r2wQJKg$%x7dP4dbG0->sYRll ze)|sbhljTE6)+{&n%q3I75kw$1Nfr!8uYm+!a79!MX_~XJbi|3TV56Ji+J(4)VkWn zohtmSkZ7(`N<%N$Ar-xPtyDNBtS&8eyUo3{*NTyLe5t#e50-B5{&u*uvi#2GjcxnN zr^vYF6;H;vO&)sn7$AF-y!0WbItddux#3T4PUx~fn)k0s?k!=`MbkQOSm(I5XToJ< zk&wmZx_7;C7c*WPLP4ts&8NK%Vb(;w-cVUnFMo7PGnxcNTUPBy< zGrrh+teOBD^YsNlyx<{Je`QMJ`Z7wt?n|vA&y-)NzlQSXY&pYoyeN;(@X#&MMS?Y8 zDmCl-sPqK`!8+^mZKCb@*HD4}4 zl>?jnt1-g>9c9o`CmNrdX)F`=>}0cEucC-IF3dD867p*kknF&RTJ(}V3{`ZzaeJn* z$NJA%AXIEzG7n#}JAGBn_h%ZvWz91lXz1p*!S3Nq<9E`!g<rP{1_E)rFgWtzH#l=2GS8lE#x)sN0+U0|G~il@}06?+|OD|rq$t+ zsj-Mgz}HZ3chu?FmqL#Q=j+Z8h-t)-@ql7$yF2J-d9)7e4yK!0h+c0~=9X(P96-w9 zMzl7mguQ5p2m_OmMT}R~dM7~|4`iK}4W%JO)tkPFRd<)|Pnn#GE&YYvs7CI~0Q+9R`z!a%dO!@6X$xQ@1y*7Vg z{_6ZskNt7k!Xp2QZ3Qdms1Y>NEEcV^Xv=NuS01!T{p};DnwrP8+jEeGRFIw;Q#aam z(A$Wk8#Kn@u$#&ny%Z}{0{PIo)--4Pcb5ukq`>2-uPWwo3@hz?Z`EIH+YvhS!+>$- zXiko$ZMJsk$;QO#%mC5l!$thru++lu`3NC3j*nP&TtT=1)Df;kFsLr&|OeWc%GR`Ks)58OhDVLAz&xn&9}T!B&GhX z9i)fu9VJW^PXF)-#)`*E_sbP@52wA>j9}hx>-KT@%b0^c zF1}$4iK@-p-J7?vc55%k-Yie#T*5d9Q=>=mZ4PRZb-7KwVheWdn{8`Nbro*%>qgB} z&$c@aE!fLVW6*Dsio(~R-CcuQg^%^CjmBzuFvWe`z~CmJn`C1X6Qk&{gv;o5j+}aq zJaQg!zY55$Mhs}>H$zQ2yS>}9wj7qVy=N};RaU*TfY}OlP3(S_Z9PO>E=HU&JRO^T zLic9)Eo?^j`n~Vw(fwZk05&)WTm)IWl&rCUGq%^lZ`U&s{ap_L=Drs}u;9|%Cfs&* zFpxBMhQ=FRPm4LkjefRT=&JN8?7QEl^lf;p;88#^7A;1_ka8xPV}Tq6!j=~d{*oJ% zfqGnb$Sz4)bxbUFyQWZKoS^P_+wQ+pE&wrsZl?Jt>v3ejo70@q4eTX`@GI9NnTX*{dnId*EYdCcJ|y&e!Q<;iql2%KJof5(vI4`9VdX1`U%1Wp&B(+WrV%T3R^B0v&Vy& zqh4jTlD3M#_G7y%e~U4R9PZ_4L>vL)D7E4wLmI!sn%VAMHNIkcU!;k+IT+REm@{O6 ztsd!xI!Jm|gPYn@>0S^vN#8!|`8?W%oZ6N;IXk z_T`if204_LLCtXPnh@8EOl>Tp?3z!~?B^5CwK!xMM}Z*mh=gB!#f8YyO#?I0p{Vkl zu+Fyigp*vtwFz@Gx)egQYUiI&I#_P#1Z39`agW?YRWAo{*uugo^O<0eT#v3dgp?fB zVXIF*jXdh-B00y_G-4lYn%YAi8sPa#LqZRCkEdNb)Z!tjgo1b<&~1)(O*Jh+9P4!P zQo%dZo|Ij8+V<#dR&E5THE7Q7`6rq8MWZgMAy^|OG5=~rvlyaI7}!j}92x+%-yZ>< z_jBBt2`tXf+sa(bG(K-spcHbf$jEny6hmFbd*I#+s^q-m**X|QA!JVJydLnsN|_*m zaI0%C8~ZbijZ-6Z;OT~3!1fSdpaQV^3O6PpkHVxB0%?!euqSwwITf>nM(0<+X%Qs0 z-`mKtepZ_u_eW7L)$^4~8uDJl+)bcMX#GUwAx4H!v%zFBB3khzG@CqVZL=@4aLJ&2 zCjBz8(gjB^pb))Tb`Qe2>St^v`y2PWzH`2!IhAq%Rcv*`R}`&10>$9*^4z_nqRbEz z`>W`ezr9{@?3q-vUaJ2Py2kHRgHnMiYtCqMuhiE8TzOE61Ig4tZ`A96{#IqvI(i1M zQ9lCU%awp;1P$bI{g;3|TL~#NHE{3Oe*?HPRd7_`euc%NC;jV>q5oWB{O0;~`|ZOU z=G$ohgSSK{`c+{>!fkSB4xthK)8{KSqUZnDHKIlfDq;$?cfEnCIibcGbozOxy<^YR z&3=c8IdPK@ux3}mZfw3~%Qw4n-gutV9nqe$PBIqv|603?xDQeq%fIT$Kk>-6&Rn$_ z*u(68nj_S*7?k>(ob&M|+5UpobQ{4|b6wwwLy&E2fQ^GpfHHT2a3Rh6t*j3PG%$8Y zBd1Cz^@PiwrG`SDAn{;K(vS>;j^1s%R*Lh+)(y!ayQ8+-LO&6f!9Ag1P<&!4;%V3f zDM}4>xAJyY$X)6zd&3Xuv8q(Tkz@zwB_*32aA>hSmb(YHhg({%I;!$0gL(;!W!tC) z+R8x)?Yc^4)N))Cz<`(`1IG4{Q$kECl^9Wgl^?5{)pxC+wE4hd_E%F6jDIo5f(t&45f}iyKy{;fWXr z%v){7^1L!uG8{%y5RBAJ`!Y0kKu>@C0Kt+xWfc!krrNARSq!MeaQT+ZJc7vwh-@xh zchdX-*7SG-WrbynTT@+Fn%$V3hQDfdf~kP$&Ij6I)a5)IyU8bG?^gw(;7TE`7$BAS zWGs-`CS61*z~OsET=PzYY;VO1ze3D87aI z)OcI$O30Y4zz91AOy5W0;MZR^k7P?WO!G_irC&T89zWdw=xs2-MKHzT{>Qh-07r%MvBiD@q^+=otXS0An0H zMA4D2m{braUc;NjN1Xd`j&GA}vd-;f9dADGCY$8jwVib~>(ALuHnHP4n>g1x@&4bd zs_w3CG=PVLq?1tkVSwuDs#mXG{p;1Ms`p-6`Mwp`ExV5XHMUlla{1D^q+2?ZuarxR zZmHI6Y<{qwFJ>POB)zw}^R3N`&9TPv^wLsuwlR_|XKEGK&E_l3#x`9>y_PQ~Q%mVu zu9%-|HrAw`s#TuAujYI4;mMf>5jkUFMC6h~J(u>X9 z#>NU1U2Qg2&JhjBTuj&8Du`N})OA*ywdRv}P_1OB`rO*F+(>R+ZhdY;ZX^ENgeT>C zCFAOBnR019ztC)K&{Ue=s}8FNUenf=&$yLJKI>M|(#D8;uI84i`Ese+d=B(`j5=3K zrt7sbh-o%%Fx*38DZNxKy5*9cdM59l&6Klf^^JkNR6w=9xR|b-Z(1cUf?b95xn|=g zmD^n`7xKx#_hw^@`jyI*m(I`CYc;BIeZ|d`7Z=fgX=13ZDn-At<+G(!Ej?F6v)sm- zV!E_YPcML;>s`D!vY4*c+)9dDvoc@Gx~O~gQl(sQGvN6e?iuQs##*Ycl3&Ond2D)e zdNP5JJ>$+Jm2~Of{a`s?O+1PYE2is@HCIMozp6vV)nGnx8#GNO z_avv1S@+B&XsNhGH(dq28~xYHX~zi%TprEQsj3#z@Lb zYo;5U-E)~@J?qkAw48glv8hz9xpU?6>FUI;WChZeZfsmSzd)m*nyS{$7g7J3`AXg` zWsB5fIq;!Kyh!={T)lK2EiLUvg}K^dF;&aCBy@&XmalP9$4TH1A38=wd3jUi zr5cMHjkERhWsp=!`U(5?d(nNxyQLDx%U8sWD_fH#dyoZxrzvs2`iQNk zCGSD0(+Ok&3HuMIFT0Zm_EHOwaW`c|6G6>1Q!&Z;le_m(0cg&CN}py{CHJ8YRE=7Q z5-M?u2-^*!r$GsQq7~FPcpnXRrX6~K3U*Uz%v|CZl|X-!d-mWV{zF$L4^U-zG6mk@ zjeV34Ekz?K{}c#DUvZPr>fOnE_EKB+;@g3}=(6PW-sIjr$$QY9ROTK<1u=zrct9}| z^`aQG0p%t4pqKY1cke&6A9;2=>XSr*WeWn4*pu8ttlPUk!T-H5djEYBBw10RyKe%b zZ6{-5$rRI7Ofc6q>uG=~PZg<(yHu{`F<>yd@8~?BFqdu6Z_WY#GC7R%#dIFvwOJ=) zW&(n8dFyFHn^5T!&3a=q5BX{>UCU<-NR2gC17|3u**G}?AehLN0nFK2xm?VoGdXwS z2}YL*Fc#fAac%kZ_aDL+EvI_uK@g3KayWa za?(nkf`FpOX)5BR5tX>8GR7_&f4Te+umPg0)g+-~({U+x~xoZFu} zpx#=Ec|Co;iJV*r6chYR%`euPvnuC!E}Pyx1IOkOZ^$HfcKH7+*Qi_U_JdFfm&l`a;`XH)a_7hX7@szJ!AnALcCxZGH+ z^H7r;uM9j)q16i&7hTIj4h~&bbSHBYs`xcjH&6E_#Rzh>K0lv7rzRSn0~?!BQms#EdETI$^r`V_qgb)jCH$M~$~7gW1)_vao^c{k@v(Fyqa zUAqkD)@R-MbiG(hRiI93zBg`8XS3i%iKPvLhUTc8TSWse=~5}fVmXU>B}HuZ9&D|Z zGpX_%=`$(3ggM-M^y=uNR5b^ttMW;Zvt=IEs*YFT?L~-xxkl;&Fk{{Y9T_)O#kg}d zs~hXN2&MLT{6Ca?P|4ik+(W9cExr!n&-?r+cW>@K&fM5!6qnQ-^in8ovnqYVY1ds! zolRFt;I*j(SXN(J;?DP;Jg0@~MsS9eI}8U>6Co!qbvB;UkZ6oR=SjIs`C@s&aGaAM zPJyJY+GRFYoN1%}oysqi%7B^Y)Vtg4Wc1Ghv|0Ud zl>#r*NjGRL1AgIKD(fy`nQ~;A;{SXOnjKN|s>SrV{34!1j7w=62B~7cgb%m0fc%=g zO{BD^P|O_kHH=zQ#}-a^-wak8%+znJGj9MS3lt!KV``q8tTU-6Kfaa{8>HMs1qZZD;j`Qo~ z2&M^6R1}#eH-YY)tfolRUd&f>SgD%qdg}C6LYPT7|0XUQOUF_zKcA&>xs-y*EbWM_`5i)6}ag|lk0(AyM zRL}29tWV|As#3){vktN{=`I2=>LIaQ6{?s=$@L{8o{D!!t72(Llf4FREni3XBTJ>Hcp=d|a-FJ3wTdAW2tW{=FVUFOd{mEly~k_SOR7bixlF9wGnG6q zqJlhD53!B{d||BBeW;d|8qwEsxxm^oMm0n7dQO>7pP?0?PRz~a zGOCtr&Q)Jd=AKjeH*tO-Y9(z^*4VC!#yUS$U&_Lmf{BzB8m>mEc~!{OTp9xvS_mhr zmoTS-FXd9Yh$5*A&Ep%mOojC+Of2~fLl3{I2w8HWB%{@cq7;1r>C^q(^!$LLBUZ) ztL70Y5bRRbO=GoAN@0K?8a3u!-D8R%sx0(C6~_emMikAJn-x8zb*OsquCfd144xPv zgPKD110^6N)})z{ec(naU73VP5nNn?;L)?((~VoBkMdPDLoPKhH*OC+E|-euS!*_B z(C|YqHf{-Is=zRH1|ZM1(8FK_l#gbD+IgNX>G55Gcd0y70H`e0S*1;7a_I^tDFWK3 z8?Opv1@=P4h60y$i}^*Ya5%@dKn}*16qb4P>J5PhRoIPa0fwbOHh(7RXpdifOD7fr#=;isN*48xrAyaTI@3ku67gL+xDx$0ba==H~* z;)Y*zj(ZfHQq`Vv&cY6*C{pp?5SKktlbE}BZnB83tZjfR4(YPx5> z;_{PkuDg}E-XmE_}+<7mTb1^6|s=z$izlj6) za&J#KhoLvlVet-$a7*Z15>H1BWhY-nGok*v*`)JE804He*I9xI0}?|r#8uaF>6&vE ze9$>Z&@uo{y~ue=&O#+U$GKU8V4Fp|S!A81ybJKAPUlBlkb1MUqefK$2D47Shk+<4X>@elAq;t_oOy^4gp-T_z+j9@h#=KZ z^qYs`y(8RXVBte$=d9~saH40>)ecpI#`*Q&nTD>aLtGtw?BORLP5`lB28Zo<^Z_o3 zN(LK=WFit&+LigE^Rt*iM173j$F>cWma!ctOFMQ3In6SLQmE7<{}@xuSDYl~Q75TvFTUsm z30FTgslh_&ExY-u%p|SV$EYg5bjoWrDY;ay=EefA+j)r^g=vZdRp+j|f|Z5opz;Hq zq)O-JJUjiIU35fj=w133c|Y0&g{vyNV{u9I7P~doH)1m4=2NEx(P5`^S8z+RdDgpiF%hK)sFE68RG}Ur@3j_?avjZyvrG>x|y~M4+RJ}O1 z(>ZwXptEC#v~)GPJ=A%elmjldswa9(K}vD}l|Y|)9(|aYN=~7U(F)viu$)@RV-=y^ z;}Q*vyw6Pp)NZ^kiw&8rFeaATRJM zS;g$_j!lj`i76%hmPQcB31t9w4IdFxT4jO7HAzI5$}o-xS5t}!uxlE#>q<7e>Sc`D zTZF|A=1J^S!ocn=#?<;wS-;3^WmZAgCmsE=TCV9eiDw|uOC7zU;e}Dq_`(Y$Rjpag zWMH8qtzDUV^zw^L=UKh}N5j0;nOf73fr!k1X2tbNUL(c(+jh{@mlq^(f&2grZEV;Fb($eCD z&imTk6K-|y1bQv8xL8bNh&E)_Tw_}xHt-`%*=VZL<_t2VU4L>6+wdoMHq~0b;k}&A zW9q;@gv#_RWqQtJ@(RMdL*_%>Bj(*{T3NM7-yKdj+YDMfus*&_R<+G0o%SPv-*8VYC2@um)VSl!Xl&DG)Sj`X=?*Q{IUExrxSlEFv>GoPoepio+3s zBN3gBG^~Q5v<@2*juWUFMpO;j%)^y#R!KNj1A%2T3Yf!BZdFgn3ZcF&Vp9ahpkjTo z1pWs}rab3h9D#vcrQf37sFjzB*kdokw7@1{fEwh5-`u8hL`*orV%cJ$tZ>(t%9^Yj z)QkL#j6$$(lWC9N+o+ylp~TuRnTt66MwK2gCwWFke!fLL=Pg1#s!8mu|A{fB21O^5iTCq>de}?jyAJl-$UN=Qbc|$`Kfk(CcqKm1*^nKt79l#<3{gIWCmuOqNj7OK$lbijT^b?;Ujq9Jk z-N-o2@tR?FKH3A}U7ek(z*qViD;R}9br^VHDOIFC`r69JcpE@vUW=imZIEhI28Q8H zW`H`O6GG_Qz3C&%yy3Tj3h{+n3+*c?buoP!<~%h@Xit|-N8WI{p^A}Hbd{;jm`V$8 z@aCN@K!$v2zD%YnweZu};ZuoSh`oioaQvq6>eoa2K-*m>V6Ud71GFf0>T1KWd^O|Z zEL91;MyK60d~7w*`nJ2Bsx<|Xu7#wxddz^Z3Y&S)e&_uTeO$y_?Zbtph z=4qx<#?G_1E$WF5RZ%nCr3Etv^y*y)6K@&4`;?vuHgFcLo8j?_dI{T;YL>WxpV9uV zr>{`ayj4P!anXAF&C+AkX39C7#e&VRR`d4NHf2)zYzoJ}cs~F`27z*fHss*W2ZYju8sHaEnV&ig0F7Rolc#m9^fJCg~hEct1@>C|9$E8i0ZxZ}T7HI3(HY z`LNAOx0C=dc-e0Dv+3&0W@=;El%H**pG|Elc?AUOIXy>K{VYy>;1H@o)Y6&jBkoVkSe zJV2v5q=Ri<@8KrD2DM4o*kBs%Jcj=Bxp%9dla?Y?jC;Tc?f3#&{4NXhg_lhom3YoC z>qfsUZaP+Atc^4_P1LKEiMf1fBA2J*)cz|0Zh7UZceZ%%m*IGek^@tiM4|o4TCH(z=CaKs!rgonaT|K0RG*^Rl(rCG#KB{BIVXW)<^h zsAe>1dvMsb`VP%guqtKDf+;IgU z+vpM6lUj87PzT^1i^j(KbP=Z;=3Hpuv@^_DbCb!cN+PM?gCZbhF@Mg@hO?Q&O##i6 z%emE*gKE|8jE`_;vh&HpkvXiMmw-S1 z#A)XU$GqqmONbYYo`6zx4Xdt9_RZ1qpypw%i}o`<>QZhr`Sj5woDhLFj|1DPl2@3= z`4TK`Py;_s(jwdoE47 zgxA#D+hwN1XEK6+OX6GS$F?KB3UTQ**a_rI2>74}^IgaRbS(-rHAz!@KrM{&^Ug zhXk60b5Mttyb~8Z_Dv3){({a?^Z0&Sux#@%Mdydu-i03E6`@tjVh}?LzXF9rk@Cu5 zS&^nfQ|6*xW#!^yc;@saL5JdZ;S8_J8Nmx@@m-nS3g_@u9bzb)_rJd2f4zXO+W1#^ zG4TCj;QL$fz3>f`K&HRK+vw-p&Cka6fDu(45#YJfSQNJ^gh*o=JP$OlVj{;O=%)`Q zruOWg+B3O#A5NL8NhG(FdowepUY~1hP_{KbN)7$%$TB){K-M;$qE-lCQDYTdZ2$t# z<|Z2()wzwNx4v8bgkI^Ht4F!*xtnv}n){cz<~Ks;!?7(oj;YS5mccuh8)hIeyk(ZwAUtW97r$>FAtOQ$y*YY7qfb_-S|$WcLy@eb)1)#kT0 zHnZ*lb$}p_59VD&`5U|f_%Lu`d^y&xYgt=S3A-p^qfdoO-ASqIG#M)CZj(gys-z?( zt@p^HL&b#zrQz5xh*Fs*kbu+jhAJYEI}y||HHB$pC=eNi-Sk0K7xvHx)mYd|A5>9c zAAL~qg?s3O$}Q~22f8%3kJ`Ff_mEm4SCg6Mk>!n>!->q$DyB#DyS|=KHQ){H zn~-)e*4Ri0LF;UwJsmY}Tu)j- zdH~mB%$j9F1Jwi_k%j^XiXcJF#3OFWBA+~L=d^zjtk+__ny~Q(r49-Ow;?COb(Zm zVJU>^kcYh@T)m#lnYRk>0L{6l3-83A=ODuG!r#V91_Q5T&eK?X*qg3(Zk2h(aV*zq zR0J}-v#G9PuVRy3tyy?C6}y(2r-&}RjjFwIwn6BMOC$BUbYmo7?j(3#o@Wattdw*c z4xc;y~+L7z)bA?OzqWU1r&2P4!G;TOUR;o#dZYSer<78s$ zz|N-O=6jL3bq>u=)si1YwqQ$U3q%NUu8TZa33V{udW|Hp|s9v{R-)6c84jm5%<#sR0-{xrQAl22Tb z#2O|s*-YD#O6fF8kZ#GW*XqKjiC87UpTSq$4Kw%Lpf4^9HpmUtY1d?zuS@(nl$g6Q zApfgWf%XWg&xMO_Y*Ec2rvrLyM_Sf${D+#U$jIeXtzp~>&_&}?20goRicRS-tYu9 z+}{pQb|Na70lb9_+o~$cP%zwz$XO2%14Sq6ccE zMT8@0kv*70&FdORXpl*9WQwbX3y8_Y?x~hI63SuW$o+$m+6a!^8!9z`BOAKKk*OYW zWJ-u5M?E5Y*jd7i+e1NursyxI1(DFz2XQBG8vA*0hHE9 zCig%kX`zoqa#%R>>w}Qm2#)+(sMG+CZ0`<7i0WR}HF!^mBcBS<+5txfLzs^vD9^@` z-;blGR~(@lde=wjZQZ~Ax`uc*FdRV*ZE*xEfynGl`Up`L8fgBy=1W9j42~%32Z19u zDjc!JJqAb645g3oK#jDB^bxek9?YTUsRngnAE7}e!x4CmWH5yJID+zQ9JwQo9!ZY`?ITn} z?>ItlM{tCAHZUAP4Q+7*%Yn$KBOD>hLIcgmk=;aL42~%32Z1B6P&i_Xdkl`C8H6Kx zphj9mID!`0gE`c^u5pA0nG{FVl4_Feth-y{NGOMeBTo)OY9l!E`cSC>9C=l@IMSOL z0$wwPIC3gPYeyUz1YtoO3E4+-arE?#BmLM%z|bg;5YGmPBkk=YSP4W%ox+he_K|Z$ zVGNEa>IZ=%w<#R4#XS~B*gm2MYNSO9M?yojR~(^1CdCn@3V}Qrg!i<>kx&i`N4{+k zQX9dMW~kHvj@;fYj`X&!fh%Akj(mTJ){Zzb2*QFm5?a^%SR6gQ<48a28Zb19BgC@- z;z;{-%~Z^~hA0aSG+!V2MWQeUM-=sgz>!gfBeuB5;s~#6^gxZlkr+Vy?!jyBFr* z(=1)Yq#K2P0>UXQ@!dYUJdZ=Nh3C*99Ln5+YrZ&`jiaLVs((~-C0}_&vo`9>Ey#fb zYKzorI#UYIituoKsqiKgf>WZev=5G^_##XS$G>n*5SNTr5ixZ6Zj)lCf5MbbY{REA z+|q`ggo-GvTtz*r%8j@NX}r>Y5PG?>*}G1uJ%lw2X(Bw)xPgL9RB*;Fc$jlGcMF>7 zAM?d&w`0g&n8in9Ll)O;a8E-Y3kHWc0e6%51{#jXH#Tt!3n-nL^^=z110-8c;r1?a zA!q{}nj*+U;7#sk_%%6`XUFYS7H)2i}aJE!=wm{F*5obET zZ~PGyo(J8R8tZV{&pUDpk)j*(#_g}VsNOubc}L-CWS%WNMeRLK?cGl2jrrg%MA?fv zf#Y;YPrPPw4~{aP;8&iZSKdgktc8CA$RlDYG>@#I^Shg?=izwtT*`A;hzrGVgtyQv z%pw1!LW*8JMX$aJN9L5)!F_o8@!b?ouWv1*B zQ+1gsy2R96W=bwG6_=TUOI-V9uK7}(4J)8uN&^D40hdp)}?Zn;V%&e@1D{BQ_l{kM=>PH0BXc>BOVL zFEOJwc({#D=Puu1ZcEUKdX++#1x!9ATfr2S59d-bI2Py1Mcl+vKG-?ywosy%d##mi zt*Mn?+G>>#NXHF)4D{{cvh)*7qQJNed|Ls!nuU3Axv~1N{`p?WF`rD{h%=l(DR`f+ zvb$VR44>(6_DRrYC9m_6d3dce*A3~u4&EBc64Yvx^7RHNj(pwat*Ab5YRfxeELZ{E zaa@O>nSskloB($G6Y%hbxddk`)J}D9S*hGzy{ykbhy|KCusA|JUlkSLnFLxmYnmLmz*cgb0y@q)Gcb4X4Rx~m>o`HmiHZ* zW^sd_UOV+zeF45C79N3K;XFk*p{u_2Ij5e@BNbtQCO9lXbs`iD2#Y-D#TlJ7MR{jl zG(D}41i$Z^Y`SfH&V|Il6RyZ1pN9v+Gs7Y^7`8^c!6t7hjy#dBuOmLSs!iF+5sgG$ ze(I|0qsvj^VvFTyV4>bs!Le5Ht%27QN**KYw_qN}%M)`7=p`aJW_79?!>8JpId*@< ziwkF8@#PPH-?w%7MtFVL{c*(w5();Km1_BGV;MR^-4NkRa-kFT7m`V!38s~q8OL;b zH%I>|{u^Dlqx1i}lT#C!bY+fiIVt~!Gq`ky836E;s+RI_LRKTMhe(AV1Egd9#TR ze31ChC-QB^<3zgGHPCz`r=nkRJO?Mt`u;BYViMP zj-yR7D`;WS3|&%O8Hv4}bopZ~pR!n?Guc;NOP$ z=yG+!WqAGL=wNJrhdG|20aeNKH{JV(snMsIf10`q4}%bm_LKN(b-)d((Fw{D zw}F5Fa*D-?v$$A_&^yq*+gw<^8)d0d?QRX$OX^Yg`>d-86JIEoZ8-2!t@-5y)gA!u ze$c?b|MqmKRDU`+a+|0rHy`p`1SH7$MAl%v-M08_R%7!avIf)G`B15W#?t07D>Unr z4{i1aVGqv}UxxdfT@G~_hnP7vdK8l&yG4Hp@dgpqSz9k?!g~lVO5s+XP3dP`=P0~I z7xOQ$A~@U8KMRUWKc&|OIY~AAVvebASYPRC`yX4W_^HK9AnK=+>j`4 zx}=CbK%cdEiPh*a~P zJ)nM;^0!h)BCv7cT4*lg$Tr!!@vcl0|Hr-eiVVI(?tkm zl^1ITpRKZ%gBTJC_3fCumjAPdT z@0F}I1#4iyvTA_+g0&`7LmSBYEn-m&WGVIy0yV%3{*Xvkw~+P1QDgmFapepM%k0I$Xf~3A{kD$<3;#x0}6@x+#4T3-I zfyY+(qrgMGDFGh4yjb8lRIMf$b@UQO!w)5q_ES|$7=uDup=qxLJv6Gy1kjjukq15u zEV@twJi5?sHKLUW{v8J|ib;cjmpc`_{0VbiA~M~=%bBaZnhR+^jrvug$3THLO0N$R zVWZg{==Sc=EPrbB3ayO|^~#2Q7(mun#Ssjc}A7^W!$}O zKufV^5TNxM1zN9WUQ1*o2DBtJ6?W2uyNmEr>3)$70lmmP-z%h^#fw2h^ATO3ZPRRV zI{#+>6i%*SJB=sEOIVDI$A7vM8~mqTp|T20OG8Dki=?X_ecU~BTMUd%vGNOK{y z|Ed|&oi%wMVaW9E15?J9=@WDJ-NuA%$hrG&*iskiBwrg#G7}ayCwHpo}G;+1==h~ncj`<0nZ$MG=1K!1OKEo)BL{jgTqs1LYiUW?KJ4EMdwCCWh=ATJ3|-|Z%u#k)Tk-wDmIrFq0c~f z8#FBub*>S|8Oc;_)VU`I&%5>--js!=Q4Np!U83RH<;7}vuV0|)gVv)hEn%1~l+oT8 zrjRY2pm+S)qWyC9$x&0oj9HP|rZAe2*qm>w;0ejDqT9vm2Z>2BwlT#(iO!`UMB9M1*{7}*Wc?hy(3PdE z=0nz%(-*vkGE~h5psHUQA`tZ}ah#Ayk%6e!c@WhvoueI~$iR0i%9#5mO(w>30R?NUJWGt7U92z3iYKNHcHjUp9!a4jj)-iQwCT7OF8&(gJSiZrAZg8do2*A;?& z7`FcK;^UfR4TIfz+8ns@}haW_t(XPI{p$j6HX1^y*keyv8zkJ_+y~Bpne{ygQB~ z5{WXXI6GLLwTC;~o)m>U>T3zy+2zH;-4WhC&_-wjIEk9Fl_k>JRu%#}*vf+27K!qF zB2z-}v#_U`+0j7h9-PhK;;}Ntnc_nTMy9yHf|pEjRD2tVx|f&}qdO|b4FaOZ6+}7Q z6B2>y7NXvB?HUk6YGLDBt}#*#&ggC1O(F7Z+C=`8~J3}H{F(@jbsq>bwHdMaQs~Q^F64nLU`;?HvaeHUdySq@BihJ+@ zoH6e%n4jV>yIr{#rSY{g3Zl$mmg!EJ7g3phtYj}~2;=M)4yoLQ?;|Yu0s8nMe7J?f zNQXiidiuM5R@p;iA!RoYTb>U-ZYg+Ml znd0xtS;S1lb#ehu|6LoN&M2P#)D_`rcq}$6tSN@_IetFt7J?F-E)F?h z?>|Bd?n5pn=we^Ea(ciw{@Na?h`(P*xAG#jjn>Fn5mgyMe1+e9v(bvk*|@{J)6T(B zTO!FbLvTeHI1T}SK@zluQ$Ov6j@?ZBFZjhG@c9$`#kl?g{|UNfEPN43vxPt9PjbLm z_%gogvloBCsqA90@R$7kEByIa{Q1}X`8W71{4IU_9X=3k?fY?{g%$Y0?gb00=-X=gSmULwrEeqjv5r30(}(gM zSlEE?lAH}UVA>Gv)4!A|=M zufSI{^;Z08;heAVO3L{v`Uv^pE8IpelJmX7tLd>rA0cOZh1-#MS$Whej8gt(UAoaL z+=1M)g*)*H*uD#YE;b8e>d!9qXI%YB@}IH7=KwE-|3)7#Bc<>z`uGg}{4ew|PqxYo zeSAMn0pCL(|CK&IO&^=+!Fu|5m_8n)kKdx#euF-KfPQ{2eSDTaK0_ay>A?p2c$hvO zq>l^qaSk8#!eoG`%S_NECgw5|a+!&^!~|U8$}e%nm$=f)T;V0I>=IXmrzrIjR}k=K z$Bku7;Ksg{TFi~*qgUKmJ_g2({h-&_-==Te*j3aLZtQ*ZjT_4o7B}`oUSofUzHwt$ zQxmzd_nF2PD%|4T+~UGs_2(Y^LBAbPf9_R(4yr#7s6U6)pTqbAsd$L~fSLGHcoZMX zHC*8czS6X<{=6Q4W(!ZKA5ZcR&-8@ZbSDk@0XTVE|G2vT&X;BF)sOwiI$XAP1hq3c z%kgbcZrfIcN^QKh7q@NZHh;2GMc`|8rL+PJ3$Li3WQRS){2WdPop&lOe0Y%CwNp== zhu&85?-QOqdlvE1DUB~F8(&G)338IQJGtM%4jeh+bSp{2KD{Wuv2_jh+W6*Bo8u45 zBt)bcTGT>zm1>n;wG&shXx`HP$4m{%=h*G$c4sX2qRU0%1p4WBLsvWR?4~Qc*4j#Y zW0mT;hzjDTTl$Xg;d+vYiCLRzLfOK)DJ%lkFp2Hlu=>)yf3TaV(^#l=SY&(9fPvi~ zHr@J6J`MkZEbn@i;W3h1*D8b6z#~M>z;WQQP^ksK(X9d!7c_(^Pl)Mi%>e|E(?uQI zoD7<{obSLBA}^%sRXP`VYAL_uixz%hlrN=|`SOHYnotEyXxAW&jWpgpS6+IA@9n8( zdlbGY)Yy0c*wYKic84xUJMHSzan<(%0$jX8fV&L>bivsu77$ZfU_nyWVP4xqsK8`~ zS0y?z1`pm$1jXQiCYDFcvKgDbvAsJ81X!omn)Yx3+t`W6h9cauVf!=1&OB^49*u1z z{93xPJ)l-j9=o_Dt+S}nuj>6K@T4kRdFrNWPq!~w&AlN+mZ_U%l_*+fm z53GtPG4#Mu4=l{>T62NGMrwl_M7FCaGf{ZJho82om+VDB#U(IMV5N}=rEf83f&6ES zdG8i;X5c?=i}`B_2M^N63`yWU^znW4@!j-sfj-XB$JglNtMu_->EqM%v7cVsix1z{ zO~qa2qAqbUm$`^b{Q6~n713QNj~|bPE9V6RS3X50bLG5r;mRwN#+9?`!Il3urBUSt zg4ufEYTBM@@B-fN9+2&Mvsrm2&Hke`e@7o%Gh3c`!nUUjz75I-Js&EyaZql9)~yK` zpb@}Lpw4VN91gdFqb2sd*E);Ep9`Uu^fUAO7r@VjN-dnF1U5*vvdw+haTwlsM>ZHe z2F<|?bq3~kgg9Z_94@&anwklM;-)h>Snn3#u9J*+Y2!!Fp%;;cAS-ln+4BaU961IT zp$H7&X7clN(YJVh9GP0y3)lRx3t}FFOVV07q+)%~Fv$)0P49x}%>?*6N+# zp(9EavAZ0S-2Lt5hso~BC#jrt%{hxp*f|HPAo_sZKiA1+>6n{bNU{vfCTcmI8J*6- zZ@8QNu&W^hMB#(f`k=}`p!zHpf9Eh+tgTn?M;$WlN2}!iMa^#uk?9XiI(!qpzxfb# zj2T2cPI%yugIpb9A$2PlsAOP}$$8 zWdA3wbjQ4sIHiD#BTxaOaHcR*r+`qte}T|IXx!T7EqmfzH=Npt!?|J|6198o|SGZ~Vj?^FXrWI(phTgBv`-FCZY8!b0F*6_G|Wgnwt@V1lQ? z3<83}O$Os0`6+hKQDji4NJ-~Sm?h8Vi$&b)#2b)^B?`ypjVUuY@qp627jcUz>rI17 zn#eCV02n#5Wqd)Hn)E_GbGt1gUx)NtlKY3ll-whDr@Ib~~oE@W`7vrcT`|6;F+oz}au* zlwYB%pG;b1HDp)nryz?h8`ckQl@d|VZd9^pGYM>=*crKrzGG%If{`*{Zo#&B(QP(f zP3Sac<|tr^+CDUkxSdTzoDQWW@k%rI^en7Z+6*<(iuAxDPR0LNfsl$Bd+*Xaxjm+` zY@{ryDuR)5=m9(PiAlsOK;2`ku*^7bVZxH7QW6PuMA*=OlgIccpqgPi#W3A5yYnJW z8dUK476f?(bCO399O&5&b*Pt~!=G8QhaTiVwKq z;mK~?NhXuep{}vr;|{zz@yE__1m`-9n_&x8|CK|f^Pak`8N7)ZoGz6RE1ct-SaQ{v ze)hgQYM63noEW7DMATNz*weDZ05vQ?UNlG?LagRfNvL#ZM-A65+TR8eJ zLcHjt?2jRWe10K;a|BEbLR<%S`0F~zfXD-`t4?%or3184skW4p#!Bm34I z=JD6&ZDWIGteT@jud-az^p|QOcPsf#^M=|*)M=LNy)2Zy#$kpt7+$bfD@3Vp5mdllmQDQV$^^xXIsXHu;Ew^S z&_!^H>o`AA+Euf0TYELE*;t1cjWrji#nxhCf+#~_Lwxt}L_(*<&d(?vVpik!FHmE6 zLjEYe#aq_iho^13A}q+^Wu9nef15|uTbQcC+wmtTY6orgQ+1Q4WwLe|ObaQIX5fq! z!t$~{Sgy&YWWj!9NyHxzxsnYQ0XP4))oRbpdpxoq#gSjY5N5o zt4WH8|BI%_)Zkq9qP;5GEhR}H{ylQ(kd!1jm)gtjax7PDF1=n#QXhiLwYQnBh9;dE zX(Q!)mrCcGr6dhsI=?|mlAKHJrE>*gvn`(AETu^zo{i<@xkA%Yw$=rVQ|&aXu0=H> z7te-J>shD<(?dD%gsgiWV;Pl$#k@$-RbY8h72WvEmI>_QDfN}^Sa5RW+*?|QX@Yo zWM@Gzc)uNG!*CIq6*`#6KO!YbFe_-1qiUX+p~=h9n4 zT~ILtSINQ(+`2$9CYMshttXZ?{=HI; z3dZP%QFag7_)kbl5`e!ZNeUakEG0=WAT&wg&fF9d1Jj|MH1U=Ep1tP(Z7KP!#5zt9 zkIob8gQscx+d%n^7!m5Qf$~444Hk%yCaL{oy&PwV?LPPmDM^w(2<@J5?R}Zk;`lyp z#84Zd$L&V0-Yis{<$RY8-R)A61VcB5OUrR~+~yOfSh#zKlq@-?B1(6M9fYZ&lN2|L z%I6fR6g(_#n?MRQfJ^nhr=%na^u8XaxwModIhVqE-v;Y~g*|FQ&#duNmXg}PCa9Pi zC&R7aTCNFh@GqF)Vu@kLSRpK2*YDb89x5cJ1dBnJqzn>>*E>))6uYp>vP#{Ju?aJY z7IFVdN}K>8G;tC1>tF-^J}F58K-MHlLF*@_BngINOcyQ>NL_~`ket=()sIW*Z8c`P zS2IVnnn@)0rR;nRbPwjlGZ!>agy^lX#x0B3f6Awd`I4LRZb{%Lj#im1rWffLF7Mlg zZ%x@Zb#kw1Y&w&7&t~92Bn5vXx$u^we>C<3*t+U20F1T$duM7<-7Rc))vDQ8i6id$ zY_m|JMeA zHE?B0H7tR2|AaX(m^X#hH8S`QthrcrSbLma=Zr!gaK#LTlI2_w_@rJvVNk4rp~wKN4PT zZusrAr_1{&fLc$Sjl@ga9@om4OPj4FU3;tF-+g~OR)4n-Drxt6)a@$u6r}uj0W3kA z>W(g@$m6YzOpSd-&0-a0d|nH$3X5wAZz33)3|skjJe>WbrXUql+!UlD+gb&|fRVVo5h-B<$JXSC7N9 z$6@vhcE}56=NyAStT9|J-AOK$a83ggWR`m?55FGTkBslw2Pp3r$!`dJG3CeOB93F^&28TWHH8(>%pE>0*>J*JY8a@6MdAdPg!jLn0Pa{u>^Qh~1zOOTS zj|V4);K))L7xrn0=_*u5oEje?Z$3KB>nX3=vo2!Lz{zg80<~oczL#l0!_5!hi!`rg zPBA#tOK<_COY(^#9q;@I)UJ|pOvFAgeAA!STUM#&+h~0%PV`kMf)&IoTajyQi7?Qc z-B`xfdYrYZD#TUQ!zjy9S*&4G0|2^Q^Q~=q(xxT8*?E)~oZ;7c+_qb}?6h6ti$iZ+ zQYM2odEGa7qi(PkUc1$+RH|L}yNBNNRcZ*?)pp+`BeDM2vs<;+dtle_T|;l!T}EQt zgMdv|_YF6~n>l4Scv;3S@h6Ag&=DWL?5gFBIUR0HXe54o=#6=`8HsVgYiSp;E$mq# z4$OVp(Pu;nRe@wM%Thp&mI}t7-hco72zpS~F%O_GV&)>JN~CBir>^kDRV}%-sr@5% zUU+jiE~89NC@Gvt&4mZOH^<<{1HHJ3Dyh z+Oq@S<}*7~rnBUcPkS9GrzlG5*v=X9bct8FwlQ_u049fOx#AV9yj-R7*>eY{CMP}5 zNNS?^C)W0$viAEJ9kI$tAc* zkjl4`^Vw=gz7ktd9|8<@C)o_m51tP%RR14N9!_BisF_-2{TNKXmUK3C43 zk7;E0j(R=5MAn_#)L2X;fL3tWs|JhVh;d(ILQUZ+cDb}*Q`6|y3C+!0W6W4RXm&SJ zSu9ao@y%#Zp-!wbk9RFZKw?irh_1ZVxT?9RaUbEe?77 zjql;vpmPuh9qj@u5rKpjCDuX(i$u3LPw_6vaVU+Mar%*V$PlkQ1DC6=FB><3kf0K5 zyBe_umHo)#^P#v7>VZkVSR7PL;y!LA7WBN0Slr(ykE|BP*439J&2S5QU{ddr^nkfJ z6OtlUa3~;9aAiqC6cVR+(eW?eSYqQRTMRA4bzTqL@I_|6gUHbHHX^e-ATnJu#A;S- z1%1g$=E}>->jNh{NmSTvrEx8eXzj}WpynH;kiqhpDb|%u1F$rguECLfHjmvN(l_Jf z#yTl#iH`NeV)J|B`mrzR`IZjSL(kht&ujbUk=4f7+WHcu#-K#02P%FU5wg`3y0%v; zR#O+S(m+a=%!{YC+x~A)Z~HSYq6d-rQ?H1yG916{+j$RUjaRC@=W3~zaAX<7`LV|J zOE{LGJ+-#pMb7R}g+38#1)AW;FQwD#R$_e&G4!>@zOJ(zQqe)I+2e)z_ z57+C5=Jyul(3`?lFVm({*`%3#R1(!!b!#;kLA?_KcUzmys-wwsa==nwxD|N_CByJD-AC*2N07z1QSh!k+Dt<~^b7<4Fit!0PJH@k^~1}HAzy4env`? z0HQTX;SMyO&kRDfzvg3dTf;mjrMl$_!=d{H?(Fs;%Yqa)9SV+QD_+NF%H2(ez7LaW zrs^8^1l*9yfPkBq6a%E=`~6aq1mjziBpu&BBqd2OzBNhV@qJ}H0sow|Vb>}I{EU({ zX~+JiwEcpP)g(p4zk}zK-;1;ET=*Zjbm;l(t_!GNiNH3sREgf+E!cE=fs}bE&=TMrXHwB_*j3!5!G_ z77>LG*Z4moZRGGp;iFQLgM67Sg}tvzIVR{uy`~L21L)*oY-GDo-xat5=yBzLvy>z`m%^SVy7Mr0 zmz1#n{Yoen#z}0e0TtQ6=x80=*2;G7o4dnSk`X_<$)ry31|L{P&j+M@6O6=rQFado z?PF4s1Q4%Dl7hptQj!E>uSp7bCHsQv&YB%{TD2&px0STUd2|SA`u#ht%Cnpdz+T;B z@4idQEqU)sq5pkSk_6D-BbUBcN|KyQVd%ep_p}XTlwiTvPe_UCANCddh70>w(Xr$w zr5qJZ2%kXNJxmCnk&+~s5Hv~B3E>Z=BnbwCCMi524AQaW-$==q%n#A!!2lgg{$-2^ zbuh@Szfq`43q(kh)P9W?ougkNB}vi;1D~Vg_};;>WK!BlIp3v2_dY2}f}tD3rEVNc zzD`P(oKq27O9zY8iJ_AeH;c;W6sZ&xrEL>Pfd+7?&i8_pB!SM?<1}|kN|KyQVVy7J zJkqRy`2JGpnWYK-D=De{Yl4cYaWdQruH^=R!8w-vf20f&h}VyxY$$eNmBsjwv^vow zTD|v+QsM*%p^1y2U&u`lB63?K{Rb&Y0zlRzNkQv(r6dW4V@wzJQ6A79KDSg%lLN?dNjZf)TrQm{7weP&2Whizy~2NLXUmn-)p)m%2c{;I zlT*|892mY^$eq*!E$^26TFC$4g{#N_+miJ({6!A9FCva4r{ee$XKHN;zuJ-H8v>%^ z3`BG~c$l;VDC%L7IvoS2dk>RVdG~w0Vc&Oa%vR|JTLP|D66%}sG~{Lz%0plRw|2ep z!G0%kE6*Pvi4uSZC9l(FMUGWY0;wM)ut`RbE`nFId(<*Cgpl`>{#mbPAB1*pC?jtJJ|_o>U7u*X@5lphs67@@{m{;!@LmKo_G!J zHC`?Eqh{oJ9kbK(J*r$p!I>I4h~n8>P0;MESUZA*>(MzE-qc;w=_BM?UHSOXSx%f9 zHhsMdBh+|Fs~kH(G2*fH<9Bn|lvjPq6c zZ{lj`Ys?efX3Tf*tF-&p8h4MKJS2W%=&kF^S84YRmisFG%+Q;D{dmYvS@+G^s)tix zpn7UOPZT5m6MGi?lc6{3HO5nETgb4f>b~VhayvOH{p!%$`HFb3>$h%ekb0G9*aZK9o_6a5O3yw=l+O-lFTW*SKIP^f`O zvP+#FdIN8w2DX|CEgdknb%W3WH^!(jVI6QD?1A=oa=wzzTzGm6(<*6vClO)A_@ZBQ zD0y+`#S14%Khz%T7ag4($!)Ul964FemTL|KEUYbFsY-)-B{v-x}=Nwc4b+0^X;?9)`R1SM-Ym6sG5`H{^I(7Vm00_Qf7?Qz7NgFu6TUeZGU>pHeOU$Kq=G592zh2PXMq z@p;80?&DTsLC@QW#Xwz6$JW)CB>i`8VGm5|U6S_sSGvf9F#mGMGo(|mV%Hu@E6j^$ z)0Hd&l2uQ0kVhCNJy-r?g)npkuY%bS>(^xKR-0~#>9-yj;Y-Upl-dqN=y@Ay8S9!8 z)^rhDYF~1(hTGBuJ9?LkYumN-{)(nO^U+9Hc;-%a#;LWDNH^;&WhO(SNAKB9jz)OZh`V|u9{AJJh(7k+{&kM$9~ zQsI%MBI`6uqx_h-3B7xV?$CsbA@9(4fBkxgz8Yv}?CN6?C$)oiBmF6%%t+iw{|?H= zx=MQ8<$p*?5?puDBuOFse@jUcK)5C;a%1UOIa@D!p}h+2FZH(cvbW+DK$TXf(PJR3 z^+CjIz>V~EXvjcr!6;r!)+3SW(sz{en@YUHj@}OjW4p~bsvDgbp&nK6c@%Nmo(-lw zhs4=34qF}MKmN!M3xpl7&6*7CN7kG$CY1rfb+$XXTg2mgpOhrQ_|_yz$M-{0k_6*h zlN9dGE8|A`8EL~>Uc9&lAmB+QYtoJ_NZT*ySWQx7dh6gf@SKz+f%x~xrEipyB83<$RY)=g&w<8oqRXTuPFhOYNnzg&XPLk9&&AIR8x{O}~FP(knsjK>DoZZ*RGa8o$}GE|A~kQZ5&)C)QTS zyp(kUXC=BWaEPO(7#&!t=vjJZEW**$>#*Q6u~Kwgt1g@FyP5~|Ar0oNpjL4GBl{Peo7 zy@5w(wtDu}Qkwe!dR>2CVZv?&y#rD5d+g%_Qhv$%SPJ!zN=XtxeUDsvT1t|fOJS&A zjK?siVVgkchooEuR-YZLq6Ci{pE`oj?qQzX4k|aPsO_CI} zzDY`wU^vEfVPDZ=J|v~L)tHIfZH%g!1B({(9iV$4CJDvVfg(h2g~ddR>2Uk-Do2a? zRa^|}5G^L$0PnVGgiQ?;Ho#~xM4O5h^C=Q?`e~xY(06@dUq_1xTuW8{i{4FddpF8} zoZUx@`H?=O#XQBKVw|TI%jH@Q&SgCR|KxRMkqZ>!amNx|n}~ z9U;aBh?$<8+?Sl%Grf23@B_qrHV#<|;Q%ou1csi(Ou90^+Z+4 zx(Nd_uVg(D3`_umvvNR zFt|&k>0uwmuk(YuF!l^AvdbU~R%}z9`3f{K-mzs%@LHWMXZj55;xkrSwy3iAJ&EF#&Beq>KN7~wvj#KR>AL89o8k%tKs32jSK6d zoP1ARyfAywIa#eQ8eiTQ@&~6bK0oV>nP3DbbLrXzI0nBMj{XuC{^iP48609quksMn zVPYbk5gKAAvf(f>vz}LO9A%q>YFeImw9_QdU!t0e+1IxU?p7Ti(f+mlxF^Qhb2?MY zpHa@gQBzo@pBf1Z-(|v1AH-}?JEDJ@9czNip>nprY_YIbZ*ZJVko9>4&8B^L*_s!`&yv~mg zy;;44*Xh3HMshoa*ZJ7c+u3z^9eLwAh1dC=p*PN#O-+f3L+#MhckEV}8EvyiS=t9g9M!o^r6KgV&>M>r5`8qUX1 z0J&z*x@Yp3PGZ;fyi6 zIo-3_sPGC4LhI92D%CFg`JuBaY`%|e%^;@Un`2Nr99-%PgAFc4Ziah~EaiLk9(Q)I z6=u(l;f0m@C)M(xLU9I?9&dN=DWH_C;lYo-Z;!nl^T$;QDE0CH2ecnh>Rl)m?eq8c zX@2}V3@G*e1LTe$*yFoVs?ir(MGm6pt@R(?IfxG^75ie3SgFwQJDJ=bG$cRV%LllK z!atUPQokA3K|L_Z7mH6SCUGCP5(|3XMl1#zP%5^rz9i}2a|?T5Qty&<4Fr_>>$raF zff2s6{6z<8q33O+rN@9$v8DDU7hk^ea`9lm`2$57^S4B3{d?ZtM#G61M{S-tnerk6 zj`8Z&tUIDX$1ML5*6|7JiBdPTrP{eYroZ})eCbqu5#OA>(FE-b9;JQj&xArAWr4GVG&)W#ofCJaX*4CFOogS1Z z^+1ImxbE9~ojCo#b+lBIMR(H2n*6|Z@932ZKX6@mX&ir6z4IZ>HHfmTRxb8Ya%(}_ zci_68CL!j)bw5MjIB*?*`#K6-_c+;-oUu$XU9Ix*o^mCFErP}5qFc+Av(=r=Ml^68 zzcjSKbG>JU_Aak*Bn#l6IZfS*w)|wM3U}Z%?NJHNN;O> zIQ<#TIA}XAFu8|gb2N+;?=34=m&LslN}MQu_Y39(&(P5k6S#qw6HIR z8t#pO2 zlQYg+xTBJ#QW6P>$W_&UlPZeSxMRnA>X6+F1of8M`K5emA;|%ux_T)TDQa9r;7(Bl zZZ8by^f;}S!_heh401+Lhaa78^JomH#R$11I^BAdjpeuWdhKmek_6XlHAzyy9+#3N z0BlWCoffk~uf(Gi&({pfUSn5szp$ZIP)-JDbg z1lQ-ER}7Gj?H+AI;zsQ;3|MW>4ctqxxD9BF&yV$r@2T1KZ!N~x0c zLda3xP@~iJh#wD1+bs;$weW;r4H)g2c;wppGzN+k|gI+`vKD;I^9R5G)YEGbiy4#bUKCU zakd8eGFu9Jza!K!1;1Ixi(j&ZRK)caBc?E-6v{ z!@gqQaAChybh;@ohDS6|k#$nI%QM8^C1sre`9FxVdqDmlmy#qveoc}T`F}x5l0fP; zNdrax-;~mORgwRbEGGj%{vLbxe@VF|?_DYK|CN*^0rL0Ar4_Fc>WFeKMUdY|J9S*= zdL&pjp{-J)`bU1nzTqPORSZ~kx0IuT31J7y?qNbWASFpKA!w4M6T+iXk_3Z6lN6p1 z1{tvEO;YkD^F!1yG{AsGPsfN*hpm`JX@dnKq)BRTor?x6x*#P<(gy=yoyGCJL%^bM zkv3A!cj?gmkd!3B(2e0zHvx-&L`s&NQxPkBhrNiO9Xd&Iv#5MdkxIdDNZTfm0uA6& zo$s?!k_0+mkJH>AOG%P*DXjB_f)ZKF*w8ae6Z~r_sr_q$im7oj+zPJcrr*H@EZTgR zP=6PQ*Lsu<#V)L}nAk*CCz?d7_imFCCqM{ITm=0(1S}etk|Y3RO_CI}W~3wuhGR?@ z_7$+`sFdDTV8hI@anCIk(^dPN%P$Hrm1CoKNV^E^lM)r(cfdQj~5=DA7JYaGjf8YqcTAr^hrq2cap~prg z8lhZXWTIoKd^jc%J?FSY3p-P%M@DQ-;L24S9BTjPDi1XsoG8*Mp`rHA!HEzGRLkNB z`HRb!;3v+6K|0|_Ksu3{_&?i*}8o9p;vHjuAUsrHyTGW4eV0bsPt$L^ccdvK!X zhTg1Rf)jP$awEB&f)ka8-p;Or6UiIbDLBzvhu%0}HkE=;ZRj&N(R+tZbl1U&y6+J` zI8i>NlrP7eY$L|^550li1t*Ga-5_-GO)=~Duugs%?4htk!BC)ugOeAZzmQK%Aw=kW zC7roYpm3oh!w6aw8>Q$PqARG?|00hsiSpDK=mL6sOt*%#`i6TY!WDHD6zD(2jkbtR zD-89~?5-J^{_{<50rHM(sdL4mq&wwWnA1qJ%!p*QzcCfZG_pg>6*L}S}G2=KZk zM#{tCUA{Qb@Gh|8^%38Nji<`_<&}u<@=vSjK?q(p*3O36Q-BxSNCJPezQxi37F?A8 zFWb>fe|Iuq3+Mse`~WXoQ7YQ!?}ZZ9eH{jPnH(T@d~fRGDAizpt4JR7yk(y#D{Op# zm)IA3L`#K_JDJ=b2d#nXyOY-w*L7WBN0SPV44OKe?z zNz#+t!XB8^yChu$0bbq~*Ka*A!k3n}bdVN$-bPw_4Db?LYF~13;mXU!H5cIJN8MBKgacBU()ki9i)ezw~?L!N9u^JtuImf zjX{Z04^;S(I_~I|3O`Z@>D)5E_Sz`nN9x$rD;0jEj_?{M{*Y$pvrB%Y4*LwHwX*0t zQpZg@A;cW1<7WECkvjO>5F&MiWu$SlANNU}!9*Z!j;#?nrWVQR_&KffXR23oIiw4>jEzmoa_RPXL%On+r9noF_7< z0EN>b@m}q$_J~rhuE+|v%wDe5%r3+ zlJl8z)D*4LtRDXkVUJ6Ky1Wl%Lm;JB5PwiglHdxWCP@mxKP@Fm0KuB1$SqR4hkFU? z^6#Zow>*!24Fq-hcPvOTP%4+m@YBFg1Wp`VicK&2AA<@XVmfys+#!`^4(n zyM;>i@I~P!DM@lsh;XTcI`|qXNyF#TZYfD}F0~&pErPlnlF}p@G0_Qk06|?8rpMVD z^&>xn4lN+npW!TFE1rY;Eb)umH$~ONpdcQef@P8)a9L0!ut2@r&t&#v8@J_ z+&Xp@eLR1sl%s+%`hJw%gQ@#Rr6dW!Uy~$-jh~Z}Bp48yq_8P$kUpOOqm=wsV%@#- zy#e}o{`D9U>aa5VoV39L5z-{JpRA)kp1&j|NzwFUPfd+7?-Zv{HNuc-j zIL)1uk|gI+Snmt@akh>NhMrkl^aUxY{cD1Xsc|yg3a;gv;NW~bzg@~8fp~ob%7$VW zR#}WYXR8xUqSbrvkrF3B2u)lB{XE}C+AuR?8)iN%B}o9tnj|S`{g{*_!ElV}!oGYw z|FV?cR%51nHFID-o_`*655&i_V(LHQ)H~`VX!*iH??>u3INv}s?1N87rv?&kIe?uZpKaGcH`mQfZOs?l!&4Gi5>SXmB z=xy&nJ8-jm56?f_pND5Ulx>ne6^k~Iu8dtI6L!|@}l#Q>n=I7ZtZNja=JQl zCZBfbrNBY{qvcGxn16x2KF2zJp4vyAd8cRy*=f96bnTXTp7f+2|Jr3BX44;7? z=t0vGaSgpP5fro@Z%#C{Yv?D%ymLB9PkV3CwhTqRMN_|H@O14h+Ac5FTlDJ}Xpm&m zi-|KlMl5g82^u4bEXGKpq{j%dr4#gyKSmP8z!-_#%z1Lu)Gz}M@h}WJoL0k-s&Gsd z%t*TmCs@TO>agzg_&%k#Lj*J&eTMG7{1HBmEK@k78Q9XNbnKvtKx>=p9=c+6!{k~$ z=dO71cNU01til(7WNx7?jaT-nr57g$F@mjbC?u#zJ_o-drs-j4Tt_{R(vRx-V_+_& z2V1maoody6Xy%poDeW^?`;_h|S69-f^lY3oMVww4f2N*mFs(poZ`9uHPA;V@wLJ8-H$8u0EVJ|C#S2~vd7RCUJB6JW!w#me5)HvY zSh~uCPbXOSMKWX`;^PTt_&trj0ow!0(Dra5eTKO~_E0>&F&UI?IP3P8}V*0#W z;fq#CN$({?whuA==@ULD2>GdpCz^$yViSP8&599)zB9X5Zwj`y7z0`eQS-+ zyH0+M-#_%$_2t*N`v%MX8vp3fo4!g73R|AKZ_*|`GR$bQ<#n}AwoCt|p*N}*ug2ZC z*~o1tug1SM^mcBJz>%fS#x`jXbF=m>8v*;Ud&Vye)IB4q#C`Z@)UUVp(8!=)g$BV> z!I-)_S#wL(|I6OHz{zz~cfuC7_451u;&G9{?y+Zj9x{Fi%OJ}yA!%$Z85<;d)H8Eu zrdvJT?SANCF(JHyl{6noJRxkzZhrZa<&luE$u5v&;Uh~z$nIvd$?oP$@+AZUOCTFq z0t86d0N?+ds=9USKDztd?v`XD|9-yexsR$-r%s(Zb?VgrRO=%fsTEkI=6F7sDb63; zHaRgdswRrYHuY(6o?F>YKTs_X+aX_q;HNJJGJ!L?Vg`s2Yx-Y{IqI~4Gyd}c$F~J% z{3n!(_E|S3&B4z?aK>x$1Mr6FwTZ=5y8@*en9EHfE*5Vye+pDFcep^NGb& z`xY0GL1ZkZTGTX2-xlreySJEX?yjX{5cG|y_5l)N##H+i`o)-P{A&=HYJ>(Ao_BA+ zwrmoHS${ZIFV&WOt>!6{oc%)8`rHzXbOW|Cvf92r2EY@1I5aG)ZwFPJMYCeuy7q9; ztbUJ#H`v$@%bYaQ=MU3LN>dDiNFSn7rlewFYZlGw6A?n&KYnJRS=DN*7W8S*cvhc} zG(J$YDZSJWo>i35rO#32sd!c!f+6oZz(V&O&&=1vP05aF)ukybu6}Nx#k3-*&Gw)% zt=5gFD616Vl^_V6i?XpOmWEtjB_&A^a;Zs@D&oyjk_3ualN5`Z-NQk0!MN>wuq5%w z|I4IQCvC%~1ztwZmJIdC|0E02z$8+#K8Q_v7SrncP?iwyDC*ocwFNlCTYy_V)s5ck zJ;1i$y1UqD?hoHPh?~<@By8Qr|Cs)cqtsm(F4w%K+(+&sN29-1Dg%O$>PNX-#N&HW zN|IoFYm%hnyCo$_FupZO(eZt1Fs>VmbPEev6`gV^wtH$;QdmP z1md5OOCOPvB^m{^!z0%K0vp&M!(y8oqRXQ%aJYOP!@N z0n_T-38C365zjcp#^5lm(v()0lhfBo+bb7~&V7(*;J#E!m82I=rGcAKf7~f;zkFm! z^~VEJlH`ISwE-TLk|gI+XW5Om(d;d|&F+nftHSOHR z&K_EO%{JFBfxjJR#Ggt@5*$9)BuTmS1u02#E=92odc(B(hLo`Wkqi_I(p-GCm!UlPfmYyByYHh?k_2{N#%b<9 zNlB7(DQfpcaI2id;gM&K)%<5tQv0_A6;sn>I7wa0Ey2NIT76B*Ac1&&1!cpqi<&G3 zzRKxDbJOX)?@NgjXb4SQO#5}gw7O_YXb1}wvL;EYv~G}+Bp8k{_s}ayW5KJq@)PZVj-$39<7fh=t`9Vx!j7c9uVFSdpBH9$D z)dGn){b?|*=(i43*O*qHqnB0ip*mOeak>$NzCv$qxXkeo1=)ggF=Ulr8w{q^Ew^m- zP*S~m#Gg-wx2o1RGP>1{YUN0^+@kaNfK)J8SLs+*w*$*+a&qFfEyKsMI-I6mVpvv9 zi)D4{TJAderb8H3{n8M_u4<%lA}ts!QO|1Zs#gWrRlU%uFwjz@qzh)1BP(&tD(YVh zj@~h=obpmJtL|Ggm{mnR0+PY2s&$23H5VQM0g_b=sp?e$QWdey6rBuO1!M}wta6GD z5Ue^NRK1y4QhG0eQ^gRfG`kWJs#1qaOi^|}<)RU)&e+&>rDKH zP+L72TY&Ax)Qj_3mWdjRD#pa9{G3WGs*k2gO)3UW&}}_pQT=XO4H@LpVo?#@7<#>7 zQKdFAvyKY&s>Y&<^=foz{Aj>9!lDXeOr_&ac?SyR+EQWWu)>>C2vZ8ZYU3mR?ne*Y zQ(Vj`T&nj#;o&-*^}o}Gf2x8BW`n4L2_Cqc+TTj6p)UnPbQ=ZJ zJIGbO7#Wmgvqq8d>iuQ8&HIiKDmd@mCS&4#%p5>kCwI_PwUD#|~ z!tgtttGp|F^b)+PxL{yNT^Y2(VwgbkrO{#6n#&;g+~M^oFd- zyEUe^VGxS{`V`5IB0GL{7|4#b8bd9rwaqrK?l%C-KY2&4R`;9r0?7)nL^?4};+t7jp?<6jJrI~IZMPf@DT-$@9M^xSTJh8D`*5FS%M%&0S! z*!~YDH^Yo&arypOwfMP$@Oa*>DIJu7NmeY*L8+a@f}VE}i-96Mrq{CHTRtwsK;COE?29~rNF%J4EX59 z03Rct4-5A3@t1<_k-E-&{6}nb&om0lHDrlI$VsJ%b=0juwQtUE^%lz20{uOa-!h6v zNQ*MlSSr-~t=P1Weq=-Ho4D=AIY3ZiF;N|~yQEv76^hQl0UPaT*4hs4dw zjvU#gSu1X{9={R_ko`6^+zE;|U#aAAgHq7yfAf3z&rzMe$zZp2c|8DiGg^ef-Fo^c zg8DYkm7BMGI>Cp{A}c>YOBb&~%r?Ic9xu;)-gCcnvol%j>@5-G94V>6}&nfx85DmFsT zERe|;yew>lhZZ6O;O2EGJHzk^w4qp^@N=cH7LX1mY%)!T`Bn_WSzLX?6mpTua1dz#wlqSiDiBGr#0GU)e zJcx7UomgEYX8z`e2C#fT;*fE zGH;$LRnK=EF720cNuc5%L)jTrd{Ii0K*ej4q$>WXlq7+8Ym%ZW{(KGr3c9belGiUg zJ$q70b02D6*WbRN?k_ZI{#iaui>|ALfX@;;U-`d^chBvAAjx%6=iBZ(HYrJxK8S3+^uHWS<9in%`BzCB zDd)R%=sqqbNidV8aH$s{`2{Iia!$n@>s_`VnnNckZ5EZ!DN-qTTG}>&6leu5wff#E zB}riQWt`@IQA(1WOHr#Y0v2zaU2OkFo;jA_uS-eo-x5?zO_SjybuIVy4h~5EKT8=T z5U)?6Y|P40lf_`hJDq55I=%PjQsM*}LK7F$egVXq@{z3B>iUtsC?!dtkTpqCrS(lI zNrK^+(uI8i$*;RpXeB3&nKX}c+{_#pko>uzdmupaim3zD5ZMY#0g~@>*yOYV$$tdF z;az~_qvQw2jbcoCBMKWJkUY_*faG6EB2IrAAbI+&eOwwyK6EZgdA#0CUuOc6e|!^; z`}Bt;uZ}@6aLd?^?RyCIdV9sYud-CA%mI0FXJx^!`}pbY_K*1Gjjt&-T7`1)sRBXC zd;9#krAqP1mhUY93_B5NzE!t?^BzuM08S|#cK*(ZJMt5gIJc-_=QkcLHkZ7DSM%!) zMy{W$*6aQp*WIjo%_ZNf;WT6&fMA5(>djUC1-KlGJ`Pc0H`A{da0Y55irI8mKOA!> zh5OPpS`57Y=MHT;qgm~G){X<`{xpyqgT&vH#@{smaN>-iA@N(n9?&Tj`V{sq==qMw z$IeHBP#N>}m>(;eF+WzOF|Tp;H5D#W2;Dx1e$9 zP-IEWX%7JH-?DUF3QMEXbSlyQ-o)jgNnoR)b`6)KY5U zs)=q4L{@fP!EaL=nOSd@Y_D!i>DA~!Ig>#39Sw9Q5f&b{njSkndX#bti z{(nDh_@^qE0MtLKV1fs(g88Gg8v0T&M7L2ey`%m2-dckg+YRmib3<=kUugfmH&~AL z{|`fNdJOHq_vU0l`(L{?>_X|!V6#(USW>f~{rBExBeUJm{;wT+J9|O<@4a1vMf<;b z=&kQ+@T4|<5C+esDf42);CcML@cJd8{Xcgg`rTXulPf1GNLCQeowrP=UeJez4Dzq1d#bMzg|9W$}7OnPeov#p;+glHrXSrn zh$nm4mo_8CZ16K7*~5V}YWuS1i3i4>PfYgEJClqV)GgUVW#|oAmsis7E{J+>$@N+$ z6NZhu({g$I4Y$r89(r4M3}7I;H22OY)8pL?-=7>h7jEiN1@+s~Zp+eN9C}MHa+GJ* z_5`cWB2r0>L_7*>l`eM6{_xOSwpQtWw_3R{RwAugQ*lfD{h>GHuD)h1XD=hQ`GZ)o zys$UJr2U?U%YFfQlq%Jx&vWg3alvfwVREO9{9wPHrf97_lNLFLMmHW^D$XqthhQQg z8UZGQd7m>WC79@ko#n!$Hew*QWLgAa1kw3^Tu8MmC7(@`l9+8U*j4hE((3JNmZ#R3 zS^mnTF38&WJ2Us4JCRPRWuKt)U5dXmbhcd_5jJO-rb^2ohUuo1VH(XQ_2q$PlTzE3 z0cL#GoKlfu29;SVfIwGUT|Zb&4=-*ne|e|HZKga@?zTSCD%efEo1sKbOCG5k(M%g< z*Pn~n=8@WrQqeve(??43S(ry^`vAFP69#QVsbbyT@pC1QR4J{4GBC-C#e!lIhZrP@1wHQ|76Z*Am0DL{k~GIH z%)q4VlJv3=e2+IaM)q{X-vw6}TwWY7r(*ArKg8HjxzaUAG&AzX)s@v;=`F~F(9QxB z^h{dEW#EJrmv?j#7kb`7TyE@<6OK8ST4rBj(LVKJaU;M#NE{kXcts2Kd3a`z6qQ$1 zJ7z1@V#80DgI>@>KAP48ef9fqbm@0`-l5-L)UC-*ho=_SSBHP-)OYxqolouyX?@n0 zr2KUkNulQ*BxS()6-KRM>oS z(IrayS)uL`*EXM=dz8mn81$1*j?>8H?t&0=8o3er#cAaD*Rv;$+)EzU-hj^e&E38PBG1JHb?);c49dL@EOUgpog143LiR&r3-XjBibnbbNnJ zN|IoFYm%bl`_!ayJ9k@(A(}Rr&QulfeI;wsj=e_OenH1-l49cDC2z+|r6dW&KO>j6 zNJ)}&sS8YCqgi)%zP3wA>O*kh`mL|_1?HQP?~h6wDd)RXI_IP$4PQE+l#(RpQfKK* zNaOYfDNPdbj6*yPE{$87(&_>v`i!)_axJNJ)}&sq=tINaJ>klqSiDiBGr#NaLn-dYZ36zRZ@Yz5Apb6ZE29 z(@LR!_ex0;V6kRg`4^-l$+;AT`t2=^TUAO}|G>VAg=rF-G@#_(vD291;b|#H1!MFr zC_96z`<+sf1j=8NBvl)~C?!cSAT&u)SJ)s^JbYM6ev(-Cj=ej;6c4|iB0^nOX8%dr zV1Wo}k~&Y;@e~h#CM8MI2a#o2|0y2Q_}(SO!x za3J&|&m3pLJ}IgFTY`$IX)>IouH}~C;8Hv+OBo~(uOiBZVHY)7Og0Cn6U|Mh_fANO z6KDucTul3QN%3$}N|Hb!Ym%f&>!+n835H`z7xtCn;r&v2lg3Q%X6C?BJp60WJ&+U+ zim3zD5ZMY#N%7Dny6m*3c&K78yGx3PDEUD|VT?(4qObv`cp%zTiigjUh|`}Y#RL7; zA?iBCLn!o6oh*DgeI3NTLT_$BEPLp*)zYI{Vdi28*dOXATfw1C+m98i%VV@l z7+}hUFQ#djSjvTCr>pfrY#N_%d<3}^2H6X-Bne+l{6B|r# z3Y8vYH`ofGF*W2&@sWfE#K2JT1cE}vcgR@qePT{Z#sbYamcKQ5H-aQ}0L4^j_meLQ z-2RLWX;;eke>&p>@)Uv1Ys)ePIHs-aQ^x?l_Lbo|A#@f(GHkT~=p+NzP>~$+eqKt` zBT%C4JwcKIj)$idKsLF+BmVA358P8+%!Q#h4|@R|y%*p{(_14Ew97%4t(d3Ubt4*j z>H!%od)KD0H!4}DGU31-Y4Q}q8_Jq+;FW1LWRO^kvP^ViQ1+H^AhnU1l~>93>V}kF zjSiZR*bxAr+Au6_k#MFSbnlhu-eVhiAbAR;=zxLAd@bSEj;ySl2=363Vnj6n-pXLY<&W841;(s`B9<;Q4KgfuSB7^^T7KER75c4Y8%A zEvQs|Tx~ULt)@n1r95s?Xx3RDcYUu>U1%;BjzvxTwW?*VjZsR|6sfw%vc$EXHv|vd z8tQ2^^ref4ZljBO&rQ&KYYp6GHxS6T483)I0dy}%{CwSk`8BkX1EW0Ikn+5gDkk09v2T zN`(c`ikc?rJF(rj5iEd~yHV;G1bqW&y_1BP0knRaeldU+|9TbyXzivnIB?QS0kq6_ z!voMVHJk;|QuwJ;`|sM^^p7>SdN;8{?WVg&y}Rc9#@tM!xH!|O73Tb{Uhs-{)7^Im zv6(vS=lT4d>!$cOB)LH#LDT1jaWi6F9ws2mu8)(0Ylo-w;PI_8nO~WjyemV#dyzy2GIJN zu*W5EMPEVLSocWdJHIa_Nf6(uNs?;ei|$F$=P3icB+$Z|q*#b<{{UJql2R>+@{Am0 z87hF*4QR+f!afzRB{q47!0^9S;vI#!+om=EXUb#)ZuL|*dannxcOBQ=#YS^~_})R> zoUT@UZyWz(wqA0vnC%P0<(k)&?tZ{~c)~<$RY)=O0T+8oqRXMoN;LOP!@N0YK|3Qko><8OQS& z9Dr7u(&}O*h`HoL_{A@GE%Rmhryt`oE%ZRGGpp(-UwE($R&bukB5q$CZW zOFt$hNzSFt1114L>t9G|l8l)6ggXELEv3`bd=2ttwp8u?TPeo`y{Ol;QXqx@ASFp~ z(p{4z<%gXEyX@dp!gC?o- zWE}_4x?f6?qz@v?virk&+~^`!Y^*|4vGhoJ&!=F9MR~98ixubGGn4 zAtkkcOHeU2O@@=ywcHXM9DvqeNEsv$uRlfEn3ba@i^0lrI?>#8dhc(g#0fNnCN8G^ zx&UZ>TS}5ZA#0MPO6&algodzSIHq)AUjSOyNa;-)GrgOc0|U^y0(1`~l0q?cpc*1u zVJQGwU82iQD}dIg5jfHXKr2dq5K$Oo(tA=qDmHdb^R3K7O%o7U>8>FtyE+fRx8%@C_>O{16VEQoeWk>p<*cbpDqwvL##(JRdw|$7?6Il zJy8X&o3GAQ3d_jTdkb_zdu^q)JnPq2r`zY33$uP1Kh{>NN9%>!>dDv&Z#Td(arDcw zUBhj~*dCR*yN?!|OI~xy_vWhp!a{Mb=vSHs{U!iyQv5vxAPJhw=lz9Z1>l&4MzFZi z=Wnh`EY01DeovaT#ei>Y6FIEZvb4W4bH6Q zLj9}(xMKYr9bS7QTtbMm#j0DV7v?OURwsllB?yV&SVO5HJfwc_G!H2aToq$=bV&Vx z0ayK5+6aq{X9J=a;8PuPM{*i))o0Uc=xYoU-DV8;4qVlHYYhNUH{hzT550AL0ax|j zU^#HrdH08xsQnopRyl_|HW9e0_a4pU4W}nn>2`d z_2LwZJpx?y_|0q1IcK2QRc7TN$F9Q3Y0TqIcu}@_rj+amRt=OAl$hhy=S*?_*tW@u zi71>Ele*9XUiu6cu;K6WbeC>6a&&Qlug>z$Z;S|d7q*37iNTk?yvPKc<=QpQV&YoN zlcxnZYu^BMj0MhmHA+SMtjCn>fM+3aR&{{fvA{NmQL3?vl7O@5x%DfDChcy(S*agp z)YnQwFEP0pEI|vL<*ODySAetLmDWKSm}JFbRWXT|yh&m~&pU|4Ab_)e>YQ^h+u}d+ zo4yM^l2U4=eTmdha8omIE4xUY*$7(yA+2vS@W@Kk$GS)qJ?|h<14htFt*tLn`mI5U zQU)q4g4S$SDlCE)&6zTM8to9a2wKxwsjvuIQ5z-LiY?vXLX-sAflBT^OR2+7LVF!t zpY@{OSUm{+auW({-)imG5ibYRdTt4JY<}5qE>-6nd1GbkEfjToWVO9H^-XIKC&Egl zw{JA1eYw)4`=ousP-W|4<9n<3L(Stg_;2%!d+Kskjql>-c%#_#$AGSNxUlFq#*OTbYbhU}1C)Kfc6=+g zCvY^JHUNOPZ{7;V0>3o_oHZ+UX7dZy` zU`SD}mPV=a0M%(F(v;WG%GQpUK@Bd$ms}|dYI3=%kSo%|*S;JLjysQDHjfpL)h&m; zJA~|&AP>C)WkUj_fpM>vk|YR>(T;o2SzY>MdmaA5jDr2jpS=ikB|TJ=$ZEUiGx8MJ)Lswe!fJh$W1O_%@Xz2a_J5>B2c7h=A_)VlB&O7 zmU2zdliHAx9z6X`DM^Bpff>!cPf1CVb18c8v^T(!KampF|1nd=!Ze9Z8dO~uK-mgQ zIYidQEB6KpnZA&d1=Rg!tBy3|&#aETah0|T6WAow$Pkmb7z{n3rZ=N6fkb zui(E9($kL|Ceaz|M;~8lo?3r(Zp57Z znZQyW5h5YSuWIrJXJrMiX76X}ChtcmRN7gadUe^GFD@(~;Vq)?%XAc|5oC>3Yx@k} zI}U&sfhCE%scGw@Bx!ICd7PoU4XUS}?=%-Zl@`C0D}4jv5YiOE)?u#nkM5K9#)k`a z9MEW@cg*@+bx!z!!}VJoGD5*J8Mtl(m?lxGBc9}7A7%j49kh$!jg9d^kuqS@X$vTN zVk}1oIO!xw13bcZAyOm<0e`vDHJ3YFZuhn^@z4PIXCn`Gp;T}zHI{{*Cyo{M$pkf0 z#05ttQcI7i%nqB?p^>Nr{y}b22C=e1EB7h3^c)BERM?+M(%~P2cNtrc9&+_Gi#X`Z zj!2Vuo3{LLXecRI=QwrU-T4(>YL_dyh%C{`JGZzr7(pw!+co#>&c>(%Jz zZN7*OaHrBvFFLLK?E$uuP7fBlXj8Ac2h;(Pr;x-V_HSa@qb%s)HDouBJ=SXpfRGOu8 zUWN7KS{;*?yq;ZpAHSt?X^!B1l}nR<4I-B&1r8313odXBxL^-Tbl`#-89D)DDidy_ zrgK8k+XE)>uR$>3B_kb~(7t-HUYMuz?PIeAn4)7kz%7QE5qZzE?>RmSHK{KxsflCZ z0(a6a9iwlii<@%3C>pDw)? z&zIg+IuC!8&Zo;-x~!wi`rzIM`n8cR7trNGx)kWcvC>8OJ-u|@bm?OJfInalZkML% zatS>tUCP(X_Yq{dPoDqDl^&#Vd>>u@i6rn_ba^obV(Eo+8HWd@G)k9U*WmIXUB3H5T)sn>58Q~$ z`|0vZDqtI3UNnZw^Xc;TDO`S(E{k{KGEbKc$iiG&OP8bf;nKvVRhkHqa+1k7$t0ZQ z>YwJSpXO?x<|?1&>cBtL@-$cTG*|I77ymRD{d9|wdB}atjpO0XjXOpy!Au}cR(gmo z`{=^#xSDwKu{Z06{qqX-&vy0C4*Uc8x|jZeB;cRY1Guap zCgqXU(k}c&IeXMU58!^NqM9x#LPtr##4&-tIoJ%9Wy%>&3Z< zx6aY5{Ma!XpCmD4vJT@{XjaW&dXeH&^Ft+4YI_^vw3q$ydaF|L>*GhO^}{OkdJMj{ z&@YO*9#;yPBC?6xe7(`svDHxRF%Y2-Z?6^VO>cpm%1^ccr`Cis=7{edDK_vIa9)=2 zyx6E#5YylEiVd&0T&vcb1$ds}gjp)!)q)2LmoZ-aBZYE{;n-*zMC}X=m9&g&-|8^6JhTN6Wb1}oodHxG&f>#m;5~P)srVIsJkUhI?r50bj$K<+!@>BuperKu&|xh5b~Ntz zBIj-Mp4#AwJaanae+oN9a#ZNEC>xR#i=+!+<`j8rwz~1oUzd_3h@{gbN!2DyVVMmn zP@9^hXosE`?(Z&fE$UsTUoV$ZoD?4rc9n)t2t^#D*N3$ppQH_DUFBR&KBbai*N4sy zO>0BRo*TLtO-grt2!ikw$0e@C*hFOyhy0}y^624^Eg@^eS{cFdT>ZnfE6k{k9}?LR zlxE&hLnn0K>HXWKy)WS27VZY|sJ>51l3-M8lBA=0uaqRgsMaJ!NA-)l%7W?OZYM?7 zo044R=}X%r8Taw{+Dr5q^njR7r_x>u+B%N#0$xa(FuI%-IWBFpK(sQF^tR!X)Oi;z zG1T#=q*O_SBQhzt+jv6}3pk>}Tcc|tNmAc0ZS4TWqRYvej|`tAsS^C8lq7)?)PpC3 zr2cm)RnKZk{i3wBa!Hkn#W$rS$;BeJF6eT?=G@&vBYgN=x=c!voJ*YtPr?bC7fET7 z44t?I(EWr>kJEmdJuWv*rLumflw*Qk)OMisbj<@&k_4w~G)Yn}Jt`$h&ZTUpYv!bc z^?$lXu`o?ylLl1R6=b%;Qcl-&aeWOsMbmXNYKzE48zTSbYWsZJdYWG?{Sns5HZv1# z4eAB{-_g+#K7kUYI`DqRc=IzTte?XtOxn^u!~)RC6Q)g_H2DdVB_h>iW}@GkP<@Id zQ|14gy8;n@L^nQxuS3{YZwjV)CrA6Pnw_dGzh046Qvocrr5!pifF*~XiaM7>K z`D!EZ(543v{6bkZZn%HCCx8B zX|N{W<8X;-$==SJEM0vD?yV`!`iwIgAVASD^vQiVx>GM4^$LrNb$^i~6Leeyq7^7K zqD8?91=51$a`mXqaHIUE8NPS?te@T)NM+E#H70J7B=cOX0q%k?N@$fl{Rspt9cwbP4BYP3|fdW)jC8D~Bi&i4P|Fd~k7&(@%yDqAmIe z!75-=sxi7z=bQ>Y-;?}#5DDYKlJ(2@Fi3s1(5m2!TeV^+F%o*HL*lHpigs6Ve=$v2 z#4_t#5v3Z9c4WJKLC~Nb6q%ykBUSudMJ1*4{5eT2li}mKdTmBV8XT*ihAaDdRwXZYV zDJ82!F6?b?Y!}R=cFfLPm=bB?Gt-`7UGA8jaWJ}$<&YRgk6LMpylkm^OTvh%J^F2U`>XVMrR(<^3{ z52|*R%6fC(E&ttV<@cpgh-#xzI?VE^jT=NqUX#+1kri z{yQ-1FBU5&3iW#7_{xcLd4=!NlS%JJETU(t$4(R%ycJ~(+?8Mq(DIeur~f8`Z>m_L z)Q=V$eqNP$z^}~fS~ec27Z;bB`Ka~qEN(~GD*3k%ozrQRT$ds?kz{}EPY0R)c#Vey z3+C{QM@Mdec%ss|(aD=|h$HPD=umcXcFH4Ie8=5<7kL3P*KDqtcpBdS8oD;)$JTgM+O&!HJzG zI#lY&uQ|7)v(CVYNFE(ZPYLfkjl;yjnO=w=aJbSfQ)gGuS}Ps{ zePQ@@Q>yA)_mR`X-;Z!T5acxDNDyxFe^53?e=Lrv%lU?jriJb)K^&7NNgCU6gOnse zY=4Q>|J{>g|0SB zw!%`PXQL~%(zj?45uA+w8X(g{m=$d|2Y^`Xc+w6?Vo=&i-Jxln=Y#5W12&1oSRY#G z`7R7U4dKe|8#*{IR=dP8N1GF@Ib%}#83@(@;+RzcGlw$YPttTg1vO9OS34P!p>3QY z20i};9aWp}0u=K-*hZ_uT66d&)-RQ#h}txnKG z6o(T*f67#Xv+j7!AO@hGCsYvMnd{n79k$nLF*+;_O<#a$9LCHyYkCeB3O{i8e%PU+ zzc3vOSi6K$;h?obN-mmVg6ZEL_Dd0LIz$!0$a8*!@X`69r~LH1X-$D^9AjpeQc)~@ z*PZ1s(|zQy^G62APK$Z|CX@;Wa!;P`eeQ>!@!ZWvdTz&ls1wyEH}%R4rzxq0#uR98 zAD#P^BW9I8*f^a~p zpOp#=5ADuZAtjT6Jr*9?HCvoHqbo3SS9s{Jqtyx-`5W}>F9|)Ae`QBTCiqIlQrevh zabZaNk9P!H$)4Jn#z7l{z?rzAXg46odfR~16%1_$a_f!+l*7Dj*4W*^`8!@KRu=R3 z!noYuXx2x)g>tpf44@_AyNl}#)s9*X?mF7#!iUjifn^-(vJ}h#elpUq(i9bR8(M9~V-36h`%AO?1wT(t1Jrb+~ zQ+hwq0oD7;{(_Jwcf#E&_2gE3DTs&R7jrdt!Q$B_ZL`4DtV!zJ59eYKyWOx$N>Y+3 znAQ!EZ9=ZS6WC2(ybr>dm2tgh)NSaDw4rj|OWmH!Qj!F2&z{8Ld{*Z!pH4`L>O&xO z{X-LpV4~6@5y3!uhqS3;k&u{R9bAB2)b;6b0Y1Nz_0Y`+7;R6W`(yk%7hN=1AK(Y6 z)7c035&TN?0R|R}aRR=uQ+s1xz|eH6CfxHKQNz^HyBF|9JJd;Cb*wCQmN(+@>-x51 zf_>Z}tGfx7I0?Jny))OaQa$ler^)Dv0l4>q)MT#JYtooGEdL)){r$1rI`;k;rDBn0 z<*uV+FM0xLdjZk3>_0|utPT1HIzEGL%p1@Ra=a8nz#BN%uYos=zfLLI0hH(P>H)kq(JeOr3W32wD$-tFj#7>fZx!@vG4b zoEzy9`o$gq{xt*-Kwn&N@oT_^5W-Dr&*yqe5cT|k2`>nkz`q8;1WGH=K@=>$FePPT z$R9J$Y9(*qFn$eSfpka;#U7Z@az2#4A#+luH;`B7Y*MD|Ntu{|&+Vj4H`3VIOqbt) z=dbi3Tx^;odU%o_gpwTb%ba$Dpt4FoM;H36^g+7NwsVPhsmb^(k*#`q69&=1f}Ju( z6W1GY358b#`MU)PgD&4kX+S6&&2+Wt&sM94BPL|h3(j=>5HXua`cC``DH)0DM$e_3 zG)Os~)U3Rli)`O5&lprO&B-s%uYzGwE9bEX2{NOA{~Jg~Z6w-2LgMB+ zOzo;S>o<}7+$;Oq3L@jDT%4_wi8NQJ6=sXbHdOSZs5wKc#p!}42G|8`5pfrsYr7!a zzomny4Geu7;hUTbM4{DZRzpJg_?yl<=bXEmlq$xXt=8xL`nFAzo7A4%woS|L_{k<7I!_rY4fqj3IZ^B9hP0*~6D_y4#56UE|HAZtvdfH|FZa z8ihY}e4URKqHO)rI8%Z0HBGbC`Qrg?Nb8+S+g$~33AlaRHW|1tWX@S?&E|oqG`>(@ zTv#3tL~DGuT%8?XE)*-FELTsqigSmXNIRG>){a+ZH{JbebK|b@0#U~->O{eI+WKrD zxuZ%}rME<>8gIcbG+TH``=n-|cPujCO0-pTRb>CkQ#}Rfi~M4>x>)wPk*dAf+Im-U zdC@DBo7*-$RP!r<@dKzD>e=Kq>T{N(>2>4mlizHN^9x9AIlt)V8%Gv5dE;PQz&zEp zO3FI%vEQC7BPORZcYJ0R*CiY*JZyS&w|W2_q925aYj&dO!Rk?^d-Qj_*R89eE-i%8 zh@Hl6O>Ouo?B4OF9FL zDzKu2C;!*NA_Y+4>e3^z-GMS$fNZs$-_dG|dOzBioA86Nz)XpOd-%XA2!}; zJ&<5IO4bE7BQsf@XBYo{WMpOr+QmP1!xGamzYgIz^z5TA4(iyoQ|YFn{5tpoAlrjp;hX%wre+EQVw3eCdZiTv#h0}(CPh*GW;P0V>o zgcIgXwV4xp>PX!mMdTx3N{Y_!Cn@J2MCxj<3^IsINoi`*Q}sC9eL5|5Qa;cN-S@(Y znA}GWFFzA$Uw2*}y%1ym7%qO|&TPzRDAD^ouA{sx{S{TN=5naBXaw5h!xB{^YjFgO zja(%U4Es{_^!2%T$vjo!%6A;LepAR+Nfytqp=_`#76{e_<>K5>}S~d7?>@1|wZ2 zB}ovBq)Cc)-uX`Fc1h!@Uv_$Svy|pOVwEn5sOe5Ygze}=9fG`wr|x_aT9LjFEjXjB z*c>(ZMIoX#b>~-M$`({piji}UC$cU-DlPWL@1?LGl7?q#Nm2j**}Bnbwl zCP_Ll=cObG2Bs!y-~;oBl;%@3FiW?Au#SVVju!?p7!_-WI~cD@vv35KU8DLOnkj@pEpNdvxrUrKKu zL$hnZ_iZ4i<8b_4yfBdAn6Y<1C*_vBccu6pe=j9TfZvgkOW%`{Bewr#xeuk^!=a9@YX2dYmJ}C~WPP5okC&zV zlJ~Jx?Vpg6BvAVqxpY!WlAKFXwSO+Wo30|`JB}LrX(?I#t9-@4fvWs$g{6Qtb@BE^ z&wE~)<~z>dqxrD3H~LUL5+648BX;kqWCbXM&r1u19$ z8vY#%)kND@IwI4ioQ={P_@iU8`6(1;!pC!^?_LU<>wCDQc%`3r8LE!D$ZWz{qD-C8 z`aH=F{izeqwl5C*)nliwLN09O7DAMMQtCi%RJ1XpN2Qg^eb6ID`UWw|Lzj2y}eu*X@_@yBE0KBdy zn*jS9Ieh@Kj#leUbVjpQt~L>ro39j54c#=~+a$k~q~P|A-z*k4?#x7QpRfoSgYK^*Zk`tw)#t zZzzFK5OEO6o*OEx)`k1R8lk^Ua(nu214=~$t^T2<&M;xMu7UUwXi}OIiX$HNvQc)^ z0GVS^jy9uIup<@ah@M*|9qJPG$)&M2I+`-|>)0IC{p{OsQ49y~j(SXU+WI4D>etHF zLKM9~HM?gttP!4C(5L(_pFc1fhmq1eq+LGVK$6d3ripiQZ`&>pr!hQ3du=!GR_#sg zW_sSCn_t|$*-pQw7S~t5@8m{g;6wI)M?}3cFBk;P{8s&6sMX3v^gav@I(}`jC$J4qaL*uOww7LiZJ?|g{n*v^>x8G?+YI%K0LH*QA0gk^Qh=)X= zSua!?$go5Q3k=v@Oa8b~Au!4$UZ_*hLVdBdjKg{jZwZJR0MIysvySr~ z0Ld(KI;0GV0^n{4YB9EeGL%F29p=7tfXuZs{U($ubB={U!W2Hj1vo|NAA^ZAS8T4H zY_G$g#FW+cx&E=aRerw-=K0Ol(oNKe^KlUR>C##{uFamIb@&wzr+Oh%mcHJg=ZQK; zee%-Y`psc+YLOZAza92Bh*=z4gj}n5(X#~K^_oJtl_bJ!oftue95=i|g`i-n^}0XT z^dQl#(7GfwCLt=z8*P2AFoz#FtUj35dl}TDmFCxpSsj+<(pG%VAZAI@T-ruYDUp^D z<{4^3Z^HZ3IiX&Rb#bsRtcaranLy$)W)o{rP;aXB24gL71RHtyfju=zK*1ZU&uPH;9Z$InW9V2QToO0<)A zdO>VxptNRN?e##LDj-R7VYReG?$#nM?ehqI4xl1$U3~=5k9K4sdOgy{4Y=D;oeRo`lFELSUw(eX(` zO^p{4@DfWYNn43UhPu7PeMkIPC|1MKah$5{F#UKgvB2SBS#rL@;0IjCQ+6w0elbF4+HUR-6R*4|hE z!b=s8mVF#HH48Tqao&Ksm-v!JeceN>K*nM>tnX$QVceU!e=a?ZGrUc8=Ls^TkiR zGXDd^X8t5GUsoMx{`<3X&NBZ!S&KMD%vWkBk@^31*vx0Olgj)*$jUj({QsD>h*QG+ zDXsG-$0lxt@Vk=#_2Duf`bJ4UR~?u9uV&?(W&W457I8|LKdE&-W?LxW+g;{g_1I7+ zTqqr4zOFjX{L4{&pGM3jS&KMD%vU;pf+yT9F7xjgHuG8M>#F0-e_2+}S;?QuTEr=0 zzS8;N0E~}YUFPo}HuG8S=&Iw)e>^MaEb|}DT11rjQ3q%zJOFJoTR*v4L}Vz!QgK&S z{Yg|9PfXe>Ce@D4WnIOHy*kefNYu#V)NNV#<5`8m%GKMshz`rb$#uc%Pvh3S1(ad! z{9am}PT*-tkb{huqU=n2IemE-UAEKZ9=hznW!IY0z4ZG&y4;V;$1Y}a>{ar?^lgX_ZMVb;;tju?5C<#XIcC2ha~{* z^_vl4K1TJ$7PG(6za)I9n9MPdEI8~p;ZJ>?gMsI z#`ybZ{qy%vvKC===YLaOl-3cMmE6@2)C==P#H4iShwlxoAFkO9=Uk}z^j`QsSy^cH z-9IW8rcEHZ(opr?FKmEHVtw~Z^o#Y~^OU~(WxCOezWV^Z$oh^x(fV$}(RWup&Qs-3 zoAPlYgPZaR`W05)ze6{AY0B@?i`*3YL^ow?LQ^tW9M))2U7n$c=)lWRgr!2M*9=8i zD%3QVp$JQbn(i|cVX64htbMWjwQnb(57t;+8jS}#ae z<#%Rfqm}U66dTj@!$89#IAPX0qzOYF)pA-a3ZK$E7mg)I>I-6iYq6cdhsp_dK+LS< zc$K7q6OHuB6aBG)^IACtS2PY6YcmZTDnJ0+Or^Cviy%7W?qlbp?ZwxKOE$y>KEl0R zMCy3TV7?tfiHUJD>LBi3oR;vT{rrF78`+v9*3UmC=0&gleEsHFKL?F4{3NF^`&^%v zlhI>mzg1kaA?~zw_W67FMtl0-_utdMA!bCcJ$+3=Pjd?lCxdSOker4dyZP6}B^%;S zUpMcJb@P|{@8&Ov8PP{Ks}>ke2HpHQISoB_^Jl~*8{#6}oMDk+*D1;j$WX-a4YFRG z^DlgzblT`$M0$13-vAo=G>fn0B2LY6qx0;%j&?+%Dto(_%UV>e5q7tjNxgQ|b#aw# z+F%AuFq&U3r=rKve22JXLtHSLU&ck8Izw!OW>d{wXI4N)pO)BRF*ADY>>E-$8?7)L z4Z3?tPDhX3?Tbq`#GSV8zGUxmwc1=t?(}!}-|6oXv!vHfe{sCiqir$V4Z8lPt*${Wyx_`%za=&`duE-u*+*K22I z@mF=8!q@LE9QW(dIsBXb_x9Jt%;=-HgGLyJ2EF}NIT=0n_LsTjR5R?&sZwYX#>b-^&cB5M(L zt);}PueFx45i=BFsZeW;3`Im&d>M+cRHzM>3`JNfzLs^Hhp0e6Eg!~A^M9v~^(^|D z{hrSLSnN>l5r~(}>P{Yv)TnOzV~wn$Z2itPE<&y;vv9BTY^OHPiVMX#KI^^5Z-Tdu zs(hE2wR-T|)$31*Io4zEv~P4&C5c6zcLJjgGWsZ(1%FabQjf~=9i97jpgTjI`}PG% ztjM=&z)kQY^Wi7@@8plmIhuH`IW`2_W4(2qamTRCYxipAfEOHL7s z3=_Py5tJgzP=vJ++F2W7sZdj0UsNpjLj^1qM%)lvDj7x|8!FwvJGLH>4yxo4L9Oa$ zs@#scWNQ>Hh}KlOHER)8iYBubp)E~@D-ri!7F&rsuoLu&KcLQ|CUxt)*{p1{oj1cp z$nDGwvftShiDq00uf^Xc=4ot}d5f4;$zv+kE$!#qStcQMyHVSLS@}jeAwAA1KO`>M z5EqylC$bh{wYd_gzO?y)eyAYquS)>)Lm@pgICxYqh9JInZD9PMUFR`)5dNW%qg@yC zN)>;R!o(>->f>F{YY~9o97PDJ;2^>cQnwb0i=kUscFr~HzCQz$(sFB_YvWoD0#|Gs zogRDzU4D^Hq`ZeN@1x6aaS;3bubcz=S;URY!qk9#meILSpZzG+Q07scG^+= zeSUEs{emAC%=?IotSbny>Grz$>KwxqX=uszCB?=ge)ye}?F}sJr1wlA6~ zRH~I7_D*ZIy{K=-BQtkZu6&({MKSdoCo^hs$u#>2{L z>1F&+t9|Yqw!ZMJ^#4LGORqp1OMi-AZmUawfm_q1zoct>1Gn&@`a?Ce^5UkyTmw#; z|1g@m+#rUSJKO7v_`CF1{OM=-N{EirrO)E`$UmQ(mTC~WbPu~sfbf3luN~SS_e|{fmdxci3{k)Qb)%pTx#V}d7T%B(z zY(4IT($Zy$O8xvI0Q=7PPqvuv7Le;ClYf$_Kgq;D&2&7?wVvckPqw(krB70$RdKoY zm9g+K^3J!fYSfmBm1B7&(G4VTqLU`8?F$}a8MzPI;W(lta|%FggqZZFVA9Fv>Kj+v zFN&3E!*@9fv2@wNbIyr=`!s)hUF_Q+oGtv--&2pg9zCLJd`ax9P>r1nP}N=?D?mku zh3jmS0DKq%pz3^a?2~Yv9CVcUby|fg$|wBE?~$-w3t{V_!VX`n3a^ckYc}4(RX#+b z{VNddv?>?%vCw?SuT_=Tr&S595U%uNG?bpiP*Rmzt3V(9%||Ou`(9P+#j1^N$%ZR` zBMspZ3}IFINbKXF@}5djB*djS*dYwpeJ5#-pN8g8b#F?qyYuI1m71LmhuiNZO?5kT zQ`bs6f37Nxcb56e?hiTDuY-;(jRe)dG~DKNAEV|P`^A5T^y&+sK2-xodn&;=u)+m> zhII2c9x?@u^;VGad4x+k7Ye>~NkGyKK}iXAt^SUtff6IX609;erBzxBy=Z3NbL$PB zceSckQ!>)Ev!TUSyRJAXg*+;2t6cp*h_3AOw>99yj_k+0hI(*Mj@$K_>axrgPoqgLX;9;xts#p+l zd@T42@DuZ>#(Z8{z#r`k_waP)g$r2Q@C)_1rPWf6sY>|jg1!6(4mRRcqpH=Zs?<{L zxk4X+j8p;;OtNk)E4cld3CL4f!q=t4Tm=3iDl{qhi%QnT|Hvv&nCEBCO*P?Mjy`v zke}^q+y_)Ukwz_OU*$f-S(+N`O?q;J`-F>|2|d5oeGUNIP?eF76-9Ol(Z1UK7>1@w zt$}*uj{;&Zn>kYSkIq%+eUmB`gy!0IbeZ|VPQ0tR$EWT+=bX(romo2$rY<$T+>Q~C zA+T_{b=12b68}5ztri<&544Iv;YHpL?|uRR1s9*nZ``=q+qYCij!FzK7@Zz|BKd`1 zAt($a67}nx=4(67y&~J!ZuP_iyjmU~?)7nN=Z^cP_ul6r!N_72Gm&@KQnOiWY#kpz zdh}?%z~AMo^~G^rYGYh~F@{3!_7?EnLaSUhm3s5QVlI{&AWUb}1d1|5WzqbJ1e;46 z7wXkzN>+mVCV}Sm%JEUq*JzG<53!aglt;aNtyCu{DpMT)k*`#syeoXZ zqfn-do%ic12u<14un$bB)z}{x4>z%46Dw$dU2LA301s9n|6a%D9uIhUf-`lE(*<7 z-EVNW+*_nKmoZEMA?sWLfJzi3r&@{h8C*m zv0AlC%SaEmDJh*_ndcg-3;gGiVxxtZ7F6R5J0KF?Ec)zlo+;xgLN|@M26_m)x77qe z;M+pAj5TRvt7=O=k9V3&TU9qu>vlhJA~!d(GIIirS;-w6^^T9AcOUV0KYHMv;$rRq zX3+y>aI@K%IqV&sIjmmyw$B_^FVkBis&FL8fV^zw3JwJ?93l=;>q5PY23Eil^X_51 zqw@Qxv>qM{p~=|B%ma&AXOevDx^6emDEssug9|+CszSmj-LR#^g zlXoP%j|iQ-R+MJYp-+Mr6&tpBri5Irj(uvlG5q;$`|2%!B<~}2Ol~Cj0Og@4QACbE z9rbQvVsE_(zZT|hvM(MjHkXtwp08AA$c)a7Z1t+GCO+p+bHxheX{O1F#D0ega?HJ% z;{35~lM@qK4rtA91&mABiVj8*syL>QWKZ?BQaM{aA7p5??T7(H&o3{KqQ)X-}kUxW}mn` zGgHQXo+|X!e&scq^@D19Nq%VnRinMJ zNy|BvhBy6sZX_RcDEHi`Bif@%_-9y*Mm^KsP$_QXOb3io_vsmv>Z1Sfj79*sY2FGX zXtQ@e>^WAoJf)MC)H4Z)g0Cug(=Vr07<6%JwIru`xN;lS@(~yfWGyg7IYW=q4@B!` zZ>O5blsd;Wz`Vuq!OZB-gGu${UZK^5GqzcrBgIxN!!pt1g-T#TO~EvekfgfZX&J(e zcI_CY`9_EovSXoz7Avr6_QNE>FETz3224>DKL)dcS%{d)x?vyCwRjMk_mv6S}1;kx7Xsyg?X z)P1>4CP812?u@#Dr&wEcs5LOns|(HL!ZA)^qV>Ya%yU4Bcg7!KOjVeZB z$}r^{d7Ax5?adx3&eAt6s?Qp4Mn4(mds6QWLgBHAgjanz%hden2TJ*rv z#6yfES!+}*Bc}ZpkQ4Av^JukxxRJgLx^r?OKQTFV`y6GmYX? zunyI-jedJD|6od2Nsq#61G;XZLDL!!g@&D%cwPJhxk?Q44YM!?>y{~NSPXL|IG80D z7ANeHAbTa~Pc|Cp&I|%7=Hd5;Be({yoEi-Iy1xh`3JV@B6*F+b%+TvOWoeS)!|Pp)wB2-Otl7XgXj$m_@E0md%0=vW^c!+w{z5caMXLu&OA))yy7$U z{{G-2Vo44~hwRg-5tI^QQ|Qs;$cS1{%;J?fcoxF1DT*ey9vop~5QRc}g~<*oh4o7H z(tk86;9n(y@{MI4dZ=1t8)8>u`_+QwDZgHAl~5{UcaN(=Gm? zD2vkNkdvDp_4e2bv63bypkDp)6sO0Y8g&7!#rZjUO;LrYB&4;>&5mFM*WgVD=P`=0 z!ad@{_ibCx#?Cx^;NcD;uK5TfqxsvM15G#6;RMm(}DV4w3dw{$Vu!XdZNWP2N!fX+^YzRU$ zYrw=c9DPs!VO-qo^r^b-d2{dqxgAS}svai$Rns8MW8_YO5P&Un4RhP-R8yK@$!IcXsgCqrVt8B+{v3+`E6Hni8Mx5J8nSy!tOrMo|ORO=tGXJphHgHVw` zA0=tl<>=AeS$peupREoJR=aFA6x@lXqvJ8qRh!|~RFk-JirA?o^a^(eCKBx4Jf`<< zND}lC1H+^MQPo}#V-xs1mFQWN=R@VW8uKuzP)F%WAw<8Ud>>Wo7cA@81<5LwP2~i- z+zGA*Rfi}ExXA)#t){zxfS?H0#kH!6ZK3!9(qEfMrOuGGezktTNFWF&9Wm8WQVKnMOZ427v^eJ}7*$YhKinqxF zYS%N$esIh+bOsX;lm;IyR)E;vf*ndbj==*J8)JHqi{c47&%2aZ1P5=1p6NZy;E~n@ zkzu5#g&A^wx|Uw3y&)AHQEtle^aM?2liBne=5@GDW`Us23X&T|yry}Ox07L7(aoR{ zq4t@!gN-5nSd&AmRo!fLUu_V=RH(t9$HcaOvx8YghnN%*a$(0k+D_%HQ<3w@W5Co)9K7ft*N%inmy3Vb>Qw=HbIZ zB$?f5W`|}0o9!rse0^k+^HPn(U5l}*^3c${w{#4F`=KA#EfsRsZ`*_47TRn^>oK^# z7#N%Sn#AY0tKfJ!VBld#Mltup0>ZWFJ4A8XCk{sk9Fx?WC)zfwdms>7bD_4PHKD%( zG2z$HW<18#y^Tc|>o+`8YxS_cYaqgpmYR9B;v{8i%6gW$S%XHOby>nc$cuYglUPrs z^&-Uml-uX$m2L{SXx5Q4RETm!MrAR<->CGPS)FM?%PY;wz6aV%%fanreZL^fIJ%t5 zi2!n$!|9aZF*i%Gu=^DPPIY*-+c>cCYZMn8CYOc53&^PHbQyP@hg9I1U!CaIC1pX;n5_)^&(j4+6td!@i~_DC}#? z#MG7{dRBHS_t3M$wPIG=slJt9B8h~E6{8*&4iQt!>cl{?vu+kG zJl3oTTf%Xkm9|Z+JaM8pHVLO1yIe}-V6z=Q1UJlS@V5-hn}K0I0C$E`q3mt9XP4B@ z2RTX3hM@)G7@Cv%b7we*w*fyJuxem$>$&PH4DQ79fW zdZ{u54G8cxtv555jf0oHgq{+2_ibTn2- z0o$!zqK^K{LLq&3cBSt`gK7RFoGs*HF-z~B!@`KMXP5k*@>Dzo2Y-d|WF!6h?S+nP*Yw*Ff`e_Pbdv02@=RtZeC?#C!o>#5evx}bU?3<|b@6?Tp z*)ES(dTh;}H*=->XhT#Ft?V7lwTSdPu`SMbrv)3c1S!F#|taq0x*0 z%_yvz&OkDxi46g9fS3nV8bE@C(LZZ7`eV1wEyP$cZbC7-Wgyf-@G&#``|znsoI-FQ zWK7R1$Cp0aW;a1xL>ayEJ-tX3KftRkr|G9s2J;v%-xfjxu&M{rz$tL5zg zHD8lT&_|r;r#aHZ-p$i{C<#Z6Aqg=zM?PZOLbdjRN_6Id5(hru^DSbhKvp6PF zv(ePVTpOX$pjiYbv@{0-*$EEpr<~EUB_J9WI7ozCR9nI+PE3pFjZoNhLKlNW_h`Bb zI5MFE@5@!3-Jy|%U@(PJGG_)X6BB0ZW-s!6)q~B$qnYGDVJ&&U5GCTE=GbB!xJW|+8o2S!X8b2y% zCe@!O5ujtVxo}Ty3;%(^s{@lskYSSN%$z^4&}1rD1t%v0CJ;0qgUK0$1a1N%0X_PV z`cqpLJq0RH-bUMLQ(Nww9O8DGY0(+HpB98CKj)ZWE*-nw8K(M6gSaC-vFGL$Dd`%qi ztpkvRaWKD`cc4(NEfowZs+xqGv%g;M39fnd_o6GP%O#sMQ| z$XuomKn!FaQzko(S(uqFiGPGc)FWI|(&w0E0;9w2Mpy_YoTH~+u<;(INY@g1V#?Yg zxu8U4jFd)3o|sx$IWZNH25AY1Zgm<_7@b`q@Lhzyj?Utc4%t+Js6`6j(wV$1E81Mb zO2nLU>0Ly@=E+0qgsuK~VrZvhw0%*laZCF*RG^aC5J?IvIcur_6&Wrmj)$-lBXgeC zzx;!JEMZe65J7io-_>@p-=#PKd_b~$=3vL9KX!**^&1@3(*t4Hzp+E>b^6a54-)hM z^=b!Mh8?3GDWs~&|p#A}yCE6C8tpKamK zrVwP$?@|qmQ={q+m`_g?YdKZCK8~VHsSq&ZX74eER3=br`g*!B&A6%atvOge@S-y0 zKjh?SK(7lL5au%B^)P}ba1esmk+2I6fG8FZlRO0_oLk%i>am?L5;g|O`2t&Te+~%8 zqa*YhLn$+~N(i&SMGOgA4>)8xzYt-7Vpy0F1$*4zmV`VA$okMAl)U|mQvf5KP<=5) zZv+|8=m$YBt!Kn257LBMaK zxbFG={0I1gVH`RGvDw=WEUV*6z#Q2F0W5kd_$46J7~_RJVE1Nn%6CQRR!ktymxK&- z-6zbAf-7T8Wtg*z5HVw}N3sSD-e^}9us2Cryrj4Q@&%VG3GvPfum*kn^mhA4^te+d zy+QZi=g%!6ZAnW3=q8%n8n!lu6dJ}IjpRecBRD4xfOQ=`t-QOuw4hs2XD?;nfrZ)kyC2^`PR&a=?ls6L9|5#6`)fR+Rx-=?qC z_`?bd9^n0In{2+gV5TY%$LHLQ=BMJ#T9PLS*EOQ^v>aV3QhFjlTFy0*;Rek%-|+e~ zq4N(rf;p)>qeK7@iUOXLhUF%YmmK$ z^ST2M)dQ$PppHUu96xA@S{xoLOoUtQ@)!pa?aFx~zr{XrSaxOx-|XRF8SRUKqM*bf z;(!^2TNX&lnSl69P=5qb6UJl+2xLbI{ z9;ZKtstu`)8Pt%SGQAONaBXS4Szfl_vS_7Rw^7?$?1ESA+sZJ0G^o%dAUYR ze`wJb-vTDfHOD*8REqhJ%o)7zTCbrtyC!Tvh}|eQ#}@}bVVjb-^6U$|cx-AtSj3(x z&RHSRTsfA8o~c7BdUa|g;b6kn@$u#5xh21{m`B?2@#TePZTw-{zio_9P43(I@QkT) zh!ZzgA)B~$9(r|RfTlOjOCO%8dYQy^Zus8A34`p9y8dmPdy6M&H?+po~rurXu3A!KM(;Q2J$A(S;yZEq-BQ*8v%TeJY;H7E9gSO{W!LCi6|-xAsn zI-{pmBaGalOw(#`kP?e`Q(FI%E9Ec=O18;+DCK=@rX@8)q%V-WdSe-@mth&0piH1`cQ|9RnU4?O_hgH4 z)4e;5LgW3~pm{F+fKy+>_-Hh9#$V1=!UDjc(e5W2SkR3$iVkjMOpwdWfx!qg#jfjj z<$z;xrG0EqtZIObn|F=kjZ5tt%73Mw=66lv>E-sRapdXeTXww?&)1vh1kZ69-@1|( z-Ha|08Uy;Hxm_iEv`)W4-|XN!SL-{qTAs7rXcQ>@)jN0n8ot^PyhGnD^Sx^$o61op zd}-G|Q>k6`DrfQ zyhEiQRyP@!FW^=u=fY$_1qHK-PIyD0`TxYNs!f zyvX>9@5Rw`j)>V=nXCIqR84vVN1+yq2x&#MB~yKf&(E8%%x*`j_?$2+ujC_D`BaqM z$qr|#>V>0TVQ~>jX5p1X#$j$6buZ8skaz;O3S{S(5#*en!2AIE2R!$HqfR+Ty#r`0 zXHS`(1%N41r|9R8J5L?~*y;4m|9^GY(&I)Egl`;pojCCjBO`^`)n<|yyMkfxsk2tzPW$Zq7n|uE>gT0Nu{DCffr>DYL@ zb*3z`XO?Vkn%nJFxUs4VyD6;EOEE(wkPlDSn(8clkLjRB3Ox3DS20f#oYJnIbp6J* z?V)qu4d`d~=6YY+YU6XyHYQGI28anCUc{dpmRtC}9U-K~YRPx27RCjjj&Ti+aZ44P zG?Yyq%i^KiKjzu_V+}i^)80cWhvBS1{(xgHQn6&v-BCmq3^0OOVz+^ls&X+i>xKh4fYvFr1?6qWso7P>+hvjJaq{7-PPsA=^oP&+gqu82*S{GezQEyp-UHxX++EZVJ z8~nOZ)9UFvYiP%AZkhxACaEay8jL1;xK`m~{c5F&o;=uaecZrcCt#A63lkHgeq#xn z(W44E^&ES|9&x{F$aNzIwDOCgCY|k{SgAhQ8{mk9IIx;jT&C&*oVVQJ3ox zXN*k8VxRJQGwv-MM8`$`aTPtyi!+?TIpZWKM~!5SHJq`$)_yz6MD=$R0L*=_gJ8mC zl})(q&cQ&_IGUN;=xQxiP&bOQTO(Dd3TgMtl(vRu1&Ei!Fh=p?v?AT zBBln$lgx+QNo; zX)3z&%x03y8k}cm&_%Oj=ywofGtZNHpazm!M;L`LvY0O$OT0=29akbIoQKO1&l&=9 zRN9Q76rXc$oD_pO5>V$6l8m3E^Kr!hPkd**WfinQgC?5O!qjDDTV9W)`i<+bZ#IqD z#H21ITKvc?v143pH=Q>j(Y^&t`1GkBr?!}>6PI*jhB&HUAxsd8(Non#*t@K-&vTzgyOvYia;Mn`NuN#y7fcL1SU)0nKRwBYbL`D` zvG8dWHePddYynG*s2R;*3{sYE@erYphb)P_p)tvXh4c!G0#KLGJV(FgGFg!a49AAE zQnD{+tT4!-vTe37A6zp!WL< zz^kIdo|(YHe(tMqF~j(>ae-3Fu_`0m5G{tjiieQiJL=?oMU#m`# zLb=tsS1!B_W8>5aA86fB3Rnv91ug*VuW)@5$|wvO76!R$0)V@+pL)taM-2}RX*H2U)Vq_TA2?mQ%(dw2^Cw(^Tla>yyWKcg7 zx=gHe!O<%yM6W~gpq#6J#ul=_vA^qy^97An$_`Yu)pcK8we|?qgU8Er*G9`b!%VEN z;$Qw?zs2lXce7sYeF0zNhwY$rpvs&x-rVcGeE_!_N=cxZ8t5Cn9-!ZAty+7}0N(B` z0r-9^py@#ax$6A{$ah;Ig{KDY=iaY?d#4SK4&1l+TKuGcehvR;f(Xs0U){0ae!pwJ z%};;3B|g!&MG%R!so*(;NA!=^T0Nqd|L-1A;{_Eph2Fb-s%}oWai-&<8jp^wO+6^a zOw5U$e1Hum3U>G4mVJLP5qslx4tGR*D#z(UuK&lQ3F1D;+eH4=oBV5!Z0*cdTS7c^ zPO}Q3mgPXH-^sb0T$SZ7s7;pgK{Yj%Z^YAycI(T z^}0f)*D7oi-~cg01}vDkV|$EuyT6py)=3r>J;9VaIMn zUd^H>5LpmR&(bjh2s0p?*W|uS$Ma@MITLNmqc{e7P7zm>WriyjsA#T7QLS8qOyjLD z=s7tPEDtj6m|$>jaSvk+hCKl13CYs=5NMAo1sz>+2c0Q912T*)ZkVM;CZZoOZnYXK z^O{&mcNk4UFw$e%*Wj@OdivvY1WWRqRXjYK;*LUD4Cusg`IgK$!jTU!*=)KVWz`u@ z)1w9I3cD7!fnH%5OcF{O{)+7YQw7o42TCx?a-1#P;FG@hvw~2#N+DM=-a@kIKO>Z<8O)o1vaMl)3i1O5`@n*mIb~pi z0x-eJ4cs!De{#EWutSVc+H5QGiy6vM-fSkZ48~E}d|UbtGap2mYKC-{HzNZBM7w+% zOuOdhIE@Q19a@`pbsn%l&C=e?WB3XtqqF&|NiR%BcXOlVG!}uP{QQ#mf}+&4%!(;J zjQUe1i`sb!b@cESrzV%=mFC7*q~#aoPU+ZOY^T7;czg2{`)^E)9h-Zc)-eMB`@&Q| delta 183 zcmbQz%ebqDk)?rks{Tfn=WKk^89W&>8O#~789Etqew%->tziO+^&yLG<&1ly%$vO=mNIYtF8!OCMLNryaq>k=z0EobVH}eab%Zz1)!4(l zIZ@|63z!#ec#Rp%@G-4q*?iV=D$C>&I}Z_W#vb0{)Z~)9(%krpwEUvnDc+2m&)F$3 TGTz+$-u@dC6OjANX&o~F@-{#{ diff --git a/latest/.doctrees/installing.doctree b/latest/.doctrees/installing.doctree index c73d6a05ffec0b050462a57fa841b6515ca435d7..66ba399b3ec6daf89520048c67890af9615c8315 100644 GIT binary patch delta 72 zcmV-O0Js0%E$uA?fCZJ}u>_qD5OQyCbYF0CWoBu3l#Br{l#`ziN)m{S4Rd8drz08fpzNTjVyEdCvWEW5bMmQJBWAl)v6X5 zB(cqhr{B>>=5wB?Q%2^0d@U}*J5`v0kpToUw6h|oS2Hr|ZFOc;L$+)CWpT!EMTo}K z?Gr2+RiLJ%P6u*$wyVW5W{5(iK_cwie-|-+R6-GnoW^)o8fHY#CPpt^7{}%T<4bvt zrwc$%U|^U$aiZ{62PRHvIHYc0&(6dTw+_hR-EOGO^d4y4c3?1dL1l`z%cU~y6oD9N zw4JMp$z2G_nGWRGZ9mk*beCJ8C_ld>zMv>IEwf@u52OB+>2qf=c?os&@D`^gm*kb^ k##f}}7v)ar*#3J4lL8~7<93-@Oy8IoJGP6=WqQvH0MvAoG5`Po delta 430 zcmbPwh^zS!7fS={RF;h_@~nK)837qG8O#~789Etqew&S0#Te1VCWo`#=SEUCS= zb0WI{JEO&91M9-gkNJFb7%es%Si6XWMKU+v3u;z}Fel#&;@y0ssznCMDC+d`;%rCFSMJ8V;VrQSq!@$VEz%ad@kx_T68>1T3(Cyd68N(GBEvA2%%9yi# zmL;PsP$z_=63dt?3gHw_pXSKqzTKyoaj_Dk#de@tOQ6*tWvScyH!*tY!Z`L17+=bB zTw4IN2?!=X>=B-9`$T$c9Md~CsFLaG+DyFL_p>uGK`lz%4ixzVwJ3Farz4XpOlCTe z!@FHEm1(C4*gHnsd8?S*g&^$dK(^iXqdiP_xu(0&Dg_RoSIycSDG7Nk(OVS fJH?xEJKszu1x7~u?fSErzA-TY1=Qv;y=MjhpuLUY diff --git a/latest/.doctrees/metrics.doctree b/latest/.doctrees/metrics.doctree index 1026aa41f76b90f86b513f2540bc2a72e5715f04..b0a85f57ad2bde1e304b51a669932a8b8bf30388 100644 GIT binary patch delta 139 zcmdnCp7H2W?%*@yvr(etiVNQi_@% delta 126 zcmX@Qo^jiHMwSNFsjD}#IIuBVOpf(V-@JzHrU;bzR+>W?%*@yvr(etiVNQk;<2M@y OePdz*ay3HdG64YOkSf3c diff --git a/latest/.doctrees/notebooks.doctree b/latest/.doctrees/notebooks.doctree index effa8989971627dc8e9e05fe5c1667c3d0e6ecb5..29b3159a2667a06a2105daab9f96286efca20e5f 100644 GIT binary patch delta 83 zcmV-Z0IdJoC+Q~yfCZJ_u>^Dt5OQyCbYF0CWoBu3l#Br{l#_N1N)m{S4Rd865M7$Y$c#Bh$OY%x{<15ngi*l!UGj4vutH8+7*u$4v YRFq#d`68e2W_kX3j7&h8eFECd0DJEk9smFU diff --git a/latest/.doctrees/utils.doctree b/latest/.doctrees/utils.doctree index 6706276d01e8eb45cfe271505427cefadb8b6a95..68d38bea2c1353b9b3e384fa2d0941a898628bde 100644 GIT binary patch delta 90 zcmV-g0Hy!WVBTN^fCZIPu>{ux0XdUy7GSeH1Thi;IkRpS{}K>#Z*O#8aB^j4X?T>3 w0WXx3Ybi<+h>Q($Wn*-1b!}gGW^ZzBl!&v*DIfs>sk7=T_5uNjv*Imn0{2lOuK)l5 delta 76 zcmcbYa6W;hfpx0OMwaW$j24sg#1b~!uowz4T5Qe}`!6)PUeiOwo3V$tI5oK>uQWHl gA}zltcZxUT=9`)djEu`S|I+%##02Di)XilA02uijhX4Qo diff --git a/latest/_modules/index.html b/latest/_modules/index.html index 670e065..9487abb 100644 --- a/latest/_modules/index.html +++ b/latest/_modules/index.html @@ -13,7 +13,7 @@ - + Overview: module code - TorchCAM @@ -256,7 +256,7 @@

All modules for which code is available

- + diff --git a/latest/_modules/torchcam/methods/activation.html b/latest/_modules/torchcam/methods/activation.html index 26f9089..109aad6 100644 --- a/latest/_modules/torchcam/methods/activation.html +++ b/latest/_modules/torchcam/methods/activation.html @@ -13,7 +13,7 @@ - + torchcam.methods.activation - TorchCAM @@ -686,7 +686,7 @@

Source code for torchcam.methods.activation

     
   
- + diff --git a/latest/_modules/torchcam/methods/gradient.html b/latest/_modules/torchcam/methods/gradient.html index d58d952..b61f604 100644 --- a/latest/_modules/torchcam/methods/gradient.html +++ b/latest/_modules/torchcam/methods/gradient.html @@ -13,7 +13,7 @@ - + torchcam.methods.gradient - TorchCAM @@ -674,7 +674,7 @@

Source code for torchcam.methods.gradient

     
   
- + diff --git a/latest/_modules/torchcam/metrics.html b/latest/_modules/torchcam/metrics.html index 78d1f9d..7e0b483 100644 --- a/latest/_modules/torchcam/metrics.html +++ b/latest/_modules/torchcam/metrics.html @@ -13,7 +13,7 @@ - + torchcam.metrics - TorchCAM @@ -403,7 +403,7 @@

Source code for torchcam.metrics

     
   
- + diff --git a/latest/_modules/torchcam/utils.html b/latest/_modules/torchcam/utils.html index 9d4168d..a6bbf17 100644 --- a/latest/_modules/torchcam/utils.html +++ b/latest/_modules/torchcam/utils.html @@ -13,7 +13,7 @@ - + torchcam.utils - TorchCAM @@ -302,7 +302,7 @@

Source code for torchcam.utils

     
   
- + diff --git a/latest/_static/basic.css b/latest/_static/basic.css index 30fee9d..f316efc 100644 --- a/latest/_static/basic.css +++ b/latest/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/latest/_static/doctools.js b/latest/_static/doctools.js index d06a71d..4d67807 100644 --- a/latest/_static/doctools.js +++ b/latest/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/latest/_static/language_data.js b/latest/_static/language_data.js index 250f566..367b8ed 100644 --- a/latest/_static/language_data.js +++ b/latest/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ 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 */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/latest/_static/searchtools.js b/latest/_static/searchtools.js index 7918c3f..92da3f8 100644 --- a/latest/_static/searchtools.js +++ b/latest/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,16 +304,32 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { let score = Math.round(100 * queryLower.length / title.length) - results.push([ + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", @@ -308,46 +344,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // 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((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +398,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +508,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +542,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +594,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/latest/changelog.html b/latest/changelog.html index 05f4079..5961e02 100644 --- a/latest/changelog.html +++ b/latest/changelog.html @@ -14,7 +14,7 @@ - + Changelog - TorchCAM @@ -222,37 +222,37 @@
-

Changelog#

+

Changelog

-

v0.4.0 (2023-10-19)#

+

v0.4.0 (2023-10-19)

Release note: v0.4.0

-

v0.3.2 (2022-08-02)#

+

v0.3.2 (2022-08-02)

Release note: v0.3.2

-

v0.3.1 (2021-10-31)#

+

v0.3.1 (2021-10-31)

Release note: v0.3.1

-

v0.3.0 (2021-10-31)#

+

v0.3.0 (2021-10-31)

Release note: v0.3.0

-

v0.2.0 (2021-04-10)#

+

v0.2.0 (2021-04-10)

Release note: v0.2.0

-

v0.1.2 (2020-12-27)#

+

v0.1.2 (2020-12-27)

Release note: v0.1.2

-

v0.1.1 (2020-08-03)#

+

v0.1.1 (2020-08-03)

Release note: v0.1.1

-

v0.1.0 (2020-03-24)#

+

v0.1.0 (2020-03-24)

Release note: v0.1.0

@@ -332,7 +332,7 @@

v0.1.0 (2020-03-24) - + diff --git a/latest/genindex.html b/latest/genindex.html index 57bac9c..3af1c03 100644 --- a/latest/genindex.html +++ b/latest/genindex.html @@ -13,7 +13,7 @@ - Index - TorchCAM + Index - TorchCAM @@ -361,7 +361,7 @@

X

- + diff --git a/latest/index.html b/latest/index.html index 0c44303..37307c0 100644 --- a/latest/index.html +++ b/latest/index.html @@ -14,7 +14,7 @@ - + TorchCAM @@ -222,7 +222,7 @@
-

TorchCAM: class activation explorer#

+

TorchCAM: class activation explorer

TorchCAM provides a minimal yet flexible way to explore the spatial importance of features on your PyTorch model outputs. Check out the live demo on HuggingFace Spaces 🤗

code_snippet

This project is meant for:

@@ -233,9 +233,9 @@

TorchCAM: class activation explorer
-

CAM zoo#

+

CAM zoo

-

Activation-based methods#

+

Activation-based methods

- + + \ No newline at end of file diff --git a/latest/installing.html b/latest/installing.html index 2542696..351e234 100644 --- a/latest/installing.html +++ b/latest/installing.html @@ -14,7 +14,7 @@ - + Installation - TorchCAM @@ -222,24 +222,24 @@
-

Installation#

+

Installation

This library requires Python 3.8 or higher.

-

Via Python Package#

+

Via Python Package

Install the last stable release of the package using pip:

pip install torchcam
 
-

Via Conda#

+

Via Conda

Install the last stable release of the package using conda:

conda install -c frgfm torchcam
 
-

Via Git#

+

Via Git

Install the library in developer mode:

git clone https://github.com/frgfm/torch-cam.git
 pip install -e torch-cam/.
@@ -326,7 +326,7 @@ 

Via Git#<

- + diff --git a/latest/methods.html b/latest/methods.html index 0deb134..5b05eda 100644 --- a/latest/methods.html +++ b/latest/methods.html @@ -14,7 +14,7 @@ - + torchcam.methods - TorchCAM @@ -222,9 +222,9 @@
-

torchcam.methods#

+

torchcam.methods

-

Class activation map#

+

Class activation map

The class activation map gives you the importance of each region of a feature map on a model’s output. More specifically, a class activation map is relative to:

-

Activation-based methods#

+

Activation-based methods

Methods related to activation-based class activation maps.

-class torchcam.methods.CAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, fc_layer: Module | str | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.CAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, fc_layer: Module | str | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Learning Deep Features for Discriminative Localization”.

The Class Activation Map (CAM) is defined for image classification models that have global pooling at the end @@ -274,7 +274,7 @@

Activation-based methods
-class torchcam.methods.ScoreCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.ScoreCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Score-CAM: Score-Weighted Visual Explanations for Convolutional Neural Networks”.

The localization map is computed as follows:

@@ -319,7 +319,7 @@

Activation-based methods
-class torchcam.methods.SSCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, num_samples: int = 35, std: float = 2.0, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.SSCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, num_samples: int = 35, std: float = 2.0, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “SS-CAM: Smoothed Score-CAM for Sharper Visual Feature Localization”.

The localization map is computed as follows:

@@ -369,7 +369,7 @@

Activation-based methods
-class torchcam.methods.ISCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, num_samples: int = 10, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.ISCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, num_samples: int = 10, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “IS-CAM: Integrated Score-CAM for axiomatic-based explanations”.

The localization map is computed as follows:

@@ -417,11 +417,11 @@

Activation-based methods -

Gradient-based methods#

+

Gradient-based methods

Methods related to gradient-based class activation maps.

-class torchcam.methods.GradCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.GradCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization”.

The localization map is computed as follows:

@@ -459,7 +459,7 @@

Gradient-based methods
-class torchcam.methods.GradCAMpp(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.GradCAMpp(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks”.

The localization map is computed as follows:

@@ -506,7 +506,7 @@

Gradient-based methods
-class torchcam.methods.SmoothGradCAMpp(model: Module, target_layer: Module | str | List[Module | str] | None = None, num_samples: int = 4, std: float = 0.3, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.SmoothGradCAMpp(model: Module, target_layer: Module | str | List[Module | str] | None = None, num_samples: int = 4, std: float = 0.3, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Smooth Grad-CAM++: An Enhanced Inference Level Visualization Technique for Deep Convolutional Neural Network Models” with a personal correction to the paper (alpha coefficient numerator).

@@ -563,7 +563,7 @@

Gradient-based methods
-class torchcam.methods.XGradCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.XGradCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Axiom-based Grad-CAM: Towards Accurate Visualization and Explanation of CNNs”.

The localization map is computed as follows:

@@ -602,7 +602,7 @@

Gradient-based methods
-class torchcam.methods.LayerCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.LayerCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “LayerCAM: Exploring Hierarchical Class Activation Maps for Localization”.

The localization map is computed as follows:

@@ -638,7 +638,7 @@

Gradient-based methods
-classmethod fuse_cams(cams: List[Tensor], target_shape: Tuple[int, int] | None = None) Tensor#
+classmethod fuse_cams(cams: List[Tensor], target_shape: Tuple[int, int] | None = None) Tensor

Fuse class activation maps from different layers.

Parameters:
@@ -756,7 +756,7 @@

Gradient-based methods - + diff --git a/latest/metrics.html b/latest/metrics.html index 6573d62..16fbe28 100644 --- a/latest/metrics.html +++ b/latest/metrics.html @@ -14,7 +14,7 @@ - + torchcam.metrics - TorchCAM @@ -222,11 +222,11 @@
-

torchcam.metrics#

+

torchcam.metrics

Apart from qualitative visual comparison, it is important to have a refined evaluation metric for class activation maps. This submodule is dedicated to the evaluation of CAM methods.

-class torchcam.metrics.ClassificationMetric(cam_extractor: _CAM, logits_fn: Callable[[Tensor], Tensor] | None = None)[source]#
+class torchcam.metrics.ClassificationMetric(cam_extractor: _CAM, logits_fn: Callable[[Tensor], Tensor] | None = None)[source]

Implements Average Drop and Increase in Confidence from “Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks.”.

The raw aggregated metric is computed as follows:

@@ -267,7 +267,7 @@

torchcam.metrics
-update(input_tensor: Tensor, class_idx: int | None = None) None[source]#
+update(input_tensor: Tensor, class_idx: int | None = None) None[source]

Update the state of the metric with new predictions

Parameters:
@@ -281,7 +281,7 @@

torchcam.metrics
-summary() Dict[str, float][source]#
+summary() Dict[str, float][source]

Computes the aggregated metrics

Returns:
@@ -374,7 +374,7 @@

torchcam.metrics - + diff --git a/latest/notebooks.html b/latest/notebooks.html index e13e6cb..2c1debb 100644 --- a/latest/notebooks.html +++ b/latest/notebooks.html @@ -14,7 +14,7 @@ - + TorchCAM Notebooks - TorchCAM @@ -222,7 +222,7 @@
-

TorchCAM Notebooks#

+

TorchCAM Notebooks

Here are some notebooks compiled for users to better leverage the library capabilities:

@@ -303,7 +303,7 @@

TorchCAM Notebooks - + diff --git a/latest/search.html b/latest/search.html index 2e55119..e9612db 100644 --- a/latest/search.html +++ b/latest/search.html @@ -13,7 +13,7 @@ - Search - TorchCAM + Search - TorchCAM @@ -260,7 +260,7 @@ - + diff --git a/latest/searchindex.js b/latest/searchindex.js index ca19d95..f2909be 100644 --- a/latest/searchindex.js +++ b/latest/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["changelog", "index", "installing", "methods", "metrics", "notebooks", "utils"], "filenames": ["changelog.rst", "index.rst", "installing.rst", "methods.rst", "metrics.rst", "notebooks.md", "utils.rst"], "titles": ["Changelog", "TorchCAM: class activation explorer", "Installation", "torchcam.methods", "torchcam.metrics", "TorchCAM Notebooks", "torchcam.utils"], "terms": {"releas": [0, 2], "note": [0, 3], "provid": 1, "minim": 1, "yet": 1, "flexibl": 1, "wai": 1, "spatial": [1, 3], "import": [1, 3, 4, 6], "featur": [1, 3, 5], "your": [1, 3], "pytorch": 1, "model": [1, 3, 4], "output": [1, 3], "check": 1, "out": [1, 3], "live": 1, "demo": 1, "huggingfac": 1, "space": 1, "thi": [1, 2, 4], "project": 1, "i": [1, 3, 4], "meant": 1, "easili": 1, "assess": 1, "influenc": 1, "": [1, 3], "research": 1, "quickli": 1, "implement": [1, 3, 4], "own": 1, "idea": 1, "new": [1, 4], "from": [1, 3, 4, 6], "learn": [1, 3], "deep": [1, 3, 4], "discrimin": [1, 3], "local": [1, 3], "score": [1, 3], "weight": [1, 3], "visual": [1, 3, 4], "explan": [1, 3, 4], "convolut": [1, 3, 4], "neural": [1, 3], "network": [1, 3, 4], "ss": [1, 3], "smooth": [1, 3], "sharper": [1, 3], "integr": [1, 3], "axiomat": [1, 3], "grad": [1, 3, 4], "via": [1, 3], "improv": [1, 3, 4], "an": [1, 3, 6], "enhanc": [1, 3], "infer": [1, 3], "level": [1, 3], "techniqu": [1, 3], "x": [1, 3, 4], "axiom": [1, 3], "toward": [1, 3], "accur": [1, 3], "cnn": [1, 3], "layer": [1, 3], "layercam": [1, 3], "hierarch": [1, 3], "map": [1, 4], "librari": [2, 5], "requir": 2, "3": [2, 3, 4], "8": 2, "higher": 2, "last": 2, "stabl": 2, "us": [2, 3], "pip": 2, "torchcam": 2, "c": [2, 3, 4], "frgfm": 2, "develop": 2, "mode": 2, "clone": 2, "http": 2, "github": 2, "com": 2, "torch": [2, 3, 4], "cam": [2, 3, 4, 5, 6], "e": [2, 3], "The": [3, 4], "give": 3, "you": 3, "each": [3, 4], "region": 3, "more": 3, "specif": 3, "rel": 3, "which": 3, "comput": [3, 4], "g": 3, "n": [3, 4], "th": 3, "classif": [3, 4], "raw": [3, 4], "logit": 3, "index": [3, 4], "focu": [3, 4], "With": 3, "target": 3, "select": 3, "when": [3, 6], "creat": 3, "extractor": 3, "need": 3, "pass": 3, "do": 3, "its": 3, "magic": 3, "relat": 3, "modul": 3, "target_lay": 3, "str": [3, 4, 6], "list": 3, "none": [3, 4], "fc_layer": 3, "input_shap": 3, "tupl": 3, "int": [3, 4], "224": 3, "kwarg": 3, "ani": 3, "sourc": [3, 4, 6], "describ": 3, "defin": [3, 4], "imag": [3, 6], "have": [3, 4, 6], "global": 3, "pool": 3, "end": [3, 4], "extract": 3, "block": 3, "follow": [3, 4], "l": 3, "_": 3, "y": 3, "relu": 3, "big": 3, "sum": [3, 4], "limits_k": 3, "w_k": 3, "a_k": 3, "where": [3, 4], "node": 3, "k": 3, "posit": 3, "correspond": 3, "unit": 3, "fulli": 3, "connect": 3, "torchvis": 3, "resnet18": 3, "pretrain": 3, "true": 3, "eval": 3, "layer4": 3, "fc": 3, "no_grad": 3, "input_tensor": [3, 4], "class_idx": [3, 4], "100": 3, "paramet": [3, 4, 6], "input": [3, 4], "either": 3, "itself": 3, "name": 3, "those": 3, "shape": 3, "expect": 3, "tensor": [3, 4], "exclud": 3, "batch": 3, "dimens": 3, "scorecam": 3, "batch_siz": 3, "32": 3, "coeffici": 3, "being": 3, "softmax": [3, 4], "m_k": 3, "x_b": 3, "_k": 3, "befor": 3, "baselin": 3, "frac": [3, 4], "u": 3, "min": 3, "limits_m": 3, "a_m": 3, "max": [3, 4], "odot": 3, "refer": 3, "element": 3, "wise": 3, "multipl": 3, "upsampl": 3, "oper": 3, "size": 3, "forward": 3, "mask": [3, 6], "sscam": 3, "num_sampl": 3, "35": 3, "std": 3, "float": [3, 4, 6], "2": 3, "0": [3, 4, 6], "1": [3, 4], "limits_": [3, 4], "hat": 3, "number": 3, "sampl": [3, 4], "bigg": 3, "delta": 3, "sim": 3, "mathcal": [3, 4], "sigma": 3, "random": 3, "nois": 3, "mean": 3, "gaussian": 3, "distribut": 3, "standard": 3, "deviat": 3, "noisi": 3, "ad": 3, "normal": 3, "iscam": 3, "10": 3, "iss": 3, "m_i": 3, "j": 3, "isscam": 3, "gradcam": 3, "h": [3, 4], "cdot": 3, "w": [3, 4], "partial": [3, 4], "gradcampp": 3, "alpha_k": 3, "b": 3, "els": 3, "smoothgradcampp": 3, "4": 3, "person": 3, "correct": 3, "paper": 3, "alpha": [3, 6], "numer": 3, "m": [3, 4], "d": 3, "here": [3, 5], "p": 3, "deriv": 3, "get": 3, "estim": 3, "pleas": 3, "differ": 3, "actual": 3, "xgradcam": 3, "xgrad": 3, "explor": 3, "fused_cam": 3, "fuse_cam": 3, "classmethod": 3, "target_shap": 3, "fuse": 3, "same": 3, "default": [3, 4], "biggest": 3, "among": 3, "return": [3, 4, 6], "type": [3, 6], "apart": 4, "qualit": 4, "comparison": 4, "refin": 4, "evalu": 4, "class": 4, "activ": 4, "submodul": 4, "dedic": 4, "method": [4, 5], "classificationmetr": 4, "cam_extractor": 4, "_cam": 4, "logits_fn": 4, "callabl": 4, "averag": 4, "drop": 4, "increas": 4, "confid": 4, "aggreg": 4, "foral": 4, "mathbb": 4, "r": 4, "avgdrop_": 4, "f_": 4, "x_i": 4, "incrconf_": 4, "g_": 4, "set": 4, "gener": 4, "function": 4, "e_": 4, "resiz": 4, "left": 4, "begin": 4, "arrai": 4, "ll": 4, "mbox": 4, "otherwis": 4, "right": 4, "functool": 4, "dim": 4, "updat": 4, "summari": 4, "state": 4, "predict": 4, "preprocess": 4, "top": 4, "dict": 4, "dictionari": 4, "ar": 5, "some": 5, "compil": 5, "user": 5, "better": 5, "leverag": 5, "capabl": 5, "descript": 5, "quicktour": 5, "A": 5, "present": 5, "main": 5, "latenc": 5, "benchmark": 5, "how": 5, "overlay_mask": 6, "img": 6, "colormap": 6, "jet": 6, "7": 6, "overlai": 6, "background": 6, "pil": 6, "matplotlib": 6, "pyplot": 6, "plt": 6, "grayscal": 6, "appli": 6, "transpar": 6, "rais": 6, "typeerror": 6, "argument": 6, "invalid": 6, "valueerror": 6, "ha": 6, "incorrect": 6, "valu": 6}, "objects": {"torchcam.methods": [[3, 0, 1, "", "CAM"], [3, 0, 1, "", "GradCAM"], [3, 0, 1, "", "GradCAMpp"], [3, 0, 1, "", "ISCAM"], [3, 0, 1, "", "LayerCAM"], [3, 0, 1, "", "SSCAM"], [3, 0, 1, "", "ScoreCAM"], [3, 0, 1, "", "SmoothGradCAMpp"], [3, 0, 1, "", "XGradCAM"]], "torchcam.methods.LayerCAM": [[3, 1, 1, "", "fuse_cams"]], "torchcam.metrics": [[4, 0, 1, "", "ClassificationMetric"]], "torchcam.metrics.ClassificationMetric": [[4, 1, 1, "", "summary"], [4, 1, 1, "", "update"]], "torchcam.utils": [[6, 2, 1, "", "overlay_mask"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "titleterms": {"changelog": 0, "v0": 0, "4": 0, "0": 0, "2023": 0, "10": 0, "19": 0, "3": 0, "2": 0, "2022": 0, "08": 0, "02": 0, "1": 0, "2021": 0, "31": 0, "04": 0, "2020": 0, "12": 0, "27": 0, "03": 0, "24": 0, "torchcam": [1, 3, 4, 5, 6], "class": [1, 3], "activ": [1, 3], "explor": 1, "cam": 1, "zoo": 1, "base": [1, 3], "method": [1, 3], "gradient": [1, 3], "instal": 2, "via": 2, "python": 2, "packag": 2, "conda": 2, "git": 2, "map": 3, "metric": 4, "notebook": 5, "util": 6}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"Changelog": [[0, "changelog"]], "v0.4.0 (2023-10-19)": [[0, "v0-4-0-2023-10-19"]], "v0.3.2 (2022-08-02)": [[0, "v0-3-2-2022-08-02"]], "v0.3.1 (2021-10-31)": [[0, "v0-3-1-2021-10-31"]], "v0.3.0 (2021-10-31)": [[0, "v0-3-0-2021-10-31"]], "v0.2.0 (2021-04-10)": [[0, "v0-2-0-2021-04-10"]], "v0.1.2 (2020-12-27)": [[0, "v0-1-2-2020-12-27"]], "v0.1.1 (2020-08-03)": [[0, "v0-1-1-2020-08-03"]], "v0.1.0 (2020-03-24)": [[0, "v0-1-0-2020-03-24"]], "TorchCAM: class activation explorer": [[1, "torchcam-class-activation-explorer"]], "CAM zoo": [[1, "cam-zoo"]], "Activation-based methods": [[1, "activation-based-methods"], [3, "activation-based-methods"]], "Gradient-based methods": [[1, "gradient-based-methods"], [3, "gradient-based-methods"]], "Installation": [[2, "installation"]], "Via Python Package": [[2, "via-python-package"]], "Via Conda": [[2, "via-conda"]], "Via Git": [[2, "via-git"]], "torchcam.methods": [[3, "torchcam-methods"]], "Class activation map": [[3, "class-activation-map"]], "torchcam.metrics": [[4, "torchcam-metrics"]], "TorchCAM Notebooks": [[5, "torchcam-notebooks"]], "torchcam.utils": [[6, "torchcam-utils"]]}, "indexentries": {"cam (class in torchcam.methods)": [[3, "torchcam.methods.CAM"]], "gradcam (class in torchcam.methods)": [[3, "torchcam.methods.GradCAM"]], "gradcampp (class in torchcam.methods)": [[3, "torchcam.methods.GradCAMpp"]], "iscam (class in torchcam.methods)": [[3, "torchcam.methods.ISCAM"]], "layercam (class in torchcam.methods)": [[3, "torchcam.methods.LayerCAM"]], "sscam (class in torchcam.methods)": [[3, "torchcam.methods.SSCAM"]], "scorecam (class in torchcam.methods)": [[3, "torchcam.methods.ScoreCAM"]], "smoothgradcampp (class in torchcam.methods)": [[3, "torchcam.methods.SmoothGradCAMpp"]], "xgradcam (class in torchcam.methods)": [[3, "torchcam.methods.XGradCAM"]], "fuse_cams() (torchcam.methods.layercam class method)": [[3, "torchcam.methods.LayerCAM.fuse_cams"]], "classificationmetric (class in torchcam.metrics)": [[4, "torchcam.metrics.ClassificationMetric"]], "summary() (torchcam.metrics.classificationmetric method)": [[4, "torchcam.metrics.ClassificationMetric.summary"]], "update() (torchcam.metrics.classificationmetric method)": [[4, "torchcam.metrics.ClassificationMetric.update"]], "overlay_mask() (in module torchcam.utils)": [[6, "torchcam.utils.overlay_mask"]]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Activation-based methods": [[1, "activation-based-methods"], [3, "activation-based-methods"]], "CAM zoo": [[1, "cam-zoo"]], "Changelog": [[0, "changelog"]], "Class activation map": [[3, "class-activation-map"]], "Gradient-based methods": [[1, "gradient-based-methods"], [3, "gradient-based-methods"]], "Installation": [[2, "installation"]], "TorchCAM Notebooks": [[5, "torchcam-notebooks"]], "TorchCAM: class activation explorer": [[1, "torchcam-class-activation-explorer"]], "Via Conda": [[2, "via-conda"]], "Via Git": [[2, "via-git"]], "Via Python Package": [[2, "via-python-package"]], "torchcam.methods": [[3, "torchcam-methods"]], "torchcam.metrics": [[4, "torchcam-metrics"]], "torchcam.utils": [[6, "torchcam-utils"]], "v0.1.0 (2020-03-24)": [[0, "v0-1-0-2020-03-24"]], "v0.1.1 (2020-08-03)": [[0, "v0-1-1-2020-08-03"]], "v0.1.2 (2020-12-27)": [[0, "v0-1-2-2020-12-27"]], "v0.2.0 (2021-04-10)": [[0, "v0-2-0-2021-04-10"]], "v0.3.0 (2021-10-31)": [[0, "v0-3-0-2021-10-31"]], "v0.3.1 (2021-10-31)": [[0, "v0-3-1-2021-10-31"]], "v0.3.2 (2022-08-02)": [[0, "v0-3-2-2022-08-02"]], "v0.4.0 (2023-10-19)": [[0, "v0-4-0-2023-10-19"]]}, "docnames": ["changelog", "index", "installing", "methods", "metrics", "notebooks", "utils"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["changelog.rst", "index.rst", "installing.rst", "methods.rst", "metrics.rst", "notebooks.md", "utils.rst"], "indexentries": {"cam (class in torchcam.methods)": [[3, "torchcam.methods.CAM", false]], "classificationmetric (class in torchcam.metrics)": [[4, "torchcam.metrics.ClassificationMetric", false]], "fuse_cams() (torchcam.methods.layercam class method)": [[3, "torchcam.methods.LayerCAM.fuse_cams", false]], "gradcam (class in torchcam.methods)": [[3, "torchcam.methods.GradCAM", false]], "gradcampp (class in torchcam.methods)": [[3, "torchcam.methods.GradCAMpp", false]], "iscam (class in torchcam.methods)": [[3, "torchcam.methods.ISCAM", false]], "layercam (class in torchcam.methods)": [[3, "torchcam.methods.LayerCAM", false]], "overlay_mask() (in module torchcam.utils)": [[6, "torchcam.utils.overlay_mask", false]], "scorecam (class in torchcam.methods)": [[3, "torchcam.methods.ScoreCAM", false]], "smoothgradcampp (class in torchcam.methods)": [[3, "torchcam.methods.SmoothGradCAMpp", false]], "sscam (class in torchcam.methods)": [[3, "torchcam.methods.SSCAM", false]], "summary() (torchcam.metrics.classificationmetric method)": [[4, "torchcam.metrics.ClassificationMetric.summary", false]], "update() (torchcam.metrics.classificationmetric method)": [[4, "torchcam.metrics.ClassificationMetric.update", false]], "xgradcam (class in torchcam.methods)": [[3, "torchcam.methods.XGradCAM", false]]}, "objects": {"torchcam.methods": [[3, 0, 1, "", "CAM"], [3, 0, 1, "", "GradCAM"], [3, 0, 1, "", "GradCAMpp"], [3, 0, 1, "", "ISCAM"], [3, 0, 1, "", "LayerCAM"], [3, 0, 1, "", "SSCAM"], [3, 0, 1, "", "ScoreCAM"], [3, 0, 1, "", "SmoothGradCAMpp"], [3, 0, 1, "", "XGradCAM"]], "torchcam.methods.LayerCAM": [[3, 1, 1, "", "fuse_cams"]], "torchcam.metrics": [[4, 0, 1, "", "ClassificationMetric"]], "torchcam.metrics.ClassificationMetric": [[4, 1, 1, "", "summary"], [4, 1, 1, "", "update"]], "torchcam.utils": [[6, 2, 1, "", "overlay_mask"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "terms": {"": [1, 3], "0": [3, 4, 6], "1": [3, 4], "10": 3, "100": 3, "2": 3, "224": 3, "3": [2, 3, 4], "32": 3, "35": 3, "4": 3, "7": 6, "8": 2, "A": 5, "The": [3, 4], "With": 3, "_": 3, "_cam": 4, "_k": 3, "a_k": 3, "a_m": 3, "accur": [1, 3], "activ": 4, "actual": 3, "ad": 3, "aggreg": 4, "alpha": [3, 6], "alpha_k": 3, "among": 3, "an": [1, 3, 6], "ani": 3, "apart": 4, "appli": 6, "ar": 5, "argument": 6, "arrai": 4, "assess": 1, "averag": 4, "avgdrop_": 4, "axiom": [1, 3], "axiomat": [1, 3], "b": 3, "background": 6, "baselin": 3, "batch": 3, "batch_siz": 3, "befor": 3, "begin": 4, "being": 3, "benchmark": 5, "better": 5, "big": 3, "bigg": 3, "biggest": 3, "block": 3, "c": [2, 3, 4], "callabl": 4, "cam": [2, 3, 4, 5, 6], "cam_extractor": 4, "capabl": 5, "cdot": 3, "check": 1, "class": 4, "class_idx": [3, 4], "classif": [3, 4], "classificationmetr": 4, "classmethod": 3, "clone": 2, "cnn": [1, 3], "coeffici": 3, "colormap": 6, "com": 2, "comparison": 4, "compil": 5, "comput": [3, 4], "confid": 4, "connect": 3, "convolut": [1, 3, 4], "correct": 3, "correspond": 3, "creat": 3, "d": 3, "dedic": 4, "deep": [1, 3, 4], "default": [3, 4], "defin": [3, 4], "delta": 3, "demo": 1, "deriv": 3, "describ": 3, "descript": 5, "develop": 2, "deviat": 3, "dict": 4, "dictionari": 4, "differ": 3, "dim": 4, "dimens": 3, "discrimin": [1, 3], "distribut": 3, "do": 3, "drop": 4, "e": [2, 3], "e_": 4, "each": [3, 4], "easili": 1, "either": 3, "element": 3, "els": 3, "end": [3, 4], "enhanc": [1, 3], "estim": 3, "eval": 3, "evalu": 4, "exclud": 3, "expect": 3, "explan": [1, 3, 4], "explor": 3, "extract": 3, "extractor": 3, "f_": 4, "fc": 3, "fc_layer": 3, "featur": [1, 3, 5], "flexibl": 1, "float": [3, 4, 6], "focu": [3, 4], "follow": [3, 4], "foral": 4, "forward": 3, "frac": [3, 4], "frgfm": 2, "from": [1, 3, 4, 6], "fulli": 3, "function": 4, "functool": 4, "fuse": 3, "fuse_cam": 3, "fused_cam": 3, "g": 3, "g_": 4, "gaussian": 3, "gener": 4, "get": 3, "github": 2, "give": 3, "global": 3, "grad": [1, 3, 4], "gradcam": 3, "gradcampp": 3, "grayscal": 6, "h": [3, 4], "ha": 6, "hat": 3, "have": [3, 4, 6], "here": [3, 5], "hierarch": [1, 3], "higher": 2, "how": 5, "http": 2, "huggingfac": 1, "i": [1, 3, 4], "idea": 1, "imag": [3, 6], "img": 6, "implement": [1, 3, 4], "import": [1, 3, 4, 6], "improv": [1, 3, 4], "incorrect": 6, "incrconf_": 4, "increas": 4, "index": [3, 4], "infer": [1, 3], "influenc": 1, "input": [3, 4], "input_shap": 3, "input_tensor": [3, 4], "int": [3, 4], "integr": [1, 3], "invalid": 6, "iscam": 3, "iss": 3, "isscam": 3, "its": 3, "itself": 3, "j": 3, "jet": 6, "k": 3, "kwarg": 3, "l": 3, "last": 2, "latenc": 5, "layer": [1, 3], "layer4": 3, "layercam": [1, 3], "learn": [1, 3], "left": 4, "level": [1, 3], "leverag": 5, "librari": [2, 5], "limits_": [3, 4], "limits_k": 3, "limits_m": 3, "list": 3, "live": 1, "ll": 4, "local": [1, 3], "logit": 3, "logits_fn": 4, "m": [3, 4], "m_i": 3, "m_k": 3, "magic": 3, "main": 5, "map": [1, 4], "mask": [3, 6], "mathbb": 4, "mathcal": [3, 4], "matplotlib": 6, "max": [3, 4], "mbox": 4, "mean": 3, "meant": 1, "method": [4, 5], "min": 3, "minim": 1, "mode": 2, "model": [1, 3, 4], "modul": 3, "more": 3, "multipl": 3, "n": [3, 4], "name": 3, "need": 3, "network": [1, 3, 4], "neural": [1, 3], "new": [1, 4], "no_grad": 3, "node": 3, "nois": 3, "noisi": 3, "none": [3, 4], "normal": 3, "note": [0, 3], "num_sampl": 3, "number": 3, "numer": 3, "odot": 3, "oper": 3, "otherwis": 4, "out": [1, 3], "output": [1, 3], "overlai": 6, "overlay_mask": 6, "own": 1, "p": 3, "paper": 3, "paramet": [3, 4, 6], "partial": [3, 4], "pass": 3, "person": 3, "pil": 6, "pip": 2, "pleas": 3, "plt": 6, "pool": 3, "posit": 3, "predict": 4, "preprocess": 4, "present": 5, "pretrain": 3, "project": 1, "provid": 1, "pyplot": 6, "pytorch": 1, "qualit": 4, "quickli": 1, "quicktour": 5, "r": 4, "rais": 6, "random": 3, "raw": [3, 4], "refer": 3, "refin": 4, "region": 3, "rel": 3, "relat": 3, "releas": [0, 2], "relu": 3, "requir": 2, "research": 1, "resiz": 4, "resnet18": 3, "return": [3, 4, 6], "right": 4, "same": 3, "sampl": [3, 4], "score": [1, 3], "scorecam": 3, "select": 3, "set": 4, "shape": 3, "sharper": [1, 3], "sigma": 3, "sim": 3, "size": 3, "smooth": [1, 3], "smoothgradcampp": 3, "softmax": [3, 4], "some": 5, "sourc": [3, 4, 6], "space": 1, "spatial": [1, 3], "specif": 3, "ss": [1, 3], "sscam": 3, "stabl": 2, "standard": 3, "state": 4, "std": 3, "str": [3, 4, 6], "submodul": 4, "sum": [3, 4], "summari": 4, "target": 3, "target_lay": 3, "target_shap": 3, "techniqu": [1, 3], "tensor": [3, 4], "th": 3, "thi": [1, 2, 4], "those": 3, "top": 4, "torch": [2, 3, 4], "torchcam": 2, "torchvis": 3, "toward": [1, 3], "transpar": 6, "true": 3, "tupl": 3, "type": [3, 6], "typeerror": 6, "u": 3, "unit": 3, "updat": 4, "upsampl": 3, "us": [2, 3], "user": 5, "valu": 6, "valueerror": 6, "via": [1, 3], "visual": [1, 3, 4], "w": [3, 4], "w_k": 3, "wai": 1, "weight": [1, 3], "when": [3, 6], "where": [3, 4], "which": 3, "wise": 3, "x": [1, 3, 4], "x_b": 3, "x_i": 4, "xgrad": 3, "xgradcam": 3, "y": 3, "yet": 1, "you": 3, "your": [1, 3]}, "titles": ["Changelog", "TorchCAM: class activation explorer", "Installation", "torchcam.methods", "torchcam.metrics", "TorchCAM Notebooks", "torchcam.utils"], "titleterms": {"0": 0, "02": 0, "03": 0, "04": 0, "08": 0, "1": 0, "10": 0, "12": 0, "19": 0, "2": 0, "2020": 0, "2021": 0, "2022": 0, "2023": 0, "24": 0, "27": 0, "3": 0, "31": 0, "4": 0, "activ": [1, 3], "base": [1, 3], "cam": 1, "changelog": 0, "class": [1, 3], "conda": 2, "explor": 1, "git": 2, "gradient": [1, 3], "instal": 2, "map": 3, "method": [1, 3], "metric": 4, "notebook": 5, "packag": 2, "python": 2, "torchcam": [1, 3, 4, 5, 6], "util": 6, "v0": 0, "via": 2, "zoo": 1}}) \ No newline at end of file diff --git a/latest/utils.html b/latest/utils.html index 884e9d4..d200e4a 100644 --- a/latest/utils.html +++ b/latest/utils.html @@ -14,7 +14,7 @@ - + torchcam.utils - TorchCAM @@ -222,10 +222,10 @@
-

torchcam.utils#

+

torchcam.utils

-torchcam.utils.overlay_mask(img: Image, mask: Image, colormap: str = 'jet', alpha: float = 0.7) Image[source]#
+torchcam.utils.overlay_mask(img: Image, mask: Image, colormap: str = 'jet', alpha: float = 0.7) Image[source]

Overlay a colormapped mask on a background image

-

torchcam.methods#

+

torchcam.methods

-

Class activation map#

+

Class activation map

The class activation map gives you the importance of each region of a feature map on a model’s output. More specifically, a class activation map is relative to:

-

Activation-based methods#

+

Activation-based methods

Methods related to activation-based class activation maps.

-class torchcam.methods.CAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, fc_layer: Module | str | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.CAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, fc_layer: Module | str | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Learning Deep Features for Discriminative Localization”.

The Class Activation Map (CAM) is defined for image classification models that have global pooling at the end @@ -274,7 +274,7 @@

Activation-based methods
-class torchcam.methods.ScoreCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.ScoreCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Score-CAM: Score-Weighted Visual Explanations for Convolutional Neural Networks”.

The localization map is computed as follows:

@@ -319,7 +319,7 @@

Activation-based methods
-class torchcam.methods.SSCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, num_samples: int = 35, std: float = 2.0, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.SSCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, num_samples: int = 35, std: float = 2.0, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “SS-CAM: Smoothed Score-CAM for Sharper Visual Feature Localization”.

The localization map is computed as follows:

@@ -369,7 +369,7 @@

Activation-based methods
-class torchcam.methods.ISCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, num_samples: int = 10, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.ISCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, batch_size: int = 32, num_samples: int = 10, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “IS-CAM: Integrated Score-CAM for axiomatic-based explanations”.

The localization map is computed as follows:

@@ -417,11 +417,11 @@

Activation-based methods -

Gradient-based methods#

+

Gradient-based methods

Methods related to gradient-based class activation maps.

-class torchcam.methods.GradCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.GradCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization”.

The localization map is computed as follows:

@@ -459,7 +459,7 @@

Gradient-based methods
-class torchcam.methods.GradCAMpp(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.GradCAMpp(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks”.

The localization map is computed as follows:

@@ -506,7 +506,7 @@

Gradient-based methods
-class torchcam.methods.SmoothGradCAMpp(model: Module, target_layer: Module | str | List[Module | str] | None = None, num_samples: int = 4, std: float = 0.3, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.SmoothGradCAMpp(model: Module, target_layer: Module | str | List[Module | str] | None = None, num_samples: int = 4, std: float = 0.3, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Smooth Grad-CAM++: An Enhanced Inference Level Visualization Technique for Deep Convolutional Neural Network Models” with a personal correction to the paper (alpha coefficient numerator).

@@ -563,7 +563,7 @@

Gradient-based methods
-class torchcam.methods.XGradCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.XGradCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “Axiom-based Grad-CAM: Towards Accurate Visualization and Explanation of CNNs”.

The localization map is computed as follows:

@@ -602,7 +602,7 @@

Gradient-based methods
-class torchcam.methods.LayerCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]#
+class torchcam.methods.LayerCAM(model: Module, target_layer: Module | str | List[Module | str] | None = None, input_shape: Tuple[int, ...] = (3, 224, 224), **kwargs: Any)[source]

Implements a class activation map extractor as described in “LayerCAM: Exploring Hierarchical Class Activation Maps for Localization”.

The localization map is computed as follows:

@@ -638,7 +638,7 @@

Gradient-based methods
-classmethod fuse_cams(cams: List[Tensor], target_shape: Tuple[int, int] | None = None) Tensor#
+classmethod fuse_cams(cams: List[Tensor], target_shape: Tuple[int, int] | None = None) Tensor

Fuse class activation maps from different layers.

Parameters:
@@ -756,7 +756,7 @@

Gradient-based methods

- + diff --git a/metrics.html b/metrics.html index 823ed70..ca4a7d1 100644 --- a/metrics.html +++ b/metrics.html @@ -14,7 +14,7 @@ - + torchcam.metrics - TorchCAM @@ -222,11 +222,11 @@
-

torchcam.metrics#

+

torchcam.metrics

Apart from qualitative visual comparison, it is important to have a refined evaluation metric for class activation maps. This submodule is dedicated to the evaluation of CAM methods.

-class torchcam.metrics.ClassificationMetric(cam_extractor: _CAM, logits_fn: Callable[[Tensor], Tensor] | None = None)[source]#
+class torchcam.metrics.ClassificationMetric(cam_extractor: _CAM, logits_fn: Callable[[Tensor], Tensor] | None = None)[source]

Implements Average Drop and Increase in Confidence from “Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks.”.

The raw aggregated metric is computed as follows:

@@ -267,7 +267,7 @@

torchcam.metrics
-update(input_tensor: Tensor, class_idx: int | None = None) None[source]#
+update(input_tensor: Tensor, class_idx: int | None = None) None[source]

Update the state of the metric with new predictions

Parameters:
@@ -281,7 +281,7 @@

torchcam.metrics
-summary() Dict[str, float][source]#
+summary() Dict[str, float][source]

Computes the aggregated metrics

Returns:
@@ -374,7 +374,7 @@

torchcam.metrics - + diff --git a/notebooks.html b/notebooks.html index 2963401..38be093 100644 --- a/notebooks.html +++ b/notebooks.html @@ -14,7 +14,7 @@ - + TorchCAM Notebooks - TorchCAM @@ -222,7 +222,7 @@
-

TorchCAM Notebooks#

+

TorchCAM Notebooks

Here are some notebooks compiled for users to better leverage the library capabilities:

@@ -303,7 +303,7 @@

TorchCAM Notebooks - + diff --git a/search.html b/search.html index 4f4886c..2cfde52 100644 --- a/search.html +++ b/search.html @@ -13,7 +13,7 @@ - Search - TorchCAM + Search - TorchCAM @@ -260,7 +260,7 @@ - + diff --git a/searchindex.js b/searchindex.js index 8fba5fe..28af11a 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["changelog", "index", "installing", "methods", "metrics", "notebooks", "utils"], "filenames": ["changelog.rst", "index.rst", "installing.rst", "methods.rst", "metrics.rst", "notebooks.md", "utils.rst"], "titles": ["Changelog", "TorchCAM: class activation explorer", "Installation", "torchcam.methods", "torchcam.metrics", "TorchCAM Notebooks", "torchcam.utils"], "terms": {"releas": [0, 2], "note": [0, 3], "provid": 1, "minim": 1, "yet": 1, "flexibl": 1, "wai": 1, "spatial": [1, 3], "import": [1, 3, 4, 6], "featur": [1, 3, 5], "your": [1, 3], "pytorch": 1, "model": [1, 3, 4], "output": [1, 3], "check": 1, "out": [1, 3], "live": 1, "demo": 1, "huggingfac": 1, "space": 1, "thi": [1, 2, 4], "project": 1, "i": [1, 3, 4], "meant": 1, "easili": 1, "assess": 1, "influenc": 1, "": [1, 3], "research": 1, "quickli": 1, "implement": [1, 3, 4], "own": 1, "idea": 1, "new": [1, 4], "from": [1, 3, 4, 6], "learn": [1, 3], "deep": [1, 3, 4], "discrimin": [1, 3], "local": [1, 3], "score": [1, 3], "weight": [1, 3], "visual": [1, 3, 4], "explan": [1, 3, 4], "convolut": [1, 3, 4], "neural": [1, 3], "network": [1, 3, 4], "ss": [1, 3], "smooth": [1, 3], "sharper": [1, 3], "integr": [1, 3], "axiomat": [1, 3], "grad": [1, 3, 4], "via": [1, 3], "improv": [1, 3, 4], "an": [1, 3, 6], "enhanc": [1, 3], "infer": [1, 3], "level": [1, 3], "techniqu": [1, 3], "x": [1, 3, 4], "axiom": [1, 3], "toward": [1, 3], "accur": [1, 3], "cnn": [1, 3], "layer": [1, 3], "layercam": [1, 3], "hierarch": [1, 3], "map": [1, 4], "librari": [2, 5], "requir": 2, "3": [2, 3, 4], "8": 2, "higher": 2, "last": 2, "stabl": 2, "us": [2, 3], "pip": 2, "torchcam": 2, "c": [2, 3, 4], "frgfm": 2, "develop": 2, "mode": 2, "clone": 2, "http": 2, "github": 2, "com": 2, "torch": [2, 3, 4], "cam": [2, 3, 4, 5, 6], "e": [2, 3], "The": [3, 4], "give": 3, "you": 3, "each": [3, 4], "region": 3, "more": 3, "specif": 3, "rel": 3, "which": 3, "comput": [3, 4], "g": 3, "n": [3, 4], "th": 3, "classif": [3, 4], "raw": [3, 4], "logit": 3, "index": [3, 4], "focu": [3, 4], "With": 3, "target": 3, "select": 3, "when": [3, 6], "creat": 3, "extractor": 3, "need": 3, "pass": 3, "do": 3, "its": 3, "magic": 3, "relat": 3, "modul": 3, "target_lay": 3, "str": [3, 4, 6], "list": 3, "none": [3, 4], "fc_layer": 3, "input_shap": 3, "tupl": 3, "int": [3, 4], "224": 3, "kwarg": 3, "ani": 3, "sourc": [3, 4, 6], "describ": 3, "defin": [3, 4], "imag": [3, 6], "have": [3, 4, 6], "global": 3, "pool": 3, "end": [3, 4], "extract": 3, "block": 3, "follow": [3, 4], "l": 3, "_": 3, "y": 3, "relu": 3, "big": 3, "sum": [3, 4], "limits_k": 3, "w_k": 3, "a_k": 3, "where": [3, 4], "node": 3, "k": 3, "posit": 3, "correspond": 3, "unit": 3, "fulli": 3, "connect": 3, "torchvis": 3, "resnet18": 3, "pretrain": 3, "true": 3, "eval": 3, "layer4": 3, "fc": 3, "no_grad": 3, "input_tensor": [3, 4], "class_idx": [3, 4], "100": 3, "paramet": [3, 4, 6], "input": [3, 4], "either": 3, "itself": 3, "name": 3, "those": 3, "shape": 3, "expect": 3, "tensor": [3, 4], "exclud": 3, "batch": 3, "dimens": 3, "scorecam": 3, "batch_siz": 3, "32": 3, "coeffici": 3, "being": 3, "softmax": [3, 4], "m_k": 3, "x_b": 3, "_k": 3, "befor": 3, "baselin": 3, "frac": [3, 4], "u": 3, "min": 3, "limits_m": 3, "a_m": 3, "max": [3, 4], "odot": 3, "refer": 3, "element": 3, "wise": 3, "multipl": 3, "upsampl": 3, "oper": 3, "size": 3, "forward": 3, "mask": [3, 6], "sscam": 3, "num_sampl": 3, "35": 3, "std": 3, "float": [3, 4, 6], "2": 3, "0": [3, 4, 6], "1": [3, 4], "limits_": [3, 4], "hat": 3, "number": 3, "sampl": [3, 4], "bigg": 3, "delta": 3, "sim": 3, "mathcal": [3, 4], "sigma": 3, "random": 3, "nois": 3, "mean": 3, "gaussian": 3, "distribut": 3, "standard": 3, "deviat": 3, "noisi": 3, "ad": 3, "normal": 3, "iscam": 3, "10": 3, "iss": 3, "m_i": 3, "j": 3, "isscam": 3, "gradcam": 3, "h": [3, 4], "cdot": 3, "w": [3, 4], "partial": [3, 4], "gradcampp": 3, "alpha_k": 3, "b": 3, "els": 3, "smoothgradcampp": 3, "4": 3, "person": 3, "correct": 3, "paper": 3, "alpha": [3, 6], "numer": 3, "m": [3, 4], "d": 3, "here": [3, 5], "p": 3, "deriv": 3, "get": 3, "estim": 3, "pleas": 3, "differ": 3, "actual": 3, "xgradcam": 3, "xgrad": 3, "explor": 3, "fused_cam": 3, "fuse_cam": 3, "classmethod": 3, "target_shap": 3, "fuse": 3, "same": 3, "default": [3, 4], "biggest": 3, "among": 3, "return": [3, 4, 6], "type": [3, 6], "apart": 4, "qualit": 4, "comparison": 4, "refin": 4, "evalu": 4, "class": 4, "activ": 4, "submodul": 4, "dedic": 4, "method": [4, 5], "classificationmetr": 4, "cam_extractor": 4, "_cam": 4, "logits_fn": 4, "callabl": 4, "averag": 4, "drop": 4, "increas": 4, "confid": 4, "aggreg": 4, "foral": 4, "mathbb": 4, "r": 4, "avgdrop_": 4, "f_": 4, "x_i": 4, "incrconf_": 4, "g_": 4, "set": 4, "gener": 4, "function": 4, "e_": 4, "resiz": 4, "left": 4, "begin": 4, "arrai": 4, "ll": 4, "mbox": 4, "otherwis": 4, "right": 4, "functool": 4, "dim": 4, "updat": 4, "summari": 4, "state": 4, "predict": 4, "preprocess": 4, "top": 4, "dict": 4, "dictionari": 4, "ar": 5, "some": 5, "compil": 5, "user": 5, "better": 5, "leverag": 5, "capabl": 5, "descript": 5, "quicktour": 5, "A": 5, "present": 5, "main": 5, "latenc": 5, "benchmark": 5, "how": 5, "overlay_mask": 6, "img": 6, "colormap": 6, "jet": 6, "7": 6, "overlai": 6, "background": 6, "pil": 6, "matplotlib": 6, "pyplot": 6, "plt": 6, "grayscal": 6, "appli": 6, "transpar": 6, "rais": 6, "typeerror": 6, "argument": 6, "invalid": 6, "valueerror": 6, "ha": 6, "incorrect": 6, "valu": 6}, "objects": {"torchcam.methods": [[3, 0, 1, "", "CAM"], [3, 0, 1, "", "GradCAM"], [3, 0, 1, "", "GradCAMpp"], [3, 0, 1, "", "ISCAM"], [3, 0, 1, "", "LayerCAM"], [3, 0, 1, "", "SSCAM"], [3, 0, 1, "", "ScoreCAM"], [3, 0, 1, "", "SmoothGradCAMpp"], [3, 0, 1, "", "XGradCAM"]], "torchcam.methods.LayerCAM": [[3, 1, 1, "", "fuse_cams"]], "torchcam.metrics": [[4, 0, 1, "", "ClassificationMetric"]], "torchcam.metrics.ClassificationMetric": [[4, 1, 1, "", "summary"], [4, 1, 1, "", "update"]], "torchcam.utils": [[6, 2, 1, "", "overlay_mask"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "titleterms": {"changelog": 0, "v0": 0, "3": 0, "2": 0, "2022": 0, "08": 0, "02": 0, "1": 0, "2021": 0, "10": 0, "31": 0, "0": 0, "04": 0, "2020": 0, "12": 0, "27": 0, "03": 0, "24": 0, "torchcam": [1, 3, 4, 5, 6], "class": [1, 3], "activ": [1, 3], "explor": 1, "cam": 1, "zoo": 1, "base": [1, 3], "method": [1, 3], "gradient": [1, 3], "instal": 2, "via": 2, "python": 2, "packag": 2, "conda": 2, "git": 2, "map": 3, "metric": 4, "notebook": 5, "util": 6}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"Changelog": [[0, "changelog"]], "v0.3.2 (2022-08-02)": [[0, "v0-3-2-2022-08-02"]], "v0.3.1 (2021-10-31)": [[0, "v0-3-1-2021-10-31"]], "v0.3.0 (2021-10-31)": [[0, "v0-3-0-2021-10-31"]], "v0.2.0 (2021-04-10)": [[0, "v0-2-0-2021-04-10"]], "v0.1.2 (2020-12-27)": [[0, "v0-1-2-2020-12-27"]], "v0.1.1 (2020-08-03)": [[0, "v0-1-1-2020-08-03"]], "v0.1.0 (2020-03-24)": [[0, "v0-1-0-2020-03-24"]], "TorchCAM: class activation explorer": [[1, "torchcam-class-activation-explorer"]], "CAM zoo": [[1, "cam-zoo"]], "Activation-based methods": [[1, "activation-based-methods"], [3, "activation-based-methods"]], "Gradient-based methods": [[1, "gradient-based-methods"], [3, "gradient-based-methods"]], "Installation": [[2, "installation"]], "Via Python Package": [[2, "via-python-package"]], "Via Conda": [[2, "via-conda"]], "Via Git": [[2, "via-git"]], "torchcam.methods": [[3, "torchcam-methods"]], "Class activation map": [[3, "class-activation-map"]], "torchcam.metrics": [[4, "torchcam-metrics"]], "TorchCAM Notebooks": [[5, "torchcam-notebooks"]], "torchcam.utils": [[6, "torchcam-utils"]]}, "indexentries": {"cam (class in torchcam.methods)": [[3, "torchcam.methods.CAM"]], "gradcam (class in torchcam.methods)": [[3, "torchcam.methods.GradCAM"]], "gradcampp (class in torchcam.methods)": [[3, "torchcam.methods.GradCAMpp"]], "iscam (class in torchcam.methods)": [[3, "torchcam.methods.ISCAM"]], "layercam (class in torchcam.methods)": [[3, "torchcam.methods.LayerCAM"]], "sscam (class in torchcam.methods)": [[3, "torchcam.methods.SSCAM"]], "scorecam (class in torchcam.methods)": [[3, "torchcam.methods.ScoreCAM"]], "smoothgradcampp (class in torchcam.methods)": [[3, "torchcam.methods.SmoothGradCAMpp"]], "xgradcam (class in torchcam.methods)": [[3, "torchcam.methods.XGradCAM"]], "fuse_cams() (torchcam.methods.layercam class method)": [[3, "torchcam.methods.LayerCAM.fuse_cams"]], "classificationmetric (class in torchcam.metrics)": [[4, "torchcam.metrics.ClassificationMetric"]], "summary() (torchcam.metrics.classificationmetric method)": [[4, "torchcam.metrics.ClassificationMetric.summary"]], "update() (torchcam.metrics.classificationmetric method)": [[4, "torchcam.metrics.ClassificationMetric.update"]], "overlay_mask() (in module torchcam.utils)": [[6, "torchcam.utils.overlay_mask"]]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Activation-based methods": [[1, "activation-based-methods"], [3, "activation-based-methods"]], "CAM zoo": [[1, "cam-zoo"]], "Changelog": [[0, "changelog"]], "Class activation map": [[3, "class-activation-map"]], "Gradient-based methods": [[1, "gradient-based-methods"], [3, "gradient-based-methods"]], "Installation": [[2, "installation"]], "TorchCAM Notebooks": [[5, "torchcam-notebooks"]], "TorchCAM: class activation explorer": [[1, "torchcam-class-activation-explorer"]], "Via Conda": [[2, "via-conda"]], "Via Git": [[2, "via-git"]], "Via Python Package": [[2, "via-python-package"]], "torchcam.methods": [[3, "torchcam-methods"]], "torchcam.metrics": [[4, "torchcam-metrics"]], "torchcam.utils": [[6, "torchcam-utils"]], "v0.1.0 (2020-03-24)": [[0, "v0-1-0-2020-03-24"]], "v0.1.1 (2020-08-03)": [[0, "v0-1-1-2020-08-03"]], "v0.1.2 (2020-12-27)": [[0, "v0-1-2-2020-12-27"]], "v0.2.0 (2021-04-10)": [[0, "v0-2-0-2021-04-10"]], "v0.3.0 (2021-10-31)": [[0, "v0-3-0-2021-10-31"]], "v0.3.1 (2021-10-31)": [[0, "v0-3-1-2021-10-31"]], "v0.3.2 (2022-08-02)": [[0, "v0-3-2-2022-08-02"]]}, "docnames": ["changelog", "index", "installing", "methods", "metrics", "notebooks", "utils"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["changelog.rst", "index.rst", "installing.rst", "methods.rst", "metrics.rst", "notebooks.md", "utils.rst"], "indexentries": {"cam (class in torchcam.methods)": [[3, "torchcam.methods.CAM", false]], "classificationmetric (class in torchcam.metrics)": [[4, "torchcam.metrics.ClassificationMetric", false]], "fuse_cams() (torchcam.methods.layercam class method)": [[3, "torchcam.methods.LayerCAM.fuse_cams", false]], "gradcam (class in torchcam.methods)": [[3, "torchcam.methods.GradCAM", false]], "gradcampp (class in torchcam.methods)": [[3, "torchcam.methods.GradCAMpp", false]], "iscam (class in torchcam.methods)": [[3, "torchcam.methods.ISCAM", false]], "layercam (class in torchcam.methods)": [[3, "torchcam.methods.LayerCAM", false]], "overlay_mask() (in module torchcam.utils)": [[6, "torchcam.utils.overlay_mask", false]], "scorecam (class in torchcam.methods)": [[3, "torchcam.methods.ScoreCAM", false]], "smoothgradcampp (class in torchcam.methods)": [[3, "torchcam.methods.SmoothGradCAMpp", false]], "sscam (class in torchcam.methods)": [[3, "torchcam.methods.SSCAM", false]], "summary() (torchcam.metrics.classificationmetric method)": [[4, "torchcam.metrics.ClassificationMetric.summary", false]], "update() (torchcam.metrics.classificationmetric method)": [[4, "torchcam.metrics.ClassificationMetric.update", false]], "xgradcam (class in torchcam.methods)": [[3, "torchcam.methods.XGradCAM", false]]}, "objects": {"torchcam.methods": [[3, 0, 1, "", "CAM"], [3, 0, 1, "", "GradCAM"], [3, 0, 1, "", "GradCAMpp"], [3, 0, 1, "", "ISCAM"], [3, 0, 1, "", "LayerCAM"], [3, 0, 1, "", "SSCAM"], [3, 0, 1, "", "ScoreCAM"], [3, 0, 1, "", "SmoothGradCAMpp"], [3, 0, 1, "", "XGradCAM"]], "torchcam.methods.LayerCAM": [[3, 1, 1, "", "fuse_cams"]], "torchcam.metrics": [[4, 0, 1, "", "ClassificationMetric"]], "torchcam.metrics.ClassificationMetric": [[4, 1, 1, "", "summary"], [4, 1, 1, "", "update"]], "torchcam.utils": [[6, 2, 1, "", "overlay_mask"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "terms": {"": [1, 3], "0": [3, 4, 6], "1": [3, 4], "10": 3, "100": 3, "2": 3, "224": 3, "3": [2, 3, 4], "32": 3, "35": 3, "4": 3, "7": 6, "8": 2, "A": 5, "The": [3, 4], "With": 3, "_": 3, "_cam": 4, "_k": 3, "a_k": 3, "a_m": 3, "accur": [1, 3], "activ": 4, "actual": 3, "ad": 3, "aggreg": 4, "alpha": [3, 6], "alpha_k": 3, "among": 3, "an": [1, 3, 6], "ani": 3, "apart": 4, "appli": 6, "ar": 5, "argument": 6, "arrai": 4, "assess": 1, "averag": 4, "avgdrop_": 4, "axiom": [1, 3], "axiomat": [1, 3], "b": 3, "background": 6, "baselin": 3, "batch": 3, "batch_siz": 3, "befor": 3, "begin": 4, "being": 3, "benchmark": 5, "better": 5, "big": 3, "bigg": 3, "biggest": 3, "block": 3, "c": [2, 3, 4], "callabl": 4, "cam": [2, 3, 4, 5, 6], "cam_extractor": 4, "capabl": 5, "cdot": 3, "check": 1, "class": 4, "class_idx": [3, 4], "classif": [3, 4], "classificationmetr": 4, "classmethod": 3, "clone": 2, "cnn": [1, 3], "coeffici": 3, "colormap": 6, "com": 2, "comparison": 4, "compil": 5, "comput": [3, 4], "confid": 4, "connect": 3, "convolut": [1, 3, 4], "correct": 3, "correspond": 3, "creat": 3, "d": 3, "dedic": 4, "deep": [1, 3, 4], "default": [3, 4], "defin": [3, 4], "delta": 3, "demo": 1, "deriv": 3, "describ": 3, "descript": 5, "develop": 2, "deviat": 3, "dict": 4, "dictionari": 4, "differ": 3, "dim": 4, "dimens": 3, "discrimin": [1, 3], "distribut": 3, "do": 3, "drop": 4, "e": [2, 3], "e_": 4, "each": [3, 4], "easili": 1, "either": 3, "element": 3, "els": 3, "end": [3, 4], "enhanc": [1, 3], "estim": 3, "eval": 3, "evalu": 4, "exclud": 3, "expect": 3, "explan": [1, 3, 4], "explor": 3, "extract": 3, "extractor": 3, "f_": 4, "fc": 3, "fc_layer": 3, "featur": [1, 3, 5], "flexibl": 1, "float": [3, 4, 6], "focu": [3, 4], "follow": [3, 4], "foral": 4, "forward": 3, "frac": [3, 4], "frgfm": 2, "from": [1, 3, 4, 6], "fulli": 3, "function": 4, "functool": 4, "fuse": 3, "fuse_cam": 3, "fused_cam": 3, "g": 3, "g_": 4, "gaussian": 3, "gener": 4, "get": 3, "github": 2, "give": 3, "global": 3, "grad": [1, 3, 4], "gradcam": 3, "gradcampp": 3, "grayscal": 6, "h": [3, 4], "ha": 6, "hat": 3, "have": [3, 4, 6], "here": [3, 5], "hierarch": [1, 3], "higher": 2, "how": 5, "http": 2, "huggingfac": 1, "i": [1, 3, 4], "idea": 1, "imag": [3, 6], "img": 6, "implement": [1, 3, 4], "import": [1, 3, 4, 6], "improv": [1, 3, 4], "incorrect": 6, "incrconf_": 4, "increas": 4, "index": [3, 4], "infer": [1, 3], "influenc": 1, "input": [3, 4], "input_shap": 3, "input_tensor": [3, 4], "int": [3, 4], "integr": [1, 3], "invalid": 6, "iscam": 3, "iss": 3, "isscam": 3, "its": 3, "itself": 3, "j": 3, "jet": 6, "k": 3, "kwarg": 3, "l": 3, "last": 2, "latenc": 5, "layer": [1, 3], "layer4": 3, "layercam": [1, 3], "learn": [1, 3], "left": 4, "level": [1, 3], "leverag": 5, "librari": [2, 5], "limits_": [3, 4], "limits_k": 3, "limits_m": 3, "list": 3, "live": 1, "ll": 4, "local": [1, 3], "logit": 3, "logits_fn": 4, "m": [3, 4], "m_i": 3, "m_k": 3, "magic": 3, "main": 5, "map": [1, 4], "mask": [3, 6], "mathbb": 4, "mathcal": [3, 4], "matplotlib": 6, "max": [3, 4], "mbox": 4, "mean": 3, "meant": 1, "method": [4, 5], "min": 3, "minim": 1, "mode": 2, "model": [1, 3, 4], "modul": 3, "more": 3, "multipl": 3, "n": [3, 4], "name": 3, "need": 3, "network": [1, 3, 4], "neural": [1, 3], "new": [1, 4], "no_grad": 3, "node": 3, "nois": 3, "noisi": 3, "none": [3, 4], "normal": 3, "note": [0, 3], "num_sampl": 3, "number": 3, "numer": 3, "odot": 3, "oper": 3, "otherwis": 4, "out": [1, 3], "output": [1, 3], "overlai": 6, "overlay_mask": 6, "own": 1, "p": 3, "paper": 3, "paramet": [3, 4, 6], "partial": [3, 4], "pass": 3, "person": 3, "pil": 6, "pip": 2, "pleas": 3, "plt": 6, "pool": 3, "posit": 3, "predict": 4, "preprocess": 4, "present": 5, "pretrain": 3, "project": 1, "provid": 1, "pyplot": 6, "pytorch": 1, "qualit": 4, "quickli": 1, "quicktour": 5, "r": 4, "rais": 6, "random": 3, "raw": [3, 4], "refer": 3, "refin": 4, "region": 3, "rel": 3, "relat": 3, "releas": [0, 2], "relu": 3, "requir": 2, "research": 1, "resiz": 4, "resnet18": 3, "return": [3, 4, 6], "right": 4, "same": 3, "sampl": [3, 4], "score": [1, 3], "scorecam": 3, "select": 3, "set": 4, "shape": 3, "sharper": [1, 3], "sigma": 3, "sim": 3, "size": 3, "smooth": [1, 3], "smoothgradcampp": 3, "softmax": [3, 4], "some": 5, "sourc": [3, 4, 6], "space": 1, "spatial": [1, 3], "specif": 3, "ss": [1, 3], "sscam": 3, "stabl": 2, "standard": 3, "state": 4, "std": 3, "str": [3, 4, 6], "submodul": 4, "sum": [3, 4], "summari": 4, "target": 3, "target_lay": 3, "target_shap": 3, "techniqu": [1, 3], "tensor": [3, 4], "th": 3, "thi": [1, 2, 4], "those": 3, "top": 4, "torch": [2, 3, 4], "torchcam": 2, "torchvis": 3, "toward": [1, 3], "transpar": 6, "true": 3, "tupl": 3, "type": [3, 6], "typeerror": 6, "u": 3, "unit": 3, "updat": 4, "upsampl": 3, "us": [2, 3], "user": 5, "valu": 6, "valueerror": 6, "via": [1, 3], "visual": [1, 3, 4], "w": [3, 4], "w_k": 3, "wai": 1, "weight": [1, 3], "when": [3, 6], "where": [3, 4], "which": 3, "wise": 3, "x": [1, 3, 4], "x_b": 3, "x_i": 4, "xgrad": 3, "xgradcam": 3, "y": 3, "yet": 1, "you": 3, "your": [1, 3]}, "titles": ["Changelog", "TorchCAM: class activation explorer", "Installation", "torchcam.methods", "torchcam.metrics", "TorchCAM Notebooks", "torchcam.utils"], "titleterms": {"0": 0, "02": 0, "03": 0, "04": 0, "08": 0, "1": 0, "10": 0, "12": 0, "2": 0, "2020": 0, "2021": 0, "2022": 0, "24": 0, "27": 0, "3": 0, "31": 0, "activ": [1, 3], "base": [1, 3], "cam": 1, "changelog": 0, "class": [1, 3], "conda": 2, "explor": 1, "git": 2, "gradient": [1, 3], "instal": 2, "map": 3, "method": [1, 3], "metric": 4, "notebook": 5, "packag": 2, "python": 2, "torchcam": [1, 3, 4, 5, 6], "util": 6, "v0": 0, "via": 2, "zoo": 1}}) \ No newline at end of file diff --git a/utils.html b/utils.html index dda927f..562781d 100644 --- a/utils.html +++ b/utils.html @@ -14,7 +14,7 @@ - + torchcam.utils - TorchCAM @@ -222,10 +222,10 @@
-

torchcam.utils#

+

torchcam.utils

-torchcam.utils.overlay_mask(img: Image, mask: Image, colormap: str = 'jet', alpha: float = 0.7) Image[source]#
+torchcam.utils.overlay_mask(img: Image, mask: Image, colormap: str = 'jet', alpha: float = 0.7) Image[source]

Overlay a colormapped mask on a background image

>>> from PIL import Image
 >>> import matplotlib.pyplot as plt
@@ -334,7 +334,7 @@ 

torchcam.utils - +