pax_global_header00006660000000000000000000000064131342344510014512gustar00rootroot0000000000000052 comment=b30436eccfdb2cf82aaba31db47ef3249f32dc5d harminv-1.4.1/000077500000000000000000000000001313423445100131615ustar00rootroot00000000000000harminv-1.4.1/.gitignore000066400000000000000000000006731313423445100151570ustar00rootroot00000000000000*.tar.gz *.exe *.dll *.do *.o *.lo *.a *.la *.dylib *.dSYM *.zip *.native # autotools stuff Makefile Makefile.in .deps .libs stamp-h* install-sh libtool ltmain.sh m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4 configure config.* autom4te.cache INSTALL aclocal.m4 depcomp missing py-compile compile test-driver # other generated files harminv.pc copyright.h # programs sines harminv # test output *.log *.trs harminv-1.4.1/.travis.yml000066400000000000000000000003621313423445100152730ustar00rootroot00000000000000language: c compiler: - clang - gcc before_install: - sudo apt-get update -qq -y - sudo apt-get install gfortran liblapack-dev libblas-dev automake autoconf libtool -y script: - sh autogen.sh && make && make check && make distcheck harminv-1.4.1/COPYING000066400000000000000000000431101313423445100142130ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. harminv-1.4.1/COPYRIGHT000066400000000000000000000014161313423445100144560ustar00rootroot00000000000000/* Copyright (C) 2017 Massachusetts Institute of Technology. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ harminv-1.4.1/Makefile.am000066400000000000000000000016651313423445100152250ustar00rootroot00000000000000bin_PROGRAMS = harminv lib_LTLIBRARIES = libharminv.la include_HEADERS = harminv.h dist_man_MANS = doc/harminv.1 noinst_PROGRAMS = sines pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = harminv.pc ACLOCAL_AMFLAGS=-I m4 DOCS = README.md NEWS.md doc/Harminv.gif doc/harminv-man.md doc/installation.md doc/library.md EXTRA_DIST = $(DOCS) COPYRIGHT harminv.pc.in m4 sines-test.sh libharminv_la_SOURCES = harminv.c harminv.h harminv-int.h check.h libharminv_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@ harminv_SOURCES = harminv-main.c copyright.h harminv_LDADD = libharminv.la sines_SOURCES = sines.c BUILT_SOURCES = copyright.h TESTS = sines-test.sh # Generate built sources only in maintainer mode if MAINTAINER_MODE copyright.h: COPYRIGHT (echo '#define COPYRIGHT \'; sed 's,^/\* *,",;s,^ \* *,",;s,$$,\\n" \\,' COPYRIGHT |egrep -v '^"/|^[^"]'; echo) > $@ maintainer-clean-local: rm -f $(BUILT_SOURCES) endif # MAINTAINER_MODE harminv-1.4.1/NEWS.md000066400000000000000000000046571313423445100142730ustar00rootroot00000000000000## Harminv 1.4.1 20 July 2017 * Converted all documentation to Markdown format and moved to Github. ## Harminv 1.4 31 March 2015 * Change `get_omega` and `get_amplitude` functions to return complex results via a pointer argument rather than a return value, since the latter is not generally binary compatible between C++ and C. * Build script updates. ## Harminv 1.3.1 4 July 2006 * Fixed the phase output column to have the same sign as the documentation (the sign was flipped). Thanks to Andrew Norton for the bug report. * Added `-n` option to flip the sign of the frequency convention. ## Harminv 1.3: 18 October 2005 * Switch back to eigensolver technique used in Harminv 1.0.x, which first removes the singular null space as described by Wall and Neuhauser. This seems to make the solution much more stable and reliable. The command-line tool once again defaults to 100 basis modes rather than a particular spectral density. ## Harminv 1.2.1: 20 May 2004 * Impose a maximum number of basis modes (300) to prevent the matrices from getting too large. * Corrected typo in man page (for definition of `-d` density). ## Harminv 1.2: 19 May 2004 * Command line tool now defaults to a particular spectral "density" (set by the `-d` option), rather than a number of basis modes, since using too many basis modes leads to a singular eigenproblem and numerical instability. (Based on defaults from M&T references.) * Use `long double` precision, if available, to reduce accumulation of floating-point errors while computing Fourier/Z transforms. ## Harminv 1.1: 18 May 2004 * Corrected bug in frequency-error calculation; thanks to V. A. Mandelshtam for helpful discussions and for letting me look at his code to check against mine. * Amplitude calculation is no longer unstable for strongly decaying modes. * Used a more accurate eigensolver routine. * Added `-e`/`-E`/`-a`/`-A`/`-Q` options to screen outputs with error/amplitude/Q too large/small/small, respectively. * Added `-w` option to use angular frequency instead of frequency. * More flexible input format: allow comma-delimited, a-bi as well as a+bi. * API cleanups. ## Harminv 1.0.2: 15 May 2004 * Corrected inadvertent windowing of data that degraded accuracy in the case of very short signals. ## Harminv 1.0.1: 15 May 2004 * Corrected some minor release glitches. ## Harminv 1.0: 14 May 2004 * Initial release (after 4 years of private use). harminv-1.4.1/README.md000066400000000000000000000162121313423445100144420ustar00rootroot00000000000000![harminv logo](doc/Harminv.gif) # Harminv [![Build Status](https://travis-ci.org/stevengj/harminv.png)](https://travis-ci.org/stevengj/harminv) Harmonic Inversion of Time Signals by the Filter Diagonalization Method (FDM), implemented by [Steven G. Johnson](http://math.mit.edu/~stevenj/), Massachusetts Institute of Technology. ## Introduction Harminv is a free program (and accompanying library) to solve the problem of "harmonic inversion." Given a discrete, finite-length signal that consists of a sum of finitely-many sinusoids (possibly exponentially decaying), it determines the frequencies, decay constants, amplitudes, and phases of those sinusoids. It can, in principle, provide much better accuracy than straightforward FFT based methods, essentially because it assumes a specific form for the signal. (Fourier transforms, in contrast, attempt to represent *any* data as a sum of sinusoidal components.) We use a low-storage **"filter diagonalization method"** (FDM) for finding the sinusoids near a given frequency interval, described in: * [V. A. Mandelshtam](http://www.faculty.uci.edu/profile.cfm?faculty_id=4582) and H. S. Taylor, ["Harmonic inversion of time signals,"](http://dx.doi.org/10.1063/1.475324) J. Chem. Phys., vol. 107, no. 17, p. 6756-6769 (Nov. 1 1997). See also erratum, ibid, vol. 109, no. 10, p. 4128 (Sep. 8 1998). This kind of spectral analysis has wide applications in many areas of physics and engineering, as well as other fields. For example, it could be used to extract the vibrational or "eigen" modes of a system from its response to some stimulus, and also their rates of decay in dissipative systems. FDM has been applied to analyze, e.g., NMR experimental data and numerical simulations of quantum mechanics or [electromagnetism](http://dx.doi.org/doi:10.1016/j.cpc.2009.11.008). In general, it is useful when you know on physical grounds that your system consists of a **small number of decaying & oscillating modes in the bandwidth of interest,** plus a limited amount of noise, and is **not appropriate to analyze completely arbitrary waveforms.** ## Download The latest version is Harminv 1.4.1, which can be downloaded in source-code form at: * https://github.com/stevengj/harminv/releases/download/v1.4.1/harminv-1.4.1.tar.gz What's new in each version is described in the [Harminv release notes](NEWS.md). Harminv is distributed under the [GNU GPL](http://www.gnu.org/copyleft/gpl.html) and comes with **NO WARRANTY** (see the license for more details). Development sources can be found on GitHub: * [Harminv GitHub repository](https://github.com/stevengj/harminv) It would be courteous of you to **cite Harminv** and its author in any publication for which you find it useful, in addition to citing a Mandelshtam reference (either the one above or the review article below). To install Harminv, please see our [installation instructions](doc/installation.md). If you use [Debian GNU/Linux](https://en.wikipedia.org/wiki/Debian) or [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu_(operating_system)), you can use the Debian package of harminv, packaged by Loic Le Guyader. A Python interface to Harminv was developed by Aaron O'Leary: [pharminv](https://github.com/aaren/harminv). Please file bug reports or feature requests as [harminv Github issues](https://github.com/stevengj/harminv/issues). ## Usage Most people will use Harminv via the stand-alone `harminv` program [as described in its manual](doc/harminv-man.md). To briefly summarize, it takes a sequence of numbers (real or complex) from standard input and a range of frequencies to search and outputs the frequencies it finds. It is also possible to [call Harminv as library](doc/library.md) from a C/C++ program. ## Test Cases/Examples The input for harminv should just be a list of numbers (real or complex), one per line, as described in the harminv man page. You can use the program `sines`, in the harminv source directory, to test harminv and to generate example inputs. The sines program generates a signal consisting of a sum of decaying sinuoids with specified complex frequencies. For example, ``` ./sines 0.1+0.01i 0.08+0.001i ``` generates 10000 data points consisting of a signal with complex frequencies 0.1+0.01i and 0.08+0.001i, with amplitudes 1 and 2 respectively, sampled at time intervals dt=1.0. If we input this data into harminv, it should be able to extract these frequencies, decay rates, and amplitudes. ``` ./sines 0.1+0.01i 0.08+0.001i | harminv 0.05-0.15 ``` The output should be something like: ``` frequency, decay constant, Q, amplitude, phase, error 0.08, 1.000000e-03, 251.327, 2, 3.14159, 1.064964e-16 0.1, 1.000000e-02, 31.4159, 1, -4.31228e-15, 2.265265e-15 ``` as expected. Note that we have to pass harminv a range of frequencies to search, here 0.05-0.15, which shouldn't be too large and should normally not include 0. In most cases, one would also specify the sampling interval to harminv via `harminv -t
`, but in this case we don't need to because `-t 1.0` is the default. Run `./sines -h` to get more options. # Algorithm Essentially, FDM works by considering the time-series to be the autocorrelation function of a fictitious dynamical system, such that the problem of finding the frequencies and decay constants is re-expressed as the problem of finding the eigenvalues of the complex-symmetric time-evolution operator of this system. The key point is that, if you are only interested in frequencies within a known band-limited region, the matrix elements of this operator can be expressed purely in terms of Fourier transforms (or, really, z transforms) of your time-series. Then, one can simply diagonalize a small matrix (size proportional to the bandwidth and the number of frequencies) to find the desired result. In general, for M data points and J frequencies, the time required is O(M J + J^3). The main point of the algorithm is not so much speed, however, but the effective solution of a very ill-conditioned fitting problem. (Even closely-spaced frequencies and/or weak decay rates can be resolved much more reliably by FDM than by straightforward fits of the data or its spectrum.) See also: * Rongqing Chen and Hua Guo, "Efficient calculation of matrix elements in low storage filter diagonalization," J. Chem. Phys., vol. 111, no. 2, p. 464-471(Jul. 8 1999). * Michael R. Wall and Daniel Neuhauser, "Extraction, through filter-diagonalization, of general quantum eigenvalues or classical normal mode frequencies from a small number of residues or a short-time segment of a signal. I. Theory and application to a quantum-dynamics model," J. Chem. Phys., 102, no. 20, p. 8011-8022 (May 22 1995). * J. Chen and V. A. Mandelshtam, "Multiscale filter diagonalization method for spectral analysis of noisy data with nonlocalized features," J. Chem. Phys. 112 (10), 4429-4437 (2000). * V. A. Mandelshtam, "FDM: the filter diagonalization method for data processing in NMR experiments," Progress in Nuclear Magnetic Resonance Spectroscopy 38, 159-196 (2001). (*Review article.*) * V. A. Mandelshtam, "On harmonic inversion of cross-correlation functions by the filter diagonalization method," J. Theoretical and Computational Chemistry 2 (4), 497-505 (2003). harminv-1.4.1/autogen.sh000077500000000000000000000003111313423445100151550ustar00rootroot00000000000000#!/bin/sh autoreconf --verbose --install --symlink --force autoreconf --verbose --install --symlink --force autoreconf --verbose --install --symlink --force ./configure --enable-maintainer-mode "$@" harminv-1.4.1/check.h000066400000000000000000000025261313423445100144140ustar00rootroot00000000000000/* Copyright (C) 2017 Massachusetts Institute of Technology. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef CHECK_H #define CHECK_H /* some useful error-checking macros: */ #define CHECK(condition, message) do { \ if (!(condition)) { \ fprintf(stderr, "harminv: failure on line %d of " __FILE__ ": " \ message "\n", __LINE__); exit(EXIT_FAILURE); \ } \ } while (0) #define CHK_MALLOC(p, t, n) do { \ size_t CHK_MALLOC_n_tmp = (n); \ (p) = (t *) malloc(sizeof(t) * CHK_MALLOC_n_tmp); \ CHECK((p) || CHK_MALLOC_n_tmp == 0, "out of memory!"); \ } while (0) #endif /* CHECK_H */ harminv-1.4.1/configure.ac000066400000000000000000000107101313423445100154460ustar00rootroot00000000000000# Process this file with autoconf to produce a configure script. # note: keep version number in sync with harminv.h AC_INIT(harminv, 1.4.1, stevenj@alum.mit.edu) AM_INIT_AUTOMAKE([foreign silent-rules 1.11]) AM_SILENT_RULES(yes) AC_CONFIG_SRCDIR(harminv.c) AM_CONFIG_HEADER(config.h) AC_CONFIG_MACRO_DIR([m4]) AM_MAINTAINER_MODE # Shared-library version number; indicates api compatibility, and is # *not* the same as the "human" version number. CURRENT:REVISION:AGE SHARED_VERSION_INFO="3:0:0" AC_SUBST(SHARED_VERSION_INFO) AM_ENABLE_SHARED(no) dnl shared libs cause too many headaches to be default ############################################################################## AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug,compile for debugging])], enable_debug=$enableval, enable_debug=no) if test "$enable_debug" = "yes"; then CFLAGS="-g" CXXFLAGS="-g" FFLAGS="-g" AC_DEFINE(DEBUG,1,[define to enable debugging code]) fi ############################################################################## # Checks for programs. AC_PROG_CC AC_PROG_MAKE_SET AC_PROG_INSTALL # Fortran libraries are (probably) required for BLAS and LAPACK: AC_F77_LIBRARY_LDFLAGS AC_F77_DUMMY_MAIN AC_F77_WRAPPERS # Add lots of compiler warnings to check for if we are using gcc: # (The variable $GCC is set to "yes" by AC_PROG_CC if we are using gcc.) if test "$GCC" = "yes" && test "$USE_MAINTAINER_MODE" = yes; then CFLAGS="$CFLAGS -Wall -W -Wbad-function-cast -Wcast-qual -Wpointer-arith -Wcast-align -pedantic" fi # Checks for header files. AC_CHECK_HEADERS(unistd.h getopt.h) ########################################################################### AC_ARG_WITH(cxx, [ --with-cxx= force use of C++ and complex], with_cxx=$withval, with_cxx=no) if test "x$with_cxx" = "xno"; then AC_PROG_CC_C99 have_c_complex=yes AC_CHECK_HEADERS(complex.h) AC_CACHE_CHECK([for C complex keyword], acx_cv_c_complex, [acx_cv_c_complex=unsupported for acx_kw in complex _Complex __complex__; do AC_TRY_COMPILE([#include ], [float $acx_kw foo;], [acx_cv_c_complex=$acx_kw; break]) done ]) if test "$acx_cv_c_complex" = "unsupported"; then AC_MSG_WARN([C doesn't support complex numbers; switching to C++.]) have_c_complex=no else if test "$acx_cv_c_complex" != "complex"; then AC_DEFINE_UNQUOTED(complex, $acx_cv_c_complex, [Define to equivalent of C99 complex keyword. Do not define if complex is supported directly.]) fi AC_CACHE_CHECK([for C complex I constant], acx_cv_c_complex_I, [acx_cv_c_complex_I=unsupported for acx_kw in I "(1.0i)"; do AC_TRY_COMPILE([#include ], [float $acx_cv_c_complex foo = $acx_kw;], [acx_cv_c_complex_I=$acx_kw; break]) done ]) if test "$acx_cv_c_complex_I" = "unsupported"; then AC_MSG_ERROR([C doesn't support complex numbers.]) have_c_complex=no else if test "$acx_cv_c_complex_I" != "I"; then AC_DEFINE_UNQUOTED(I, $acx_cv_c_complex_I, [Define to equivalent of C99 complex I constant. Do not define if I is supported directly.]) fi fi AC_CACHE_CHECK([for CX_LIMITED_RANGE_ON macro], acx_cv_c_cx_limited_range_on, [acx_cv_c_cx_limited_range_on=no AC_TRY_COMPILE([#include ], [CX_LIMITED_RANGE_ON;], [acx_cv_c_cx_limited_range_on=yes])]) if test "$acx_cv_c_cx_limited_range_on" = "no"; then AC_DEFINE(CX_LIMITED_RANGE_ON, 0, [Define to no-op if C99 macro is not available.]) fi fi # C has complex keyword fi # $with_cxx = no if test "$have_c_complex" = "yes"; then AC_CHECK_FUNCS(carg) fi ########################################################################### AC_PROG_CXX if test "$with_cxx" = "yes" -o "$have_c_complex" = "no"; then CC="$CXX" CFLAGS="$CXXFLAGS" fi ########################################################################### AC_CHECK_TYPES([long double]) ########################################################################### AC_PROG_LIBTOOL ########################################################################### AC_CHECK_LIB(m, sqrt) ########################################################################### # Checks for BLAS/LAPACK libraries: AX_BLAS([], [AC_MSG_ERROR([BLAS library not found])]) AX_LAPACK([], [AC_MSG_ERROR([LAPACK library not found])]) LIBS="$LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS" ########################################################################### AC_CONFIG_FILES([Makefile harminv.pc]) AC_OUTPUT harminv-1.4.1/doc/000077500000000000000000000000001313423445100137265ustar00rootroot00000000000000harminv-1.4.1/doc/Harminv.gif000077500000000000000000004447151313423445100160430ustar00rootroot00000000000000GIF89a """***222888**m'Y'&z&NYR11CCCKKKTTTXXXYYzzYYfffhhhwwwxxx00""))??2uw(w8U"U(U3f0ppDD@PUUDwP`wHwPfKfYffw`whww??(w0wU"U(U)f0f>f)D9U?U;Df"w(w0w8XX{{UU"U(U9U?f3XX@wHwDfPwXwDUDDJUUJTTKfRfYffDfK`whwffwpww?.7KXH@RPRh`mp{33>>>>00KKHHXXhh))""YzwDqqDDUUP``pffww9XP\q֪}R%.7?@IXPqdqr}̒`ꙏ̔ݪٻ݈͊蔣滪棻̤̿ݵȖ!!4 Image generated by GNU Ghostscript (device=ppmraw) ,I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI`@8p8p8p8p8p8p8p8p8p8p 8p8p8p8p8p8p8p8p8p8p8p8p8p8p8p8p(0 iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&A8p8p8p8p8p8p8p8p8p8p808p8p8p8p8p8p8p8p8p8p808p8p8p8p8pҤI&M4iҤI@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤY&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i,H&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i,H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIfA4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4PI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIfA4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI&@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4PҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M(iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& BiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIJ4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iĈI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIJ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MI&M4iҤI6@4iҤI&M4iҜ"&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4iI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4i 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4P#4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4 (H@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4>I(iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&MZ0IiҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&MI ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI(m4iҤI&M4,H&-ΤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iI&M4iҤI&m4iҤI&M4@I&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI&MZ0I&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&@NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI&M'I&M'I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI&MI&M(I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI&MI&M4I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI&MI&M4>I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI&ҤI&M4,H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI& ҤI&M4 (H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI&ҤI&MNH&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI& ҤI&M4PH&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI&NҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&m4iҤI&MPҤI&M4i&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4 I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&-PҤI& bҤI&M4i M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIʂNҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4 .&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MZ' I&M4iҤI&m@iҤI& ҤI&M4i, M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&X&M4iҤI&M4iΈI&M4iҤI&M4iҜ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iH&M4iҤI&MiҤI&ҤI&M4i8p M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤID`A4iҤI&MO>I&M4iҤI&M4i> $M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI&ҤI&M4i@ M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤu@4i 4iҤI&I&M4iҤI&M4iҤ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'NJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI& ҤI&M4i҈ M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@I4i4iҤÌ`ҤI&M4iҤI&M4iҤI 3iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI&NҤI&M4iҤJ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i M4iҜ`4iҤI#F@@0iҤI&M4iҤI&M4iҤILgҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI&PҤI&M4iҤJ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i M4iҤI &M4iҤ934iҤI&M4i҂I&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI& bҤI&M4iҤ9`A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i M4iҤI&M4iҤ9`A4iҤI&M4i H&M4iҤI&MI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤIF iҤI&M4iҤY`A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i M4iҤI&M4i,L4iҤI&M4iH&M4iҤI&M3:I&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI iҤI&M4iҤYA4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i M4iҤI&M4i M4iҤI&MNH& 4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&MZ4AI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI iҤI&M4iҤu@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i M4iҤI&M4iL4iҤI&M`&M4iҤI&M4i0 M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&MhE&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤIfiҤI&M4iҤ @4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&M4i M4iҤI&MZ0&M4iҤI&M4i I4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&/iҘ&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤIFiҤI&M4iҤ@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI& 8&M4i&M4iҤI&I&M4i,@@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI&-@iҤI+L4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI'iҤI&M4iҤI 4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&MN&M4iҤIL4&M4iҤI&M4i҂4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4i(H&M4iҤI&.iҤIcfH4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤIf(iҤI&M4iҤIH(iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&M4@&M4iҤI&M4&M4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4i(H&M4iҤI&3iҤI&H4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&MiJ& PҤI&M4iҤI'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&M3X&M4iҤI&M4&M4iҤI&M4iҤ91iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤI&4iҤIk4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4Ҥ&M4iҤI&MҤI& gҤI&M4iҤIFiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&MZ'|&M4iҤI&M4&M4iҤI&M4iҤY@'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤIl4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤI iҤI&M4iҤIfiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&M&M4iҤI&M4&M4iҤI&M4iҤ}iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4NIP4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤIk4iҤI&-4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤI iҤI&M4iҤI iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&M&M4iҤI&M4&M4iҤI&M4iҤiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤIVH4iҤI&3iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤI iҤI&M4iҤI iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&MH&M4iҤI&M4&M4iҤI&M4iҤ9iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤI&H4iҤI&.iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤIfiҤI&M4iҤI iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&MH&M4iҤI&M4&M4iҤI&M4iҤIiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤI[fH4iҤI&MZ!iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤIfiҤI&M4iҤI& gҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&MH&M4iҤI&M4&M4iҤI&M4iҤIiҤI&M4iҤI&M4iҤIP4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤIK4iҤI&M iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤIiҤI&M4iҤI& PҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&MH&M4iҤI&M4&M4iҤI&M4iҤIiҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤI+$M4iҤI&MhҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤI@'iҤI&M4iҤI&PҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&MH&M4iҤI&M4&M4iI&M4iҤIҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤI+$M4iҤI&M^ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M@IF(iҤI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@4iҤI&M8&M@iҤI&M4i M4iҤI&M4iҤIҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M( 8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i X%M4iҤI+$M4iҤI&M3CҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i, &M4iҤI&MҤI(iҤI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i4iI&M4%M4iҤI&M4i M4iҤI&M4iҤI#ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤ2$M4iҤI&M4AҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤI4iҤI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤ4iҤI&M4 $M4iҤI&M4i M4iҤI&M4iҤI ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤ%M4iJ&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤI4iҤI&M4iҤI&ҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤI&MN M4iҤI&M4i M4iҤI&M4iҤINҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4(P&M4iҤI3L4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MҤI4iҤI&M4iҤI& @I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤI&M4b M4iҤI&M4i M4iҤI&M4iҤIgҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4i(P&M4iҤI $M4iҤI&M4ixI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&MIiҤI&M4iҤI&M(I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤI&M4i M4iҤI&M4i@L4iҤI&M4iҤIiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI+$M4iҤI&M4i I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ< M4iҤI&M4iIfiҤI&M4iҤI&M4I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤI&M4iL4iҤI&M4iI4i>&M4iҤI@'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI+$M4iҤI&M4i I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI; M4iҤI&M4iIfiҤI&M4iҤI&M4@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@'iҤI&M4iI4iҤI&M4i@A4i8&M4iҤ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8I&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤ2$M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iIiҤI&M4iҤI&M4@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i NĤI&M4i:`@4iҤI&M4i`>I&M4iҤQ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤ%M4iҤI&M4i -&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iI'iҤI&M4iҤI&M4:I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MX&M4iҤ4iҤI&M4i(I&M4iҜ @@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤb&M4iҤI&M4i|&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iIf(iҤI&M4iҤI&M4,H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤI&M4iҤY @`ҤI&M4i,J4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤ &M4iҤI&M4iҘ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iI(iҤI&M4iҤI&M4 ,H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@3iҤI&M4iҤI&M4iҤI&M4i M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤ&M4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iI1iҤI&M4iҤI&M4 H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIFiҤI&M4iҤI&M4iҤI&M4i&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤ&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iIs4iҤI&M4iҤI&M4 H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&`ҤI&M4iҤI&M4iҤI(M4ip&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҘ&M4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iI4iҤI&M4iҤI&M4PH&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&͙J&M4iҤI&M4iҤI&M`&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4i|&M4iҤI&M4iҤZ&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iI4iҤI&M4iҤI&M4PH&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4g 8&M4iҤI&M4iҤI&MZ0I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iv&M4iҤI&M4iҤ%M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iI4iҤI&M4iҤI&M4bH&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i &M4iҤI&M4iҤI&-ΤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4i(P&M4i E&M4iҤIP4iҤI[fH4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iI4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤYI4iҤI&M4iҤI@'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i( M4iҤ&M4iҤI&M4iҤI&H4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iI4iҤI&M4iҤI&M4i%M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI L4iҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤQ M4iҤ&M4iҤI&M4iҤIVH4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; M4iҤI&M4iI4ҤI&M4iҤI&M4i%M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤ&M4iҤI&M4iҤI&H4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI; 4iҤI&M4iHiҤI&M4iҤI&M4i M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4i8q&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤ&M4iҤI&M4iҤIfh4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤIv@4iҤI&M4iH@'iҤI&M4iҤI&M4i( M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4i|&M4iҤI&M4iҤI֫4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iHf(iҤI&M4iҤI&M4i, M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4i|&M4iҤI&M4iҤI̐4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH(iҤI&M4iҤI&M4i,p M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iv&M4iҤI&M4iҤI&4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iX1iҤI&M4iҤI&M4i>p M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i,8$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤU(`4i 1&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤu0@4iҤI&M4iHs4iҤI&M4iҤI&M4i@ M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4i I&M4iҤI&M4iҤI&4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH4iҤI&M4iҤI&M4i҂ M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iI&M4iҤI&M4iҤI&4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH4iҤI&M4iҤI&M4iҤ M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4i I&M4iҤI&M4iҤI&2iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH4iҤI&M4iҤI&M4iҤJ4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iI&M4iҤI&M4iҤI&/iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH4iҤI&M4iҤI&M4iҤJ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4i I&M4iҤI&M4iҤI&m!iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH4iҤI&M4iҤI&M4iҤ9I4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4i I&M4iҤI&M4ҤI&MBҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH4iҤI&M4iҤI&M4iҤ9`A4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ 4iz&M4iҤI&M4iҤI&MBҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤIv@4iҤI&M4iHs4iҤI&M4iҤI&M4iҤQЂ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI@A4i &M4iҤI&M4iҤI&M4AҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iHs4iҤ&M4iҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4i I&M4iҤI&M4iҤI&M4CҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iI&M4iҤ f(iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iI&M4iҤI&M4iҤI&M4CI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&4iҤI&M4iҤ (iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4i I&M4iҤI&M4iҤI&M4_I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 1iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iI&M4iҤI&M4iҤI&MeI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4i I&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤI#4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4i I&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤI1iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4ivI&M4iҤI&M4iҤI&M4iI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤI(iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4i|I&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤIf(iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4i|I&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤI'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iI&M4iҤI&M4iҤI&M4i|I&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤIiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4 X&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iI&M4iҤI&M4iҤI&M4ivI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤIfiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iI&M4iҤI&M4iҤ&M4iҢ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ 4iҤI&M4iҤI&M4iҤIfiҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&(L4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MO|&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@AgGĈ!M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ p4iҤI&M4iҤI&M4iҤI ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&Ҥ`A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤIF4i%ICC4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ p4iҤI& 4iҤI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF PҤu@@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M L4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤIFI#4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI(M4iҤI (iҤI&M4iҤI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI iҤ94iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&Μ `A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@YpI4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF I4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤIiҤI&M4iҤI(iҤI&M4iҤI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIf'iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& Ҥq @4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIFBR I&-T*iҤI&M4iҤI&M4iҤ%M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4iҤI1iҤI&M4iҤI&M4iҤI&MΤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIs@0iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI bҤ94iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF ixI& iҤI&M4iҤI&M4iҤ%M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI4iҤI#1iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIfiҤI4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIFAB i|I&MgҤI&M4iҤI&M4iҤ13$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤIF@'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF@'iҤI@4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF!C1i|I&MRҤI&M4iҤI&M4iҤI$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4iҤI@4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤIfiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI#1iI& PҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIFA4iI&MҤI&M4iҤI&M4iҤI+$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤI iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI iҤI&  ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIFa4iI&MҤI&M4iҤI&M4iҤI$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4iҤI 4iҤI&M4iI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq@4iҤIF bҤIP4iҤI&M4iҤI&M4iҤI&M4iҤIFiҤI&ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIFA4iI&MRI&M4iҤI&M4iҤI3$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4iҤI 4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF'iҤI&ĤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iI&Mg.I&M4iҤI&M4iҤI3K4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤAJ4iҤI&M4iҤI&MiҤI&M4iҤI 4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI#3iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iI&M4i'I&M4iҤI&M4iҤIK4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҠUIJ4iҤI&M4iҤI&MiҤI&M4iҤI 4iҤI&M4iҤI&M4iҤI&M'I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iI&M4i1I&M4iҤI& 4iҤIː4iҤI&M4iҤI&M4iҤI&M4iҌI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i&ML-iҤI&M4iҤI&MiҤI&M4iҤI 4iҤI&M4iҤI&M4iҤI&M(I&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤu`@4iҤI&M(I&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&MZ'I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIFeI(M4iP&M4iҤI&M4iҤI&͐4iҤI&M4iҤI&M4iҤI&Mb%b(%M4iҤI&M4iҤI&M4iҤI&mhҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH& iҤI&M4iҤI&MiҤI&M4iҤI 4iҤI&M4iҤI&M4iҤI&M(&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤY@A4iҤI&M3I&M4iҤI&M4iҤI&M4iҤI&M4iҤIs4iҤI&MZ0I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&ivI&M4iҞŐ&M4iҤI&M4iҤI&-4iҤI&M4iҤI&M4iҤI&MZ1ҤIQJ4iҤI&M4iҤI&M4iҤI[&BI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MdI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ibI&MdҤI&M4iҤI&MiҤI&M4iҤI 4iҤI&M4iI&M4iҤI&M4bH&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ9I4iҤI&M4@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&i|I&M4iҤ&M4iҤI&M4iҤI&͐4iҤI&M4iҤI&M4iҤI&MډgҤIv˜4iҤI&M4iҤI&M4iҤ*M4i-&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M,0&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iXI&M11ҤI&M4iҤI&MiҤI&M@iҤI(iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤJ4iҤI&M4,H&M4iҤI&M4iҤI&M4iҤI&M4iҤ@4iҤI&M4,H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&i|I&M4iҤx&M4iҤI&M4iҤI&-4iҤI&M4iҤI&M4iҤI&-*iҤIf̅4iҤI&M4iҤI&M4i &M4iҢb&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& ZiҠa&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4YI&M4,ҤIP4iҤI&MҤI&M4iҤI(iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@9&M4iҤI&M4iҤI&M4iҤI&M4i҂ M4iҤI&M4 (H&M4iҤI&M4iҤI&M4iҤI&M4iҤ}@@4iҤI&M4 H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iI&M4iҤB%M4iҤI&M4iҤI&͐4iҤI&M4iҤI&M4iҤI&4iҤI&-F*iҤI&M4iҤI&M4iE&M4iҤE $M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&ML-iҤZ%M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4i`I&M4iI&M4iҤI&MҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M3 &M4iҤI&M4iҤI&M4iҤI&M4i:0 M4iҤI&MN H&M4iҤI&M4iҤI&M4iҤI&M4iҤYA4iҤI&M4PH&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iI&M4iҤ!M4iҤI&M4iҤI&͐/iҤI&M4iҤI&M4iҤIV4iҤI&͘ iҤI&M4iҤI&M4i|I&M4iҤIeH4iҤI&M4iҤI&FL2iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI 4iҤI"M4iҤI&M4iI&M4iҤI&M4iҤI&M4i`I&M4iH&M4iҤI&MҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4i|&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M0 M4iҤI&M4iҤI&M4iҤI&M4i, M4iҤI&M`H&M4iҤI&M4iҤI&M4iҤI&M4iҤA`A4iҤI&M4g&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iI&M4iҤIs!M4iҤI&M4iҤI&W/iҤI&M4iҤI&M4iҤIvB4iҤI&M cҤI&M4iҤI&M4fI&M4iҤIVh4iҤI&M4iҤAR+YcҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@iҤI֪4iҤI&M4iҤI&M4iҤI&M4iҤI&MZI&M4iҰH&M4iҤI&MҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iX&M4iҤI&M4iҤI&M4iҤI&M4iҤI&  I4iҤI&M4iҤI&M4iҤI&M4i$M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4i|&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iI&M4iҤI;!M4iҤI&M4iҤI&͗!iҤI&M4iҤI&M4iҤI+C4iҤI&MZPҤI&M4iҤI&MB̤I&M4iҤIM4iҤI&M4iҤa9&M4,ҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI& 4iҤI 4iҤI&M4iҤI&M4iҤI&M4iҤI&M41ɤI&M4i@&M4iҤI&MҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iX&M4iҤI&M4iҤI&M4iҤI&M4iҤI&ҤY@@4iҤI&M4iҤI&M4iҤI&M4i%M4iҤI&M4i|&M4iҤI&M4iҤI&M4iҤI&M4iҤ@L4iҤI(M4i M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iI&M4iҤIJ4iҤI&M4iҤI&M!iҤI&M4iҤI&M4iҤIsaL4iҤI&Mj%&M4iҤI&MBҤI&M4iҤI&/iҤI&M4ij&MV&M4iҤI&M4iҤI&M4iҤI&M4iҤIvL4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M40ҤI&M4iZՒ&M4iҤI&MҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iX&M4iҤI&M4iҤI&M4iҤI&M4iҤIF PҤ94iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iX&M4iҤI&M4iҤI&M4iJ&M4iҤ@4iҤI&M4i,p M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iI&M4iҤIKJ4iҤI&M4iҤI&M iҤI&M4iҤI&M4iҤI;!M4iҤI&M47TV#M4iҤI&M!fҤI&M4iҤI&MZ iI&M4iҤ&M4iƪH&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&MV+iҤI&M4iҤI&M4iҤI&M4iҤI&M4,ҤI&M4iҒ&M4iҤI&MҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4i8&M4iҤI&M4iҤI&M4iҤI&M4iҤIfiҤI4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4i@&M4ҤI&M4iҤI&M4iҤI&M4iҤu@4iҤI&M4i@ M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iI&M4iҤI{C4iҤI&M4iҤI&MZ!iҤI&M4iҤI&M4iҤ %M4iҤI&M4+pI#K4iҤI&-@AҤI&M4iҤI&M4^I&M4iҒ&MZ1ʜy&M4iҤI&M4iҤI&M4iҤI&M4iҤIE4iҤI& iҤI&M4iҤI&M4iҤI&M4iҤI&MZUҤI&M4iҤ&M4iҤI&MҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4i8&M4iҤI&M4iҤI&M4iҤI&M4iҤIf@'iҤI 3iҤI&M4iҤI&M4iҤI&M4iP& 4iҤI&M4i>p M4iҤI&M4iҤI&M4iҤI&M4iҤY@A4iҤI&M4iҤ@L4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iI&M4iҤIB4iҤI& Z-iҤI&M iҤI&M4iҤI&M4iҤ(&M4iҤIP41JH& 4iҤI&M^ҤI&M4iҤI&M4iI&M4i& iҠ)L4iҤI&M4iҤI&M4iҤI&M4iҤIK&F4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI&McҤI&M4iҤa&M4iҤI&MҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4iҤI#1iҤIF'iҤI&M4iҤI(M4iҤI&M4i M4iҤI&M4i@ M4iҤI&M4iҤI&M4iҤI&M4iҤ9`A4iҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&B_I&M4iҤIvB4iҤI ˪*I&M!fҤI&M4iҤ&M4iҤI;!M4iҤI&M4,B&iҤI&M iҤI&M4iҤI&M4ixI&M4iҰHV4iҤ)vB4iҤI&M4iҤI&M4iҤI&M4iҤIk%K4iҤI&McҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4iҤ%M4iҤI&MҤI&M4iҤI(iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iJ&ҤI&M4iҤI&M4iҤI&M4i%M4iҤI&M4iҤL4iҤI&M4iҤI&M4iҤI&M4iҤ J4iҤI&M4iҤA`A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIe'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&BI&M4iҤI&M4iҤI4iҤ&M4iҤI&M4iҤI&M4i, M4iҤI&M4iҤI&  ҤI&M4iҤI&M4iҤI&M4iX&M4 H&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M;I&M4iҤI&MSRI&M4iҤI&MiI&M4iҤI&M4i.I&M4iҤ%#M4iҤI,4iҒ&M4iJ&M4iҤI&M4iҤI&MگI.I&M4iҤI&MڪZҤ!M4iҤI&M4iҤI&M4iҎ&M4iҤI&M4i'a&M4iҤI&MڳҤI&M4iҤIL4iҤI&M4iҤI& iҤI&M4iI&M4iҤI&m4iҤI&M4iҤI&M4iҤI&M4iҤ@4iҤI&M4iҤI&M4iҤI&M4iҤJ4iҤI&M4i&M4iҤI&M4iҤI&M4I&M4iI&M4iҤI iҤI&M4iҤI&M4iҤI&M4i M4iҤI&M4iҤI&ҤI&M4iҤI&M4iҤI&MN8&M4gt&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M;I&M4iҤI&M49kI&M4iҤI&Md I&M4iҤI&Mb1I&M4iҤ%M4ҤI&M iҤIK"M4iҤI&M4iҤI&M4iҤI&MڪH.I&M4iҤI&M11ҤI+!M4iҤI&M4iҤI&M4iZՒ&M4iҤI&m!D M4iҤI&MRI&M4iҤI&K4iҤI&M4iҤI&MiҤI&M4iI&M4iҤI&m4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4i҈ M4iҤI&M4ip&M4iҤI&M@iҤI&M`H&M4iҤI&M4iҤI iҤI&M4iҤI&M4iҤI&M4i$M4iҤI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4(H&M4i&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M:I&M4iҤI&M40'I&M4iҤI&MVI&M4iҤI& 4iRI&M4iҤI#M4iҤI&MZ cҤjM4iҤI&M4iҤI&M4iҤI&MDI&M4iҤI&M4,ҤI J4iI&M4iҤI&M4i@&M4iҤE3$hײϤT/iҤI&M4i%I&M4iҤI&4iҤI&M4iҤI&MiҤI&MRI&M4iҤI&m4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4i> M4iҤIP4iҤJ4iҤI&M4iҤI&MO H&M4iҤI&M4iҤI& `ҤI&M4iҤI&M4iҤI&M4i%M4iҤI&M4iҤI&-ҤI&M4iҤI&M4iҤI&M1I&M4i&M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M;I&M4iҤI&M4,.I&M4iҤI(M4iX&M4iҤI&M4i'I&M4iҤI"M4iҤI&MRҤrJ4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&M4,ҤI3B4iҤI&M4iҤI&M4iH&M4iz %MZҤ%#-!A̤I&M4ibH&M4iҤIVE4iҤI&M4iҤI&MhҤI&MZ1I&M4iҤI&m4iҤI&M4iҤI&M4iҤI&M4iҤI34iҤI&M4iҤI&M4iҤ&M4iҤYA4iҤI&M4iҤ9`A4iҤI&M4iҤI&M4 H&M4iҤI&M4iҤI&PҤI&M4iҤI&M4iҤI&M4ip&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&MI&M4i M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M;ҤI&M4iJ&M4Y\H&M4iҤI&M4i`%M4iҤI&M4i.I&M4iҤZ%M4iҤI&M3ҤF4iҤI&M4iҤI&M4iҤI&-I&M4iҤI&M41ǤIB4iҤI&M4iҤI&M4iH&Mh I&M cҤI"M4f I&M4iN<&M4iҤIF4iҤI&M4iҤI&MZZҤI&YgI&M4iҤI&m4iҤI&M4iҤI&M4iҤI&M4iҤIs4iI&M4iҤI&M4iҤI&M4iҤA`A4iҤI&M4iҤYA4iҤI&M4iҤI&M4,H&M4iҤI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&MI&M4i: M4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4 |I&M4iҤI&M40B&M4iҤI&M4id%M4iҤI&Mg1I&M4iҤI&M4iҤI&MҤ E4iҤI&M4iҤI&M4iҤI&PvI&M4iҤI&MZIV 4iҤI&M4iҤI&M4iVI&MZ@I&͘ iҤI"M4izZ&M4iP&M4iҤIF4iҤI&M4iҤI&MZUҤI&-F*iI&M4iҤI&m4iҤI&M4iҤI&M@iҤI&M4iҤIiҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤ @4iҤI&M4iҤI&M4@I&M4iҤI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4i8&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&-ΤI&M4iҜL4iҤI&M'NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4 {I&M4iҤI&M*R&M4iҤI&M4i03$M4iҤI&MTI&M4iҤa&M4iҤI&M|&&4iҤI&M4iҤI&M4iҤI& L cI&M4iҤI&M4i`I̅4iҤI&M4iҤI&M4ibjI&-ZeҤI&-1iҤIM4iҤE+K4iҤ&M4iҤI%F4iҤI&M4iҤI&M41ҤI*4iI&M4iҤIPiҤI&M4iҤI&M4iҤI&M4iҤIfiҤI&M4iҤI&M4iҤI&M4iҤL4iҤI&M4iҤ94iҤI&M4iҤI&M3I&M4iҤI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4i@&M4iҤI&M4iҤI&M'I&M4iҤI&M4iҤI&ҤI&M4iҤA`A4iҤI&M'NҤI&M4iҤI&M4iҤI&X&M4iҤI&M4iҤI&M4 vI&M4iҤI&MڱUҞŐ&M4iҤI&M4iH$M4iҤI&MƤI&M4iҠ&M4iҤI&M4T -&4iҤI&M4iҤI&M4iҤI& iv&M4iҤI&M4iXI&ͅ4iҤI&M4iҤI&M4i`I-2iҤI4iҤIkUK4iҤI4iҤ*%M4iҤIkUK4iҤI&M4iҤI&M4,Ҥ&3iH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤIfiҤI&M4iҤI&M4iҤI&M4i҂ M4iҤI&M4iҤI34iҤI&M4iҤI&M(I&M4iҤI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4iX&M4iҤI&M4iҤI&M(I&M4iҤI&M4iҤI&NҤI&M4iҤq@@4iҤI&M'NҤI&M4iҤI&M4iJ&MX&M4iҤI&M4iҤI&M4 vI&M4iҤI&McҤ&M4iҤI&M4i@3$M4iҤI&MҤI&M4id&M4iҤI&Mg.IM4iҤI&M4iҤI&M4iҤIJ iҢ&M4iҤI&M4i`I&*iҤI&M4iҤI&M4i`Ih4iҤI*4iҤI;&F4iҤI&WhҤI+!M4iҤIL4iI&M4iҤI&M4iXI4iH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤIfiҤI&M4iҤI&M4iҤI&M4i@0 M4iҤI&M4iҤI4iҤI&M4iҤI&MI&M4iҤI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4it&M4iҤI&M4iҤI&M4I&M4iҤI&M4iҤIF bҤI&M4iҤ 4iҤI&M'I&M4iҤI&M4iҤI&MX&M4iҤI&M4iҤI&M4 {I&M4iҤI&MiҤ&M4iҤI&M4iZ $M4iҤI&MҤI&M4i$&M4iҤI&M4i. I& 4iҤI&M4iҤI&M4iҤIVKM1iҤ &M4iҤI&M4ijI& iҤI&M4iҤI&M4iXI+L4iҤIVB4iҤIE4iҤI&M@fIV4iҤIE4iҤI&M4iҤI&M4ibI{vB4iH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI iҤI&M4iҤI&M4iҤI&M4i,p M4iҤI&M4iҤI4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4>I&M4iҤI&M4iҤI iҤI& 4iҤIf'iҤI&M4NI&M4iҤI&M4iҤI&MX&M4iҤI&M4iҤI&M4 }I&M4iҤI& iҤ(&M4iҤI&M4iҒ1$M4iҤI&MZҤI&M4iҰH&M4iҤI&M4i+tI& 4iҤI&M4iҤI&M4iҤI&4iҤ%M4iҤI&M4iVI&MډgҤI&M4iҤI&Mcb%M4iҤIK04iҤI& 4iҤI&M4i&4iҤIE4iҤI&M4iҤI&M4ijIsQL4iH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI iҤI&M4iҤI&M4iҤI&M4i, M4iҤI&M4iҤI#3iҤI&M4iҤI&MI&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4,H&M4iҤI(M4iҤI&  ҤI&M4iҤI iҤI&M4NI&M4iҤI&M4iҤI&MX&M4iҤI&M4iҤI&M4 vI&M4iҤI&MV+iҤB%M4iҤI&M4iҤa1K4iҤI&MZTҤI&M4iҰH&M4iҤI&M4iFI&U-iҤI&M4iҤI&M4iҤIfŅ4iҤI $M4iҤI&M4iҰH&MRҤI&M4iҤ&M4ij-+$M4iҤI4iҤI&M 4iҤI&M4iҤ%-T*iҤIK&F4iҤI&M4iҤI&M4is!M4iH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI iҤI&M4iҤI&M4iҤI&M4i$M4iҤI&M4iҤI&(iҤI&M4iҤI&ĤI&M4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M`H&M4iҤI&M4iJ&M4i8&M4iҤI&M4iҤI `ҤI&M4iҤI gҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 vI&M4iҤI&ML2iҤ!M4iҤI&M4iҤK4iҤI&M iҤI&M4iVI&M4iҤI&M4i\H&-iҤI&M4iҤI&M4iҤI4iҤIK4iҤI&M4i&M4i.I&M4iҤI&M4i`&M4iҤI{B4iҤI&U-iҤI&M4iҤI% iҤIJ4iҤI&M4iҤI&M4i0&M4iH&M4iҤI&MZ %MNҤIEL4iI4i,HF iҤu&M(bҤI$M4PII4i%4i@&MZ'iҤ"NҤIEL4iI:I& 1iҤu&M(bҤI$MII4iI&͂4i@&MZ'EL4iI 4i:I& 1i&M(bҤI M4PĤIFiI&4i@&MOҤ"& I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 ,4i:I&m1iҤu:!M(bҤI$M4PĤ„G4iI& i@&MZ'ib"&MNҤIEL4itNHi:I& 1iҤu&M(bҤI;R@iI4i@&MZ'iҤ&MN.IEL4iI4iX0& 1iҤuJ(bҤI$PĤII4iIl΋T@sLZ'iҤ"&MNҤIEL4iĐNzH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI& gҤI&M4iҤI&M4iҤI&M4i &M4iҤI&M4iҤIfiҤI&M4iҤI&ҤI&M4iҤI&M4iҤI&MI& 4iҤI&M4iҤI&M4i8&M4iҤI&M4iҤI&M4i&M4iҤI&M4iIfiҤI&M4iҤI&  ҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤIL4iҤIs!M4iҤI&M4iҤIbH4iҤI&M iҤI&M4iXI&M4iҤI&M4_b&MiҤIP4iҤI&M4iҤI֪4iҤI&3iҤI&M4iҤɒ%M4iJI&M4iҤI&M4iMxI&M4iҤI+!M4iҤI&MiҤI&M4iҤI&- ҤI"M4iҤI&M4iҤI&M4ip<&MڲBH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI& PҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI iҤI&M4iҤI& ҤI&M4iҤI(M4iҤI&M4 H&M4iҤI&M4iҤI&M4iP&M4iҤI&M4iҤI&M4i%M4iҤI&M4iҤIf@'iҤI&M4iҤI&ҤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤI4iҤI;!M4iҤI&M4iҤIH4iҤI&-U(iҤI&M4iXI&M4iҤ&M4i*%MUI&M4iҤI&M4iҤI%4iҤI&m!iҤI&M4iҤ%#M4i\H&M4iҤI&MWI&M4iҤ %M4iҤI&MiҤI&M4iҤI&M~I#M4iҤI&M4iҤI&M4i$Ƭ!fH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI&PҤI&M4iҤI&M4iҤI&M4i8&M4iҤI&M4iҤI bҤI&M4iJ&MI&M4iҤI&M4iҤI&M4P H&M4iҤI&M4iҤI&M4iX&M4iҤI&M4iҤI&M4i$M4iҤI&M4iҤI#1iҤI&M4iҤI&ĤI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤIF4iҤIJ4iҤI&M4iҤII4iҤI&-T*iI&M4iZI&M4iҤI&M4i=!McbI&M4iҤI&M4iҤI4iҤI&MhҤI&M4iҤI"M4i\<&M4iҤI&M4GI&M4iҤ0&M4iҤI&MiҤI&M4iҤI&M4c,#M4iҤI&M4iҤI&M4i%did4iH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI&NҤI&M4iҤI&M4iҤI&M4i@&M4iҤI&M4ҤI&MI&M4iҤI&MI&M4iҤI&M4iҤI&M`H&M4iҤI&M4iҤI&M4i|&M4iҤI&M4iҤI&M4i, M4iҤI&M4iҤI4iҤI&M4iҤI&MI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤIE4iҤIKUJ4iҤI&M@iҤIV4iҤI&M iҤI&M4ibI&M4iҤI&M4iIs!M4iXI&M4iҤI&M4iҤIFC4iҤI&M]ҤI&M4iҤI"M4iP&M4iҤI&M.ҤI&M4iҞ&M4iҤI&MڪZҤI&M4iҤI&M4i.QL4iҤI&M4iҤI&M4R&M4iH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI& ҤI&M4iҤI&M4iҤI& 4i M4iҤI&M4iҤI&MI&M4iҤI&-ҤI&M4iI&M4iҤI&M4i&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4i>0 M4iҤI&M4iҤI4iҤI&M4iҤI&MI&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 I&M4iҤIp4iҤI,4iҤI&M4iҤI&M2iҤI&M iҤI&M4iXI&M4iҤI&MeIsL4i`I&M4iҤI&M4iҤIF4iҤI&M@ҤI&M4iҤIsL4iҤ&M4iҤI&!0ҤI&M4iB&M4iҤI&MZUҤI&M4iҤI&M4i\eH/iҤI&M4iҤI&m a&M4iH&M4iҤI&MiҤI&M4iҤI&M4iҤI&M4iҤI& ҤI(M4iҤI&M4iҤI&M4i$M4iҤI&M4iҤI&MZ'I&M4iҤI&ҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4gH&M4iҤI&M4iҤI&M4i҈L4iҤI&M4iҤI4iҤI&M4iҤI&M(I&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4i(H&M4iҤI&&4iҤI&ͅ4iҤI&M4iҤI&m/iҤI&Y iҤI&M4iXI&M4iҤI&M]I+J4ibI&M4iҤI&M4iҤIbJ4iҤI&M4^I&M4iҤI%K4iҤ0&M4iҤI-4,ҤI&M4iJH&M4iҤI&M41ҤI&M4iҤI&M4i\|&-@|I&M4iҘ*$TҤ&M4iH&M4iҤI&MiҤI&M4iҤI&M4iJ&M4iҤI&MI&M4iҤI&M4iҤI&M4i%M4iҤI&M4iҤI&M1I&M4iҤI& ҤI&M4iҤI&M4iҤI&M4it&M4iҤI&M4iҤI&M4PH&M4iҤI&M4iҤI&M4iҤ J4iҤI&M4iҤ@4iҤI&M4iҤI&M4>I&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4i(H&M4iҤIE4iҤI&4iҤI&M4iҤI&&iҤI& U)iҤI&MZI&M4iҤI&M4AҤI{B4iZI&M4iҤI&M4iҤIL4iҤI&M4iI&M4iҤIK&F4iҤ %M4iҤI&h11ҤI&M4iBI&M4iҤI&M40ҤI&M4iҤI&M4iҌ&M4iv*dȐ!C b&͘ iҤa&M4iH&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M'I&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4>I&M4iҤI&NҤI&M4iҤI&M4iҤI&M4iX&M4iҤI&M4iҤI&MNH&M4iҤI&M4iҤI&M4iҤA`A4iҤI&M4iҤY@4iҤI&M4iҤI&M4,H&M4NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤIK&F4iҤI&-F1iҤI&M4iҤI&XiҤI&-1iҤI&M41ǤI&M4iҤI&M4AҤIvB4iH&M4iҤI&M4iҤI!M4iҤI&M4ixI&M4iҤIE4iҤI;!M4iҤIeHZZҤI&M4i.I&M4iҤI&M4,ҤI&M4iҤI&M4iҤ0&M4iҤI&M4iҤI&1iҤ9& 4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iI&M(I&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4 ,H&M4iҤI bҤI&M4iҤI&M4iҤI&M4i@&M4iҤI&M4iҤI&M4 H&M4iҤI&M4iҤI&M4iҤY@4iҤI&M4iҤ9I4iҤI&M4iҤI&MN H&M4NI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤI[%K4iҤI& *iҤI&M4iҤI&MiҤI&4iҤI&M4,ҤI&M4iҤI&M3CҤIØ4iҰH&M4iҤI&M4iҤz"M4iҤI&M4iI&M4iҤIE4iҤIQL4iҤ1$MhҤI&Mg'I&M4iҤI&M41ɤI&M4iҤI&M4iҠ}9!M4iҤI(M4iҤI&-U iҤIUK4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M(I&M4iҤI&M4iҤI&M4i8&M4iҤI&M4iҤI&M4N H&M4iҤI iҤI&M4iҤI&M4iҤI&M4i8&M4iҤI&M4iҤI&M4,H&M4iҤI&M4iҤI&M4iҤ @4iҤI&M4iҤL4iҤI&M4iҤI&M4b8&M4N&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤI#M4iҤI&X iҤI&M4iҤI&MhҤI&4iҤI&M40ҤI&M4iҤI&MZ^ҤI*4i$&M4iҤI&M4iҤ%M4iҤI&M4ix&M4iҤI4iҤI3B4iҤ b&MiҤI&MI&M4iҤI&M4YI&M4iJ&M4iҤj4iҤI&M4iҤI4iҤI;&F4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M3I&M4iҤI&M4iҤI&M4iP&M4iҤI&M4iҤI&M`H&M4iҤIfiҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4:I&M4iҤI&M4iҤI&M4iҤI 4iҤI&M4i> M4iҤI&M4iI&M4i$M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤA#M4iҤI&MZ iҤI&M4iҤI&MZVҤIV,4iҤI&MZ+YҤI&M4iҤI&M!fҤI&4id&M4iҤI&M4iҤ&M4iҤI&M4iҤ&M4iҤIVk4iҤI4i &MiҤI&MҤI&M4ҤI&M4iH&M4iҤI&M4iҤ%3iҤI&M4iҤI#4iҤIF4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M4I&M4iҤI&M4iҤI&M4iX&M4iҤI&M4iҤI&M4i|&M4iҤIf'iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4@I&M4iҤI&M4iҤI&M4iҤI34iҤI&M@iҤQ@A4iҤI&M4iҤI&M4i( M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤ%M4iҤI&M iҤI&M4iҤI&M!&ҤI*4iҤI&MhҤI&M4iҤI&MZ!iҤI&ͅ4iҠ&M4iҤI&M4iҌ&M4iҤI&M4iҤ2$M4iҤI& 4iҤI4i I& `VҤI&MRI&M4iҤI&M4iҰH&M4iI&M4iҤ&-U iҤI&M4iҤIKC4iҤIF4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M4@I&M4iҤI&M4iҤI&M4i|&M4iҤI&M4iҤI&M4iX&M4iҤI@0iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4I&M4iҤI&M4iҤIP4iҤIfiҤI&M4iҤI4iҤI&M4iҤI&M4i> M4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҤa&M4iҤI&MZgҤI&M4iҤI&M/.ҤIB4iҤI&MiҤI&M4iҤI&MZ!iҤI&-T*iҤa&M4iҤI&M4ix&M4iҤI&M4iҤIL4iҤI(MiҤI&M iI&McҤI&MҤI&M4iҤI&M4iҰH&M4iҤI&M4iҤ&MZ TҤI&M4iҤ=+L4iҤIE4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M4@I&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4i&M4iҤI@4iҤI&M4iҤI&M4iҤI&M4i%M4iҤI&M4iҤI&MZ0&M4iҤI&M4iҤI&M4iҤI iҤI&M4i҂L4iҤI&M4iҤI&M4iҜL4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҠ&M4iҤI&MZTҤI&M4iҤI&M2HǤIvB4iҤI&iҤI&M4iҤI&.iҤI&X iҤI&M4iҤI&M4iԒ&M4iJ&M4iҤIL4iҤI&MdҤI&MZTI&MiҤI&MPҤI&M4iҤI&M4i$&M4iҤI&M4iҤ&MŤI&M4iҞ0&M4iҤI&4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M4,H&M4iҤI&M4iҤI&M4gH&M4iҤI&M4iҤI&M4i &M4iҤI4iҤI&M4iҤI&M4iҤI&M4i$M4iI&M4iҤI&M4PH&M4iҤI&M4iҤI&M4iҤIF gҤI&M4i, M4iҤI&M4iҤI&M4iҤA`A4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iZ&M4iҤI&MZҤI&M4iҤI&M?bI{B4iҤI&m1iҤI&M4iҤI&2iҤI&M iҤj%M4ҤI&M4iҌ&M4iҤI&M4iҤI&/iҤI&M,YҤI&M3I&MiҤI&MډgҤI&M4iҤI&M4idɒ&M4iҤI&M4ij&Mg'I&M4iJ&M4iҤIV4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M4,H&M4iҤI&M4iҤI&M4PH&M4iҤI&M4iҤI&M4i $M4iҤI34iҤI&M4iҤI&M@iҤI&M4iҤQ`A4iҤI&M4iҤI&M4NH&M4iҤI&M4iҤI&M4iҤI&NҤI&M4i$M4iҤI&M4iҤI&M4iҤu@@4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iҰH&M4iҤI&MҤI&M4iҤI&M4CUIKJ4iҤI&4iҤI&M4iҤI& iҤI&M4ϤIF4iҤI&M4iJE&M4iҤI&M4iҤI&MeҤI&MZ21ҤI&MZ!ƤI&iҤI&-U iҤI&M4iҤI&M4iҒ&M4iҤI&M4iVՒ&M4iJ&MT%I&M4iҤIL4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M4 ,H&M4iҤI&M4iҤI&MOH&M4iҤI&M4iҤI&M4i80 M4iҤ1iҤI&M4iҤI&M4iҤI&M4iҤYA4iҤI&M4iҤI&M4 (H&M4iҤI&M4iҤI&M4iҤI& ҤI&M4i &M4iҤI&M4iҤI&M4iҤ4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4iH&M4iҤI&M4ҤI&M4iҤI&M@bIJ4iҤI( iҤI&M4iҤI&MZ!iҤI&M4TIE4iҤI&M4iج&M4iҤI&M4iҤI&MZ4AѤI&M4,ҤI&!c.I&mU-iҤI&3iҤI&M4iҤI&M4iҤa&M4iҤI&M4iH&M4iҞ8#ϤI&M4iҤI& 4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M4 H&M4iҤI&M4iҤI&M4 H&M4iҤI&M4iҤ&M4iҤ4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤ}@4iҤI&M4iҤI&M4,H&M4iҤI&M4iҤI&M4iҤI&ҤI&M4i&M4iҤI&M4iҤI&M4iҤI34i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4ibI&M4iҤI&MϤI&M4iJ&M4ivB4iҤI&m,iҤI&M4iҤI&m!iҤI&M4i.I4iҤI&M4i&M4iҤI&M4iҤI&MeI&M40ҤIVh4i1RI& 4iҤIV4iҤI&M4iҤI&M4iҤa&M4iҤI&M4iҰH&M4iҤI&4iҤI&M4iҤI& 4iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&MNH&M4iҤI&M4iҤI&M4 X&M4iҤI&M4iҤI&M4iҤI34iҤI34iҤI&M4iҤI&M4iҤI&M4iҤ@4iҤI&M4iҤI&M4:I&M4iҤI&M4iҤI&M4iҤI&I&M4ip&M4iҤI&M4iҤI&M4iҤI4i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(H&M4hXI&M4ҤI&M4iPI&M4iҤI&M4i|avB4iҤI&4iҤI&M4iҤI&/iҤI&M4i.IL4iҤI&M4i~H&M4iҤI&M4iҤI&M4i1&MVE+K4iNH& 4iҤI{VB4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&ML2iҤ&M4iҤI&MҤI&M4iҤI&M4iҤI&M4iҤI&M4P H&M@iҤI&M4iҤI&M4iX&M4iҤI&M4iҤI&M4iҤI4iҤ4iҤI&M4iҤI&M4iҤI&M4iҤ94iҤI&M4iҤI&M4@I&M4iҤI&M4iҤI&M4iҤI&MI&M4b&M4iҤI&M4iҤI&M4iҤI#1i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4i(P&M4ijI&M4iI&M4ibH&M4iҤI&M4ixC4iҤIL4iҤI&M4iҤI&P4iҤI&M4iJI&4iҤI&M4i&H&M4iҤI&M4iҤI&M4iҘ Mdax b&M4iJM4iҤIsQL4iҤI&M4iҤI&M4iҤɒ%M4iҤI&M4iVI&M4iҤI&M4iҤI&M4iҤI&U-iҤ&M4iҤI&MҤI&M4iҤI&M4iҤIP4iҤI&M4i&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI#(iҤY`@4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M3I&M4iҤI&M4iҤI&M4iҤI&MZ'I&M4 H&M4iҤI&M4iҤI&M4iҤIfi8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4i(P&M4hUI&M4iҤI&M4iNH&M4iҤI&M4i %J4iҤI&&4iҤI&M4iҤI&4iҤI&M4iNH&ML2iҤI&M4chdI&M4iҤI&M4iҤI&M4iҤIU(BIzI&M4iҤH%K4iҤ*%M4iҤI&M4iҤI&M4iҤ%#M4iҤI&M4ijI&M4iҤI&M4iҤI&M4iҤI&iҤ&M4iҤI&MҤ&M4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤIFiҜ I4iҤI&M4iҤI&M4iҤI&M4iҤIs4iҤI&M4iҤI&M(I&M4iҤI&M4iҤI&M4iҤI&M3I&M4:I&M4iҤI&M4iҤI&M4iҤI i8I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M41I&M4iҤI&M4iNH&M4iҤI&M4iIM4iҤIE4iҤI&M4iҤI4iҤI&M4iN<&*iҤI&MPZI&M4iҤI&M4iҤI&M4iҤI&M4ibI&M4iҤI+4iJ&M4iҤI&M4iҤI&M4iҤI"M4iҤI&M4i`I&M4iҤI&M4iҤI&M4iҤI&MiI; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i &M4iҤI&M4iҤI&M4bH&M4iҤI&M4iҤI&M4iҤIF N M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&MZ'I&M4iҤI&M4iҤI&M4iҤI&M4(H&MZ'I&M4iҤI&M4iҤI&M4iҤILN8I&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(؀&MZ+1ҤI&M4iҤI&M4ib&M4iҤI&M4i I#F4iҤIkJ4iҤI&M4iҤI֋4iҤI&M4iP&MiҤI&M4`I&M4iҤI&M4iҤI&M4iҤI&M4iZI&M4iҤI{#Fb'bH&M4iҤI&M4iҤI&M4iҤIM4iҤI&M4iXI&M4iҤI&M@iҤI&M4iҤI&M40ҤI; M4iҤI&M4i,&M4iҤI&M4iҤI&M4iҤI&M4i%M4iҤI&M4iҤI&M4PH&M4iҤI&M4iҤI&M4iҤI&$M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4P&MI&M4iҤI&M4iҤI&M4iҤI&8I& 4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i($iҤI&M4iҤI&M4iR&M4iҤI&M4i 4iҤA"M4iҤI&M4iҤIf4iҤI&M4iҤ&MdҤI&MZ*5I&M4iҤI&M4iҤI&M4iҤI&M4iҰH&M4iҤI;&XPƤI&M4iҤI&M4iҤI&M4iҤIk%K4iҤIP4iH&M4iҤI&M4iҤI&M4iҤI&M40:Y M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i %M4iҤI&M4iҤI&M4NH&M4iҤI&M4iҤI&M4iҤI&MX&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4i@&ΤI&M4iҤI&M4iҤI(M4iҤI&M1"p&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(PV 4iҤI&M4iҤI&M4iҤ&M4iҤI&M4i 1Bu 4iҤ%M4iҤI&M4iҤIVH4iҤI&M4iҤ(&MZ21ҤI&M +ҤI&M4iҤI&M4iҤI&M4iҤI&M4iH&M4iҤI[uL4iҤI&M4iҤI&M4iҤ&M4iҤIL4iҤI&M4idI&M4iҤI&M4iҤI&M4iҤI&MUI; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i$M4iҤI&M4iҤI&M4 ,H&M4iҤI&M4iҤI&M4iҤI&MN@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI@4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4i NJ&M4iҤI&M4iҤI&M4iҤI&M p&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4i|x&ML+id&M4iҤI&M4iҤI&H4iҤI&M4iҤs!M4,ФI&X1ҤI&M4iҤI&M4iҤI&M4iҤI&M4iVɒ&M4iҤI"M4iI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4i`I&M4iҤI&M4iҤI&M4iҤI&MZI; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i( M4iҤI&M4iҤI&M4,H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI#4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4ҤI&M4iҤY ҤI&M4iҤI&M4iҤI&M4iҤI&M4gp&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI&M4iҤI&M4iҤx&M4iҤI&M4iҘ&M*,`H&M4iҤI&M4iҤIK4iҤI&M4iҤIsLZbI&ŖdҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤ%#M4iҤIF4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iXI&M4iҤI&M4iҤI&M4iҤI&M4iXI; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i, M4iҤI&M4iҤI&M4>I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@0iҤI&M4iҤI&ΤI& 4iI&M4iҤI&M4iҤI&M4iҤI @gҤI&M4iҤI&M4iҤI&M4iҤI&M4i p&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI&M4iҤI&M4iҤB%M4iҤI&M4iҌy&M4iҤI&M4iҤI&M4iҤI3L4iҤI&M4iҤI+C4iXIf̌iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI"M4iҤIk%K4iҤI&M4iҤI&M4iҤI&M4iҤI&mU-iҤI&MdbI&M4iҤI&M4iҤI&M4iҤI&M4i`I; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i,p M4iҤI&M4iҤI&M4@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIf(iҤI(M4iҤI&M(I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI&M4iҤI&M4iҤ=!M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI$M4iҤI&M4iҤI梘4i&-EhҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIk%K4iҤI"M4iҤI&M4iҤI&M4iҤI&M4iҤI&-iҤI&MVI&M4iҤI&M4iҤI&M4iҤI&M4ibI; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i@p M4iҤI&M4iҤI&M3I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI& ҤI&M4iҤI&MZ'I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI&M4iҤI&M4iҤI;!M4iҤI&M4iN&M4iҤI&M4iҤI&M4iҤI$M4iI&M4iҤI&YgҤ¢1iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIE4iҤ#M4iҤI&M4iҤI&M4iҤI&M4iҤI&MiҤI&M4,ҤI&M4iҤI&M4iҤI&M4iҤI&M4idI; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i@ M4iҤI&M4iҤI&M(I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI& ҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI&M4iҤI&M4iҤIaL4iҤI&M4i\%M4iҤI&M@iҤI&M4iҤI[fH4iҤI&M4iҤI&MZϤIe4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤa&M4iҤI&M4iҤI&M4iҤI&M4iҤI&McҤI&M40ҤI&M4iҤI&M4iҤI&M4iҤI&M4iH; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4i҈ M4iҤI&M4iҤI&M'I&M4iҤI&M4iI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&ҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI&M4iҤI&M4iҤICUJ4iҤIP4iRK4iҤI&M4iҤI&M4iҤIK4iҤI&M4iҤI&Mb'b!M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI 4ij&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M11ҤI&MVҤI&M4iҤI&M4iҤI&M4iҤI&M4iH; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤ@L4iҤI&M4iҤI&MI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& ҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i(P&M4iҤI&M4iҤ&M4iҤI&4iҤI&M4ibfH4iҤI&M4iҤI&M4iҤI+$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iǪ@&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M*ҤI&MhҤI&M4iҤI&M4iҤI&M4iҤI&M4i@; M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤ J4iJ&M4iҤI&M4 ,H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&-ҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iQ M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iNH&H4iҤI&M4iҤI&M4iҤI$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MZ+,`I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MUI&-iҤI&M4iҤI&M4iҤI&M4iҤI&M4iZ: M4iҤI&M4iI&M4iҤI&M4iҤI&M4ҤI&M4iҤIs4iҤI&M4iҤI&M4,H&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&MΤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&-T1iҤI&M4ibH&H4iҤI&M4iҤI&M4iҤ13$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4hXI&ML-iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҠ9 M4iI&M4iI& 4iҤI&M4iҤI&M4iҤI&M4iҤIs4iҤI&M4iҤI&M4@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&͘ iҤI&M4i1If4iҤI&M4iҤI&M4iҤ%M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ibjI 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤUx@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M4I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&MZ iҤI&M4i%I֫4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iЪ$%4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI[@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M1I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i8q&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&MZRҤI&MTI̐4iҤI&M4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҠasL4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&C4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M(I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MZ'I&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&M3ҤI&MϤI&M4iҤI&M4iҤI&M4iҘ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&C4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&M'I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M(I&M4iҤI&PҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&M4ƤI&M1ҤI&M4iҤI&M4iҤI&M4ix&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4I&M4iҤI& bҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&M4c.I&M cҤI&3iҤI&M4iҤI&M4i E&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4>I&M4iҤI iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&M4i1RI&-U iҤI&W/iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤI(iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4,H&M@iҤI&ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&M4iJV3iҤI&!iҤI&M4iҤI&M4i I&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤIF(iҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4i@&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&M4iҞ4iҤI&M iҤI&M4iҤI&M4i|I&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤI@'iҤI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&NҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M iҤI&M4iJ&M4i I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤIiҤI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI&MPҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQ M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M]ˤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤI&M4iҤIfiҤI&M4iҤI&ҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI gҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤQ M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4_I&M4iҤI&M4ixI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iX%M4iҤI&M4iҤI&M4iҤI&M4iҤIfiҤIP4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i $M4iҤI iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i,8$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤQh(iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤu0@4iҤI&M4iH&M4iҤI&M4iҤI&M4iҤ&M4iҤI& ҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i M4iҤIfiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@4iҤI&M4iH&M4iI&M4iҤI&M4iҤI&M4iҤI& ҤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i,p M4iҤIFiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i|I&M4iҤI&M4fI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIv@@iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&MΤI&M4iҤI&MI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@ M4iҤIf@'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤq$M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i I&M4iҤI&M]ˤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&MĤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ@L4iҤIs1iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤq$M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4AҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&MI&M4iҤI& ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI4iҤI@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i E&M4iҤI&M3CҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤY@A4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iz&M4iҤI&MeҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&MI&M4iҤI&ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤu@@4iҤIs4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҢ&M4iҤI&M iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'I&M4iҤI&  ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤI 4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&.iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M(I&M4iҤI&OҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI#4iJ@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ%M4iҤI&P4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M1I&M4iҤI& `ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤIFiҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI$M4iҤIƬ4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4I&M4iҤI iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI iҤI34iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI3L4iҤI3iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4@I&M4iҤI iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI OҤ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤIƬ4iҤIL4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4,H&M4iҤIfiҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&ҤY@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&2iҤI&4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 ,H&M4ҤI&  ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& Ĝ I4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI@A@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&-hҤIeH4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4gI&4iҤI&M4iҤ &M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4i8&M4iҤI&OҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤIF4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M2CѤ2$M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&:I4iҤI&M3I&4iҤI&M4iҤ &M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI& `ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MZ0%M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&Me &M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI 'i 4iҤI&MX&4iJ&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4P|&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIf1i@A@A4ҤI&M4iH&MiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i&M4iҤI iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤII4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI& iҤI4iҤI&M4iH&MiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i %M4iҤIfiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4i@ @4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4I&M4iҤI&M4iҤI&4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 ĤI&M4iҤI&M4bI(M4iҤI&M4iҤY iҤIs@@4iҤI&M4iH&MiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i M4iҤIiҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iҤQ4iҤ@4iҤI&M4iҤI&M4iҤI& iҤI&M4iҤI&M4iҤI&M4iҤI&MZ0I&M4iҤI&M4iҤIsF!4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4J&M4iҤI&M4i,t&M4iҤI&M4iҤI&M4iҤI& iҤI`A4iҤI&M4iH&MiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i, M4iҤIF'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iҤ94iҤIs&@4iҤI&M4iҤI&M4iҤI& bҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ93L4iҤI&M4iҤI&M4iҤI&M4iҤ&M4ҤI&M4iҤI&M4iI&M4iҤI&M4iҤY$M4iҤI&M4iҤI&M4iҤI&iҤu@@`ҤI&M4iH&MiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i>0 M4iҤIs1iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iҤI(iҤIFA4iҤI&M4iI&M4iҤIFL ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤA M4iҤI&M4iҤI& 4iҤI&M4iҤ M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI3I4iҤI&M4iҤI&M4iҤI&P҂ bҤI&M4i8#&MiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i҂ M4iҤI@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iҤIFiҤIFL4iҤI&M4iҤI&M4iҤIFΤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i: L4iҤ9`@4i$M4iҤI&M4iҜ M4iҤIs@4iҤI&M1 (t&M4iҤI&M4iҤI$ 4iҤI&M4iҤI&M4iҤI&MZ'X iҤI&M4i$MiҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤJ4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤE4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF(bҤI NҤI&M4iҤI&M4iҤI&M4iҤIsf@I&M4iҤI&M4iҤI&M4i@9&M4gJ&MZ0 ҤI&M4iҤ M4i҂ I4iҜQ`4iҤI&M4i M4iҤI@4iҤI&O, L4iҤI&M4iҤI&4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI TiҤI&M4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ9I4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤE4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF(bҤI&ΤI&M4iҤI&M4iҤI&M4iҤII(I&M4iҤI&M4ҤI&M3 JZ0H( 4i:$M4i$MZ0 ΤI4iҤI&M4i4iҤI@4iҤIFLiu 4iҤI&M4iҤIF(iҤqrI&M4iҤI&M4iҤI&M4i>I&M4iҤI TiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤYA4iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iҤI&I&M4iҤI&M4iҤI&M4iҤI3 4it&M4iҤI&M4iҤI&MiҤ3J4gH&I4i &M4iP&MIsF@'iҤI&M4iҤ M4iҤI@4iҤIf@0iIs4iҤI&M4iҤI i, &I&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ}@@4iҤ@4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iҤI&MҤI&M4iҤI(M4iҤI&M4iҤIDA4i&M4iҤI&M4iҤI&M ΤIL4iH&MҤI4i&M4i|&MI iҤI&M4iҤ M4iҤI@4iҤI4iI4iҤI&M4iҤI it&M1I&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ4iҤ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF4iJ&MZ0ĤI&M4iҤI&M4iҤI&M4iҤIsL4i$M4iҤI&M4iҤI&M:I&M4iH&MҤI4i&M4i8&MIF iҤI&M4iҤ M(4iI#4iҤI&M4iҤI& i@I&M4iҤI&M4iҤI&M4iH&M4iҤI&MiҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤIF'iҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&iҤI&MOҤI&M4iҤI&M4iҤI&M4iҤp M4iҤI&M4iҤI&M38&M4iH&MҤI4i&M4iH&MI& iҤI&M4iҤ M(4iI4iҤI&M4iҤI& i&M4iҤI&M4iҤI&M4iҤI&M4iH4iҤI&MiҤI&M4iҤI M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤIiҤI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&͂iҤI&M4bҤI&M4iҤI&M4iҤQ$M4i҂J4iҤI&M4iҤI&M4iI4iH&MҤI4i&M4i8&M'I iҤI&M4iҤ M4iҤI@4iҤI1iI4iҤI&M4iҤI& it&M4iҤI&M4iҤI&M4iҤI&M4iL4iҤI&MiҤIP4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI iҤ4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤIɀ4iҤI&MZNҤI&M4iҤI&M4i҈ p&M4iҤ9A4iҤI&M4iҤI&M'iҜQ@@4iH&MҤI4i &M4it&M(ҤI iҤI&M4iҤ M4iҤI@4iҤI'iI#4iҤI&M4iҤIF i8&M4i8I&M4iҤI&M4iҤI&M4i$@A4iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIF bҤYA4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIƉ4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI#F4iҤI欓gҤI&M4iҤI&M4i(P&M4iҤu4iҤI&M4iҤI&MiҤI@4iH&MҤI4i,%M4i8&MI'iҤI&M4iҤ M4iҤI@4iҤI iI$4iҤI&M4iҤI @'iL4bI&M4iI&M4iҤI&M4iҤ&4iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& Ҝ I4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI3iҤI&M4iҤI&M4it&M4iҤ94iҤI&M4iҤI&MPҤ9@A4i8&MҤIs4i҈ M4i $ NI4iҤI&M4iҤ 1iҤI@4iҤI&`I4iҤI&M4iҤIFA@gҤq:I&M4iҤI&M4iҤI&M4iҤ @0iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&8 M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤY'iҤ&M4iҤI&MN M4i:YbI&M4iҤI&ML(@ gҤQ0 M4iҜQB0i `A4i҂I&M4iҤq@4iҤI@4iҤI&͙8P4iҤ&M4iҤIL'iҤIdI&M4iҤI&M4iҤI&M4i>LNҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M'I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ9J4iҤI&M4iҤI&MOH&M4iҤI&M4iҤ&M4iҤI&M4i8&M4i&M4iҤIf4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M'p&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI @4iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4iH&M4i&M4iҤI F4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MO(8&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI։@iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4i8&M4i&M4iҤ9L4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4I&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M( ҤI&M4iҤI&M4i&M4iҤI&M4iҤI&M4iҤI&M4i&M4i&M4i҈Qp&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4i& NI&M4iҤI&M4iҤI&M4I@S0iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i& NI&M4iҤI&M4iҤI&M4i p&M4i& NI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4i3iҤI&M4iҤI&M4iI&M4iH F4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i3iҤI&M4iҤI&M4iҤI&M4iҤI&M4i3iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤI&M4ifA@iҤI&M4iҤI&M4iҤI&M4i M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ifA4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ifA4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤIP4iҤI&M4iҤ@4iҤI&M4iҤI&M4iҤI&M4i M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i A4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M ҤI&M4iҤI&M4iҤ 'iҤI&M4iҤI&M4iҤI&M4iI4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4iҤI6@4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤ PҤI&M4iҤI&M4iҤI&M4iH4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4if(iҤI&M4iҤI&M4iҤI&M4iҤI&M4if(iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MҤI&M4ҤI&m4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&'iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M ҤI&M4iҤI&M4iҤ MI&M4iҤI&M4iҤI&M4iH@@0iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i&́`ҤI&M4iҤI&M4iҤI&M4iҤI&M4i&́`ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI%M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4PҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MZҤI&M4iҤI&M4i>:I&M4iҤI&M4iҤ&MOp"NҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iDI&M4iĈI&M4iҤI&M4iҤI&M4iDI&M4iҤIJ4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&-4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4 ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤY&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&MڃҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ]&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&͂4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4i@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&-(P@ (P@ (P@ (P@ (P@ *P@ (P@ (P@ (P@ (P@ (T(@ (P@ (P@ (P@ (P@ (P@(P@ (P@ (P@ (P@ (P@ (@ (P@ (P@ )P@ (P@ (P ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M"P@ (P@ (P@ (P@ (P@ *@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ T@ (P@ (P@(P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@I&M4iҤI&(P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@(P@ (P@ (P@ (P@ (P@ (@@@ (P@ (P@ (P@ (P@ (PaҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M"P@ (P@ (P@ (P@ (P@ (D@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ (P@ "T@  (P@ (P@ (P@ (P@ (P@! (P@ (P@ (P@ (P@ (P@I&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iJ&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4ҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M@iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI& 4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤIP4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI(M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤI&M4iҤ;harminv-1.4.1/doc/harminv-man.md000066400000000000000000000201011313423445100164570ustar00rootroot00000000000000# harminv command-line program [Harminv](../README.md) is installed as both a [library](library.md) and as a command-line program `harminv`. This page describes the usage of the command-line program. ## Synopsis harminv [OPTION]... [freq-min-freq-max]... ## Description `harminv` is a program designed to solve the problem of "harmonic inversion": given a time series consisting of a sum of sinusoids ("modes"), extract their frequencies and amplitudes. It can also handle the case of exponentially-decaying sinusoids, in which case it extracts their decay rates as well. `harminv` is often able to achieve much greater accuracy and robustness than Fourier-transform methods, essentially because it assumes a specific form for the input. It uses a low-storage "filter-diagonalization method" (FDM), as described in V. A. Mandelshtam and H. S. Taylor, "Harmonic inversion of time signals," *J. Chem. Phys.*, vol. 107, p. 6756 (1997). See also erratum, ibid `109`, 4128 (1998). ## Input `harminv` reads in a sequence of whitespace-separated real or complex numbers from standard input, as well as command-line arguments indicating one or more frequency ranges to search, and outputs the modes that it extracts from the data. (It preferentially finds modes in the frequency range you specify, but may sometimes find additional modes outside of that range.) The data should correspond to equally-spaced time intervals, but there is no constraint on the number of points. Complex numbers in the input should be expressed in the format `RE+IMi` (*no whitespace*). Otherwise, whitespace is ignored. Also, comments beginning with `#` and extending to the end of the line are ignored. A typical invocation is something like ```sh harminv -t 0.02 1-5 < input.dat ``` which reads a sequence of samples, spaced at 0.02 time intervals (in ms, say, corresponding to 50 kHz), and searches for modes in the frequency range 1–5 kHz. (See below on units.) ## Output `harminv` writes four comma-delimited columns to standard output, one line for each mode: frequency, decay constant, Q, amplitude, phase, and error. Each mode corresponds to a function of the form: amplitude * exp[-i (2 pi frequency t - phase) - decay t] Here, *i* is sqrt(-1), *t* is the time (see below for units), and the other parameters in the output columns are: * `frequency` — The frequency of the mode. If you don't recognize that from the expression above, you should recall Euler's formula: `exp(ix) = cos(x) + i sin(x)`. Note that for complex data, there is a distinction between positive and negative frequencies. * `decay constant` — The exponential decay constant, indicated by decay in the above formula. The inverse of this is often called the "lifetime" of the mode. The "half-life" is `ln(2)/decay`. * `Q` — A conventional, dimensionless expression of the decay lifetime: `Q = π |frequency| / decay`. Q, which stands for "quality factor", is the number of periods for the "energy" in the mode (the squared amplitude) to decay by `exp(-2π)`. Equivalently, if you look at the power spectrum (|Fourier transform|²), 1/Q is the fractional width of the peak at half maximum. * `amplitude` — The (real, positive) amplitude of the sinusoids. The amplitude (and phase) information generally seems to be less accurate than the frequency and decay constant. * `phase` — The phase shift (in radians) of the sinusoids, as given by the formula above. * `error` — A crude estimate of the relative error in the (complex) frequency. This is not really an error bar, however, so you should treat it more as a figure of merit (smaller is better) for each mode. ## Spurious Modes Typically, harminv will find a number of spurious solutions in addition to the desired solutions, especially if your data are noisy. Such solutions are characterized by large errors, small amplitudes, and/or small Q (large decay rates / broad linewidths). You can omit these from the output by the error/Q/amplitude screening options defined below. By default, modes with `error > 0.1` and `Q < 10` are automatically omitted, but it is likely that you will need to set stricter limits. ## Units The frequency (and decay) values, both input and output, are specified in units of 1/time, where the units of time are determined by the sampling interval *dt* (the time between consecutive inputs). *dt* is by default 1, unless you specify it with the `-t dt` option. In other words, pick some units (e.g. ms in the example above) and use them to express the time step. Then, be consistent and use the inverse of those units (e.g. kHz = 1/ms) for frequency. Note that the frequency is the usual 1/period definition; it is not the angular frequency. ## Options
* `-h` — Display help on the command-line options and usage. * `-V` — Print the version number and copyright info for `harminv`. * `-v` — Enable verbose output, printed to standard output as comment lines (starting with a `#` character). Also, any `#` comments in the input are echoed to the output. * `-T` — Specify period-ranges instead of frequency-ranges on the command line (in units of time corresponding to those specified by `-t`). The output is still frequency and not period, however. * `-w` — Specify angular frequencies instead of frequencies, and output angular frequency instead of frequency. (Angular frequency is frequency multiplied by 2π). * `-t dt` — Specify the sampling interval `dt`; this determines the units of time used throughout the input and output. Defaults to 1.0. * `-d d` — Specify the spectral "density" d to search for modes, where a density of 1 indicates the usual Fourier resolution. That is, the number of basis functions (which sets an upper bound on the number of modes) is given by `d × (freq-max - freq-min) × dt × (number of samples)`. A maximum of 300 is used, however, to prevent the matrices from getting too big (you can force a larger number with `-f`, below). - Note that the frequency resolution of the outputs is not limited by the spectral density, and can generally be much greater than the Fourier resolution. The density determines how many modes, at most, to search for, and in some sense is the density with which the bandwidth is initially "searched" for modes. - The default density is 1.1 (or lower, to keep within the 300 maximum), which is usually a good value for most applications. If you set the density too high, then the matrices become large and singular; if you set the density too low, then you risk missing modes. * `-f nf` — Specify a lower bound nf on the number of spectral basis functions (defaults to 2), setting a lower bound on the number of modes to search for. This option is sometimes a more convenient way to specify the number of basis functions than the `-d` option, above. - `-f` also allows you to employ more than 300 basis functions, but careful: the computation time scales as O(N nf) + O(nf^3), where N is the number of samples, and very large matrices can also have degraded accuracy. * `-s sort` — Specify how the outputs are sorted, where `sort` is one of `frequency`/`error`/`Q`/`decay`/`amplitude`. (Only the first character of `sort` matters, e.g. `-s a` sorts by amplitude.) All sorts are in ascending order. The default is to sort by frequency (`-s f`). * `-e err` — Omit any modes with error (see above) greater than err times the largest error among the computed modes. Defaults to no limit. * `-E err` — Omit any modes with error (see above) greater than err. Defaults to 0.1. * `-F` — Omit any modes with frequencies outside the specified range. (Such modes are not necessarily spurious, however.) * `-a amp` — Omit any modes with amplitude (see above) less than amp times the largest amplitude among the computed modes. Defaults to no limit. * `-A amp` — Omit any modes with amplitude (see above) less than amp. Defaults to no limit. * `-Q q` — Omit any modes with |Q| (see above) less than `q`. Defaults to 10. ## Bugs Report bugs by [filing a github issue](https://github.com/stevengj/harminv). ## Authors Written by Steven G. Johnson. Copyright © 2004–2017 by the Massachusetts Institute of Technology. harminv-1.4.1/doc/harminv.1000066400000000000000000000224241313423445100154600ustar00rootroot00000000000000.\" Copyright (c) 2017 Massachusetts Institute of Technology .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; if not, write to the Free Software .\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA .\" .TH HARMINV 1 "June 4, 2005" "harminv" "harminv" .SH NAME harminv \- extract mode frequencies from time-series data .SH SYNOPSIS .B harminv [\fIOPTION\fR]... [\fIfreq-min\fR\-\fIfreq-max\fR]... .SH DESCRIPTION .PP ." Add any additional description here \fBharminv\fR is a program designed to solve the problem of "harmonic inversion": given a time series consisting of a sum of sinusoids ("modes"), extract their frequencies and amplitudes. It can also handle the case of exponentially-decaying sinusoids, in which case it extracts their decay rates as well. \fBharminv\fR is often able to achieve much greater accuracy and robustness than Fourier-transform methods, essentially because it assumes a specific form for the input. It uses a low-storage "filter-diagonalization method" (FDM), as described in V. A. Mandelshtam and H. S. Taylor, "Harmonic inversion of time signals," \fIJ. Chem. Phys.\fR \fB107\fR, 6756 (1997). See also erratum, \fIibid\fR \fB109\fR, 4128 (1998). .SH INPUT \fBharminv\fR reads in a sequence of whitespace-separated real or complex numbers from standard input, as well as command-line arguments indicating one or more frequency ranges to search, and outputs the modes that it extracts from the data. (It preferentially finds modes in the frequency range you specify, but may sometimes find additional modes outside of that range.) The data should correspond to equally-spaced time intervals, but there is no constraint on the number of points. Complex numbers in the input should be expressed in the format \fIRE\fR+\fIIM\fRi (no whitespace). Otherwise, whitespace is ignored. Also, comments beginning with "#" and extending to the end of the line are ignored. A typical invocation is something like .IP "" 4 harminv \-t 0.02 1\-5 < input.dat .PP which reads a sequence of samples, spaced at 0.02 time intervals (in ms, say, corresponding to 50 kHz), and searches for modes in the frequency range 1-5 kHz. (See below on units.) .SH OUTPUT \fBharminv\fR writes six comma-delimited columns to standard output, one line for each mode: frequency, decay constant, Q, amplitude, phase, and error. Each mode corresponds to a function of the form: \fIamplitude\fR * exp[\-i (2 pi \fIfrequency\fR t \- \fIphase\fR) \- \fIdecay\fR t] Here, i is sqrt(\-1), t is the time (see below for units), and the other parameters in the output columns are: .TP .B frequency The frequency of the mode. If you don't recognize that from the expression above, you should recall Euler's formula: exp(i x) = cos(x) + i sin(x). Note that for complex data, there is a distinction between positive and negative frequencies. .TP .B decay constant The exponential decay constant, indicated by .I decay in the above formula. The inverse of this is often called the "lifetime" of the mode. The "half-life" is ln(2)/\fIdecay\fR. .TP .B Q A conventional, dimensionless expression of the decay lifetime: Q = pi |\fIfrequency\fI| / \fIdecay\fR. Q, which stands for "quality factor", is the number of periods for the "energy" in the mode (the squared amplitude) to decay by exp(\-2 pi). Equivalently, if you look at the power spectrum (|Fourier transform|^2), 1/Q is the fractional width of the peak at half maximum. .TP .B amplitude The (real, positive) amplitude of the sinusoids. The amplitude (and phase) information generally seems to be less accurate than the frequency and decay constant. .TP .B phase The phase shift (in radians) of the sinusoids, as given by the formula above. .TP .B error A crude estimate of the relative error in the (complex) frequency. This is not really an error bar, however, so you should treat it more as a figure of merit (smaller is better) for each mode. .SH SPURIOUS MODES Typically, harminv will find a number of spurious solutions in addition to the desired solutions, especially if your data are noisy. Such solutions are characterized by large errors, small amplitudes, and/or small Q (large decay rates / broad linewidths). You can omit these from the output by the error/Q/amplitude screening options defined below. By default, modes with error > 0.1 and Q < 10 are automatically omitted, but it is likely that you will need to set stricter limits. .SH UNITS The frequency (and decay) values, both input and output, are specified in units of 1/time, where the units of time are determined by the sampling interval \fIdt\fR (the time between consecutive inputs). \fIdt\fR is by default 1, unless you specify it with the .B \-t .I dt option. In other words, pick some units (e.g. ms in the example above) and use them to express the time step. Then, be consistent and use the inverse of those units (e.g. kHz = 1/ms) for frequency. Note that the frequency is the usual 1/period definition; it is not the angular frequency. .SH OPTIONS .TP .B \-h Display help on the command-line options and usage. .TP .B \-V Print the version number and copyright info for \fBharminv\fR. .TP .B \-v Enable verbose output, printed to standard output as comment lines (starting with a "#" character). Also, any "#" comments in the input are echoed to the output. .TP .B \-T Specify period-ranges instead of frequency-ranges on the command line (in units of time corresponding to those specified by \fB\-t\fR). The output is still frequency and not period, however. .TP .B \-w Specify angular frequencies instead of frequencies, and output angular frequency instead of frequency. (Angular frequency is frequency multiplied by 2 pi). .TP .B \-n Flip the sign of the frequency (and phase) convention used in harminv. (The sign of the frequency is only important if you have complex-valued input data, in which case the positive and negative frequency amplitudes can differ.) .TP \fB\-t\fR \fIdt\fR Specify the sampling interval \fIdt\fR; this determines the units of time used throughout the input and output. Defaults to 1.0. .TP \fB\-d\fR \fId\fR Specify the spectral "density" \fId\fR to search for modes, where a density of 1 indicates the usual Fourier resolution. That is, the number of basis functions (which sets an upper bound on the number of modes) is given by \fId\fR times (\fIfreq-max\fR \- \fIfreq-min\fR) times \fIdt\fR times the number of samples in your dataset. A maximum of 300 is used, however, to prevent the matrices from getting too big (you can force a larger number with \fB\-f\fR, below). Note that the frequency resolution of the outputs is \fInot\fR limited by the spectral density, and can generally be much greater than the Fourier resolution. The density determines how many modes, at most, to search for, and in some sense is the density with which the bandwidth is initially "searched" for modes. The default density is 0.0, which means that the number of basis functions is determined by \-f (which defaults to 100). This often corresponds to a much larger density than the usual Fourier resolution, but the resulting singularities in the system matrices are automatically removed by harminv. .TP \fB\-f\fR \fInf\fR Specify a lower bound \fInf\fR on the number of spectral basis functions (defaults to 100), setting a lower bound on the number of modes to search for. This option is often a more convenient way to specify the number of basis functions than the \fB\-d\fR option, above, which is why it is the default. \fB\-f\fR also allows you to employ more than 300 basis functions, but careful: the computation time scales as O(N nf) + O(nf^3), where N is the number of samples, and very large matrices can also have degraded accuracy. .TP \fB\-s\fR \fIsort\fR Specify how the outputs are sorted, where \fIsort\fR is one of frequency/error/Q/decay/amplitude. (Only the first character of \fIsort\fR matters.) All sorts are in ascending order. The default is to sort by frequency. .TP \fB\-e\fR \fIerr\fR Omit any modes with error (see above) greater than \fIerr\fR times the largest error among the computed modes. Defaults to no limit. .TP \fB\-E\fR \fIerr\fR Omit any modes with error (see above) greater than \fIerr\fR. Defaults to 0.1. .TP .B \-F Omit any modes with frequencies outside the specified range. (Such modes are not necessarily spurious, however.) .TP \fB\-a\fR \fIamp\fR Omit any modes with amplitude (see above) less than \fIamp\fR times the largest amplitude among the computed modes. Defaults to no limit. .TP \fB\-A\fR \fIamp\fR Omit any modes with amplitude (see above) less than \fIamp\fR. Defaults to no limit. .TP \fB\-Q\fR \fIq\fR Omit any modes with |Q| (see above) less than \fIq\fR. Defaults to 10. .SH BUGS Send bug reports to S. G. Johnson, stevenj@alum.mit.edu. .SH AUTHORS Written by Steven G. Johnson. Copyright (c) 2005 by the Massachusetts Institute of Technology. harminv-1.4.1/doc/installation.md000066400000000000000000000071771313423445100167650ustar00rootroot00000000000000[Harminv](../README.md) is designed to run on any Unix-like system (GNU/Linux is fine), and uses a `configure` script to make it easy to install. However, you do need a couple of prerequisites: # Prerequisites However, you do need a couple of prerequisites: * [BLAS](http://www.netlib.org/blas/) Basic Linear Algebra Subroutines (matrix-multiplications, etcetera), following a standard interface, for use by LAPACK (see below). There are many optimized versions of BLAS available, e.g. a free library called [ATLAS](http://www.netlib.org/atlas/) or [OpenBLAS](http://www.openblas.net/). * [LAPACK](http://www.netlib.org/lapack/) A standard, free, linear-algebra package. Note that the default configuration script looks for LAPACK by linking with `-llapack`. This means that the library must be called `liblapack.a` and be installed in a standard directory like `/usr/local/lib` (alternatively, you can specify another directory via the `LDFLAGS` environment variable; see below). Often, you will install an optimized implementation of BLAS; an excellent choice is the free [OpenBLAS library](http://www.openblas.net/), which also includes LAPACK. # Compiling from Git Most users should download an official Harminv release (a prepackaged `.tar.gz` file). *If* you are installing from the raw `git` repository (rather than downloading a `.tar.gz` release), then you will also need * [GNU Autotools](https://en.wikipedia.org/wiki/GNU_Build_System): `autoconf`, `automake`, and `libtool`. and run ``` sh autogen.sh make ``` where `autogen.sh` is a script included with Harminv that re-generates the `configure` script and other necessary files. # Compiling Harminv Given the above, you can compile and install harminv. Harminv comes with a [GNU-style](http://www.gnu.org/software/autoconf/) `configure` script, so on Unix-like systems compilation is ideally just a matter of: ``` ./configure make ``` and then switching to root and running: ``` make install ``` By default, this installs under `/usr/local`, i.e. in `/usr/local/bin` etcetera. You can change this by passing the standard `--prefix=`*dir* option to `configure`. Other `configure` options can be found by running `./configure --help`. In order to compile, harminv requires either: - An ANSI C compiler supporting complex numbers, as defined in the ANSI C99 standard (or a reasonable approximation thereof). For example, gcc-2.95 with GNU libc is fine. - A C++ compiler supporting the complex standard template class. The `configure` script looks for a C compiler with complex numbers first, and then, if that fails, for a C++ compiler. You can force it to use C++ by passing `--with-cxx` to `configure`. If you need to, you can have further control over the `configure` script's behavior by setting enviroment variables, by passing `VARIABLE=VALUE` arguments to `configure`. This can be useful especially if you have libraries installed in nonstandard locations (e.g. in your home directory, if you are not a system administrator), to tell the compiler where to look. The most common variables to set are: - `CC`: the C compiler command - `CFLAGS`: the C compiler flags - `CXX`: the C++ compiler command - `CXXFLAGS`: the C++ compiler flags - `F77`: the Fortran 77 compiler command. **Important:** if you have more than one Fortran compiler, use the same compiler here as you used for BLAS/LAPACK. - `FFLAGS`: the Fortran 77 compiler flags - `CPPFLAGS`: `-I''dir''` flags to tell the C compiler additional places to look for header files. - `LDFLAGS`: `-L''dir''` flags to tell the linker additional places to look for libraries. - `LIBS`: additional libraries to link against. harminv-1.4.1/doc/library.md000066400000000000000000000101151313423445100157120ustar00rootroot00000000000000[Harminv](../README.md) is mostly used via the stand-alone `harminv` program, but it can also be called as a library from C or C++, as described below. ## Library Usage The usage of the library `-lharminv` is analogous to the program. In C or C++, you first `#include `, then specify the data and the frequency range by calling `harminv_data_create`, returning a `harminv_data` data structure: ```c harminv_data harminv_data_create(int n, const harminv_complex *signal, double fmin, double fmax, int nf); ``` Here, `signal` is a pointer to an array of `n` complex numbers. In C++, `harminv_complex` is `std::complex`. In C, `harminv_complex` is a `double[2]` with the real parts in `signal[i][0]` and the imaginary parts in `signal[i][1]`. (For a real signal, set the imaginary parts to zero.) `fmin` and `fmax` are the frequency range to search, and `nf` is the number of spectral basis functions (see below). Frequencies are in units corresponding to a sampling interval of 1 time unit; if your actual sampling interval is dt, then you should rescale your frequencies by multiplying them by dt. A good default for `nf` is `min(300, (fmax - fmin) * n * 1.1)`, corresponding to a spectral "density" of at most 1.1 (see also the `-d` option of the command-line tool). That is, this uses a number of initial basis functions corresponding to the Fourier resolution of `1/n`. This does *not* determine the frequency resolution of the outputs, which can be much greater than the Fourier resolution. It sets an upper bound on the number of modes to search for, and in some sense is the density with which the bandwidth is initially "searched" for modes. Spectral densities much larger than 1 are not recommended, as they lead to large and singular matrices and unstable results. Note also that the computation time goes as O(n * nf) + O(nf^3). Then, you solve for the frequencies by calling: ```c void harminv_solve(harminv_data d); ``` Then, the frequencies and other data can be extracted from `d` by the following routines. The number N of frequencies found is returned by: ```c int harminv_get_num_freqs(harminv_data d); ``` Then, for each index 0 <= k < N, the corresponding frequency and decay constant (as defined in `man harminv`) are returned by: ```c double harminv_get_freq(harminv_data d, int k); double harminv_get_decay(harminv_data d, int k); ``` Alternative, you can get the complex angular frequency (omega = 2π freq - i decay) by: ```c void harminv_get_omega(harminv_complex *omega, harminv_data d, int k); ``` You can get the "quality factor" Q (pi |freq| / decay) by: ```c double harminv_get_Q(harminv_data d, int k); ``` The complex amplitude (|amp| * exp(-I phase)) for each k is returned by: ```c void harminv_get_amplitude(harminv_complex *amplitude, harminv_data d, int k); ``` A crude estimate of the relative error in the (complex) frequency is: ```c double harminv_get_freq_error(harminv_data d, int k); ``` As described in `man harminv`, this is not really an error bar, and should be treated more as a figure of merit (smaller is better). ### Linking To link to the library, you need to not only link to `-lharminv`, but also to the math library, the BLAS and LAPACK libraries (see below), and any libraries that are required to link C with Fortran code (like LAPACK). If you have the `pkg-config` program installed (standard on most GNU/Linux systems), you can simply do: ``` pkg-config --cflags harminv pkg-config --libs harminv ``` to get the flags for compiling and linking, respectively. You may need to tell `pkg-config` where to find `harminv.pc` if `harminv` was installed under `/usr/local` (the default)...in this case, you would specify `/usr/local/lib/pkgconfig/harminv.pc` instead of `harminv` above. There is an additional wrinkle. If you configured harminv with `--with-cxx`, or if your C compiler did not support C99 complex numbers and the configure script automatically switched to C++, then you will need to link to harminv with the C++ linker, even if your program is written in C, in order to link the C++ libraries. harminv-1.4.1/harminv-int.h000066400000000000000000000044011313423445100155650ustar00rootroot00000000000000/* Copyright (C) 2017 Massachusetts Institute of Technology. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef HARMINV_INT_H #define HARMINV_INT_H 1 #include "config.h" #ifndef __cplusplus /* Require C99 complex number support; this is just too painful without it. Alternatively, use the complex STL class in C++. */ # include #endif #include "harminv.h" typedef harminv_complex cmplx; /* shortcut */ /* define extended precision (long double) cmplxl type */ #if defined(HAVE_LONG_DOUBLE) && !defined(__cplusplus) # if defined(__cplusplus) # include typedef std::complex cmplxl; /* problematic w/some C++ comp's */ # elif defined(_Complex_I) && defined(complex) && defined(I) /* C99 header was included before harminv.h */ typedef long double _Complex cmplxl; # endif #else typedef cmplx cmplxl; #endif #ifdef __cplusplus # define I cmplx(0,1) # define creal(c) real(c) # define cimag(c) imag(c) # define cabs(c) abs(c) # define carg(c) arg(c) # define cexp(c) exp(c) # define csqrt(c) sqrt(c) # define clog(c) log(c) #else # ifndef HAVE_CARG /* Cray doesn't have this for some reason */ # define carg(c) atan2(cimag(c), creal(c)) # endif #endif struct harminv_data_struct { const cmplx *c; int n, K, J, nfreqs; double fmin, fmax; cmplx *z; cmplx *U0, *U1; cmplxl *G0, *G0_M, *D0; /* cached G, G_M, and D arrays for U0 */ cmplx *B, *u; /* eigen-solutions of U1*B = u*U0*B */ cmplx *amps; /* mode amplitudes */ double *errs; /* relative "error" estimates */ }; #endif /* HARMINV_INT_H */ harminv-1.4.1/harminv-main.c000066400000000000000000000320441313423445100157160ustar00rootroot00000000000000/* Copyright (C) 2017 Massachusetts Institute of Technology. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include "harminv-int.h" #include "check.h" #include "copyright.h" #ifdef HAVE_UNISTD_H # include #endif #ifdef HAVE_GETOPT_H # include #endif /* eat whitespace, including #... comments, from the file. Returns the number of newlines read (so that a line count can be maintained). If echo_comments != 0, then echo #... comments to stdout. Commas count as whitespace, so that we can read comma-delimited text. */ static int eat_whitespace(FILE *f, int echo_comments) { int c, newlines = 0; do { do { c = getc(f); newlines += c == '\n'; } while (isspace(c) || c == ','); if (c == '#') { /* # begins comments that extend to the newline */ if (echo_comments) putc(c, stdout); do { c = getc(f); if (echo_comments) { if (c != EOF) putc(c, stdout); else /* terminate line if we hit EOF */ putc('\n', stdout); } newlines += c == '\n'; } while (c != EOF && c != '\n'); } } while (isspace (c)); ungetc(c, f); /* put back the last character read */ newlines -= c == '\n'; return newlines; } static int eat_plus(FILE *f) { int c = getc(f); if (c != EOF && c != '+') ungetc(c, f); return (c == '+' || c == '-'); } static int eat_i(FILE *f) { int c = getc(f); if (c != EOF && tolower(c) != 'i') ungetc(c, f); return (tolower(c) == 'i'); } static cmplx *read_input_data(FILE *f, int *n, int verbose) { cmplx *data = NULL; int line = 1, n_alloc = 0; *n = 0; do { double re, im; int nread; line += eat_whitespace(f, verbose); nread = fscanf(f, "%lg", &re); if (nread == 1 && eat_plus(f)) { nread = fscanf(f, "%lg", &im); if (nread == 1) nread = eat_i(f); } else im = 0.0; if (nread != EOF) { if (nread < 1) { fprintf(stderr, "harminv: invalid input on line %d.\n", line); free(data); *n = 0; return NULL; } if (*n >= n_alloc) { n_alloc = (n_alloc + 1) * 2; data = (cmplx*) realloc(data, sizeof(cmplx) * n_alloc); CHECK(data, "out of memory"); } data[*n] = re + I*im; ++*n; } } while (!feof(f)); data = (cmplx*) realloc(data, sizeof(cmplx) * *n); return data; } static const double inf = HUGE_VAL; #define DENSITY 0.0 #define NFMIN 100 #define NFMAX 300 #define ERR_THRESH 0.1 #define REL_ERR_THRESH inf #define AMP_THRESH 0.0 #define REL_AMP_THRESH -1.0 #define Q_THRESH 10.0 static void usage(FILE *f) { fprintf(f, "Usage: harminv [options] -...\n" "Options: \n" " -h : this help message\n" " -V : print version number and copyright\n" " -v : verbose output\n" " -T : specify periods instead of frequencies\n" " -w : specify/output angular frequency, not frequency\n" " -n : flip the sign of the frequency convention\n" " -t
: specify sampling interval dt [default: 1]\n" " -d : specify spectral density [default: %g]\n" " -f : use at least basis functions [default: %d]\n" " -s : sort by = freq/err/decay/amp [default: freq]\n" " -F : discard frequencies outside of specified range\n" " -a : discard amplitudes < max * [default: %e]\n" " -A : discard amplitudes < [default: %g]\n" " -e : discard relative errors > min * [default: %e]\n" " -E : discard relative errors > [default: %e]\n" " -Q : discard Q > [default: %g]\n", DENSITY, NFMIN, AMP_THRESH, REL_AMP_THRESH, ERR_THRESH, REL_ERR_THRESH, Q_THRESH); } #define TWOPI 6.2831853071795864769252867665590057683943388 harminv_data hd; enum { SORT_FREQUENCY, SORT_DECAY, SORT_ERROR, SORT_AMPLITUDE, SORT_Q } sortby = SORT_FREQUENCY; static int cmp(double a, double b) { return a > b ? 1 : (a < b ? -1 : 0); } static int compar(const void *a, const void *b) { const int *ia = (const int *) a; const int *ib = (const int *) b; cmplx aa, ab; switch (sortby) { case SORT_FREQUENCY: return cmp(harminv_get_freq(hd,*ia), harminv_get_freq(hd,*ib)); case SORT_DECAY: return cmp(harminv_get_decay(hd,*ia), harminv_get_decay(hd,*ib)); case SORT_ERROR: return cmp(harminv_get_freq_error(hd, *ia), harminv_get_freq_error(hd, *ib)); case SORT_AMPLITUDE: harminv_get_amplitude(&aa, hd, *ia); harminv_get_amplitude(&ab, hd, *ia); return cmp(cabs(aa), cabs(ab)); case SORT_Q: return cmp(harminv_get_freq(hd,*ia) / harminv_get_decay(hd,*ia), harminv_get_freq(hd,*ib) / harminv_get_decay(hd,*ib)); } return 0; } typedef struct { int verbose; double fmin, fmax; int only_f_inrange; double err_thresh, rel_err_thresh, amp_thresh, rel_amp_thresh, Q_thresh; double min_err, max_amp; int num_ok; } mode_ok_data; static int mode_ok(harminv_data d, int k, void *ok_d_) { mode_ok_data *ok_d = (mode_ok_data *) ok_d_; double errk, ampk, f; int ok; cmplx aa; if (k == -1) { /* initialize */ int i; ok_d->num_ok = 0; if (!harminv_get_num_freqs(d)) return 0; ok_d->min_err = harminv_get_freq_error(d, 0);; harminv_get_amplitude(&aa, d, 0); ok_d->max_amp = cabs(aa); for (i = 1; i < harminv_get_num_freqs(d); ++i) { double err, amp; if ((err = harminv_get_freq_error(d, i)) < ok_d->min_err) ok_d->min_err = err; harminv_get_amplitude(&aa, d, i); if ((amp = cabs(aa)) > ok_d->max_amp) ok_d->max_amp = amp; } return 0; } else if (k == -2) { /* finish */ if (ok_d->verbose && harminv_get_num_freqs(d)) printf("# harminv: %d/%d modes are ok: " "errs <= %e and %e * %e\n, " "amps >= %g, %e * %g, " "|Q| >= %g\n", ok_d->num_ok, harminv_get_num_freqs(d), ok_d->err_thresh, ok_d->rel_err_thresh, ok_d->min_err, ok_d->amp_thresh, ok_d->rel_amp_thresh, ok_d->max_amp, ok_d->Q_thresh); return 0; } f = fabs(harminv_get_freq(d, k)); errk = harminv_get_freq_error(d, k); harminv_get_amplitude(&aa, d, k); ampk = cabs(aa); ok = ((!ok_d->only_f_inrange || (f >= ok_d->fmin && f <= ok_d->fmax)) && errk <= ok_d->err_thresh && errk <= ok_d->min_err * ok_d->rel_err_thresh && ampk >= ok_d->amp_thresh && ampk >= ok_d->rel_amp_thresh * ok_d->max_amp && fabs(harminv_get_Q(d,k)) >= ok_d->Q_thresh); ok_d->num_ok += ok; return ok; } #define SOLVE_ONCE_ONLY 0 /* 1 to use harminv_solve_once */ #define SOLVE_OK_ONLY 0 /* 1 for experimental solver */ int main(int argc, char **argv) { int verbose = 0; int c; extern char *optarg; extern int optind; int specify_periods = 0; int specify_omega = 0; int negate_omega = 0; double dt = 1.0; mode_ok_data ok_d; int n, nf, nfmin = NFMIN; double density = DENSITY; int iarg; cmplx *data; ok_d.only_f_inrange = 0; ok_d.err_thresh = ERR_THRESH; ok_d.rel_err_thresh = REL_ERR_THRESH; ok_d.amp_thresh = AMP_THRESH; ok_d.rel_amp_thresh = REL_AMP_THRESH; ok_d.Q_thresh = Q_THRESH; while ((c = getopt(argc, argv, "hvVTFwnt:d:f:s:e:E:a:A:Q:")) != -1) switch (c) { case 'h': usage(stdout); return EXIT_SUCCESS; case 'V': printf("harminv " PACKAGE_VERSION " by Steven G. Johnson\n" COPYRIGHT); return EXIT_SUCCESS; case 'v': verbose = 1; break; case 'T': specify_periods = 1; break; case 'w': specify_omega = 1; break; case 'n': negate_omega = 1; break; case 'F': ok_d.only_f_inrange = 1; break; case 'a': ok_d.rel_amp_thresh = atof(optarg); break; case 'A': ok_d.amp_thresh = atof(optarg); break; case 'E': ok_d.err_thresh = atof(optarg); break; case 'e': ok_d.rel_err_thresh = atof(optarg); break; case 'Q': ok_d.Q_thresh = atof(optarg); break; case 't': dt = atof(optarg); break; case 'f': nfmin = atoi(optarg); break; case 'd': density = atof(optarg); if (density < 0) { fprintf(stderr, "harminv: -d argument must be >= 0\n"); return EXIT_FAILURE; } break; case 's': switch (tolower(optarg[0])) { case 'f': sortby = SORT_FREQUENCY; break; case 'd': sortby = SORT_DECAY; break; case 'e': sortby = SORT_ERROR; break; case 'a': sortby = SORT_AMPLITUDE; break; case 'q': sortby = SORT_Q; break; default: fprintf(stderr, "harminv: invalid sort type -s %c\n", tolower(optarg[0])); usage(stderr); return EXIT_FAILURE; } break; default: fprintf(stderr, "harminv: invalid argument -%c\n", c); usage(stderr); return EXIT_FAILURE; } if (optind == argc) { /* no parameters left */ fprintf(stderr, "harminv: missing required frequency range(s)\n"); usage(stderr); return EXIT_FAILURE; } /* harminv requires nf > 1 */ if (nfmin < 2) nfmin = 2; data = read_input_data(stdin, &n, verbose); if (n < 1) { fprintf(stderr, "harminv: no data read\n"); return EXIT_FAILURE; } if (verbose) printf("# harminv: %d inputs, dt = %g\n", n, dt); printf("frequency, decay constant, Q, amplitude, phase, error\n"); ok_d.verbose = verbose; for (iarg = optind; iarg < argc; ++iarg) { double fmin, fmax; int i; int *isort = NULL; if (sscanf(argv[iarg], "%lf-%lf", &fmin, &fmax) != 2) { fprintf(stderr, "harminv: invalid argument \"%s\"\n", argv[iarg]); return EXIT_FAILURE; } if (specify_periods) { if (fmin == 0 || fmax == 0) { fprintf(stderr, "harminv: invalid argument \"%s\"" ": 0 not a valid period\n", argv[iarg]); return EXIT_FAILURE; } fmin = 1/fmin; fmax = 1/fmax; } if (specify_omega) { fmin /= TWOPI; fmax /= TWOPI; } if (negate_omega) dt *= -1; if ((fmin > fmax && dt > 0) || (fmin < fmax && dt < 0)) { double dummy = fmin; fmin = fmax; fmax = dummy; } if (verbose) printf("# searching frequency range %g - %g\n", fmin, fmax); ok_d.fmin = fabs(fmin*dt); ok_d.fmax = fabs(fmax*dt); if (ok_d.fmin > ok_d.fmax) { double dummy = ok_d.fmin; ok_d.fmin = ok_d.fmax; ok_d.fmax = dummy; } nf = (fmax - fmin) * dt * n * density; if (nf > NFMAX) nf = NFMAX; if (nf < nfmin) nf = nfmin; if (verbose) printf("# using %d spectral basis functions, density %g\n", nf, nf / ((fmax - fmin) * dt * n)); hd = harminv_data_create(n, data, fmin*dt, fmax*dt, nf); #if SOLVE_OK_ONLY harminv_solve_ok_modes(hd, mode_ok, &ok_d); #elif SOLVE_ONCE_ONLY harminv_solve_once(hd); #else harminv_solve(hd); #endif mode_ok(hd, -1, &ok_d); /* initialize ok_d */ CHK_MALLOC(isort, int, harminv_get_num_freqs(hd)); for (i = 0; i < harminv_get_num_freqs(hd); ++i) isort[i] = i; qsort(isort, harminv_get_num_freqs(hd), sizeof(int), compar); for (i = 0; i < harminv_get_num_freqs(hd); ++i) { double freq, decay, err; cmplx amp; int j = isort[i]; #if SOLVE_OK_ONLY CHECK(mode_ok(hd, j, &ok_d), "bug: invalid mode"); #else if (!mode_ok(hd, j, &ok_d)) continue; #endif freq = harminv_get_freq(hd, j) / dt; decay = harminv_get_decay(hd, j) / fabs(dt); harminv_get_amplitude(&, hd, j); err = harminv_get_freq_error(hd, j); printf("%g, %e, %g, %g, %g, %e\n", freq * (specify_omega ? TWOPI : 1.0), decay, harminv_get_Q(hd, j), cabs(amp), carg(amp) * (dt < 0 ? -1 : 1), err); } #if !SOLVE_OK_ONLY mode_ok(hd, -2, &ok_d); #endif harminv_data_destroy(hd); } free(data); return EXIT_SUCCESS; } #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif harminv-1.4.1/harminv.c000066400000000000000000000650301313423445100147750ustar00rootroot00000000000000/* Copyright (C) 2017 Massachusetts Institute of Technology. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include "harminv-int.h" #include "check.h" /**************************************************************************/ /* Workaround for weird problem observed on Debian/stable with glibc 2.2.5 and gcc 2.95.4, 3.3.1, and 3.4.0: the stand-alone code works fine, but crashes in clog once I link from another (C++) program. I can't reproduce this on Debian/testing with glibc 2.3.2, and it passes valgrind on that machine (valgrind crashes on the first machine), so I'm guessing this is some weird glibc bug...using my "own" clog function seems to work around the problem. */ #undef clog #define clog my_clog static cmplx my_clog(cmplx z) { return (log(cabs(z)) + I * carg(z)); } /**************************************************************************/ /* The harminv routines are designed to perform "harmonic inversion." That is, given a signal (a set of samples as a function of time), they decompose the signal into a finite number of (possibly exponentially-decaying) sinusoids. Essentially, because we assume that the signal has this form, we can determine the frequencies, decay constants, and amplitudes of the sinusoids much more accurately than we could via taking the FFT and looking at the peaks, for the same number of samples. We use a low-storage "filter diagonalization method" (FDM) for finding the sinusoids near a given frequency interval, described in: V. A. Mandelshtam and H. S. Taylor, "Harmonic inversion of time signals," J. Chem. Phys., vol. 107, no. 17, p. 6756-6769 (Nov. 1 1997). See also erratum, ibid, vol. 109, no. 10, p. 4128 (Sep. 8 1998). with a refinement (for generate_U below) described in: Rongqing Chen and Hua Guo, "Efficient calculation of matrix elements in low storate filter diagonalization," J. Chem. Phys., vol. 111, no. 2, p. 464-471(Jul. 8 1999). The seminal work (though less practical than the M&T algorithm) on this class of methods was done by: Michael R. Wall and Daniel Neuhauser, "Extraction, through filter-diagonalization, of general quantum eigenvalues or classical normal mode frequencies from a small number of residues or a short-time segment of a signal. I. Theory and application to a quantum-dynamics model," J. Chem. Phys., 102, no. 20, p. 8011-8022 (May 22 1995). A more recent reference is: V. A. Mandelshtam, "On harmonic inversion of cross-correlation functions by the filter diagonalization method," J. Theoretical and Computational Chemistry 2 (4), 497-505 (2003). */ /**************************************************************************/ #define TWOPI 6.2831853071795864769252867665590057683943388 /**************************************************************************/ /* Crays have float == double, and don't have the Z* functions in LAPACK/BLAS...we have to use C*. Sigh. */ #if defined(CRAY) || defined(_UNICOS) || defined(_CRAYMPP) # define BLAS_FUNC(x,X) F77_FUNC(c##x,C##X) #else /* ! CRAY */ # define BLAS_FUNC(x,X) F77_FUNC(z##x,Z##X) #endif /* ! CRAY */ #define ZGEEV BLAS_FUNC(geev,GEEV) #define ZGGEVX BLAS_FUNC(ggevx,GGEVX) #define ZGGEV BLAS_FUNC(ggev,GGEV) #define ZGEMM BLAS_FUNC(gemm,GEMM) #define ZCOPY BLAS_FUNC(copy,COPY) #define ZAXPY BLAS_FUNC(axpy,AXPY) #define ZGEMV BLAS_FUNC(gemv,GEMV) #define ZSCAL BLAS_FUNC(scal,SCAL) #ifdef __cplusplus extern "C" { #endif /* We have to pass strings in special ways on Crays, even for passing a single character as with LAPACK. Sigh. */ #if defined(CRAY) || defined(_UNICOS) || defined(_CRAYMPP) # include # define FCHARP _fcd # define F_(s) _cptofcd(s,1) /* second argument is the string length */ #else /* ! CRAY */ # define FCHARP const char* # define F_(s) (s) #endif extern void ZGEEV(FCHARP,FCHARP, int*, cmplx*,int*, cmplx*, cmplx*,int*, cmplx*,int*, cmplx*,int*, double*, int*); extern void ZGGEVX(FCHARP balanc, FCHARP jobvl, FCHARP jobvr, FCHARP sense, int* n, cmplx* a, int* lda, cmplx* b, int* ldb, cmplx* alpha, cmplx* beta, cmplx* vl, int*, cmplx* vr, int*, int *ilo, int *ihi, double *lscale, double *rscale, double *abnrm, double *bbnrm, double *rconde, double *rcondv, cmplx *wrk, int *lwork, double *rwork, int *iwork, int *bwork, int *info); extern void ZGGEV(FCHARP jobvl, FCHARP jobvr, int* n, cmplx* a, int* lda, cmplx* b, int* ldb, cmplx* alpha, cmplx* beta, cmplx* vl, int*, cmplx* vr, int*, cmplx *wrk, int *lwork, double *rwork, int *info); extern void ZGEMM(FCHARP,FCHARP, int*,int*,int*, cmplx*, cmplx*,int*, cmplx*,int*, cmplx*, cmplx*,int*); extern void ZCOPY(int*, const cmplx*,int*, cmplx*,int*); extern void ZAXPY(int*, cmplx*, cmplx*,int*, cmplx*,int*); extern void ZGEMV(FCHARP, int*,int*, cmplx*, cmplx*,int*, cmplx*,int*, cmplx*, cmplx*,int*); extern void ZSCAL(int*, cmplx*, cmplx*,int*); extern void HARMINV_ZDOTU(cmplx *, int *, cmplx *, int *, cmplx *, int *); #ifdef __cplusplus } /* extern "C" */ #endif /**************************************************************************/ /* compute c^n, where n is an integer: */ static cmplx cpow_i(cmplx c, int n) { if (n < 0) return (1.0 / cpow_i(c, -n)); else { cmplx result = 1; while (n > 1) { if (n % 2 == 1) result *= c; c *= c; n /= 2; } if (n > 0) result *= c; return result; } } /* Computing powers by cumulative multiplication, below, is faster than calling cpow_i repeatedly, but accumulates O(n) floating-point error. As a compromise, we call cpow_i every NPOW iterations, which accumulates only O(NPOW) error. */ #define NPOW 8 /* FIXME: instead of this, we should really do the first-order expansion of the U matrix in |z - z2|, below. */ #define SMALL (1e-12) #define C_CLOSE(c1,c2) (cabs((c1) - (c2)) < SMALL) /**************************************************************************/ /* Initialize the JxJ2 matrix U = U_p(z,z2), as described in M&T. Also, if U1 != NULL, then set U1 = U_{p+1}(z,z2). If z == z2, it must be the case that no two elements of z are the same and that J2 == J1; in this case the matrix U will be symmetric. Note that c must be an array whose size n, is at least 2*K+p elements. */ static void generate_U(cmplx *U, cmplx *U1, int p, const cmplx *c, int n, int K, int J, int J2, const cmplx *z, const cmplx *z2, cmplxl **G0, cmplxl **G0_M, cmplxl **D0) { int M = K - 1; int i, j, m; /* temp. arrays for 1/z, z^(-m), z^(-M), the G function of C&G, and the diagonal elements D[i] = U(z[i],z[i]): */ cmplx *z_inv, *z_m, *z_M; cmplxl *G, *G_M, *D; cmplx *z2_inv, *z2_m, *z2_M; cmplxl *G2, *G2_M; CHECK(U && c && z && z2, "invalid arguments to generate_U"); CHECK(n >= 2*K + p, "too few coefficients in generate_U"); CHECK(z != z2 || J == J2, "invalid sizes passed to generate_U"); CHECK((!G0 && !G0_M && !D0) || (G0 && G0_M && D0), "G0/G0_M/D0 must be all-non-NULL/all-NULL"); CHECK(!G0 || (!*G0 && !*G0_M && !*D0) || (*G0 && *G0_M && *D0), "*G0/*G0_M/*D0 must be all-non-NULL/all-NULL"); /* Now, compute U according to eqs. 25-27 of Chen & Guo, but using the notation of eq. 25 of M&T. This operation has complexity O(N*J + J*J). At the same time, we can compute the matrix U1 as well by eqs. 29-30 of C&G, saving an extra pass over the input array. */ /* first, set up some temporary arrays for caching things like z^m and 1/z, so we don't need to recompute them all the time. */ CHK_MALLOC(z_inv, cmplx, J); CHK_MALLOC(z_m, cmplx, J); CHK_MALLOC(z_M, cmplx, J); if (G0 && *G0) { G = *G0; G_M = *G0_M; D = *D0; } else { CHK_MALLOC(G, cmplxl, J); CHK_MALLOC(G_M, cmplxl, J); CHK_MALLOC(D, cmplxl, J); for (i = 0; i < J; ++i) { D[i] = G[i] = G_M[i] = 0; } } for (i = 0; i < J; ++i) { z_inv[i] = 1.0 / z[i]; z_m[i] = 1; z_M[i] = cpow_i(z[i], -M); } if (z2 != z) { CHK_MALLOC(z2_inv, cmplx, J2); CHK_MALLOC(z2_m, cmplx, J2); CHK_MALLOC(z2_M, cmplx, J2); CHK_MALLOC(G2, cmplxl, J2); CHK_MALLOC(G2_M, cmplxl, J2); for (i = 0; i < J2; ++i) { z2_inv[i] = 1.0 / z2[i]; z2_m[i] = 1; z2_M[i] = cpow_i(z2[i], -M); G2[i] = G2_M[i] = 0; } } else { z2_inv = z2_m = z2_M = NULL; G2 = G2_M = NULL; } /* First, loop over the signal array (c), building up the spectral functions G and G_M (corresponding to G_p and G_{p+M+1} in C&G), as well as the diagonal matrix entries: */ for (m = 0; m <= M; ++m) { cmplx c1 = c[m + p], c2 = c[m + p + M + 1]; double d = m + 1; /* M - fabs(M - m) + 1 */ double d2 = M - m; /* M - fabs(M - (m + M + 1)) + 1 */ if (!G0 || !*G0) { for (i = 0; i < J; ++i) { cmplx x1 = z_m[i] * c1; cmplx x2 = z_m[i] * c2; G[i] += x1; G_M[i] += x2; D[i] += x1 * d + x2 * d2 * z_M[i] * z_inv[i]; if (m % NPOW == NPOW - 1) z_m[i] = cpow_i(z_inv[i], m + 1); else z_m[i] *= z_inv[i]; } } if (z2 != z) for (i = 0; i < J2; ++i) { G2[i] += z2_m[i] * c1; G2_M[i] += z2_m[i] * c2; if (m % NPOW == NPOW - 1) z2_m[i] = cpow_i(z2_inv[i], m + 1); else z2_m[i] *= z2_inv[i]; } } /* Compute U (or just the upper part if U is symmetric), via the formula from C&G; compute U1 at the same time as in C&G. */ if (z2 != z) { for (i = 0; i < J; ++i) for (j = 0; j < J2; ++j) { if (C_CLOSE(z[i], z2[j])) U[i*J2 + j] = D[i]; else U[i*J2 + j] = (z[i] * G2[j] - z2[j] * G[i] + z2_M[j] * G_M[i] - z_M[i] * G2_M[j]) / (z[i] - z2[j]); } if (U1) for (i = 0; i < J; ++i) for (j = 0; j < J2; ++j) { if (C_CLOSE(z[i], z2[j])) U1[i*J2 + j] = z[i] * (D[i] - G[i]) + z_M[i] * G_M[i]; else U1[i*J2 + j] = (z[i] * z2[j] * (G2[j] - G[i]) + z2_M[j] * z[i] * G_M[i] - z_M[i] * z2[j] * G2_M[j]) / (z[i] - z2[j]); } } else { /* z == z2 */ for (i = 0; i < J; ++i) { U[i*J + i] = D[i]; for (j = i + 1; j < J; ++j) { U[i*J + j] = (z[i] * G[j] - z[j] * G[i] + z_M[j] * G_M[i] - z_M[i] * G_M[j]) / (z[i] - z[j]); } } if (U1) for (i = 0; i < J; ++i) { U1[i*J + i] = z[i] * (D[i] - G[i]) + z_M[i] * G_M[i]; for (j = i + 1; j < J; ++j) { U1[i*J + j] = (z[i] * z[j] * (G[j] - G[i]) + z_M[j] * z[i] * G_M[i] - z_M[i] * z[j] * G_M[j]) / (z[i] - z[j]); } } } /* finally, copy the upper to the lower triangle if U is symmetric: */ if (z == z2) { for (i = 0; i < J; ++i) for (j = i + 1; j < J; ++j) U[j*J + i] = U[i*J + j]; if (U1) for (i = 0; i < J; ++i) for (j = i + 1; j < J; ++j) U1[j*J + i] = U1[i*J + j]; } free(G2_M); free(G2); free(z2_M); free(z2_m); free(z2_inv); if (G0 && !*G0) { *G0 = G; *G0_M = G_M; *D0 = D; } else if (!G0) { free(D); free(G_M); free(G); } free(z_M); free(z_m); free(z_inv); } /**************************************************************************/ static void init_z(harminv_data d, int J, cmplx *z) { d->J = J; d->z = z; CHK_MALLOC(d->U0, cmplx, J*J); CHK_MALLOC(d->U1, cmplx, J*J); generate_U(d->U0, d->U1, 0, d->c, d->n, d->K, d->J, d->J, d->z, d->z, &d->G0, &d->G0_M, &d->D0); } /**************************************************************************/ harminv_data harminv_data_create(int n, const cmplx *signal, double fmin, double fmax, int nf) { int i; harminv_data d; CHECK(nf > 1, "# frequencies must > 1"); CHECK(n > 0, "invalid number of data points"); CHECK(signal, "invalid NULL signal array"); CHECK(fmin < fmax, "should have fmin < fmax"); CHK_MALLOC(d, struct harminv_data_struct, 1); d->c = signal; d->n = n; d->K = n/2 - 1; d->fmin = fmin; d->fmax = fmax; d->nfreqs = -1; /* we haven't computed eigen-solutions yet */ d->B = d->u = d->amps = d->U0 = d->U1 = (cmplx *) NULL; d->G0 = d->G0_M = d->D0 = (cmplxl *) NULL; d->errs = (double *) NULL; CHK_MALLOC(d->z, cmplx, nf); for (i = 0; i < nf; ++i) d->z[i] = cexp(-I * TWOPI * (fmin + i * ((fmax - fmin) / (nf - 1)))); init_z(d, nf, d->z); return d; } /**************************************************************************/ void harminv_data_destroy(harminv_data d) { if (d) { free(d->u); free(d->B); free(d->U1); free(d->U0); free(d->G0); free(d->G0_M); free(d->D0); free(d->z); free(d->amps); free(d->errs); free(d); } } /**************************************************************************/ /* Compute the symmetric dot product of x and y, both vectors of length n. If they are column-vectors, this is: transpose(x) * y. (We could use the BLAS ZDOTU function for this, but calling Fortran functions, as opposed to subroutines, from C is problematic.) */ static cmplx symmetric_dot(int n, cmplx *x, cmplx *y) { cmplxl dot = 0; int i; for (i = 0; i < n; ++i) dot += x[i] * y[i]; return dot; } /**************************************************************************/ /**************************************************************************/ /* Solve for the eigenvalues (v) and eigenvectors (rows of V) of the complex-symmetric n x n matrix A. The eigenvectors are normalized to 1 according to the symmetric dot product (i.e. no complex conjugation). */ static void solve_eigenvects(int n, const cmplx *A0, cmplx *V, cmplx *v) { int lwork, info; cmplx *work; double *rwork; cmplx *A; /* according to the ZGEEV documentation, the matrix A is overwritten, and we don't want to overwrite our input A0 */ CHK_MALLOC(A, cmplx, n*n); { int n2 = n*n, one = 1; ZCOPY(&n2, A0, &one, A, &one); } /* Unfortunately, LAPACK doesn't have a special solver for the complex-symmetric eigenproblem. For now, just use the general non-symmetric solver, and realize that the left eigenvectors are the complex-conjugates of the right eigenvectors. */ #if 0 /* LAPACK seems to be buggy here, returning ridiculous sizes at times */ cmplx wsize; lwork = -1; /* compute optimal workspace size */ ZGEEV(F_("N"), F_("V"), &n, A, &n, v, V, &n, V, &n, &wsize, &lwork, rwork, &info); if (info == 0) lwork = floor(creal(wsize) + 0.5); else lwork = 2*n; CHECK(lwork > 0, "zgeev is not returning a positive work size!"); #else lwork = 4*n; /* minimum is 2*n; we'll be generous. */ #endif CHK_MALLOC(rwork, double, 2*n); CHK_MALLOC(work, cmplx, lwork); ZGEEV(F_("N"), F_("V"), &n, A, &n, v, V, &n, V, &n, work, &lwork, rwork, &info); free(work); free(rwork); free(A); CHECK(info >= 0, "invalid argument to ZGEEV"); CHECK(info <= 0, "failed convergence in ZGEEV"); /* Finally, we need to fix the normalization of the eigenvectors, since LAPACK normalizes them under the ordinary dot product, i.e. with complex conjugation. (In principle, do we also need to re-orthogonalize, for the case of degenerate eigenvalues?) */ { int i, one = 1; for (i = 0; i < n; ++i) { cmplx norm = 1.0 / csqrt(symmetric_dot(n, V+i*n, V+i*n)); ZSCAL(&n, &norm, V+i*n, &one); } } } /**************************************************************************/ /* how conservative do we need to be for this? */ #define SINGULAR_THRESHOLD 1e-5 /* Solve the eigenvalue problem U1 b = u U0 b, where b is the eigenvector and u is the eigenvalue. u = exp(iwt - at) then contains both the frequency and the decay constant. */ void harminv_solve_once(harminv_data d) { int J, i, one=1; cmplx zone = 1.0, zzero = 0.0; cmplx *V0, *v0, *H1, *V1; /* for eigensolutions of U0 and U1 */ double max_v0 = 0.0; J = d->J; CHK_MALLOC(V0, cmplx, J*J); CHK_MALLOC(v0, cmplx, J); /* Unfortunately, U0 is very likely to be singular, so we must first extract the non-singular eigenvectors and only work in that sub-space. See the Wall & Neuhauser paper. */ solve_eigenvects(J, d->U0, V0, v0); /* find maximum |eigenvalue| */ for (i = 0; i < J; ++i) { double v = cabs(v0[i]); if (v > max_v0) max_v0 = v; } /* we must remove the singular components of U0, those that are less than some threshold times the maximum eigenvalue. Also, we need to scale the eigenvectors by 1/sqrt(eigenval). */ d->nfreqs = J; for (i = 0; i < J; ++i) { if (cabs(v0[i]) < SINGULAR_THRESHOLD * max_v0) { v0[i] = 0; /* tag as a "hole" */ d->nfreqs -= 1; } else { /* not singular */ cmplx s; int j; /* move the eigenvector to the first "hole" left by deleting singular eigenvalues: */ for (j = 0; j < i && v0[j] != 0.0; ++j) ; if (j < i) { ZCOPY(&J, V0 + i*J, &one, V0 + j*J, &one); v0[j] = v0[i]; v0[i] = 0; /* tag as a "hole" */ } s = 1.0 / csqrt(v0[j]); ZSCAL(&J, &s, V0 + j*J, &one); } } CHK_MALLOC(d->B, cmplx, d->nfreqs * J); CHK_MALLOC(d->u, cmplx, d->nfreqs); CHK_MALLOC(V1, cmplx, d->nfreqs * d->nfreqs); CHK_MALLOC(H1, cmplx, d->nfreqs * d->nfreqs); /* compute H1 = V0 * U1 * V0': */ /* B = V0 * U1: */ ZGEMM(F_("N"), F_("N"), &J, &d->nfreqs, &J, &zone, d->U1, &J, V0, &J, &zzero, d->B, &J); /* H1 = B * transpose(V0) */ ZGEMM(F_("T"), F_("N"), &d->nfreqs, &d->nfreqs, &J, &zone, V0, &J, d->B, &J, &zzero, H1, &d->nfreqs); /* Finally, we can find the eigenvalues and eigenvectors: */ solve_eigenvects(d->nfreqs, H1, V1, d->u); /* B = V1 * V0: */ ZGEMM(F_("N"), F_("N"), &J, &d->nfreqs, &d->nfreqs, &zone, V0, &J, V1, &d->nfreqs, &zzero, d->B, &J); free(H1); free(V1); free(v0); free(V0); } /**************************************************************************/ /* After solving once, solve again using the solutions from last time as the input to the spectra estimator this time. Optionally, if mode_ok is not NULL, we can only use the solutions k from last time that pass ok(d, k, ok_d). Currently, this is not recommended as it seems to make things worse. */ void harminv_solve_again(harminv_data d, harminv_mode_ok_func ok, void *ok_d) { int i, j; char *mode_ok = 0; CHECK(d->nfreqs >= 0, "haven't computed eigensolutions yet"); if (!d->nfreqs) return; /* no eigensolutions to work with */ if (ok) { CHK_MALLOC(mode_ok, char, d->nfreqs); ok(d, -1, ok_d); /* initialize */ for (i = 0; i < d->nfreqs; ++i) mode_ok[i] = ok(d, i, ok_d); } free(d->B); free(d->U1); free(d->U0); free(d->G0); free(d->G0_M); free(d->D0); free(d->z); free(d->amps); free(d->errs); d->B = d->U1 = d->U0 = d->z = d->amps = (cmplx *) NULL; d->G0 = d->G0_M = d->D0 = (cmplxl *) NULL; d->errs = (double *) NULL; /* Spectral grid needs to be on the unit circle or system is unstable: */ for (i = j = 0; i < d->nfreqs; ++i) if (!ok || mode_ok[i]) d->u[j++] = d->u[i] / cabs(d->u[i]); d->nfreqs = j; if (ok) { ok(d, -2, ok_d); /* finish */ free(mode_ok); } d->u = (cmplx *) realloc(d->u, sizeof(cmplx) * d->nfreqs); if (!d->nfreqs) return; /* no eigensolutions to work with */ init_z(d, d->nfreqs, d->u); d->nfreqs = 0; d->B = d->u = NULL; harminv_solve_once(d); } /**************************************************************************/ /* Keep re-solving as long as spurious solutions are eliminated. Currently, it is recommended that you use harminv_solve (i.e. pass ok = 0); see harminv_solve_again. */ void harminv_solve_ok_modes(harminv_data d, harminv_mode_ok_func ok,void *ok_d) { harminv_solve_once(d); /* This is not in the papers, but seems to be a good idea: plug the u's back in as z's for another pass, and repeat as long as the number of eigenvalues decreases. Effectively, this gives us more basis functions where the modes are. */ { int prev_nf, cur_nf, nf_ok; cur_nf = harminv_get_num_freqs(d); do { prev_nf = cur_nf; harminv_solve_again(d, ok, ok_d); cur_nf = harminv_get_num_freqs(d); if (ok) { ok(d, -1, ok_d); /* initialize */ for (nf_ok = 0; nf_ok < cur_nf && ok(d, nf_ok, ok_d); ++nf_ok) ; ok(d, -2, ok_d); /* finish */ } else nf_ok = cur_nf; } while (cur_nf < prev_nf || nf_ok < cur_nf); /* FIXME: solve one more time for good measure? */ } } /**************************************************************************/ void harminv_solve(harminv_data d) { harminv_solve_ok_modes(d, NULL, NULL); } /**************************************************************************/ #define NORMSQR(c) (creal(c) * creal(c) + cimag(c) * cimag(c)) /* Returns an array (of size harminv_get_num_freqs(d)) of estimates for the |error| in the solution frequencies. Solutions with errors much larger than the smallest error are likely to be spurious. */ double *harminv_compute_frequency_errors(harminv_data d) { int i, J2, one = 1; cmplx *U2, *U2b; double *freq_err; CHECK(d->nfreqs >= 0, "haven't computed eigensolutions yet"); if (!d->nfreqs) return NULL; CHK_MALLOC(freq_err, double, d->nfreqs); J2 = d->J*d->J; CHK_MALLOC(U2, cmplx, J2); generate_U(U2, NULL, 2, d->c, d->n, d->K, d->J, d->J, d->z, d->z, NULL, NULL, NULL); CHK_MALLOC(U2b, cmplx, d->J); /* For each eigenstate, compute an estimate of the error, roughly as suggested in W&N, eq. (2.19). */ for (i = 0; i < d->nfreqs; ++i) { cmplx zone = 1.0, zzero = 0.0; /* compute U2b = U2 * B[i] */ ZGEMV(F_("T"), &d->J, &d->J, &zone, U2, &d->J, d->B + i * d->J, &one, &zzero, U2b, &one); /* ideally, B[i] should satisfy U2 B[i] = u^2 U0 B[i]. since B U0 B = 1, then we can get a second estimate for u by sqrt(B[i] U2 B[i]), and from this we compute the relative error in the (complex) frequency. */ freq_err[i] = cabs(clog(csqrt(symmetric_dot(d->J, d->B + i * d->J, U2b)) / d->u[i])) / cabs(clog(d->u[i])); } free(U2b); free(U2); return freq_err; } /**************************************************************************/ #define UNITY_THRESH 1e-4 /* FIXME? */ /* true if UNITY_THRESH < |u|^n < 1/UNITY_THRESH. */ static int u_near_unity(cmplx u, int n) { double nlgabsu = n * log(cabs(u)); return (log(UNITY_THRESH) < nlgabsu && nlgabsu < -log(UNITY_THRESH)); } /* Return an array (of size harminv_get_num_freqs(d)) of complex amplitudes of each sinusoid in the solution. */ cmplx *harminv_compute_amplitudes(harminv_data d) { int k, j; cmplx *u; cmplx *Uu; cmplx *a; /* the amplitudes of the eigenfrequencies */ int ku, nu; CHECK(d->nfreqs >= 0, "haven't computed eigensolutions yet"); if (!d->nfreqs) return NULL; CHK_MALLOC(a, cmplx, d->nfreqs); CHK_MALLOC(u, cmplx, d->nfreqs); for (k = ku = 0; k < d->nfreqs; ++k) if (u_near_unity(d->u[k], d->n)) u[ku++] = d->u[k]; nu = ku; CHK_MALLOC(Uu, cmplx, d->J * nu); generate_U(Uu, NULL, 0, d->c, d->n, d->K, d->J, nu, d->z, u, &d->G0, &d->G0_M, &d->D0); /* compute the amplitudes via eq. 27 of M&T, except when |u| is too small..in that case, the computation of Uu is unstable, and we use eq. 26 instead (which doesn't use half of the data, but doesn't blow up either): */ for (k = ku = 0; k < d->nfreqs; ++k) { cmplxl asum = 0; if (u_near_unity(d->u[k], d->n)) { /* eq. 27 */ for (j = 0; j < d->J; ++j) asum += d->B[k * d->J + j] * Uu[j * nu + ku]; asum /= d->K; ku++; } else { /* eq. 26 */ for (j = 0; j < d->J; ++j) asum += d->B[k * d->J + j] * d->G0[j]; } a[k] = asum * asum; } free(Uu); free(u); return a; } /**************************************************************************/ int harminv_get_num_freqs(const harminv_data d) { return d->nfreqs; } double harminv_get_freq(harminv_data d, int k) { CHECK(d->nfreqs >= 0, "haven't computed eigensolutions yet"); CHECK(k >= 0 && k < d->nfreqs, "argument out of range in harminv_get_freq"); return(-carg(d->u[k]) / TWOPI); } double harminv_get_decay(harminv_data d, int k) { CHECK(d->nfreqs >= 0, "haven't computed eigensolutions yet"); CHECK(k >= 0 && k < d->nfreqs, "argument out of range in harminv_get_decay"); return(-log(cabs(d->u[k]))); } double harminv_get_Q(harminv_data d, int k) { CHECK(k >= 0 && k < d->nfreqs, "argument out of range in harminv_get_Q"); return(TWOPI * fabs(harminv_get_freq(d, k)) / (2 * harminv_get_decay(d, k))); } void harminv_get_omega(cmplx *omega, harminv_data d, int k) { CHECK(d->nfreqs >= 0, "haven't computed eigensolutions yet"); CHECK(k >= 0 && k < d->nfreqs, "argument out of range in harminv_get_omega"); *omega = (I * clog(d->u[k])); return; } void harminv_get_amplitude(cmplx *amplitude, harminv_data d, int k) { CHECK(k >= 0 && k < d->nfreqs, "argument out of range in harminv_get_amplitude"); if (!d->amps) d->amps = harminv_compute_amplitudes(d); *amplitude = d->amps[k]; return; } double harminv_get_freq_error(harminv_data d, int k) { CHECK(k >= 0 && k < d->nfreqs, "argument out of range in harminv_get_freq_error"); if (!d->errs) d->errs = harminv_compute_frequency_errors(d); return d->errs[k]; } /**************************************************************************/ harminv-1.4.1/harminv.h000066400000000000000000000053641313423445100150060ustar00rootroot00000000000000/* Copyright (C) 2017 Massachusetts Institute of Technology. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef HARMINV_H #define HARMINV_H /* the following need to be kept in sync with configure.ac: */ #define HARMINV_VERSION_MAJOR 1 #define HARMINV_VERSION_MINOR 4 #define HARMINV_VERSION_PATCH 1 /**************************************************************************/ #if defined(__cplusplus) # include extern "C" { typedef std::complex harminv_complex; #elif defined(_Complex_I) && defined(complex) && defined(I) /* C99 header was included before harminv.h */ typedef double _Complex harminv_complex; #else typedef double harminv_complex[2]; #endif typedef struct harminv_data_struct *harminv_data; /**************************************************************************/ typedef int (*harminv_mode_ok_func)(harminv_data d, int k, void *); extern harminv_data harminv_data_create(int n, const harminv_complex *signal, double fmin, double fmax, int nf); extern void harminv_data_destroy(harminv_data d); extern void harminv_solve(harminv_data d); extern int harminv_get_num_freqs(harminv_data d); extern double harminv_get_freq(harminv_data d, int k); extern double harminv_get_Q(harminv_data d, int k); extern double harminv_get_decay(harminv_data d, int k); extern void harminv_get_omega(harminv_complex *omega, harminv_data d, int k); extern void harminv_get_amplitude(harminv_complex *amplitude, harminv_data d, int k); extern double harminv_get_freq_error(harminv_data d, int k); /* the following routines are undocumented and not recommended */ extern void harminv_solve_once(harminv_data d); extern void harminv_solve_again(harminv_data d, harminv_mode_ok_func ok, void *ok_d); extern void harminv_solve_ok_modes(harminv_data d, harminv_mode_ok_func ok, void *ok_d); extern double *harminv_compute_freq_errors(harminv_data d); extern harminv_complex *harminv_compute_amplitudes(harminv_data d); /**************************************************************************/ #ifdef __cplusplus } /* extern "C" */ #endif #endif /* HARMINV_H */ harminv-1.4.1/harminv.pc.in000066400000000000000000000003701313423445100155560ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: Harminv Description: harmonic inversion of time series by filter diagonalization Version: @VERSION@ Libs: -L${libdir} -lharminv @LIBS@ Cflags: -I${includedir} harminv-1.4.1/m4/000077500000000000000000000000001313423445100135015ustar00rootroot00000000000000harminv-1.4.1/m4/ax_blas.m4000066400000000000000000000176511313423445100153660ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_blas.html # =========================================================================== # # SYNOPSIS # # AX_BLAS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) # # DESCRIPTION # # This macro looks for a library that implements the BLAS linear-algebra # interface (see http://www.netlib.org/blas/). On success, it sets the # BLAS_LIBS output variable to hold the requisite library linkages. # # To link with BLAS, you should link with: # # $BLAS_LIBS $LIBS $FLIBS # # in that order. FLIBS is the output variable of the # AC_F77_LIBRARY_LDFLAGS macro (called if necessary by AX_BLAS), and is # sometimes necessary in order to link with F77 libraries. Users will also # need to use AC_F77_DUMMY_MAIN (see the autoconf manual), for the same # reason. # # Many libraries are searched for, from ATLAS to CXML to ESSL. The user # may also use --with-blas= in order to use some specific BLAS # library . In order to link successfully, however, be aware that you # will probably need to use the same Fortran compiler (which can be set # via the F77 env. var.) as was used to compile the BLAS library. # # ACTION-IF-FOUND is a list of shell commands to run if a BLAS library is # found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it is # not found. If ACTION-IF-FOUND is not specified, the default action will # define HAVE_BLAS. # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 14 AU_ALIAS([ACX_BLAS], [AX_BLAS]) AC_DEFUN([AX_BLAS], [ AC_PREREQ(2.50) AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS]) AC_REQUIRE([AC_CANONICAL_HOST]) ax_blas_ok=no AC_ARG_WITH(blas, [AS_HELP_STRING([--with-blas=], [use BLAS library ])]) case $with_blas in yes | "") ;; no) ax_blas_ok=disable ;; -* | */* | *.a | *.so | *.so.* | *.o) BLAS_LIBS="$with_blas" ;; *) BLAS_LIBS="-l$with_blas" ;; esac # Get fortran linker names of BLAS functions to check for. AC_F77_FUNC(sgemm) AC_F77_FUNC(dgemm) ax_blas_save_LIBS="$LIBS" LIBS="$LIBS $FLIBS" # First, check BLAS_LIBS environment variable if test $ax_blas_ok = no; then if test "x$BLAS_LIBS" != x; then save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" AC_MSG_CHECKING([for $sgemm in $BLAS_LIBS]) AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes], [BLAS_LIBS=""]) AC_MSG_RESULT($ax_blas_ok) LIBS="$save_LIBS" fi fi # BLAS linked to by default? (happens on some supercomputers) if test $ax_blas_ok = no; then save_LIBS="$LIBS"; LIBS="$LIBS" AC_MSG_CHECKING([if $sgemm is being linked in already]) AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes]) AC_MSG_RESULT($ax_blas_ok) LIBS="$save_LIBS" fi # BLAS in OpenBLAS library? (http://xianyi.github.com/OpenBLAS/) if test $ax_blas_ok = no; then AC_CHECK_LIB(openblas, $sgemm, [ax_blas_ok=yes BLAS_LIBS="-lopenblas"]) fi # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) if test $ax_blas_ok = no; then AC_CHECK_LIB(atlas, ATL_xerbla, [AC_CHECK_LIB(f77blas, $sgemm, [AC_CHECK_LIB(cblas, cblas_dgemm, [ax_blas_ok=yes BLAS_LIBS="-lcblas -lf77blas -latlas"], [], [-lf77blas -latlas])], [], [-latlas])]) fi # BLAS in PhiPACK libraries? (requires generic BLAS lib, too) if test $ax_blas_ok = no; then AC_CHECK_LIB(blas, $sgemm, [AC_CHECK_LIB(dgemm, $dgemm, [AC_CHECK_LIB(sgemm, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"], [], [-lblas])], [], [-lblas])]) fi # BLAS in Intel MKL library? if test $ax_blas_ok = no; then # MKL for gfortran if test x"$ac_cv_fc_compiler_gnu" = xyes; then # 64 bit if test $host_cpu = x86_64; then AC_CHECK_LIB(mkl_gf_lp64, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread"],, [-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread]) # 32 bit elif test $host_cpu = i686; then AC_CHECK_LIB(mkl_gf, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl_gf -lmkl_sequential -lmkl_core -lpthread"],, [-lmkl_gf -lmkl_sequential -lmkl_core -lpthread]) fi # MKL for other compilers (Intel, PGI, ...?) else # 64-bit if test $host_cpu = x86_64; then AC_CHECK_LIB(mkl_intel_lp64, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread"],, [-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread]) # 32-bit elif test $host_cpu = i686; then AC_CHECK_LIB(mkl_intel, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl_intel -lmkl_sequential -lmkl_core -lpthread"],, [-lmkl_intel -lmkl_sequential -lmkl_core -lpthread]) fi fi fi # Old versions of MKL if test $ax_blas_ok = no; then AC_CHECK_LIB(mkl, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl -lguide -lpthread"],,[-lguide -lpthread]) fi # BLAS in Apple vecLib library? if test $ax_blas_ok = no; then save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS" AC_MSG_CHECKING([for $sgemm in -framework vecLib]) AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes;BLAS_LIBS="-framework vecLib"]) AC_MSG_RESULT($ax_blas_ok) LIBS="$save_LIBS" fi # BLAS in Alpha CXML library? if test $ax_blas_ok = no; then AC_CHECK_LIB(cxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lcxml"]) fi # BLAS in Alpha DXML library? (now called CXML, see above) if test $ax_blas_ok = no; then AC_CHECK_LIB(dxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-ldxml"]) fi # BLAS in Sun Performance library? if test $ax_blas_ok = no; then if test "x$GCC" != xyes; then # only works with Sun CC AC_CHECK_LIB(sunmath, acosp, [AC_CHECK_LIB(sunperf, $sgemm, [BLAS_LIBS="-xlic_lib=sunperf -lsunmath" ax_blas_ok=yes],[],[-lsunmath])]) fi fi # BLAS in SCSL library? (SGI/Cray Scientific Library) if test $ax_blas_ok = no; then AC_CHECK_LIB(scs, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lscs"]) fi # BLAS in SGIMATH library? if test $ax_blas_ok = no; then AC_CHECK_LIB(complib.sgimath, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"]) fi # BLAS in IBM ESSL library? (requires generic BLAS lib, too) if test $ax_blas_ok = no; then AC_CHECK_LIB(blas, $sgemm, [AC_CHECK_LIB(essl, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lessl -lblas"], [], [-lblas $FLIBS])]) fi # Generic BLAS library? if test $ax_blas_ok = no; then AC_CHECK_LIB(blas, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lblas"]) fi AC_SUBST(BLAS_LIBS) LIBS="$ax_blas_save_LIBS" # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$ax_blas_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1]) : else ax_blas_ok=no $2 fi ])dnl AX_BLAS harminv-1.4.1/m4/ax_lapack.m4000066400000000000000000000116601313423445100156720ustar00rootroot00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_lapack.html # =========================================================================== # # SYNOPSIS # # AX_LAPACK([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) # # DESCRIPTION # # This macro looks for a library that implements the LAPACK linear-algebra # interface (see http://www.netlib.org/lapack/). On success, it sets the # LAPACK_LIBS output variable to hold the requisite library linkages. # # To link with LAPACK, you should link with: # # $LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS # # in that order. BLAS_LIBS is the output variable of the AX_BLAS macro, # called automatically. FLIBS is the output variable of the # AC_F77_LIBRARY_LDFLAGS macro (called if necessary by AX_BLAS), and is # sometimes necessary in order to link with F77 libraries. Users will also # need to use AC_F77_DUMMY_MAIN (see the autoconf manual), for the same # reason. # # The user may also use --with-lapack= in order to use some specific # LAPACK library . In order to link successfully, however, be aware # that you will probably need to use the same Fortran compiler (which can # be set via the F77 env. var.) as was used to compile the LAPACK and BLAS # libraries. # # ACTION-IF-FOUND is a list of shell commands to run if a LAPACK library # is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it # is not found. If ACTION-IF-FOUND is not specified, the default action # will define HAVE_LAPACK. # # LICENSE # # Copyright (c) 2009 Steven G. Johnson # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 7 AU_ALIAS([ACX_LAPACK], [AX_LAPACK]) AC_DEFUN([AX_LAPACK], [ AC_REQUIRE([AX_BLAS]) ax_lapack_ok=no AC_ARG_WITH(lapack, [AS_HELP_STRING([--with-lapack=], [use LAPACK library ])]) case $with_lapack in yes | "") ;; no) ax_lapack_ok=disable ;; -* | */* | *.a | *.so | *.so.* | *.o) LAPACK_LIBS="$with_lapack" ;; *) LAPACK_LIBS="-l$with_lapack" ;; esac # Get fortran linker name of LAPACK function to check for. AC_F77_FUNC(cheev) # We cannot use LAPACK if BLAS is not found if test "x$ax_blas_ok" != xyes; then ax_lapack_ok=noblas LAPACK_LIBS="" fi # First, check LAPACK_LIBS environment variable if test "x$LAPACK_LIBS" != x; then save_LIBS="$LIBS"; LIBS="$LAPACK_LIBS $BLAS_LIBS $LIBS $FLIBS" AC_MSG_CHECKING([for $cheev in $LAPACK_LIBS]) AC_TRY_LINK_FUNC($cheev, [ax_lapack_ok=yes], [LAPACK_LIBS=""]) AC_MSG_RESULT($ax_lapack_ok) LIBS="$save_LIBS" if test $ax_lapack_ok = no; then LAPACK_LIBS="" fi fi # LAPACK linked to by default? (is sometimes included in BLAS lib) if test $ax_lapack_ok = no; then save_LIBS="$LIBS"; LIBS="$LIBS $BLAS_LIBS $FLIBS" AC_CHECK_FUNC($cheev, [ax_lapack_ok=yes]) LIBS="$save_LIBS" fi # Generic LAPACK library? for lapack in lapack lapack_rs6k; do if test $ax_lapack_ok = no; then save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS" AC_CHECK_LIB($lapack, $cheev, [ax_lapack_ok=yes; LAPACK_LIBS="-l$lapack"], [], [$FLIBS]) LIBS="$save_LIBS" fi done AC_SUBST(LAPACK_LIBS) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$ax_lapack_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_LAPACK,1,[Define if you have LAPACK library.]),[$1]) : else ax_lapack_ok=no $2 fi ])dnl AX_LAPACK harminv-1.4.1/mkdist.sh000077500000000000000000000002411313423445100150100ustar00rootroot00000000000000#!/bin/sh # hackery to build ChangeLog darcs changes --summary > ChangeLog sh autogen.sh make maintainer-clean ./configure --enable-maintainer-mode make dist harminv-1.4.1/sines-test.sh000077500000000000000000000002611313423445100156150ustar00rootroot00000000000000#!/bin/sh set -e test x"`./sines 0.1+0.01i 0.08+0.001i | ./harminv 0.05-0.15 | cut -d, -f1-2 | tr '\n' /`" = x"frequency, decay constant/0.08, 1.000000e-03/0.1, 1.000000e-02/" harminv-1.4.1/sines.c000066400000000000000000000131101313423445100144420ustar00rootroot00000000000000/* Copyright (C) 2017 Massachusetts Institute of Technology. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include "config.h" #include "check.h" #include "harminv-int.h" #include "copyright.h" #ifdef HAVE_UNISTD_H # include #endif #ifdef HAVE_GETOPT_H # include #endif int verbose = 0; #define TWOPI 6.2831853071795864769252867665590057683943388 #define NPERIODS 10 void usage(FILE *f) { fprintf(f, "Usage: sines [options] ...\n" "Note that Im[freq] is the decay rate, or its inverse for -T.\n" "Options: \n" " -h : this help message\n" " -V : print version number and copyright\n" " -v : verbose output\n" " -T : specify periods instead of frequencies\n" " -R : real output\n" " -r : random amplitudes\n" " -N : add white noise with amplitude \n" " -s : use seed for random #s (default =time)\n" " -n : output points (default %d * max period)\n" " -t
: time step
(default 1.0)\n", NPERIODS); } typedef struct { double freq, decay, amplitude, phase; } sinusoid; #define MAX2(a,b) ((a) > (b) ? (a) : (b)) int main(int argc, char **argv) { int c; extern char *optarg; extern int optind; int iarg; int specify_periods = 0; int random_amplitudes = 0; int real_output = 0; sinusoid *sines = NULL; int nsines = 0, nalloc = 0, n = 0; double max_period = 0; double dt = 1.0; double noise = 0.0; int i, is; srand(time(NULL)); while ((c = getopt(argc, argv, "hVvTRrn:t:N:s:")) != -1) switch (c) { case 'h': usage(stdout); return EXIT_SUCCESS; case 'V': printf("sines " PACKAGE_VERSION " by Steven G. Johnson.\n" "Test program for harminv.\n" COPYRIGHT); return EXIT_SUCCESS; case 'v': verbose = 1; break; case 'T': specify_periods = 1; break; case 'R': real_output = 1; break; case 'r': random_amplitudes = 1; break; case 'N': noise = atof(optarg); break; case 's': srand(atoi(optarg)); break; case 'n': n = atoi(optarg); if (n < 1) { fprintf(stderr, "sines: " "invalid non-positive -n argument %d\n", n); return EXIT_FAILURE; } break; case 't': dt = atof(optarg); break; default: fprintf(stderr, "sines: invalid argument -%c\n", c); usage(stderr); return EXIT_FAILURE; } if (optind == argc) { /* no parameters left */ fprintf(stderr, "sines: missing required frequency(ies)\n"); usage(stderr); return EXIT_FAILURE; } for (iarg = optind; iarg < argc; ++iarg) { sinusoid s = { 0, 0, 0, 0 }; if (sscanf(argv[iarg], "%lf+%lfi", &s.freq, &s.decay) < 1) { fprintf(stderr, "sines: invalid argument \"%s\"\n", argv[iarg]); return EXIT_FAILURE; } if (specify_periods) { if (s.freq == 0) { fprintf(stderr, "sines: invalid argument \"%s\"" ": 0 not a valid period\n", argv[iarg]); return EXIT_FAILURE; } s.freq = 1/s.freq; if (s.decay != 0) s.decay = 1/s.decay; } if (s.decay == 0 || fabs(1/s.freq) > 1/s.decay) max_period = MAX2(max_period, fabs(1/s.freq)); else max_period = MAX2(max_period, 1/s.decay); if (random_amplitudes) { s.amplitude = rand() * 1.0/RAND_MAX; s.phase = rand() * TWOPI/RAND_MAX - TWOPI/2; } else { s.amplitude = (iarg - optind + 1); s.phase = (iarg - optind + 1) * TWOPI / (argc-optind) - TWOPI/2; } if (verbose) printf("# mode: frequency = %g (period %g), decay = %g (lifetime %g), amplitude = %g, phase = %g\n", s.freq, 1/s.freq, s.decay, s.decay != 0 ? 1/s.decay : 0, s.amplitude, s.phase); if (nsines >= nalloc) { nalloc = (nalloc + 1) * 2; sines = (sinusoid*) realloc(sines, sizeof(sinusoid) * nalloc); CHECK(sines, "out of memory"); } sines[nsines++] = s; } if (n == 0 && max_period == 0) { fprintf(stderr, "sines: must specify -n or non-zero period\n"); return EXIT_FAILURE; } if (n == 0) n = (int) (max_period / fabs(dt) + 0.5) * NPERIODS; for (i = 0; i < n; ++i) { cmplx output = 0; for (is = 0; is < nsines; ++is) output += sines[is].amplitude * cexp(I * (sines[is].phase - TWOPI*sines[is].freq * i*dt) - sines[is].decay * i*dt); output += noise * (rand() * 2.0/RAND_MAX - 1); if (real_output) printf("%0.17e\n", creal(output)); else printf("%0.17e%+0.17ei\n", creal(output), cimag(output)); } free(sines); return EXIT_SUCCESS; } #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif