From 9b67b8a6ce7e833bdcfd4fa0cef7ea2df95ad13b Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 27 Apr 2014 21:46:23 +0200 Subject: [PATCH] Adding more documentation and images to the README file --- README.md | 585 +++++++++++++++++++- docs/doxygen/images/GeneralBlockDiagram.png | Bin 0 -> 139264 bytes docs/doxygen/images/SignalConditioner.png | Bin 0 -> 13268 bytes docs/doxygen/other/main_page.dox | 20 +- 4 files changed, 594 insertions(+), 11 deletions(-) create mode 100644 docs/doxygen/images/GeneralBlockDiagram.png create mode 100644 docs/doxygen/images/SignalConditioner.png diff --git a/README.md b/README.md index 875190bb0..222578931 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,9 @@ forcepkgs = timeout = 30 cmakebuildtype = RelWithDebInfo builddocs = OFF +cc = gcc +cxx = g++ +makewidth = 4 ~~~~~~ @@ -75,7 +78,7 @@ $ make $ sudo make install ~~~~~~ -The full stop separated from "cmake" by a space is important. [CMake](http://www.cmake.org/ "CMake's Homepage") will figure out what other libraries are currently installed and will modify Armadillo's configuration correspondingly. CMake will also generate a run-time armadillo library, which is a combined alias for all the relevant libraries present on your system (eg. BLAS, LAPACK and ATLAS). +The full stop separated from ```cmake``` by a space is important. [CMake](http://www.cmake.org/ "CMake's Homepage") will figure out what other libraries are currently installed and will modify Armadillo's configuration correspondingly. CMake will also generate a run-time armadillo library, which is a combined alias for all the relevant libraries present on your system (eg. BLAS, LAPACK and ATLAS). #### Install [Gflags](http://code.google.com/p/gflags/ "Gflags' Homepage"), a commandline flags processing module for C++: @@ -480,3 +483,583 @@ We use a [DBSRX2](https://www.ettus.com/product/details/DBSRX2) to do the task, 3. The configuration file has in-line documentation, you can try to tune the number of channels and several receiver parameters. 4. Run the receiver from the install directory. The program reports the current status in text mode, directly to the terminal window. If all goes well, and GNSS-SDR is able to successfully track an decode at least 4 satellites, you will get PVT fixes. The program will write a .kml file and RINEX (yet experimental) files in the install directory. In addition to the console output, GNSS-SDR also writes log files at /tmp/ (configurable with the commandline flag ```./gnss-sdr --log_dir=/path/to/log```). + +Using GNSS-SDR +============== + +With GNSS-SDR, you can define you own receiver, work with captured raw data or from a RF front-end, dump into files intermediate signals, or tune every single algorithm used in the signal processing. All the configuration +is done in a single file. Those configuration files reside at the [gnss-sdr/conf/](./conf/) folder. By default, the executable ```gnss-sdr``` will read the configuration +available at ```gnss-sdr/conf/gnss-sdr.conf```. You can edit that file to fit your needs, or even better, define a new ```my_receiver.conf``` file with your own configuration. +This new receiver can be done by going to the ```gnss-sdr/install``` folder: + +~~~~~~ +$ cd gnss-sdr/install +~~~~~~ + +and invoking gnss-sdr with the ```--config_file``` flag pointing to your configuration file: + +~~~~~~ +$ ./gnss-sdr --config_file=../conf/my_receiver.conf +~~~~~~ + +You can see a guide of available implementations at ```gnss-sdr/conf/master.conf```. That folder contains other working examples as well. If you have a working +configuration and want to share it will others, please tell us and we will be happy to upload it to the server. + +You can use a single configuration file for processing different data files, specifying the file to be processed with the ```--signal_source``` flag: + +~~~~~~ +$ ./gnss-sdr --config_file=../conf/my_receiver.conf --signal_source=../data/my_captured_data.dat +~~~~~~ + + +This will override the ```SignalSource.filename``` specified in the configuration file. + + + +Control plane +------------- + +![](./docs/doxygen/images/GeneralBlockDiagram.png) + +GNSS-SDR's main method initializes the logging library, processes the command line flags, if any, provided by the user and instantiates a [ControlThread](./src/core/receiver/control_thread.h) object. +Its constructor reads the configuration file, creates a control queue and creates a flowgraph according to the configuration. Then, the program's main method +calls the run() method of the instantiated object, an action that connects the flowgraph and starts running it. After that, and until a stop message is received, +it reads control messages sent by the receiver's modules through a safe-thread queue and processes them. Finally, when a stop message is received, the main +method executes the destructor of the ControlThread object, which deallocates memory, does other cleanup and exits the program. + +The [GNSSFlowgraph](./src/core/receiver/gnss_flowgraph.h) class is responsible for preparing the graph of blocks according to the configuration, running it, modifying it during run-time and stopping it. +Blocks are identified by its role. This class knows which roles it has to instantiate and how to connect them. +It relies on the configuration to get the correct instances of the roles it needs and then it applies the connections between GNU Radio blocks to make the +graph ready to be started. The complexity related to managing the blocks and the data stream is handled by GNU Radio's ```gr::top_block``` class. GNSSFlowgraph wraps +the ```gr::top_block``` instance so we can take advantage of the ```gnss_block_factory``` (see below), the configuration system and the processing blocks. This class is also responsible +for applying changes to the configuration of the flowgraph during run-time, dynamically reconfiguring channels: it selects the strategy for selecting satellites. +This can range from a sequential search over all the satellites' ID to other more efficient approaches. + +The Control Plane is in charge of creating a flowgraph according to the configuration and then managing the modules. Configuration allows users to define in an easy way their own +custom receiver by specifying the flowgraph (type of signal source, number of channels, algorithms to be used for each channel and each module, strategies for +satellite selection, type of output format, etc.). Since it is difficult to foresee what future module implementations will be needed in terms of configuration, +we used a very simple approach that can be extended without a major impact in the code. This can be achieved by simply mapping the names of the variables in the +modules with the names of the parameters in the configuration. + +### Configuration + +Properties are passed around within the program using the [ConfigurationInterface](./src/core/interfaces/configuration_interface.h) class. There are two implementations of this interface: [FileConfiguration](./src/core/receiver/file_configuration.h) and +[InMemoryConfiguration](./src/core/receiver/in_memory_configuration.h). FileConfiguration reads the properties (pairs of property name and value) from a file and stores them internally. InMemoryConfiguration does +not read from a file; it remains empty after instantiation and property values and names are set using the set property method. FileConfiguration is intended to be +used in the actual GNSS-SDR application whereas InMemoryConfiguration is intended to be used in tests to avoid file-dependency in the file system. Classes that +need to read configuration parameters will receive instances of ConfigurationInterface from where they will fetch the values. For instance, parameters related +to SignalSource should look like this: + +~~~~~~ +SignalSource.parameter1=value1 +SignalSource.parameter2=value2 +~~~~~~ + +The name of these parameters can be anything but one reserved word: implementation. This parameter indicates in its value the name of the class that has to be instantiated +by the factory for that role. For instance, if our signal source is providing data already at baseband and thus we want to use the implementation [Pass_Through](./src/algorithms/libs/pass_through.h) for module SignalConditioner, the corresponding line in the +configuration file would be + +~~~~~~ +SignalConditioner.implementation=Pass_Through +~~~~~~ + +Since the configuration is just a set of property names and values without any meaning or syntax, the system is very versatile and easily extendable. Adding new +properties to the system only implies modifications in the classes that will make use of these properties. In addition, the configuration files are not checked +against any strict syntax so it is always in a correct status (as long as it contains pairs of property names and values in the [INI format](http://en.wikipedia.org/wiki/INI_file)). + +### GNSS block factory + +Hence, the application defines a simple accessor class to fetch the configuration pairs of values and passes them to a factory class called [GNSSBlockFactory](./src/core/receiver/gnss_block_factory.h). +This factory decides, according to the configuration, which class needs to be instantiated and which parameters should be passed to the constructor. Hence, the factory +encapsulates the complexity of blocks' instantiation. With that approach, adding a new block that requires new parameters will be as simple as adding the block +class and modifying the factory to be able to instantiate it. This loose coupling between the blocks' implementations and the syntax of the configuration +enables extending the application capacities in a high degree. It also allows to produce fully customized receivers, for instance a testbed for acquisition +algorithms, and to place observers at any point of the receiver chain. + + +Signal Processing plane +----------------------- + +GNU Radio's class ```gr::basic_block``` is the abstract base class for all signal processing blocks, a bare abstraction of an entity that has a name and a set of +inputs and outputs. It is never instantiated directly; rather, this is the abstract parent class of both ```gr::hier_block2```, which is a recursive container that +adds or removes processing or hierarchical blocks to the internal graph, and ```gr::block```, which is the abstract base class for all the processing blocks. + +![](./docs/doxygen/images/ClassHierarchy.png) + +A signal processing flow is constructed by creating a tree of hierarchical blocks, which at any level may also contain terminal nodes that actually implement signal +processing functions. + +Class ```gr::top_block``` is the top-level hierarchical block representing a flowgraph. It defines GNU Radio runtime functions used during the execution of the +program: run(), start(), stop(), wait(), etc. A a subclass called GNSSBlockInterface is the common interface for all the GNSS-SDR modules. It defines pure virtual +methods, that are required to be implemented by a derived class. + +Subclassing GNSSBlockInterface, we defined interfaces for the GNSS receiver blocks depicted in the figure above. This hierarchy provides the definition of different +algorithms and different implementations, which will be instantiated according to the configuration. This strategy allows +multiple implementations sharing a common interface, achieving the objective of decoupling interfaces from implementations: it defines a family of algorithms, encapsulates each one, +and makes them interchangeable. Hence, we let the algorithm vary independently from the program that uses it. + +### Signal Source + +The input of a software receiver are the raw bits that come out from the front-end's analog-to-digital converter (ADC). +Those bits can be read from a file stored in the hard disk or directly in real-time from a hardware device through USB or Ethernet buses. + +The Signal Source module is in charge of implementing the hardware driver, that is, the portion of the code that communicates with the RF front-end and receives +the samples coming from the ADC. This communication is usually performed through USB or Ethernet buses. Since real-time processing requires a highly optimized +implementation of the whole receiver, this module also allows to read samples from a file stored in a hard disk, and thus processing without time constraints. +Relevant parameters of those samples are the intermediate frequency (or baseband I&Q components), the sampling rate and number of bits per sample, that must be +specified by the user in the configuration file. + +This module also performs bit-depth adaptation, since most of the existing RF front-ends provide samples quantized with 2 or 3 bits, while operations inside + the processor are performed on 32- or 64-bit words, depending on its architecture. Although there are implementations of the most intensive computational + processes (mainly correlation) that take advantage of specific data types and architectures for the sake of + efficiency, the approach is processor-specific and hardly portable. We suggest to keep signal samples in standard data types and letting the compiler + select the best library version (implemented using SIMD or any other processor-specific technology) of the required routines for a given processor. + +***Example: FileSignalSource*** + +The user can configure the receiver for reading from a file, setting in the configuration file the data file location, sample format, +and the sampling frequency and intermediate frequency at what the signal was originally captured. + +~~~~~~ +;######### SIGNAL_SOURCE CONFIG ############ +SignalSource.implementation=File_Signal_Source +SignalSource.filename=/home/user/gnss-sdr/data/my_capture.dat +SignalSource.item_type=gr_complex +SignalSource.sampling_frequency=4000000 ; Sampling frequency in [Hz] +SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz] +~~~~~~ + +Type ```gr_complex``` refers to a GNU Radio typedef equivalent to ```std::complex```. In order to save some storage space, you might wanted to store your signal in a more efficient format such as an I/Q interleaved ```short`` integer sample stream. In that case, change the corresponding line to: + +~~~~~~ +SignalSource.item_type=short +~~~~~~ + +In this latter case, you will need to convert the interleaved I/Q samples to a complex stream via Data Type Adapter block (see below). + +***Example: UhdSignalSource*** + +The user may prefer to use a [UHD](http://code.ettus.com/redmine/ettus/projects/uhd/wiki)-compatible RF front-end and try real-time processing. For instance, for a USRP1 + DBSRX daughterboard, use: + +~~~~~~ +;######### SIGNAL_SOURCE CONFIG ############ +SignalSource.implementation=UHD_Signal_Source +SignalSource.item_type=gr_complex +SignalSource.sampling_frequency=4000000 ; Sampling frequency in [Hz] +SignalSource.freq=1575420000 ; RF front-end center frequency in [Hz] +SignalSource.gain=60 ; Front-end gain in dB +SignalSource.subdevice=B:0 ; UHD subdevice specification (for USRP1 use A:0 or B:0, for USRP B210 use A:0) +~~~~~~ + +Other examples are available at [gnss-sdr/conf/](./conf/). + +### Signal Conditioner + +![](./docs/doxygen/images/SignalConditioner.png) + +The signal conditioner is in charge of resampling the signal and delivering a reference sample rate to the downstream processing blocks, acting as + a facade between the signal source and the synchronization channels, providing a simplified interface to the input signal. + In case of multiband front-ends, this module would be in charge of providing a separated data stream for each band. + +If your signal source is providing baseband signal samples of type ```gr_complex``` at 4 Msps, you can bypass the Signal Conditioner block by: + +~~~~~~ +SignalConditioner.implementation=Pass_Through +~~~~~~ + +If you need to adapt some aspect of you signal, you can enable the Signal Conditioner and configure three internal blocks: a data type adpater, an input signal and a resampler. + +~~~~~~ +;#[Signal_Conditioner] enables this block. Then you have to configure [DataTypeAdapter], [InputFilter] and [Resampler] blocks +SignalConditioner.implementation=Signal_Conditioner +~~~~~~ + +#### Data type adapter + +This block changes the type of input data samples. If your signal source delivers data samples of type ```short```, you can use this block to convert them to ```gr_complex``` like this: + +~~~~~~ +;######### DATA_TYPE_ADAPTER CONFIG ############ +;#implementation: [Pass_Through] disables this block +DataTypeAdapter.implementation=Ishort_To_Complex +~~~~~~ + +#### Input filter + +This blocks filters the input data. It can be combined with frequency translation for IF signals. The computation of the filter taps is based on parameters of GNU Radio's function [pm_remez](http://gnuradio.org/doc/doxygen/pm__remez_8h.html), that calculates the optimal (in the Chebyshev/minimax sense) FIR filter impulse response given a set of band edges, the desired reponse on those bands, and the weight given to the error in those bands. + +The block can be configured like this: + +~~~~~~ +;######### INPUT_FILTER CONFIG ############ +;#implementation: Use [Pass_Through] or [Fir_Filter] or [Freq_Xlating_Fir_Filter] +;#[Pass_Through] disables this block +;#[Fir_Filter] enables a FIR Filter +;#[Freq_Xlating_Fir_Filter] enables FIR filter and a composite frequency translation that shifts IF down to zero Hz. +InputFilter.implementation=Freq_Xlating_Fir_Filter +InputFilter.dump=false ; #dump: Dump the filtered data to a file. +InputFilter.dump_filename=../data/input_filter.dat ; #dump_filename: Log path and filename. +InputFilter.input_item_type=gr_complex +InputFilter.output_item_type=gr_complex +InputFilter.taps_item_type=float +InputFilter.number_of_taps=5 ; #number_of_taps: Number of taps in the filter. Increasing this parameter increases the processing time +InputFilter.number_of_bands=2 ; #number_of_bands: Number of frequency bands in the filter. +; Frequency is in the range [0, 1], with 1 being the Nyquist frequency (Fs/2) +; The number of band_begin and band_end elements must match the number of bands +InputFilter.band1_begin=0.0 +InputFilter.band1_end=0.85 +InputFilter.band2_begin=0.90 +InputFilter.band2_end=1.0 + +;#ampl: desired amplitude at the band edges. +;#The number of ampl_begin and ampl_end elements must match the number of bands +InputFilter.ampl1_begin=1.0 +InputFilter.ampl1_end=1.0 +InputFilter.ampl2_begin=0.0 +InputFilter.ampl2_end=0.0 + +;#band_error: weighting applied to each band (usually 1). +;#The number of band_error elements must match the number of bands +InputFilter.band1_error=1.0 +InputFilter.band2_error=1.0 + +;#filter_type: one of "bandpass", "hilbert" or "differentiator" +InputFilter.filter_type=bandpass + +;#grid_density: determines how accurately the filter will be constructed. +;The minimum value is 16; higher values are slower to compute the filter. +InputFilter.grid_density=16 + +;#The following options are used only in Freq_Xlating_Fir_Filter implementation. +;#InputFilter.IF is the intermediate frequency (in Hz) shifted down to zero Hz +InputFilter.sampling_frequency=4000000 +InputFilter.IF=0 +InputFilter.decimation_factor=1 +~~~~~~ + +#### Resampler + +This block resamples the input data stream. The ```Direct_Resampler``` block implements a nearest neigbourhood interpolation: + +~~~~~~ +;######### RESAMPLER CONFIG ############ +;#implementation: Use [Pass_Through] or [Direct_Resampler] +;#[Pass_Through] disables this block +Resampler.implementation=Direct_Resampler +Resampler.dump=false ; Dumps the resampled data to a file. +Resampler.dump_filename=../data/resampler.dat ; log path and filename. +Resampler.item_type=gr_complex +Resampler.sample_freq_in=8000000 ; sample frequency of the input signal +Resampler.sample_freq_out=4000000 ; desired sample frequency of the output signal +~~~~~~ + +### Channel + +A channel encapsulates all signal processing devoted to a single satellite. Thus, it is a large composite object which encapsulates the acquisition, +tracking and navigation data decoding modules. As a composite object, it can be treated as a single entity, meaning that it can be easily replicated. Since the number of + channels is selectable by the user in the configuration file, this approach helps improving the scalability and maintainability of the receiver. + +This module is also in charge of managing the interplay between acquisition and tracking. Acquisition can be initialized in several ways, depending on +the prior information available (called cold start when the receiver has no information about its position nor the satellites almanac; warm start when +a rough location and the approximate time of day are available, and the receiver has a recently recorded almanac broadcast; or hot start when the receiver +was tracking a satellite and the signal line of sight broke for a short period of time, but the ephemeris and almanac data is still valid, or this information +is provided by other means), and an acquisition process can finish deciding that the satellite is not present, that longer integration is needed in order to +confirm the presence of the satellite, or declaring the satellite present. In the latter case, acquisition process should stop and trigger the tracking module +with coarse estimations of the synchronization parameters. The mathematical abstraction used to design this logic is known as finite state machine (FSM), that is +a behavior model composed of a finite number of states, transitions between those states, and actions. For the implementation, we use the [Boost.Statechart library](http://www.boost.org/libs/statechart/doc/tutorial.html), +which provides desirable features such as support for asynchronous state machines, multi-threading, type-safety, error handling and compile-time validation. + +The abstract class [ChannelInterface](./src/core/interfaces/channel_interface.h) represents an interface to a channel GNSS block. Check [Channel](./src/algorithms/channel/adapters/channel.h) for an actual implementation. + +~~~~~~ +;######### CHANNELS GLOBAL CONFIG ############ +Channels.count=8 ; Number of available satellite channels. +Channels.in_acquisition=1 ; Number of channels simultaneously acquiring +Channel.system=GPS ; options: GPS, Galileo, SBAS +Channel.signal=1C ; options: "1C" for GPS L1 C/A or SBAS L1 C/A; "1B" for GALILEO E1 B (I/NAV OS/CS/SoL) +~~~~~~ + +You can optionally set specific parameters for different channels, overriding global parameters: + +~~~~~~ +;######### CHANNEL 0 CONFIG ############ +Channel0.system=GPS +Channel0.signal=1C +Channel0.satellite=5 +Channel0.repeat_satellite=false + +;######### CHANNEL 1 CONFIG ############ +Channel1.system=GPS +Channel1.signal=1C +Channel1.satellite=18 +Channel1.repeat_satellite=false +~~~~~~ + +#### Acquisition + +The first task of a GNSS receiver is to detect the presence or absence of in-view satellites. This is done by the acquisition system process, which also provides a coarse estimation of two signal parameters: the frequency shift + with respect to the nominal IF frequency, and a delay term which allows the receiver to create a local code aligned with the incoming code. +AcquisitionInterface is the common interface for all the acquisition algorithms and their corresponding implementations. Algorithms' interface, that may vary +depending on the use of information external to the receiver, such as in Assisted GNSS, is defined in classes referred to as *adapters*. +These adapters wrap the GNU Radio blocks interface into a compatible interface expected by AcquisitionInterface. This allows the use of existing GNU Radio blocks +derived from ```gr::block```, and ensures that newly developed implementations will also be reusable in other GNU Radio-based applications. +Moreover, it adds still another layer of abstraction, since each given acquisition algorithm can have different implementations (for instance using + different numerical libraries). In such a way, implementations can be continuously improved without having any impact neither on the algorithm interface nor the general acquisition interface. + +Check [GpsL1CaPcpsAcquisition](./src/algorithms/acquisition/adapters/gps_l1_ca_pcps_acquisition.h) and [GalileoE1PcpsAmbiguousAcquisition](./src/algorithms/acquisition/adapters/galileo_e1_pcps_ambiguous_acquisition.h) for examples of adapters from a Parallel Code Phase Search (PCPS) acquisition block, and + [pcps_acquisition_cc](./src/algorithms/acquisition/gnuradio_blocks/pcps_acquisition_cc.h) for an example of a block implementation. The source code of all the available acquisition algorithms is located at: + +~~~~~~ + |-gnss-sdr + |---src + |-----algorithms + |-------acquisition + |---------adapters <- Adapters of the processing blocks to an AcquisitionInterface + |---------gnuradio_blocks <- Signal processing blocks implementation +~~~~~~ + +The user can select a given implementation for the algorithm to be used in each receiver channel, as well as their parameters, in the configuration file: + +~~~~~~ +;######### ACQUISITION GLOBAL CONFIG ############ +Acquisition.dump=false ; Enables internal data file logging [true] or [false] +Acquisition.dump_filename=./acq_dump.dat ; Log path and filename +Acquisition.item_type=gr_complex +Acquisition.if=0 ; Signal intermediate frequency in [Hz] +Acquisition.sampled_ms=1 ; Signal block duration for the acquisition signal detection [ms] +Acquisition.implementation=GPS_L1_CA_PCPS_Acquisition ; Acquisition algorithm selection for this channel +Acquisition.threshold=0.005 ; Acquisition threshold +Acquisition.pfa=0.0001 ; Acquisition false alarm probability. This option overrides the threshold option. +; Only use with implementations: [GPS_L1_CA_PCPS_Acquisition] or [Galileo_E1_PCPS_Ambiguous_Acquisition] +Acquisition.doppler_max=10000 ; Maximum expected Doppler shift [Hz] +Acquisition.doppler_step=500 ; Doppler step in the grid search [Hz] +~~~~~~ + +You can optionally set specific parameters for different channels, overriding global parameters: + +~~~~~~ +;######### ACQUISITION CH 0 CONFIG ############ +Acquisition0.implementation=GPS_L1_CA_PCPS_Acquisition +Acquisition0.threshold=0.005 +Acquisition0.pfa=0.001 +Acquisition0.doppler_max=10000 +Acquisition0.doppler_step=250 +Acquisition0.repeat_satellite = false + +;######### ACQUISITION CH 1 CONFIG ############ +Acquisition1.implementation=GPS_L1_CA_PCPS_Acquisition +Acquisition1.threshold=0.005 +Acquisition1.pfa=0.002 +Acquisition1.doppler_max=10000 +Acquisition1.doppler_step=250 +Acquisition1.repeat_satellite = false +~~~~~~ + + +#### Tracking + +When a satellite is declared present, the parameters estimated by the acquisition module are then fed to the receiver tracking module, which represents the +second stage of the signal processing unit, aiming to perform a local search for accurate estimates of code delay and carrier phase, and following their eventual variations. + +Again, a class hierarchy consisting of a [TrackingInterface](./src/core/interfaces/tracking_interface.h) class and subclasses implementing algorithms provides a way of testing different approaches, +with full access to their parameters. Check [GpsL1CaDllPllTracking](./src/algorithms/tracking/adapters/gps_l1_ca_dll_pll_tracking.h) or [GalileoE1DllPllVemlTracking](./src/algorithms/tracking/adapters/galileo_e1_dll_pll_veml_tracking.h) for examples of adapters, and [Gps_L1_Ca_Dll_Pll_Tracking_cc](./src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.h) for an example +of a signal processing block implementation. There are also available some useful classes and functions for signal tracking; take a look at [correlator.h](./src/algorithms/tracking/libs/correlator.h), [lock_detectors.h](./src/algorithms/tracking/libs/lock_detectors.h), [tracking_discriminators.h](./src/algorithms/tracking/libs/tracking_discriminators.h) or +[tracking_2nd_DLL_filter.h](./src/algorithms/tracking/libs/tracking_2nd_DLL_filter.h). + +The source code of all the available tracking algorithms is located at: + +~~~~~~ + |-gnss-sdr + |---src + |-----algorithms + |-------tracking + |---------adapters <- Adapters of the processing blocks to a TrackingInterface + |---------gnuradio_blocks <- Signal processing blocks implementation + |---------libs <- libraries of tracking objects (e.g. correlators, discriminators, and so on) +~~~~~~ + +The user can select a given implementation for the algorithm to be used in all the tracking blocks, as well as its parameters, in the configuration file: + +~~~~~~ +;######### TRACKING GLOBAL CONFIG ############ +Tracking.implementation=GPS_L1_CA_DLL_PLL_Tracking +Tracking.item_type=gr_complex +Tracking.if=0 ; Signal Intermediate Frequency in [Hz] +Tracking.dump=false ; Enable internal binary data file logging [true] or [false] +Tracking.dump_filename=./tracking_ch_ ; Log path and filename. Notice that the tracking channel will add "x.dat" where x is the channel number. +Tracking.pll_bw_hz=50.0 ; PLL loop filter bandwidth [Hz] +Tracking.dll_bw_hz=2.0 ; DLL loop filter bandwidth [Hz] +Tracking.fll_bw_hz=10.0 ; FLL loop filter bandwidth [Hz] +Tracking.order=3 ; PLL/DLL loop filter order [2] or [3] +Tracking.early_late_space_chips=0.5 ; correlator early-late space [chips]. +~~~~~~ + +#### Decoding of the navigation message + +Most of GNSS signal links are modulated by a navigation message containing the time the message was transmitted, orbital parameters of satellites +(also known as ephemeris) and an almanac (information about the general system health, rough orbits of all satellites in the network as well as data related to +error correction). Navigation data bits are structured in words, pages, subframes, frames and superframes. Sometimes, bits corresponding to a single parameter are +spread over different words, and values extracted from different frames are required for proper decoding. Some words are for synchronization purposes, others for +error control an others contain actual information. There are also error control mechanisms, from parity checks to forward error correction (FEC) encoding and +interleaving, depending on the system. All this decoding complexity is managed by a finite state machine implemented with the [Boost.Statechart library](http://www.boost.org/libs/statechart/doc/tutorial.html). + +The common interface is [TelemetryDecoderInterface](./src/core/interfaces/telemetry_decoder_interface.h). Check [GpsL1CaTelemetryDecoder](./src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h) for an example of the GPS L1 NAV message decoding adapter, and [gps_l1_ca_telemetry_decoder_cc](./src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.h) +for an actual implementation of a signal processing block. Configuration example: + +~~~~~~ +;######### TELEMETRY DECODER CONFIG ############ +TelemetryDecoder.implementation=GPS_L1_CA_Telemetry_Decoder +TelemetryDecoder.dump=false +~~~~~~ + + +#### Observables + +GNSS systems provide different kinds of observations. The most commonly used are the code observations, also called pseudoranges. The *pseudo* comes from +the fact that on the receiver side the clock error is unknown and thus the measurement is not a pure range observation. High accuracy applications also use the + carrier phase observations, which are based on measuring the difference between the carrier phase transmitted by the GNSS satellites and the phase of the carrier + generated in the receiver. Both observables are computed from the outputs of the tracking module and the decoding of the navigation message. +This module collects all the data provided by every tracked channel, aligns all received data into a coherent set, and computes the observables. + +The common interface is [ObservablesInterface](./src/core/interfaces/observables_interface.h). + +Configuration example: + +~~~~~~ +;######### OBSERVABLES CONFIG ############ +Observables.implementation=GPS_L1_CA_Observables +Observables.dump=false +Observables.dump_filename=./observables.dat +~~~~~~ + +#### Computation of Position, Velocity and Time +Although data processing for obtaining high-accuracy PVT solutions is out of the scope of GNSS-SDR, we provide a module that can compute a simple least square + solution and leaves room for more sophisticated positioning methods. The integration with libraries and software tools that are able to deal with multi-constellation + data such as [GPSTk](http://www.gpstk.org), [RTKLIB](http://www.rtklib.com/) or [gLAB](http://gage14.upc.es/gLAB/) appear as viable solutions for high performance, completely customizable GNSS receivers. + +The common interface is [PvtInterface](./src/core/interfaces/pvt_interface.h). For instance, in order to use the implementation GpsL1CaPvt, add to the configuration file: + +~~~~~~ +;######### PVT CONFIG ############ +PVT.implementation=GPS_L1_CA_PVT +PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea ; NMEA log path and filename +PVT.flag_nmea_tty_port=true ; Enable the NMEA log to a serial TTY port +PVT.nmea_dump_devname=/dev/pts/4 ; serial device descriptor for NMEA logging +PVT.dump=false ; Enables the PVT internal binary data file logging [true] or [false] +~~~~~~ + +This implementation allows tuning of the following parameters: + +~~~~~~ +PVT.averaging_depth=10 ; Number of PVT observations in the moving average algorithm +PVT.flag_averaging=true ; Enables the PVT averaging between output intervals (arithmetic mean) [true] or [false] +PVT.output_rate_ms=100 ; Period in [ms] between two PVT outputs +PVT.display_rate_ms=500 ; Position console print (std::out) interval [ms]. +PVT.dump=false ; Enable or disable the PVT internal binary data file logging [true] or [false] +PVT.dump_filename=./PVT ; Log path and filename without extension. +~~~~~~ + +#### Output filter + +Implements a sink for the signal stream. + +~~~~~~ +;######### OUTPUT_FILTER CONFIG ############ +OutputFilter.implementation=Null_Sink_Output_Filter +OutputFilter.filename=data/gnss-sdr.dat +OutputFilter.item_type=gr_complex +~~~~~~ + + +About the software license +========================== + +GNSS-SDR is released under the [General Public License (GPL) v3](http://www.gnu.org/licenses/gpl.html), thus securing practical usability, inspection, +and continuous improvement by the research community, allowing the discussion based on tangible code and the analysis of results obtained with real signals. +The GPL implies that: + + 1. Copies may be distributed free of charge or for money, but the source code has to be shipped or provided free of charge (or at cost price) on demand. The receiver of the source code has the same rights meaning he can share copies free of charge or resell. + 2. The licensed material may be analyzed or modified. + 3. Modified material may be distributed under the same licensing terms but *do not* have to be distributed. + +That means that modifications only have to be made available to the public if distribution happens. So it is perfectly fine to take the GNSS-SDR source code, modify it heavily and use it in a not distributed application / library. This is how companies like Google can run their own patched versions of Linux for example. + +But what this also means is that non-GPL code cannot use GPL code. This means that you cannot modify / use GNSS-SDR, blend it with non-GPL code, and make money with the resulting software. You cannot distribute the resulting software under a non-disclosure agreement or contract. Distributors under the GPL also grant a license for any of their patents practiced by the software, to practice those patents in GPL software. You can sell a device that runs with GNSS-SDR, but if you distribute the code, it has to remain under GPL. + +Publications and Credits +======================== + +If you use GNSS-SDR to produce a research paper or Thesis, we would appreciate if you reference any of these articles to credit the GNSS-SDR project: + + * C. Fernndez-Prades, J. Arribas, L. Esteve, D. Pubill, P. Closas, [An Open Source Galileo E1 Software Receiver](http://www.cttc.es/publication/an-open-source-galileo-e1-software-receiver/), in Proc. of the 6th ESA Workshop on Satellite Navigation Technologies (NAVITEC 2012), ESTEC, Noordwijk, The Netherlands, Dec. 2012. + * J. Arribas, [GNSS Array-based Acquisition: Theory and Implementation](http://theses.eurasip.org/theses/449/gnss-array-based-acquisition-theory-and/), PhD Thesis, Universitat Politcnica de Catalunya, Barcelona, Spain, June 2012. + * C. Fernndez-Prades, J. Arribas, P. Closas, C. Avils, and L. Esteve, [GNSS-SDR: an open source tool for researchers and developers](http://www.cttc.es/publication/gnss-sdr-an-open-source-tool-for-researchers-and-developers/), in Proc. of the ION GNSS 2011 Conference, Portland, Oregon, Sept. 19-23, 2011. + * C. Fernndez-Prades, C. Avils, L. Esteve, J. Arribas, and P. Closas, [Design patterns for GNSS software receivers](http://www.cttc.es/publication/design-patterns-for-gnss-software-receivers/), in Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010), ESTEC, Noordwijk, The Netherlands, Dec. 2010. DOI:10.1109/NAVITEC.2010.5707981 + +For LaTeX users, these are the BibTeX cites for your convenience: + +~~~~~~ +@INPROCEEDINGS{GNSS-SDR12 + author = {C.~{Fern\'{a}ndez--Prades} and J.~Arribas and L.~Esteve and D.~Pubill and P.~Closas}, + title = {An Open Source {G}alileo {E1} Software Receiver}, + booktitle = {Proc. of the 6th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2012)}, + year = {2012}, + address = {ESTEC, Noordwijk, The Netherlands}, + month = {Dec.} } +~~~~~~ + +~~~~~~ +@PHDTHESIS{Arribas12, + author = {J.~Arribas}, + title = {{GNSS} Array-based Acquisition: Theory and Implementation}, + school = {Universitat Polit\`{e}cnica de Catalunya}, + year = {2012}, + address = {Barcelona, Spain}, + month = {June} } +~~~~~~ + +~~~~~~ +@INPROCEEDINGS{GNSS-SDR11, + AUTHOR = {C.~{Fern\'{a}ndez--Prades} and J.~Arribas and P.~Closas and C.~Avil\'{e}s and L.~Esteve}, + TITLE = {{GNSS-SDR}: An Open Source Tool For Researchers and Developers}, + BOOKTITLE = {Proc. of the ION GNSS 2011 Conference}, + YEAR = {2011}, + address = {Portland, Oregon}, + month = {Sept.} } +~~~~~~ + +~~~~~~ +@INPROCEEDINGS{GNSS-SDR10, + AUTHOR = {C.~{Fern\'{a}ndez--Prades} and C.~Avil\'{e}s and L.~Esteve and J.~Arribas and P.~Closas}, + TITLE = {Design patterns for {GNSS} software receivers}, + BOOKTITLE = {Proc. of the 5th ESA Workshop on Satellite Navigation Technologies (NAVITEC'2010)}, + YEAR = {2010}, + address = {ESTEC, Noordwijk, The Netherlands}, + month = {Dec.}, + note = {DOI:10.1109/NAVITEC.2010.5707981} } +~~~~~~ + + +Ok, now what? +============= + +In order to start using GNSS-SDR, you may want to populate ```gnss-sdr/data``` folder (or anywhere else on your system) with raw data files. By "raw data" we mean the output +of a Radio Frequency front-end's Analog-to-Digital converter. GNSS-SDR needs signal samples already in baseband or in passband, at a suitable intemediate frequency (on the order of MHz). +Prepare your configuration file, and then you are ready for going to the ```gnss-sdr/install``` folder, running ```./gnss-sdr```, and seeing how the file is processed. + +Another interesting option is working in real-time with a RF front-end. We provide drivers for UHD-compatible hardware such as the USRP family, for the GN3S v2 USB dongle +and for some DVB-T USB dongles. Start with a low number of channels and then increase it in order to test how many channels your processor can handle in real-time. + +You can find more information at the [GNSS-SDR Documentation page](GNSS-SDR Documentation page] or directly asking to the +[GNSS-SDR Developers mailing list](http://lists.sourceforge.net/lists/listinfo/gnss-sdr-developers). + +You are also very welcome to contribute to the project, there are many ways to [participate in GNSS-SDR](http://gnss-sdr.org/participate). +If you need some special feature not yet implemented, the Developer Team would love to be hired for developing it. +Please do not hesitate to [contact them](http://gnss-sdr.org/contact-us). + +Enjoy GNSS-SDR! + +The Developer Team. + + + diff --git a/docs/doxygen/images/GeneralBlockDiagram.png b/docs/doxygen/images/GeneralBlockDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d20b57ef765619ee5dd8cd5cdd36250d032c21b9 GIT binary patch literal 139264 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 z z-Bg=DaHE26x;o(~Yq&;QhE4UBTCGAK4kp@I>=IAnSm{Q4HlqapU~ROuwbzxTy6=iUmsCcW32Nn{iMYVwVUD{cY-w@cQ$e{JbFDJ zTBsnZR$ylqbW%dojlyrf{o*_ZG}-N^&&EDDx-tQ6*oQ6}APK>WKn=FbqwT5K{ndUL z{Kz0Z`kM!p$xKOE8T5d@M0DQ)Yc6PA$%mmtxe9IT8wgiS!?hbk%IWIXsmzy_9)Q7K z2jtB8yUZUtBe^7pyM8=#yVS{n{Wbpd<5E~{QOZ)=HE#Yr&4oaWiaFk~_6weAj+}lp zE=hUs!k!i`wbghQ=R6|{_Gf2UZh==xBM!6GJ{-=HerT|2gpb)(IraLl-(1l>$EWf; z)hD83zi)cg{;*2l(b((O@9J#p;nm6R{Vajs?C&l`I9UJzvdlNP5ZQ>iwU}<$I~eqSS-D`6Zdr10~R*Z1{`hchX>seH~_hE+f zvv0|ANa}p#QPC%nFy`>9Gw|??6TONK3k3(zK0vrYKY=@z*JdnBR)ZNJug8x85=O)+ zK-CSntYV7nAdm&oQVZkK?fKWB#$TaWh#vsQAXW!N77LF>AHu&0*hnY5wgXT<0~a&L zoFWY2m6*9Z@o$CZDZ!`s^gUqqdUi%BjAIg)4nW%&dj7)5-J!6GFq&-+6qs4K6eTrw zqtPYqW&B{Z-_0VKzr*(R>XgIx=x-O3khta&9pP+EAeLf|FRGZJ#)D)KKktV ztn?$-`-GgWC!9|N28uqJ)rllA{!Vf=!9e}bVZJKPtfN1y^182MoS}rBgO-Qsb>+|7 z^fwyhkB<6oljnsZhn)g4M*ajkn6$siQ_LPqIfpe#TA+ly1U)oVF#@}c>^Iw1VOrT0?8JWoYKYo;^aVd1` zw`(^PBZ!}tF83UX-Q*v`aP*NO*6FfV_|dJ{e&xWAdi$NU)K70Nfkk6)81;f}PYd z_S;pVl!=S#m&?Y}>>h-~gfmJwquybjb=M(`7|cjKtd(hpN%cbY*zh*E<1i9WT@8a}uz)gj}hVbPNklpAZnmKU|QW`Vwdl_(!vZ9v08 z(837J^L=nqB!1nnSZH*GetL|LlRs9X@2MeApvcL|{ew=Cx|To)C5YE9P^e2eC_8|s zBhc&($onVx(vUu;POMW&`3=tGa{V&~n62KNnzp8G578qBa{Um$taUmUtatq0v=wrg z?%ihvNs4^mWQm+OELRHm*N(P^RdG!<^)zVKueh;t`XfiFH7uVXs|MZTtE2j*zb)if zQV}wjJJC0&#{fYK39vv?jAVyD zAX{H}N9ZcB@v@|BkdixQDd?QYFFouNW&O(=-H*S}8}<*nXC^o*x!~v_kxr_f`xBM& zcFD#+dXzeX!I(t^pFk)6@ZEIM36eIqNtN1X&Bn#Q);6?2XEQ;;m7&D>+G}enF_5(( zdZX^Yv3y1+^N*_-`y#;XPl#1I0j-6H_D5KZp8MbF?77B)6E>MBJQ z*#SzI0VyWP|G@4-kB$uCIJAJ={t$Z>gPJly;Ir9BdFJ+0L9pT`47Ol8HsWcCUua3$y;aD~#;&L^c~Ar81Kqcek<-UO&Mw14qp|J?sl_n$U`1dt)>{osa>CzF^hIMgeK+Et_ngE!87Ldimvtrn7-tssj9gm_d?W6dR=_btpSB7GH;Pu?q zY<(#EFwo|}!pQ3D>le&_Z`+m?zzc?&TSQidiV7w$H6Sg6$2Q{uoJe#`jLam|_F#>B zWY5hRBKBn8WB4UdIDO-H%vqBqlK-Cp7-#`lg8bB79SD+`S3p0pR`^7x(h5E-$hxcHqQ^vl%+BVUb?iV_{~# z3oY}kMCPk~@#V%%1YofR9o$xSCWL7$ex&DA(K1BwxxUN27KL;cpk;8Eq)bN7lTAQZ zLE~t3>=AM7?i2g6xYj-G>Sg^;%Z=M{#w*nr(LFunSh^j!bfd*cDevD#m&(j!p`bh` z%SW%9`c)bh(I(OF)=`N}5$J4NsS=fse&$cnnfr4^H*lU5DH-G4jSKS}Ie-m@--AqN1nf&+ z{L}sZya9dF8g;H64-cb3C`wOfl5O|Jy98QH*5|n{W+?wEcVdewY2+=}nsJ{AVaa!Uff@1X(+0{W+p{)l8hh`p=7goaj};XOU>pZTzO2JC%> zx(3$wb&RZtxG-ab2gr&!g)sjr*X*~L-5H9Z+Z39(G~AA@_cPXN{cobSW0`xQjqyiu zhvCzfTHy%|fv@QUq8>xJUP~d33-8-`E?=RkX%hjc2bq%UI)F1v6ZKrba}dBL>W!-X z#xL7h$tHv@<4+)`Kp9aghY`~dQYfWhvucQ0FZ1%9b`RSlf)ufkCFk!LC9EM`j!AFq z3;)Kem#0PG@I?1{#HQ@~<;*AL6;Zw{F5_9FB6l3fGmCXiB+$uip0L%?j=KpRPumnO zz|Bk2{#BO$o%J5`;H7CgJd_vH6?vcYF?FZB7`{v7ayDGJ&H_^ z4U9BsH)V-Fgv~#wObq|bTK=4aMwsIP$xy797P)@hC_R6sc(Hxdo3pVqWa`o^tAUi4 zW+-xaC2oGMXR*l~K{TYXq+HfxSt4qgf}aK*xgdlOGTmHvJ~hXg(BJctb`xrnU z901~QlHuLEJMKYckP0$rklKw}ciY#&Es?@VH+&G-q<(!^6r5063Rg8Lrr`OE)2JG&0tXcBRMb*+@nW)G9+Pd@h@W zV8LT*E=r#FLQ%~2W`3~6eYo@N>~DckGV#NYnr-iI82kDp z^W}f*I$vwIzZw*JZg-NWEh?P)qdg>bT<^4@rX@OrR$$9@%GwV`|N7Dg-I)BiDAEF}+_t&g>+>c%Y;yCK_{dJ2RoZ0uhU(j=#wTl`UGsj{n!w8C0{J@3rFrx_H< zv6DtSOd_Yf@_Ep!%Dt1GoPs=s{ht^0)MXd$4Gdz;H$|k z(5*JuUPaOlWxYJu?-O<=)%tf)W>EEqGJ(?b9**B5JO?xgMzE@7q8CkG?ZeKkC?e>c zXnp)Ul$PLc)XHzoqNKO)hLst(@`nt3I|2?buX|YT$<&13?zVjY{sbtgg>uhJkfr^( zXXqFY*?S;1yaNC+#27sW5E;Ha)X5#5Q<#*)9XHBWv$KBi?6#d{qI##fwX9Ay)e4YN zNMVilkfk`vJ3BjL_MuNlDa1fb$q=?}3FO#r0@co^!XyA>0SrRwHimN%5*lp)^|!RK zVHm!Y4DX^hTiuqqIXv1`Yd)d|(s4b*kNI$}LDhSsN%8Fbu%U4!;i=+WO5IQg@#^y#PZd?z1*Zyn$V@P}18y`>`(v zbZn|#{{}wuHF;gAk$k-gJzKliypEk;luuSRD$RPPS^7SqnUo}NM--B65GD?=jo_1$ zV|2{D<&>e@lkh4+?X0>Z9O2*Kf`xsr`$j^60Jf! zEUn#eaGOc;UspgS-w`WSnTgp6E)5=4PFGyzPvF^VqY~7a$&SKk|4n}6N=}-{=v2%C z1Vy4RfupQxb&K=?*H6jo#^=aaExNeo=9Z5q?|0n%SzztyX~sK}6;P1rce0~3$JV0; z#j$YX|7k4E>gqp#km+!_V^8z%9Cg}Jdn@zdui_kM94kmxZI_=bxvt5I`rc`II)e1l zuK2e51t22WV8&oS zoB9)npKnPtS@wyu0QUY>&88>@P2tG+GOTpTLnCV6L!Aqp!QUgp3NL#Hnfy<3(xNqo zr0`I>b(K?H!xi!W`9&wFu5apaG8L4K)SybPp8A|`e<2k)zZy>G-DMma&OQBwkMbXz zsOaLs-SL7M^iXM1jKMAM#Zj&QJhFi}?nbY_jh!feaV&QCa`sJ)nAu_tuimvt;-%?D z@D)<_;La&$uUKpA(XTI-?xVlAZY5%8uuXjZyIy;#F>pS3U7*nzZiPj{?dBw6mtkl7 zE@5WXW~7>h`?$1PP1u9|>3h)-gC!1TcKY{?g^U$V4vb8w{nZwSzJFVTcqzStmnhBp zQ|m@@&c#pLFEG0ML182Ks^qoc;m=r2p0lXe2KB#eO#P0mff^}54~?rR>0vHRnfD@E z#;>03zAx7+mun|lkSG#cpmATSvz~Ca>gA0jK}&nt_uF!r9j(384}Y&CtT9_fU`|*YrHN^=b5XZ;Le)`1YBKmDaVeoFLW|u~PPw37bf8bBYL-?+ z{MAI)?ktt3j5O;%Src{iN+T=30RLB`&-2P{(J%%fo_nLpN#uzxrSztRCI=9hjel=8 z9z5h+Uln>!_XT9T^)B{hLuUtz{by&Rm*-oDGux|=_^HinLcsJ+Kbad7Mg&&Q|-J4;+; zU_T79=qpb=-&>H>=XJhoG|knsQCIDLQ+ba9GmjQ~jvD}`M|8deT% zqw=L3{3%FHPWcmCk0pRk?S?xUpFF#VraeH>Nl0nuo=~^P_0^*cJeulO_XUBwN=4-7Z0Lm|Ikb? zbrYOdZqgR#R`g!xi5d}?gbOizYK!SYiiIPt_-CtX(noh7k}Pqnf8;+Lz_--l?M>a$;))^xm|IWB;H*JG^l$n>x8Iu8QDz_Jds*C6^NCzan7x5(ZgWJZ8Th(;CI zPLuQ1OaJ?AafKj3#OKE=C9>%un;fPhmpRZ>EXfHu!+=Kl9@zo_W&X1=?9S_nz5ie# zF*VfyWnhc?p$HTc>8aAOpd*u$lXEZ(fTANcX1Jar%-)IhH;8fiRIFsDo_%`ikf2&ujV^^Zt$FU*(~0 zAAfeUI7@`o7G)Ku+x`q#rjzM(u@1UL0T49*ZdFd*!r+ z9vv^!fxf91KUzI`U?T=qUGzfW)+r#6YvqTLeEthOBiCC-oGm`0s7BMShp0MHQOZ)- zs3JFicA}#b`|TUd>);h~m}WnZZ#J~37Ub)zXD5mcrA7bV98lQPKM@$}u6{oOu0AQE zUh5CyyGkyioxgc&Sf{7Rf1nZfw%%U$N`Awi8$bpxg91PhhxK0DtF&{OFRqvGYyq@- z{c(>z_%NiW+d#_s%P|RpMG)R9d_Ct#!$423q~?%4PXxpl$k-tY>PKZS^QKp=c>unO zyVqKK53Zkh(tGmGBnD0Eor`$ecYRGd&dh>zDNa5=EIny@nu%36#l7#7n)p4OBK{`8 z6*ltsKZELjUJ2rdyzs-_SR*^@XSZv3|4KQ&lE$9Ay#lp?_{x^JH!|hZ$~@JvJ8%hn zQOcKkY$(}9pC1*c!6+&b5m)ggDlUPJ>}#@noh#Gn-26tUduf^9Mdd zTjy{b<2r7aC(bF8elx{(kvX>LOOTT#-LYYD^?=lE!QeG3N4S$ux6)2le7_^pgF3XPYXt`M zG>9L|Lnf zG`p&G4a-?$jEGY5!Ih7QQ?^-Epuxc4)gC{1AHawj(uGV~nyS7L_a@*yNVld~Vq#}Yyz{Qc>L3R7h#Y5G;mIA?uKk*xjC(u$h?+kge-&-jgR+jDT`!`-Cj;P| zLS_;1_ZkNKL=GXd;qFfUn@*uf1=#JR2Nzy89mRi(=?WC&)g$n2URDV{a?dTqyPH7K zo7|t6UoqXtsg7D^vc6D4TEMC>GE$F?M@6df^5efgUsm$P=H+8D-;)wj4VlS~jfew+ zf_SI%?0uhm`LDCyn;E-(pj)kIf`5b|ShTLKW2Y~PGO1c@g%+1fi-|1YBw4gk9vv2s zP?3J$iDcs+b!oBJXK`PoWr&oXRgIOJ`u<4L`(?W9#F;pWJT&9 z6_*C4reh!zHL?jF;7v1rsT>Qr9%!xeUgzb3MALfYl_o)0S~^y(9a;_o@qJ`C27;J4 zq1v|JRs~JtLErn+soNC|3wy{%ohjbQEYxg(jwpPhYw?oi9$DpG+zu0y{ur-6KkHd{ z->8Q@@_bueYi-jq_AYy`(}knBY|*ED$)>e~_08E+e*GlNA1)j(if^B%B&IUcilSr2 zus_z_u(*9pn8`hE*sTqD|Mw5}X#@m*d4`SF4`1oqI8-UEGc?kmXvn9|zY0ch!ax)Q zjojMW`bBR?5X2#Z{lKdA)L0Fti~D)D?CoePQcc-2Dgy?pstTD^yLfhs;0@!aGixv` z_PFE;`=)*$0mss!BZFWp^2kF^clYln=HXxaWUh3P(kILRvCuZhOem1x0nR!68$%=wJ4CaAmp9;`nEWjgv>ZUbu`@5 zL;G!tmIYj0v;m+5_bgpNd}r>m)A5YBkUAfFRCIvsjJxIF9P@@D7|X!y>|2{)(&jJn zEadADYtA+zj~! z+=s=!^G#-;q!O5ywSWLlSUWO>Mi^<)Xke)^nQ?W`eL@O8=Wv-%uZb0jo_Da8cKlKi{Gen~)Xmk<$P`=9<=eRVLHHUz~UK&Li47<$)tc`*h$`#}yf1dBLg z+>YFGgGXgF8U$si2(B8^95hD)h1*nOB4ScxR362m*FJ2S$`#HnDSuDQ*zeW1Roe5r zL>@ToGnG`A`cFoKzmAG#o+vB*Rr6gVDa?0Ho=>)BjV1`m&52NbnwBs&okz6&1371s|fFw6PGx`y8&1LwvwBJ#Bpz8FSngP#Yp7FNSvm zp)RCir}c8N_ugK>z3#)vm4ol~f4T~ECt2DEMSQ+w`a9Sgil&+PlWgveC_byw-e6n) zGheYj@_LD-a!2V~0GeO4P!V-!`DWcMdNKuRf@E>tt1G3Nt#0f5UBvd2*ZSW(0V~WF zn*&1BZ|L;HuO2T-KdQxLyOO5a^v%RaWErQj8%(exuk3q+vvU!PPGG~}b?|52&`w$) z;5I9=a0DEio_+ zKG*-F=iWJ?q@w1|Z`-37k+-9zy~F%~lj56Nb-Jw%NI-UH6u#4apbVFivaR)gC5sf2 zi<@0v8;poz{BiL$3ZH?D$GnHSolrg*$YoF>16a2nFMy%611*&m`H-%5-?ayys$vf^ zZJY&ijHU5T%8-3CvGuj(rbgJlsngTu$8~7bHby6)Q$;Smk|$v;c1b28MMF_Xe0_+z zZ1&jk^u|x3-7HqhSC)DwBlWGb=rcAF0H#eDyTMAc{2a$O^M4 zGe35fMKV)NnQ^+GBJ&&t2=BsW@?_iYEHAya!&X0K08LKAE$?ALfkpM___}Mb{;hpT zGqsv+C5asL^ zq36-h|3htE&vhiQBgB(OYJbpxgM;6qn>Vr5yCB9pK8-+CKmqRev8kYo6deyeqp;nM z_YkBZf~xwNSzI9E{$WrB-yrMer-;`&ui&HEq4%RFKu3(-N&cax@BL-h z;&kCT*2kiXF8`OA=<@aT-qYNKj@a>MtY{w8G}d?72_5136@~BxTv@BRNR5vBchrOX zH)M!<1hHf)%gZgH24Pgx6WmExux+lZi=hjbbI>AUp+G&h^=}4*Q2UqHpK8R2;aLK( zjtBvm@8t|xq>#6AEID5j#3$)h$!_T*l8aPGDqm9~so+BLKR%bn<)Jqx@mZqUT|4pp zU*dqBon0gi(!L*_9AAi{&aV?u?K$ojv)fZ;8GuWI!Pe__;v(c;Kp2A=;E+L=8Yzsx z2?A09?L!TFuG@$3CjreGyrRfRVf<*wNMHp8fh?3%r0VI+L3N-?>|`B_uqDbnmj>;>hL!=42iGw?B`CPDL$%kx@csYmJL%P8OKNZ6xh zwSqfG{#wNe{77;ZlL8DKQn*M+JZBd%o^@b_+9BByAni}lsX8i3fl=hgAF?FScksAx zeiMH$DtsSVl3^=J_Q(99f1>-#&=4PDw1ql#~}^(_#!bWwUZbS0?)A zj+c#mxb9Ts=gUsL)Tuq~p)M<%r=#}>Klx=qYQ=xa)zW|0M?JK)@q4VrTEqS!A!3i;Rp+%fB~2 zKulYv_bDG7^t!rm-aykF@Nb-)2~eX2{2NIua8!|B!fH3!;4NJV9|pBpr~-Yc=ww%zXhfj#As#1vv` zqG@)1LOa|*BUjDpi780xGEzl+U!dL!bMo9oV8q}}IE5eEa_61qKyMO5BCCf?@*4Kr z5+9yAS859%(LS}PC@W)NU|6kcrSYI-MvcW6Lc|cPOM)WW|@*81Az?Fs<_)b z#jbDh-@2sZ^jYUmn?$o4&HwQSH$N!ytf_Wfgx@)e+hKuU;t&+Wh+};GlaUZKUqU$# zB2&qL-w+eq$pG7Oqp}Af=Kv|m0bB_C&~^f6b0tV*zS4P!gO9>`Foo%pj1-alGE~^j z6}12AluG+-ijMBEP#t&0DLax8*dA>}5mbKhgGjEHmKKAe^clk@>M?CgSma!UoD`P5 z(qk;n;LzX-yKsNJ3EXGM`DJ(qFE&5toZ%{`%+;k#mkxdUh%C)LX)1*3!{dV06u(|KHqe%)l3i(v9}__#hf|A>lm&y1{uduQMcfR_ zv7^iAu|W|OS?SWO4?POZ8OXry_XHx&*-Z8*$M_`Ns}PF&^&0C^w#fd0LKr-b8#N8y z`{vM6F&r=Sb9T*wlwH3Aj)-*-nQ z=m{IPK%dw-{&jqTeinvuO?P!1G?ny<`^((fL@9h@yfXbtwpWnH&8tBjsC0=mf_)`w~iFpVwV?xcp!P z%eQzKK^GMhvPp(sqJaEK>dv-3o#^yHIy?HW)36qta>3$Hywk|)5$PyVQQULMmc{J< z#S&YhvZ=(?F^J-nd#(n^@Uq72`>>)*(1a_JC6gofQ9RK_#ZNY?CI4Vxtl=^xt;YUc zq;msFQ8-*)%0vEIbV~Z<3q)qOL?b!8@c!}(`-xe@s|;Mz*XU7^Rf3;`8Ch6_=Hp8> zb0l`BFRCA6fIB9!|39+d`0$N^mSVY-LWP>#Qu_iXi2V?3wi3|i_VgIFrzLM8ND;>; zlh=kD)gV=y2vuI2;?qOy@S^1f>;MOJl_k=-;9y(f0Np2gx{r;FVq3;yKaM3X5!3&g zLO(j%UqPEsyUm+V{fb>bi3uyF(2SU4AU~8<1%6^2LeGz4=bS#F-F6r-E1Nr z_oW$Uxm{BH#n^#*@F>NrDT1-}uBkQ46CqUd{BC--yLud^LqMHPh_rB3%&EAmTYba- z_-|tYmB{f~WW@`B=76zJ_BO6#gk;DWY~GsZzpeE+--T4XI18Y@n;?O&Ttk34HNhl? zs~gtkIA6kE#`sZFa{Y=wZI?0)R%v|geZ~*g)q%hL2_Ex;&iVTj5O*rRE9TyKGtD&cISzoD_g3;lQvU21`QN$$n&)~=? zZa!>1m=BxK8yZYTw7^sgZobj^ELHVg7v<<1!%T~(|EsnicB+#+S@W%{JUKnN_~<4? z%%LImsMFAs$g!Zjk-+8ynzMRTu94KCGP*P+CJws{5soS&&$P>*RG0GSoQG?B(pDW-YUKpDr4^w_ zP0`|on<@2@{`>U_tgtiMl;s7;T+(?2Z_MRdVgzJ5s6XIk<0-tfr{5aP)<*FwyVnOH zpzuNKn9fUl*OxCJ3ywlNp}-FD7M%5CuIo25M9Fvoo0fbp9OYgq)_kyi`v9GgiXsLz zOMv(dsk24jj57gMX3zLX)3KpmzB986s(a!G{Kg)-`sL5dpY4ma2VTj{)m^_@0DsGdGgldo&hN_F+MeQ;A}$O1RKkHDWvh`==HD}6qL}w{I2HcDy`DUWWZb*dxlJs#m zK{RG!FEvZh$F)4D66azb^d5=dGz^mCpbol>$5cfSGAYnvJctUF z&O)KOLi%?m3qlGlohNJ1N6`=85jopuhi?Uww zboWz_);-Pc4Z{skOQXJS+*ajw=@8y@rE%A;<~361E(Ml!Lczt>EgWzQ$HLcs`S3+LAoAkL|9O^P|G=T787R)50(g!sl& z8Cl-}s`xBLl?Pe#t2cE;#fd8Bd%B3{_1{#*FeH#G=oy}pY)yh{S-;VR4s1k0!?<_` z>kwb!Oe&A=C2udo7F2OL1%fIV%l?)x-F$oy)hKF2``2jSxNua~kj7G#=qhhLg{K)goQ24`zG1g-n8Jl?tsb z-TJJ&w2iT;pWf*uFptFQDj zPUcXbfC5Ka!kx6?x|v5ek&lo{9hlpG@W1v++2Ry?{9LC2LX(iIpe@ zG6DN1nZtt{hx?E<1385q5Xk`&Gm&4GGEl__jhc{b2hj+y3^7K-9t-mZbacvT6G5OC z9tx8BWK?1zq^E(L2~>jd(pxp`IuMNpK1C^uU>_f!b09^nfl?V_I& z^Yk&i&3SA6%w(PYp=L>uKmc88Wk+Y*yWoz@e}p>wx?wjjX?)Ie6ag{!I&)!J3SQ>z)NuUn| zA@bnx@C!k5$bJPh5Yi6R^z=wT3#zMY0PTmsOhP*liE_&3LK7eCO0XIunrI;pkAou~ zbcJxlhBGRI{vNO!8AL0dM>fEipo@hn_x>$+YGdTb#*as4Xl{G(MQoDZ(XSj+lHi)m zhmr8oh(t+ zwDuPul`dW{AHL~reoJi~a7v6&M%oW_%L*;X%Ma?Uyyg|&+r9*XwPV#@oLtOA`h8Ga zR@@k7*xm5t*Dt!wb+-eOzGoAoWvVEl#1Z|mM_0a^+1T#LR_Si?@waDH6M9B5`g1l=_$HY|8ZrM8FQ6O&$J6Pj|*RTH3JtP_ZHTJQ6WmPDr z<1e~Jf2zRM>01^Iti-;(LvHgc1NXnFAOb43$J0hmoJZX}qLFyBV2X)lea~XIMjpLO z{_GL`reLcRK2!7RBPxg^6uzI}sS|!;mfNQrLLa;S zrVYXKS)gU!LjK?%p4j41>jJPd0if9f+7@A=a9fG8{k+RCRp^*$egl7!A zQZS-%HmwmL8kFm1Od->IK?ZmYc&QN)-y=Nz+?E4)pr{2Ksm+NAQ5CUh+LXaFF88Rs(PtgQ)N6Axb6!+tWEPDc4he5 z+tY@>97QMk=-pK2I*mDs9QQ&B3cl7&inRIOP_;R6vQ-H2!&ZmcUkuC&MXIS03&vvS zK6?2UpMpbKQKcML`oeJR(RrKKSC79RtlCs^+jspqq6)m{7I+q1)5T%@a?vO9$qf)fnst@vkiE3Ldurmr6}u78|2a}}`7-hS#s{>@wOKxAv*G59 zaK-nX9yU3#Q}!&C&j_5wukR9mZG6}D>EYQ~{3V(AK6`#X!|R^W>Kn zZ0%H}arD9$p$;Y*WI;njD}-X&jl?f6aG{X9Y4z2JN$n34SUXGf>v`!C%#A4sYxsN)SGIbb&*u>i?4E6_r4A_?vso8qG0O znNOE1%H(I_eRb+|xwq2~tMqr@{0Z)Pb5G;Z9?2ulXzUkxGr6yohS>_s(dqM7$i0S$ zht9$;2&nL_IH}d8-qxbX>!H^+WG?{zU^5yWBm=gakdF7UM?*DnlUtUcD&=?=Cr#Ab z_qp-$7v=9x4MOjoccwofY)N1xcL;;&WYFQAbNJdda*Dk=gU0pIjm_V;00()EVUX71O#mB`&!nZ;) zNFMx*UD#2ZBH)4b!_r8hQT!dN-=pz*xqJuZ@CV8IOi3sVo2_(b##2)Lv@E`8j4YwF z^t80}^wDIM7xxTHaRPNe3Ti3Gx4$uTCf9Ig;&kRfVb>3U#mIr?ro#U zQk0ZnlEm%@o~v-hrg=xjCvSZpl<|BTKcs?|P*|j1-|W<=hfO6Gj#O|_75Mu;C~Mgj z5;RuQxLRSro%muyDyK|e=Z3SKtj&H_7x#IL+}LyHdgSclKi{Lah~HQ?Zo>tW`7evNnCATY)#3L@E-ll0p|l0BWGvlx?lcXz|P`Tbu89~=(la_>23@3q&O z^O=5QNI)LR`S9?vcGK#$9~?)|76=GmS^Gm!jKc?4x*gW%jf*tA_U9&b8tYfGFZ3JA zGIW0^5;B={>7m?MlL@#C{-keE^7M*J(S@|@6J<@RGp9V!QDh6^yBsEX3Ioee0>>J7 z8AYr8Q9<%)oKMdhspPVul4TWh;S>Y{&j>((@l)FR$x;N3y6C#!BzQ;_pTi#-{KL_y zsQ4}K_c0KKA=Q3Z02@NA5mHMT9vfx66tPiC&$AzSNxB5ryAYOVk4}m++ML*@reo6_ zc%&AG{%Z}LVHta~$;f5`1}^<4(iJ-43^}@FV5Od)r!a+ysqmK|{CQ<}6)9?jM!Tyu z_j0?HZ7Te!1GVXsw}ssl03QgUp%>MQ3H0c7P8(9d?(n7C{fD|n$pvm=Ho844vEn-& zHwxU|Q2P3;trCxue*ntf1~9V!q2N0EPe5S+M8UxA_QCN??HVzM42Qh-JGmqXL5 z{R%`HM*>W&Bqb!EGW?hj$^vnT z2411L15|N#Sq9_=#o!SK!RXkM)>>H0w-j_|Qx6_#T>e<>>>ku)PmlZGix}B`t@v3} z`_@H;>4%;fYES~_zK<()`bJ5TbBgEvP|C08mND0W&(Z5AHKtRrZe@z352_>Fx8Z?$ zM%OThns!4cz#1DfYVT?r6Yl$v(<$z4!D<>OzqY2Ay&kvXPgAu*Kf{{y`&v;8BL`bn z-HvgQ_p`79d7Te-VaOn}-YFGsd9X6QjK zm`KhIU*5JF3ol`*aUXVwtzIG7?&qW3AQOy;xI~0KPTg+7;*&l#bQ(zTiT(HE$Xff8N#PLS|X*}L^4 zU#?05k30XonHsRCYYTD*G_ePRD0OON8naF$i6X5eF<4~2!ssZY!w|^EW58I`34lPR z>M>c#m5|-3S*!_H5=AW)HyjP5JR7kf-OuscbR~BPWqnM!$BzNZS6Ilf@YZ7LJYR|k zVr?V3WoWvyB#`SC!&?`3(wECr0nK0c0EG&<@^EBGQtl%_ojjE!6?4p)a2a_)pxwLJZkzuV7fXg?n?01P03 zOA^i$JkfwCE@|SC2EPJ5oz(0e#Hl!?dPx5S-Dfp zF1uqIZJ9ZrOvz^Q-l0;LM&K0%PZF5CdtsM~iCrX8%pKj^*|U^8ZRRO^A`BvrPcLIP z`-I=&Grzkq5=%aGt8ebvK{!JjIcxDIPG}$~O;kmcMdR^&n(elO z6u9^a3?8_SH-BT>{n)&F_y?j>l{!u_*D)!pwLuHDF707*)^&{NSB+(sm;^S^V8%4a z2hgmdaoi424em{b|6a(Y8Q5ZSA_R$(LfeT}Ks)N~4tw4!bvSDyo!fX{CPNAYg zOL_2EaRM<_!U`W|^^qHLYI6DJm23Q06Vovcc}fipLSg5_g5t%OGd_xGY4Ui*9FY#R z2QSsh=%jl_hprLqc17`+a?G#}d)t116aNBcT26qU3#4s@@~ONBb8n^>l?1l10Vnuh zo`exPG}uvqz;8QN=y(;_cd3PhGQf};#7%(02r&OY0oyjOF6S#i0kot5LBbaZ5n}8? z5D75EwTMDDbUvEsgmWEnPqNK{3l~+>)Z+|i<;?QDk z&K&Q@nvvoxp{c5?VmTdI`r2YS5zPS+lZXu%g_r_xh8SKvG!pLbP>pB`{d(hsL;Bjv z1cZHjGbw4B&&B4P`-d<9Cxrww6dT|T+MPAh$eI9ia;2vA)4PO~LbjFBrz+WZ*I3pF z2Jm%@cc#;0nXWy(VFMZnSI-=ZzT?m&JOwJcxDwO3Mr3d;0-ERNb`t%%5T!pAPXg1@ z50))KHB26U_59Rl6h}m9Dv7B!dAr*{S3O_3bn{ofp#QzWkrbe<;OrP&IUZ*TCLCoT z17a--c~aE-T+MYZrGGXmtYDV#Y#vw@!?@hH z&X;W>u3Ofjb#|%ONgb^mTC0UH)bp9=T1V?zt!MW zhvHgSp$@pXjo$~O>q9<)@u6*xz zsLrvHAXYhtuO>nnP}WeHKO%W6A)&ZiF?isB$%&GWuW4ipxZL|dM5A8j6!&h`EAHbD z*Vtxpjz3rke}W{1+%iV6Wq`OJ7r+Dh3b?1~Jhq^u0!XTA*F9Ari<|0OeE_JoP{*Hl zp-W5p|9meLK^O1U$_mI;kAOJ|oTK0N_xG>G-aY?3-rx0xk6ETV0iYMmZYTHzc$q1+ z@GQNMU2qb1Ooq>!hI_WQLC4u}F>q8qj}Z?|H~e6Dy&Byx`FkjQfn6ploSZ&fhCb*^ zczs)lWD+_}>DiOfkFw`Xn+~RLO6VtIQFR{_6u?v2rm=tv0AN&7^^1eY_4%yZqkC$n zcLsA6VUE53ipYg);E*(*z2Pz9m)!}|W!||ey`@NxRze&soiUIJgVl}ivzB%InI?b_ z(QC64DP-7>LE1ZW_32P&HqVw2CIiL%;&7O(sI2`<&y?9vWHfd=7TvOpmn@9V{Mpjo zW!U3m?+!RIzt+!Rf+`_dTb~gC%WbZQpVWIpNM9+9>)DMBtgUIwcq&QSk93(HTTjG( z`!U#dA%IFJCN=A;$!hpZK+UmOEtS}YG1zmtlG;b?y$bZG5MK(Y_c2svyaUT}!`w+{ zKaM)k4#|UM#ho}#*aNGaccmw3L;7?iY`8{%Qebb10br06ld$m}v}Uv11Z1t#6kbjl z7;Vxfr~=lt&8etSz#xxZ+oSV7TN_4m zI=|yfob+LD61{UZWgbl5qM7T?YkAq)A(&!_EH6f2{&t5_Y`{I3=_*JL>Ez`Wlpa=~ zJqc6JP~x02NmFT=k9%P^=3}PE-l`>_37zEGIlLC|$;dyi4{(1oN3<#1s+sO$4M*3I! zB={LmkTB0p2$1tc92_#Cnw{MjV~g*;f}AZ#TxjAL<|;8R^k*q9_khj^0S_aVD+72* zzj#^U2aBvr^8dlLCTQ~3`M^pplDDX775(#~BIU!jhbtcer$pvs!4k&c%}ZA3H&S}v(Z399 za*tG3&mC(1B`j{Hfb18FY(5E;ejC?e#iuJT zf5<5pe*a3KN)yHNz6|v5_O7wtu(3lW+M=PDu@A%8=)2g-j4Q2V1oJeh<1}vqfH%DZ zCfRlCR240?p=Grnzrj-i_+IQsYahN+QtD$gi$O2VqhY63{>>j{tfQYbE)y zHqog9C+!#DUePlhNdTRVAHdJh2NeRQ1!`)+^pUSjC`Lv?Q6WIl19Iu_MMbbW4k9sD zJJW9Ng(z*0Mto%F2Cp)34GkP&pT@@@!9~`uiB^C9{Bf6k2LWol5HkOlC2I1A2&eZ- z+r4oomV5Urdl|xiu)}9sHPna@(OVCqZ@wzzt1h5F9?$neO`wnBoD#9g^2*4*uS8Yh z4$2n(aevDP7q?Fq*;K=kqaii7v$V&1{5IQc!xB$$4P__LA zZ0jbmk4f@%~drsrVv3 zzJqxfK#ckbsZeH{fE5HaN+< z_f@b8Oeeu`q@KANu$SOeJeem@tw)&nq5bR2(SIrd|HcSp4cZ*DaY2vAcG!w2 zFG6?(Dw@id(}7R^FXkd_q7PVr@qhDPuq)6n&)+GCah`arA>GP+IQ&<%LjoYDAd|*^rUporEdh6FdqfC-ER7*3 zHg2suY!c+D0mCW!7kAq`tIyO6_%jby{~q@VfOL&c>N4%uO=o}^VwXgiv^^N$xIt-b zg)pbxuuRlgKiV$5FQLE}IVKkW4pELf_De%c(ae<-&me&IxV8B1{7DNTE_~}}>Q71< z64vHz5$2Rnz+NhAg2mZ0-U)*pm0f1V{46=q|K2&LygH-YX1fjV<_P% zd8MHNs@C$6K@A@EutEn(!0!VEr(oPZ;svQ2b@OuWz$!{gZaA+R7-%XQ(4-e(kS#Zg z?bb5$`SAS%zWtkrMfK*^u=CwgaL}rGst;}AT#NFi0KuJ1QPuk^a%6?_GoFB z1=FYXQW8?9`-!n1e#uH_j`*wy52v%p5032HBKAo1(~wWcr=;~&#sNwNe2~=?oK6$e zJ=#fsbK(OyF7OCsPFGvJ(mAs^`s1X3eKJ~XA1#4&?j_;FLJYFwh{Si$eS<|uGF%`Z zO9N)rM7Z{Fvbbs9{V4DJF5_)7>wLysZJ1(AzIgdv?1{e3`AQN>lob&h*eV!~63jS@ zJ9$4LfvsWpJC7cWmhGRufq1^UkH4Xcl(H5!O?UpJb)Rny1Fp7iTaq<7IypK#pe>zw zcPRcq`a1*eo&TgbKneB}KAf2WY)k{2;x_Q0kHJ2d#XJa~2Lxz9vPZ2#TL2q#V%A$C zgoy~?Ti~>7EyY_Ax*@63W$c#w#;}t}LoLPy5lV~)zBOTf(839Dwa`1_ge6pjZk6T0EFf|zo5-A!row&}G zJ7qVfLLfI}hdD^FU!naT&hnjG*HKpnT!)N!xKr}qE z|0_@1snr&=w&uFK(4h$f*x)I}v~a!_eAK9z^2!Pi3NI`DvPcE*AyH$}O$H?T=WUn8 zc}38QlPYFRhMlPc)mA2y8#*o493q`zKZQfr&ss{{HPJ2Ndh)cvAMkr5H38V;BmHOc z@HuT~WvVQj4Y@_7x)Gxl{CX6&ZXa(FCFg69^J}_$qU78~6xg+;idR#ok`vo}21R59} zP0#ZVp}A&Lp23>EBu$)gJ|FzlEN`SpI||_%t`8jncrGc=17T>R#&@A1Z=aqG^xd|X zH_flMwk_Fu$WAXdQBG>pFL@+p!rH`=)0tWUt=Xsfm#lYVKi)L^ohR}y^R(a3 z=g(E3vhp9>95%8)pIja2ba)|DE#2Ydk)Lloe$c7+M&-+V2=Me}&9_<;`!$e2MIhh| zh>ZZ+3M3$}>3Jipmy?<@F=GIEh2?cRlHqmpZ1iXPBN@N()co6rm4`d`V`*Zct_qEh zT_9eKDDan(QE1tM94FjPnz%JoP7)T*pOajhR=AnzfalR6y$+Bj%Mquiu=4vZytY@4_}?rxUuU z7dE?NtT!m-p5#Ew@}28SPVg^KN%%HjV!gxerw^J*c))B2*F!16R>_ zUX$0(Xz>1sN&BZU1y*RboVmS#Ueqkruw2LT^D44Z>Tt-|j%_kOx`u`q=#9J@E&x|v zzAXphr1g@aPjSSuud7PHX8deBvKkF}fME2+-@lt0#K;k|qNm^98GmUNjHiJ>sTz}( z^KE5FqRq`KsvhC`2>B}fd>sY19k-Sb_B#NqAuy|YgezzRn*Uw}NdD87zY=E5y4OAdpMw-AIf0w)OGpUM zf%ii6=iOG7{`V<3UpFRY6bIf-x^b$tQXx`uU`+U)cFSK59FB}!$^9lHL5x6Rj zncGfyr#RjQ8!p4<9aP(OLp9=7(g`y}RZQ6-4mSY;Ou`z69n-&Gi$9P+3xw0a|u<`)qqx88zwVt%-q z?=%M%zQEfOc*DEPPUK^OP!&JA)9H#E{;Pq>1R4Sz)qThH-*t;GKqUKGjQJe56!$Ks zP)C4JlBRhLsYPG|;@=_W3X%Tz6GVDG1P&{;M7W&1{R#}XyXo1Eh-PDTc!HF*iV{xv zZhQ;+me|n@7LIk%)c8El3tb^H?w`$YCK~Qz8$Mr`l?(ok50`{Bu<<_gGT__Ko;z3` z<3SO>A_}I!QBMxuXKY)Ur3j{tgbo&uiX{_6hNM8hHY>$bX@Ia{chwf%b8|x{LFi4k z9p}zck`?~5SH*CC!7m#-2G+&xt*wM_bM1fhsH9`ffRl#Ag-r}SJR*XEme!)G6KLK3 z3!Vg;j4l_@X*k-B%faqHI`>#nvwvtPXwzgjSbMjw zPWy*eWWr^O9Iur{UXDn3agzRuTH+TbOET+nh5guT(PnYiw0}+)$N0?ErCEa~|A6zk=Oi zAgOF12SSCxk&z>1w5_R0$DQGoe;cJYC+qhv$9!5L9l7$ls4WJtoKJ~#o{tNB3W1N^ z+=# z!fHFFTs8fgtn+K+&+i)w|Q%l(g{(m0#f2bLemq!3$ArFKKE-pWr$OJb!^iIdAcb+rAF4a~*9SFR+m7;&Uj_ zu$<}H@mk3n;TX(D#D=e47+Frx2q&-k)qe7F|6orK!GXbB6wr~Bd8w^*w30R?=*V;< zpYNC_5w|pVPfAPB|k^0yLC!}cvM zYL)etm!}NAPVdMuG9v}!J6^=$#=mt35ZLow3oP==*i26@p&Mm%_}z1AQgMH`IFn%bWWt?dBpc)HfE0r!3BqyAzWPb>4Y&n<|Jy7MA~(olRPsP>oB(o;*MRro;t$yi135AH$J+B$fVEbNd%OP zo(!ZJbfPpf#6pBQ{d!E5r1MqkdD=Tq#<9Enr4GQ#ox!y8wd&O*dlgGu@}mV7Fp;D|lN+Il7g=RWH4m;&eZi z?UCrgvOuGw`HA)Nbf)q1_R7Hjc>^ivJGmUu&aZ#KtXF3-0-#?wl53$v4s$0Jutx|t zieAZ)>8hlDKIwM_CvUVe-HCEu?#X;1ivjoM!^hCPN^AQE%FL|;KF*sDqDU!KaK3Gq zma{7@1T*=$gQioswRJLFB7!*O_!3x#hG`N z#%&yTcA9cV_xX@<2l%o$#Tp@zTY6V$x^5;*auc=d?1$JRD`Gv+}HDfks~ViheZ74TUm=oMx&78g5(avl{ggXb@=%N~SKty*PKx0$yv!hl);;A|ot{ z_IlOK*m8s!2lVt~z4QN2;E3oVhn!2xxa_n_Y%9bnHKs7Hz}s6WUJf)vM2HjpsQOl@=!8x^a15rmFiwXzS@^{6R3N)Vx>=BO~l+_iEY0 z!T*ib)G;bt^+CGa7DMZ?^Yjmi{JfVP)7G?P7rq6D5YuNu)E>IkV<;UMLP}FC2%ph; z#G*+^RQ^RBr&|e;kIOvvlnI}y8H)H#LRtjo<*k zXCu>4S2mOF4JmSkKpkyr zYrAL-cb7Lm#+BQT?%?nK4cu-afx^<`T-9t~bdu^)a|aeIqs z1-*AinQnz};YKUmdG4%mlnTKj12yOGi6k%bkRU4RAFTWWKVFz+IL*HjMFx|SqOt4B znVvxc*?_MZ?4VTQb<=JMC9ld^hd<>E(`b%nGQIreZ z7_~2v=;U}&5|omZf$6Psh{MkGKL+xf-=f86#{6K3%Eyh7TE>kSQkD|8_rnP>7f4dy zRMSqEe6L30oR&A4BT=Yo%^66ZIQUJ_t!#qg_)kcc(foTAFVeA!W&{1Jm#)8XA{!qc zd1JHYsG^;8Cf>{(#>p2HKqcX>9z#oi{W`!j3O$PVy*NU}@2TX6wODy2l(iNng@_fc_(wn81Yi5!8Q^Mid&Yt1&lbzcL znM@K8<0MP`){`Bi)bWhi8x>Ot3Z?@zkdkBZN=k2yaetFVe&JBJwigeTLO;dG6fa^O=EJT1%WNLE*&A*LmD)Xck<+H0$JAMD*# z{Ty^N?c;PhRT#H?zF|>dgPhXVOZ_{(YJ<*6xz)6aynlcq%c!?fQ@GQ=zQ0S0Jc(L% zz-XmXetLualldq$DG419&r*FJfLGm*ml%}t(8*t7^l9mYPoO*A!`AMnjkLGiA{px3 zBE(*^7Hnm`tD03?RF;%fWQd$BCvr{;ihjfn^7A>5P!IANHcIIe__+%f2@r9Saka?b87g{ywrueI2NqmP zG#-C=Umk+X!_6&b!17psz^*)Vt^EAb1OtH!?IqyM-10eA&cx$x0#c;C?V71xm!yit z8-BoETEdKGRB4Z!yE%7~KTw?}G&MJ-mb1G4@g>MuNd;HrnDULc&%nTkceKfdjX3cj z%kniFD}M+V2Pfg{SIYmrb<%1;8OYu$m;VFt@@o;zcO+d=evn0k0o?RfJrgsL4OL5{KQ%r~(#@r|Buan1zqoko zv4gD6a#b0*;mFO-xD@wT>zzwlko9EWNm?+9ol1A{bS>(+vjzt_Zyk1l^p>{+$NgFd z0vk8%&9ti`89^Y&)O6qh!S4)4+o)aAaXtJZ5;NS)9yx2D`59cW2#qa!5H;C|0F!-oh+%`SuL?o~tBuq{)&`)60D-Lo#_t6#!~-COVACaJ7&g$G~^ z1a_x(yx<*;m9@!@?4x!(<#@HO5TViqt4OFJ+}~cDX+<7gB!Vy|*E;gHm>CrJt>> zZAE3wqBCRaaKiA|3q5nPoJ#pLFwLbg|J_YiDE38B*VX8m3%AvNTEZ3ab4O}2x*&H$ znYMC+O)i_Tsa9QB-8&2lt3!)*XT?t00;Q|Ezn2G+t>IE%lf3(ca4wtqG)>ks_5I!5 zD{4A%s&c|g8-Th2?BBp<)rijml1%i9fGY=I`p=-B2`xWb6^lN~u9xw&a2I|mF~P3h zJ0l3}yvZ_ayE2$_F|EEAuD}>o*g@J;|nnVf<-{Beqe;5RB2| z$ll{ZtLuazfAc~UOX~s&<4g7spUG7jWXx2%kM!@G$Re=gDH0G%-9(0lUvhlW$%RE> zkU}U#zpZvLl+piM`o7SWtb&r#Ym_yxYNr=G1MdZEnxw~!c6adApZ@;y$-gAX$HKCI-~%=m zX#zMLjQRSc6wKFG4?@IPCoAZZnr#DCNb7e9WXQ@7Z35ohN4yX0N)-Ww=vfPUk z&PL}a4-e@|+_jbvh!zOK^n+ajY$ZSNW)&N(8VKLTDNvew-b!FQBi(amSZX1%N&P{3(g>=q>uM*=22qFzmL6 z!rJuA&1H14qPhV766Coz78uaIg9;EtE z5I2iE7&3=O^4mJ$c7+ys)r4g-BSdi&{bdoDvfIh%`)?(Egm>){hRQ%G%7nSTGx>L2 zLS`3@yb`YCVlP}LOR=Bf3xAI!emrI5PGy-Q@=6xTb93x`< zpy177EWkUkJ1p@}zJ=Yr0v0l3OUp3v@4H{|em77Zf1LDrUb;N=M3m!dzPZ=x{qqTy zPpLVqr=IGMXFHno&oT_y7UY3~zepZmruO3H44mAmEsX3?m!IB$9#Zn0;`RM`=Mj2y z5M1{je%HCV*`Ql+T)@~^Md{_)mOp_rb?zG-Jj#4**88_Im!IG4VrR*Om(v=ECwv8`b0`S}T7U0r#4H?E)+f`$N~ z-~d_(NgY~k>D5ISQ6UY9{rR#s>ARY=5gN9MXyped~aur>A56! zXtSVHmhZo{-F>$ct*;{A=})$?2NI-|#ZJNHT}O3EC;P|WH;v|bb_-YM z`7)u{MV@-@rO#-ORO@8S&F*Fe-$^D**G8Z7jty_zEyZ5j`&R^8)8pryFrtq4U4iSU z?ftv&Ea5Ow3`G`CF9pSA&pt-V->ay`7{Vg5eJWIVPT;?Wsydvwyv&;wRJ>gB?~ww zLBqltev&cEhY9a!z`DR4-5gtSPyD7CUbujPC&YGWpP4XhzDrG5?~UT!aUK2TvsPDr z5Ojn@r~;*QS!(|DE;vaS<*`Q5TGP1uf4WF2-qo0bOLM`PkYQt0_X3x_%TPmQ00)t{Is-dkbenudnnp&^is6vZ3pw9P1e(23H7{Y21|`tqXZ+~>Tyq9vgl5-CAx zE&pc@T#d$az$}rMl|`7JpC=aeCuU+|0>yvJtHwman(^w|>2KYl)zfj?p$oTNiAnVfy6o)isHv!kd3rX>!af7y1v~;m zOCB`*ufww_{Bcw6rVj4-tbTv95hS>pCa0h4jsl~ohKKrIksLSf(v*SyI|vvi`vTIm ziH&NXA-LI1wfT5S6n4}NS(l&mg~Yg-g+F$uJW20u??fpa!?gM;boOdFqGNgM{X(VI zJv{tiVo8RkJ)w*zCu{A<$w^0^9P@kS2K_pggS-YdizPhyMJZ4h1qEfi9M=_OG89!-!djm9qwHI)Aj*Ouf?zVXfE;syCVhci5+V~bb_)F_u1uk7 zcbtTcXUi8-;nvA@iGV)Gg}2RDFMAhG4n|{17{!&I_eNhEUyxr?D8Fk+?oS-JSv3ew z>EbZDak1=MOto65w@PuB#Ov+IFI#+x1#^h{2};(c&z_gy+WJCzO%8H9c1kM_rb zXgY|5;jOoq=$O#CF_7cAnjOxthMDyY~Gf zlJisJVOzPNfl@<6Cx{tgIr2fDwN{~Dg8$U8cGGR`dV|!3J~R_eQeNns8;PaUvc%I46TS7GT6IlCu3nSkz~)x2i&({%Z=zmaAMO3z z&&59f3Bpd-V3D{arih-(wv0=Bs8$zT{dnN4^YALk2b{7PMj_wZPk@N;(8$Y5Pfrfo z3BZehfsHL8FOLLzm-dVKtf^RD2bwJ4!b#!(z&nW zjev-Q*ljb6*vsU;>g+pnH<;<<>8Y71HKR!xKSeA>l!kh4b=Bn(vE_>QvrvLOyHnod zgYlHok!wxRrN)(FjMB8p6v;!N2Ugr0Y0M+en2=3DJBm$oKj|$Qr&RSm;9k0THh&uQ z0J%eHXgXlC45LU{1Ofgpcd}fpNV*In4T>637*UTPh1c1x5=VPp`{TxHP-QUBHL5#5 z|NO@KZjh?G^+shJK1UbzdcMY%p*0iP&c;ZuD5w1t8MC1`O2)PSDBXvXo|&Pw$i|2` zJ^22g3?@^;hEr2oAgiJ%L+P`OdC5Wt6eVPO8aw&t7#~$g92pvm=h}aN}wsM}5>a zF+<8n=V)Bw{)v+g!Go(hP5e8%pyE3Fo9=mgDB@G^PbwrR!|s zhoVr~DB*7x`bPeqTq;Y+il6mq+fLt-TTcAC6DYp z;w-!Irj9S1_}W1dU3dAX#Pf`Y6QotBfu@NN{FBy=(KIP+77<#SsDE2wF~dk1&f+`@v1z5Q|{A&>+{>9g_~ zK{`7PSR>Xn|R@_kWyhXG9lRwBQ_{a8@f(P_3=DjS<@jFb{`q-UeLw2 zwkfZgJF#zDiWU`>?{YeNEMiURD5T^4Tj5qc=W`HRb;|df`SQ&m}Jej zl(H64t;EshqvtI(SR4+1y>1fqsej*=7DjcmOiH?aWKCoiSneiQd;^3+teEAiD zs=c<>W)aoRf_`}hy|of`zp@;wQZxXMxY9n8;AsC(rDmnlwsQ+{i~c`atIxcm=vhkA zE-o&ME*l}jy-0$>`BE_^Q}mOYW#fCUW@cuq2M19gjE((zrTOGutHt_naQo%n+dei| z0?oSs3!eE1l!g7-v+$~$VYHawmdF5E&!2PbV;NzCSB1o9P2Dk`|;WI&;)0u<#y zbtstpq}Tgp`|Zy_%!mT85FWg|`1Nj_h>-0djV&^&jy}F{B@!7jn}i-har5%3YG{~$ zZEetH0nw-6?5vG{Pxh(SWn+V`>7qO1jM|da^ip`H;@{;tj%}RI#xa$%BIC+aOLPm{ zwRE9_!wuK+i>2(@8$sq|++x3X^+!!e-tR_N9gYuUMqrc3Co*O^0!#pS<&jvIX5D2L=XyTn+7C+6=7Zt7q-?PwaP3+`DYAJpT-G-cG5Am4J_D z{RKQ!cfby%sM@4JYYJliq)w{ZzrurTfL1NjyVaVNc`w&DYGmhTS8QwzceDnw(4N<; zztSxpm);Y&#qs#$`8%ZUPTS}~#H>j>hrHx=Ey%@^vW(lIQyi7OM^bm1Y)0QFJSeST zc?-nY*@C+7)}b)vnlZ*p(+?h1<4uGx+ZA~z;xZCrY~|L#>IxizO#MkrZ~ zW{4(}uhQs?JJF`|>E+|j33ieNr~f#&afSO=y-dlI)!!BqsoBClgjq75HU|=zwX0XZ z-T=#E8sHHJ#HdbBW9U`4LM*qsaiw7;t1}kfhs9URw z`^Mod66N6erf_{|q3`-SShVI~PKxy56jmzKXrxv;;5~)bvn>IgB~2KrZuQd`?K^1E zPxaQ@5|K%@&L}?aJOt3`Kl~`X-0pE7mzPSJ5>9`o$}VyHLc`!}z2JMF*-;M^BG#5Q zniRYCkI>>bG@4Rb>o8W(I}Q|7h)XN_vnTj4THC0&)pD7~7zPmAW&}=6Nhs^IyeXZU zFsqcM&eh~o(XbB7&u>UNeno1 z0&1qFR5ZTvC5(R|r}r;pDYS25>O&49`Y-%yq?aH6{7Pd^e-b2Reb$O5p+)|gkZ;6u zwp(jU;2TC$#de==EB)^*Zsq2ahuM9!PidJdMQW6!uBDG9Vn(GvI)S{*uDuL3=2Uu$ z`|QTr?jJX-%-f?=2l2L*P&Y{$ygbnYOokt^vCMwP>{wLdE&l6%o5`B)yBzn;f^`-L z{rn3)E+b!3>8pN7R?WKpz$#27*Q(E*SWr>r{FdF(3dyOEMyHTJ!SP2UA}dQ(p*es` zc)9xg%<)H*Paf~a0V#d-v{Ig`yK$j9`X-hI?vt#%JQWX5G9Z~ZwH<=!X&HI>jmAX> zp_{KW2P&ls7nD7J|6+pnJb+9M4h;Mn9gY3<>y;}l3xH2&Z#(QfjM*Ya<8&+grl)b_ z<>kRvo*-8U%8|d|!hv%;Xt02+1T{6&fu_yF!|03*B9NQi+}is0zc$MVj8HNXq%+Ld zgak1sCk`qpS6^H$u)^x<0&N;9b|~*xv5vmF<7sUrGt!;Jm@&?q-e>5$FHSdZY+MCn z$rxU};>LrZ6gBaf8hhL6jA~@>73@K}AW=Pbr!~8@bm-)QWm=rP`i^W9@f5B4cXhx} zGoQOlk%Fo8kjU3zO#G=zqqZT~J8jHW%djroAbTN^1wA);OtGJVa{_@`iGIbxS~ff- z8mk){q2Y%9UIRl=X~>U{&rd$GX)5|c&Og|-g#=RC(LSUq*X?~UFdzY81AW5K!&~&p zJ9wuc41=Ga|I_KJ7+7!xnMnf0zk~isb^6iqajf|Fcli_X+1an5(|{QSM@mZSdh(A1 zl&j3l%%Flf8im=~-yeE@dUzGw1B$n&xA*ykG#Thl4Qvi3w!Az)r13eDf=?Hm;DEH* z6PQ1nACBAR0n}VfObm!)C&tG=e!ZYIWOIj9Ra2X9uuYZS*QCdO3ubP&PqPZFw;#HK zs@4;WJ+;5s>cgk_PDpk&sU57HN=f z>FzEOknZj-De3O+?s|vsIpZJ4(aVi}_Fj8Mqb@i32@F3pti!#1t~^eyL~uP}V&MMw zuIZxVrI#nSIdSR&>wM$!s0078`GJ8nqkI4NY^l$P1YG~}Df}RS-gO;#CiA>B7b%bD z$r0}#94xT9J9W!BIB)CF@OQR{A-}Pc9Y}U_I5yMC<5@c=LKXpiCo1B(@~c3|pm(DGD}_WAj;ak$#S=H&VJ^>=T2=ILOD++6tvc_ZAV>2h3OL*Y#~ zqqQ%!^^2d2Qs!oZiam})B$9oez(|+^uG1y3v#ee>0Q7UR?YwIai)hA;*peAjm zTBB!XyQb+xfkw-N{zh5eETy2Z^Is4Toamp+F3$58c4zn0g1-o*Xi~14)YMO2s%C$sH?6%1@sQZ zuU|t{i^Qp7*S5BRrw9xH{a;@&e-UAT+`I<7?Qh8yeE}&&J-`(I?yzd~7EmsdSdHHS zqI=KMQu_M30dP|{1E>Rn@#4RK{}N6_tvmU14Bq4*=z(g$`U1MjVK`!UAsw9z=4$wQ z+jWEKw&?zlyywo2X@APhm4Pd{fb))S2l7inmgA6 zO#}HfIO$xD&%Y|R*3lziA7Bj34*C-pIID}&L`sEntyl-naHs!$^Y z+MNkTmpdjfEZwj>FI<3_j&OMs#Q9tkPy1!_#7kTuV+OUc4 zkcpK?7O_*Cz|WIs=g9rW(mOhb#a{<^PhC(ttvmRhg7pb3H}jQ;O%mYSYFh8}tI1_R zqhM#Ba{TO}6eufJHiL@mRZj>d<|Ac@2N|Pa^R7-dBY3{22gO!04|EZyhQ`Jy6cG`t zt0dbWl@!!(S4f>kjV_jJX6NcxcTmZ~W@Hts&~axC(=@JVnVF+(H^L5L>*_f5^%DhB z5^HKWUiWAPw^5%dfG!_6puhbimpKAFhK7MG6Ikd|gF69C=a?P#m1`|P`0+*`$k`zS zxj~kaa2$AFG|@!UWoOnFPW>VFpb&9cH=9W}d7!|72bk7iKI{CKh~tKDdYtmiXPzi_ z(Gwa7fAaCC;Cqk0BPI!(nIh5K%S3Eiy3ykp5u*#Y21p>J&+sZ2)+UU^`gpTTXveF}UD!0`|@U<6WRAV8_Wc=yJ~#|MD@;57nJ zvoTPQeE`wf;-Od|jxtgcj%g!=L0#J$?B8B1+1Z}6DNl*&AP8R>0x8#D@Q{R0Pn;WX zFII<7PFIKJ6{82OAKErQcRJP*K4MAWo8J2&8n6H3Mm%I`93;3XZ&kvXc6ztx0`FdV zrh(PWgQy!R518XPN`a$I>%HE}WLX8d8=a)f9CuVikEggHbW*2wcPB9Fs#5rPGSzr0 zO1ck`q{+PK$H(%D1}LN@$Xz8+V*k!2r*LaquJ#?)K8`TR<`w^mJLnBMZ93YL@02C5 zu-rXf=_|gEPfi{H-wqCY{*%HbaNq&482XR5rPQAh5D*%U8xN9zJW*4*Brn4?1X#F% z%DTJKCJ2uAV)Y8BU@;Mp?#0IH5iD6s5G7+x`;Xfwxn;w)&ou?ZZ*N7v?5~IRrPaO zN1}!HKP{POOPMEzrbnMSU!KF>wgs#`{V~WYKdkQiZo1J8PVtR3?h{+)XQ%1s=l4#n ztT@Qnf`1TG2f>Pgkw>hAJG;6(r?sL{^dL=OA5Y-c7%5V#-Kiu_wK|`78IFRV6Sbfl zjrgXtf_P;ZNlF^2l>~r)aAMu3yUu6PQ4pl0M^49rapj@7+199^*nd_(Qf$k4Egs$* z8yXt^_(jm7vvM7^GzB`rd}TUiI+ca9ntO-pV2FlhhJ7%vu{anXi4Ynpm56qNPR(&qJsCKV;w@$?(n{c3*B=BEQP&p&&9aY;)>lE& zV&gQDxS77VwqYNm5Aq3rP>t7PJ2J1A{z$i%T>tj^YVg;I@wL8q?YOX-+$}S~#F5CB zmX5vV%JFif!RhI8R)r5JOga_`j@C$B3wX(eRW_vW55Uw02_kfW$+`ahj|mw> z5b0z}Ya+bUK0FYJPc6_Mj!q0gQbm&7GM4)JFPF%VeVu9^hKO257?&FZn@mZ-YJsOW z-f>kq(AyYlsY6QUi^85}4LN2U`Qj;a@OJwq z_cNtp^U}|^2n5|KE!1f13waX+x}X8c$b8|3ki?a^b-BqaUb_FN`*@F68nGM}o;0wT zRcBy0#clsZou;_JJb(Yx)f$H_eE6ZRf_fWb12*Cj8*)8dwoJHe#$k6~(bEi%Xrxtp z|Es+%BrmV%H}#6ALPHu_pD;wxYI;Kvyt;fm$-iMc!+@r3h$lQW0PW|5Z<62v8gF92 zX=N+40C{M}@Lg_MpvPJVQw}JaV1Wl9OhQm8fAA3Eh5unNI^I$zjQ&gkCS@a5TmZm< z3MncI4O%V$TG?JrsUbj)PbD+!{~RFW+P!iGF4Z=6cHakwXm?Y7=H&CG=Ep5j{2|u2 z9x|yVy2T3?3yE#vh1B8SMQ4qJT#{H@h9|;$@I%a%>z9WBv!&_5bJ=Y54%@V)8%Psl zg1yG+ni93%Q-&Js9gjHQCySlr|2?YmSow0}g-IgoX!R>menEaJs{?62W&bV0^`6~K zVk$o1HrE=#Ge#U*`09RndG0NvDOsw0r%A6_`VOBGabEU2J{@hz2fgus_(PRmV1{95 zXJ57Iu2ct+1Yl4xVGyyZUxSSx;+Fy`1i*S3{8VvLl(n_Bv$L~$mX_g)1r`@$-5{z-XIJHhseG11W4di1rY1t!m++t^PU z50=UvD}PP*s^56O7Pj1TW`|^SpMNJqY&=U`GMyhJ$15bWFED7p!skiq%`6(wi5&hyg910gn?96Jx8I3_nCoe*B?cX(j! z^cVO1JdKIk#*Ss?kvK+{g?jHtRGP&tzYR%0(|WM6^d?U!zCHfW>x-FaT|g0~{6N$B z;Q<>wEF&X|QGo}Gra{13LjzRWX(%zOSeE~9>SV#J^Z)$6SMwR*DMCp}`Hem0qYp{+ zXL%Y78jN?Z1cY~hD$Xx0lSWH7@@S^5{YpF#1Pi4S)rIS!x%mLaf^M)Xmy?rQTwHuD zvm+zNKO>}H0Yk8V1+M5j!PFVd1MQi7E|vX$o^O6fX)@=}+*YAEPED$zIDHp9%X=TA zZS!+Cjz530j5JYW)#xOkO~MHbl6i9d%s-pm9Gtf&Lwoudk{(PLd^Dux3sQr_p5plx zQtysOjor@<%xAyyqU_H^>U-p|R=(7jY@r)kAIO9j4p2DIV`3q`JMOvR^<1xM8udc2 ztEiNqi&juh5FhpSAsjFLnk|xR)wwjsPEVpS2dpfeASB?ZFB8>+J_968v{$mLZCJ$d zGsWce^!mY0S5n0`p=)*NdqpKA{cur6R-t)a39sCWT>m#S{8UtqA^20G!>tT;cW^?>Yef$(?|ymhnL~9G%lGq4ZOa|9C4{^_U1#>LE~7J< z;}}Y4a;C_{1rz8k$8qzOuZz=tFS4z0;%k$yD9>qbtnQlsKsPE(7oR)?N5M;t@bv>O z3Tw=KK#H{I$flhrnTS2SPIi>0{0Am7YR;+Ron%l9MkT)GcVuoG-0jyHhaC$l$gK8e zME+Jk*qRSqA4wz`If5p)VTTDwXf#$~j%xY^iUm z+@H|DUEvW}YQtZ{8|sbPA|APMj9e!&y2iGIqkne@9oWBdy7`lrD41!jG00|5%yZ(T zMbO;OD6?1o@j`kcill35Y=NRLN15*I^0a%Y3w6*H6+tblT!<`QzJyUM@;&@EW?^H+ zSowYyfQqyny02?;!f4K=E^coNhK-z8%>tOIhldtGp1E{f36@<( zrlxG>)5Y}LX|+}}i33K7HN>xtz`J+vfFC|H&%16f+AYz*_oxH}A7Fx3e^w~ZGym%Q z27Af%5FoFdAu8pFk$fjXwqVFW;bED)h#^lM01D@xM6_@SjCi) zfiy1JEy^f0_mK3ykEaK%9J^y#%Ib#J8-9UR#NdF0zdV+V^!DLeXwn^Tbpm;?PA|`< ze0-&kzG}8y#l9R)givZg`{{ zvyTq{-th{tbsb5L;sg^z6Zajn;ibDt*heuWbBj`H9tY$xS~tm2>D6!Jj+1yC(+RbJ zvoS&c4aK*!7ai+IyuyP;`r+c(-j(uH{QBCuY2`)=+nH;EmAZotB-;K$?3XW7gg2)e z@sTC*>KYsYBMG>7C(5cKIvM&`*=|l7c5aW@)*g2lYgy2{+cTPoIOMknyQ2Wi?fs-> zKK)c(Uf$l>Ssy>Sy=^l2{pyW`71~=!GA?K}H8m~mFBez}*<+`Bd6}#rQ_|hT!@uH9 z;w2>gzanbzQ;iOo=;$bkebONVQ!qw?u`SsJS6__N?{Rj++-h;U=ykn=pG~pEo*7vH z3ZU$7N|da+{i-?73eN3MSDDM#8lI9oeX@rXEKkhQ6>aC5o7l7JbB5+e-gTPHPmM@B zg*qFcb9fxRw=6!4lA-{lkCe${Q8%RS!H(o9&1t)p%Z1Te2!a2&t9Lk>Stu-aT#!4B`8B`yW|ha>vu##KJL8nMz^wbo9m z70A!imD}EV-R&=$d^j|wiDwOA{XVvLS${Y8yF5W5MI+KQh)}Vi8-+m~!MGuO){RDC zegN^v>=%0-YOrEpODtyY+*SSEynz`#G(5Xt;|&l8dj2-m^P9V218&kAeUY!WinUFLVD^@jk=d;16Z2ySFW?as zh}XNk{INZhY#4K|t)(S~CgS4~Yz4=pMc9lpzH=y31hg4O*ts#_7I;d+`fq9EZ1q%7 zp3`6M0;ct>1}|V(2iIw$WVL#{J%{g_;h&^IT%4D0g@RS zhPbq$FZ(Ev4%ZKBT>nL|jLFaM_?t(fn%T z;J7x|r$a`{l2LiiT1w=_G0gDYbKw$BpZ_5yHnHbV34TRob6{A zprGBf#DlDvSoHDyBVxG+_}q3LOjeY@#wnXz;|(k<=pZO%>rhCb48H-cY2`S(wfL4D zcip00D0Ag6CB5A0EHyotmXV9;(((_X)y>X!A+j-=?je5Fz64+puybkOwa)m@9*CV{Hpd z3@l&~_xOY5+dR2=>y;FgjO=)2@wh^+c)iwAj|A=dHd9CLQ}aTZ&hoC=EH|4&t?~+T ziLfQ)s&IG%>TgcxW-?cgw+H?ScMS}WQvMSRk`s9GPJeJb?F~IS@0pj=xL?Bu)hjN} z#D1wn&Cvg+HD~eKH2!wg%PGeVMp%R?T3J-=d4eBJSHHynKeGT$BvE6~5^a!Uf=B8q= zCEGxeJ!XZ>ONdd4x$=dg>cqTEr)76)kSl8r#4ZBpol3U;^$FpyftZorB&vcqoib`R zHgs!i>$3!*e+6fb2%QTIyIPPd%F?c$WXW#^0HhhK79%S%PYM*ZyO%s47>diQY;#0!32QBxSYH9wWH_KVA7cr6}cz97JKTnen8Z$Q>-*F`))?j z--OK%O>Se$ywvq@$TD$j(${Mb^I83$kb&GM$ItlT!&mjQZYje!W8XSDMxxKMsqC(9 z&GSo&Itz45wnk__IR4916C|5pn{C;8TT?R?r=pCr+$lv7hQk_S zUYa4R;_yb8^!V~{Iy672ORT4NoV=R45R1c5B0R6U7{*K2>yK<&060Y9;3U9!s~8;T zcC7ySMS;J6Wbk+MZwx@)iI3+%3cuRK-X5Er9Evg3CFkW#ZESP}eb8`c08ct;ii&YA zDQb2+CJbz6?hi_>%54R(rZ%aJAEx&aM1GNZITqy=*9E)pg3?kdX6EuGW5CM>uKI@m zehIJVAV89RV*<|;pi8k_q2}y(trlbqepVN#fXOXR zEjcPjM$Q!dJH*0K;zeYl!}{O1NkB&dv&s4v-e+$$C)Zo#9Eo;_L*DkhERZ@mRB;3G zYq~m0H>E>Umw|$tE#zuJ@K<#q1n9??ONB4taXbID#*T)JJ5*@#8bPg`EDxzIaN5jl zrY;B&&)Orl5zl%{E&cTGyqzLVmkpFHJ3(=C03w24Q)U_$M|8h8A^{If{qA|k561ue zIixPX%$npQOF;aIhp>np0riC9Y@-J{64Dh$BF5V8s-H61TG5FB`Ia&oSSB_<{e`P< ztRLgFfbjQs0RheHTYIA3x+EW`KVo2PRsFatg0-E=W_#DmMvL7dB;;gr&u#v{cpe0DE}lhYhpADarM^b3ID-V8dF_vsl>Pwu zA{Fw3K*i|-oDN{8vj&XgPEH$*S#dd+oyo1NtUCYwq&K&V(?D5YNJLp_WxhPL4C=w; zPWv0aqb&QOp~s9M=pkJY*(*}@;YBP|rxX&jv14q^Kdn5U$}3o(-}s1>QuOnN5kWqI zvs`b$V?|LzX()QLE$GXVgwdh3#oP;}VgVwjgf&nn8`+#lA_D%wZ?R6oSgX}g%axZe z-eIsm#PW_!)pa+jq}3)dNaMYWvJ>ahE&@I=08y&(;EExjp;%_-<>j&2E@J4o9rIVm zP-#I~+!-A0XgLi#e9)}G@YXaLrKIOYNSEy!H@0Rr>)fn82f&9+23P#%BnE4xEQ|gS zMWtOOAV=p)++-B5)E~bX(wAV-DiUcvvMZGlhUVr{YCbP^*QkxQ4-UqzOdsX^E(q%H zYBFP-VbS}>)ghd<$ZiiSPFa)KE&H`Z*kW>8L@8DnbjShnjf{+XF1Yprtxd-+R>|(1 z(^9A{W9puZ4Y0iQaGgy^2N+LBQ$^UvpN^04!73S$fdBhym;(SL4TM*c`#?QTHNZrM z^23Br8|w52JQw`~uaLe56*X&iKh0;dyj_Z>$d~SfekLHu19CCjO8c%Eaz7m(-?s=v zGEq(s*9=Wu&anxJZ@sI0sb>(|!p#F#U~yC>e=A+veQ=>Jm>WBcT==P4)UiCBeEbZJ z!=c9`>MAEf+IDIauZE1*#p(6bjqUZ^{*(3v*=}unv!~6`BP zub+T0P>%ok19?CgSs6(pcBU(#gelzSl_CMOv9i%$;Ww<@%Bq}rME&$xtrhTq$4r3+ z&&2Py2CiO)#o8OB5b~=rNK^e-Pk*^%v;VjKPh+9Obrp zZ2_WcphQkfGbog;vSDx{c@jk$7Mvt0Hd^tb(N~%TUA$PCkg5Azd{h-L*z$L*JKepi z+gUg2w%WJ3>RPzfgX3L6H#?~jGBNjOhpdn>-#&$f(~}}-aQ5bo$DkKT5(u;sU;dk1 z?9Z`PvbA;0t}P8%^+rk2Oi`d?7#J89$sR+&8z&6^B>HKZmT$2I@cfNNpWFT&T(PrH zvsq12EH3huSJYlMN(F7-;W=vao0$8zT`I3QoCK1W&*7ypNNaY8{Vd z4`(2FNS#RIVQ2?gP=6Jz$eQUJ*ioF^yH6p=4W4hqQ7V$x{;8Z!LWv9wa1*IKfd<`Yn0)AqDRzU+% zu$VRL*_aLxp(9-(A>vIYqHe(9oICetRp#S1Ai6g%0pLM`F%fWXfDWdk-w5rm^g*NBy_3P}X@;eX(08en=+BhZ?B+Ih=b~9rirP~mE3N$bB~}LW)xkqa90O5s zV#t`3!|GoLzgc|CDlLU{a#DkWYAz_VrXu;5x;TU<0^M|WMt$N-v@bPBJF!ZGUA4PCGWXVx1V6GPW=cBGUk2Yq1 zs8NLSH9g_78D?FMkc5Le05rjO7yo!JcWs@{At^8tcTk+@VxE^I>Y9c#e4zJmxyp}x zc(08p06UV3Y^qy8OzZqB_5piRu0I8gWuqziOW8a|m->G_a9M40M`31WU)Nk@^i!VgPPOS=D$Xb; zuh&*Y@C+n)!{0g*za0IB>F?p{*JaH4e1=%Q^+4=tu)&0HQ|`3hA&!i~Qb{aW_5`h~ zt9yTSEN$gU^ngss=6cKJd3%f?p1?VTtZ4yZmz{f=K#&*(HLZU>`Y9bJ3Hvb z@_0LA+Hd@>l!&KE=}I$u?3Zd$xD=+mhK3~A?Ra{68bD~BHz@zx13Uo^jW{|$F#>+H za{p0`glupD>Ed-^S)xR=QRBZdG0YT3ZT*l`hh?2(y~|t~s(5R(QMGtI4q@eHM#5Cw z=&yTIV&>E-B8@;#h1?QfM>N~tTc>n)T44#A&%Yztf_4w|Eps&&lmZ$}7z_bMP8X(p zvJM{bce%Kq2-Q3cIk3)0D22c`uLJ4mez$eQ_i&CbgU9&>*$H`@q250&$FBDH)<1tX zTir#(Q=f=lK=YG_2Vqg$JxtA~@XRv7(vebijjt8^gOObEo@n%PT+u1ri3h5&DULsp z+KS2BnNZZQoenLIZm|WwkoQfz)M+}rIrgx}@(_iypU83RF|v)eSbl)sfYYAYyC)dASkdOY=fCyRqcYaP=al&6P&gk+ym`ZzkM8 z(i9Bsi1ohLdA_F?F>SDU%76Pwd`Ofr_HrqBJDN_##4b@x-snDY8>z&7n|LWgV#LGEU?_ZwbAyn2kJRE%=;EEVQ z{40tc9AjW#0O_?NbevS>4d77=%i{9t>fc!vs0GT!VlU}nZlEMRqLFB0MC+~p9K&Wn zTROBhvbW;Y*y`r&4Cq%@%5%Ve_wnhe2Lc63Ob>B-dYTK=u^cNPM+Q-ke$j8B*gD2L zL)JqU?FEoe4~4x=k*!jUX3W=Kga>@ zp1vj)Uz*36O@>_AKaC-;8&cQ6>($SlSmPIpx8DcpM4lQ^$Lz_b6R=y~{HbVo??3cg zX-+4roTQBeS%O;gJ`gE~MUA&&L*%wP~Bx|pF z7;8CV0>U)swSk%Px*AS*HS60_F{qId#+)>%?SVw1KZT7kMX>MJ*8JsukL`mEmBDGI zu%{$mS&2sXUsF$UQf#Jv#ssFiW{I+PNUk|I$HrDTSXjLHH-zmA3;1BZW`X!`n)oH` zE0fTplsAEjjxGvR5n{y_KJAEryPsEBdnnkpv%Nc9Tyeu{UaW5}<>G+alQ ztwRx8I-{AwA>TU@4|9-jj}4!+t&q6#aI@6UpnPX{1WY7^=7xG7eW&YnpIm$R6V#vC z;havgUZuljn=AjmaeU6Llr?sXmlBuvCZ1Ap5F-lS%zzW2`CPI(YRQ|-?)h#H_toYY zLViX|R>=?nje?82@$^~3`sL+I5$xZ=!u)(%7rI$ zLqnqnJe&Hh)UxKFUFEC0UNJOWSFMTZ$}0IS28c;`t&(9Vq=G4AZ|_IyDn z-ux3BfEiQ0=nPmSpMUHVITAfU=60rlmnNBOlM0OBK3a~?Lv{#xOGA%08LPcxv1blf zMk8^W{j@v-Zjq1ez@TUoNFF(@*6?dAUtzvoG?Zv# zjxth7OZjgjaoe`CE8R)+H7S47j?IZ^9r+af-F?$&!_jurDZB#-FK2Avu~*n}2R}^_ z%~o#S%Ie6%$@)|-le~t`Xr8WTchM*lB@Io~hD5fD#o0uFJ2{pV*09%GIXP=Qy#1b4 z!Qm%s-O$h$Hm0GM&p6r8>Q@trX-DY|bQVAI4!u5of_=C?Vw3WIjZ!_|lq3~mgsxQ6 zaoNgzHi27&tw&%>=HzucHUbF|VZ?&1T?b$+dL^2Ied(rMmfD-2gI`Sa(P%Zsv^Y&V z#HTjaR|iz|Hc_Odqnl;B zpG$FBGa&f`Dt{ayT)y2M)t<;SIi94Bk}`huJT(_sd3;B!p#YABpq8V#TwDTHPCb1SiRLDeT|K?AZPyk%%Xc^S3yb(; z)t}F<&$B8T;N9Hd!1uemR79*QCCy%f3(2${z!VSI+Cs)2@cgchJ40fA>Hc6;=q!7f zuH1-~F;etTLgDeI%oH3-pCHaslXuQLYy)dQz|;NILUDC-Lrq2ol`KOAz@1!iBasuR zR~Eg3f_^o6f)L3rAA!_uY&?FZ>5};vl{q=>22JXXr|jauXFSdQGh1Z+brnu#!yzcZ z8U5zK17?26jO3~y;iZT3k@=lj2Y31fL0PV%j9Bi9SC$;w_ItnI50QX>)ZI~18TM3+JH-{r^7YVH9lQoYh4Zg4UWb(+m((I%TY}#3|v~JWj`T3z>Psh-`6qR&G z3Nv+A2e#NicWb;S+NNh{94Siuw{{Vz;f2Y33qxGX8axIIT`(xcilJgY@{%EgcASd65=*>5tv&^|>1~v5v9qgXDh2wM(2p*j z(ekRPvQimPAvd!{zxwuJsVF6KGu@ZQX>|?JlniY&_Q9PmYL~IO%o6BFy*GGR`vS}a z0r^tSX@3Kh$LeYv@FD=J6~%KE6sb_@+gGlmtn5e0CA)?+ph1xHD?ooc1S5@ruSKZc zPtWZ#u<-uuXb=IR)o7wAxw-Mw{5XX>P*XRfhmh&&kGN8JncG_?57!&Pgha`$MX#<@ zizkxI3RH6S>m~ffXFHhSy}+Je%(TS&UOFnqYt!ejKy{m?i%t^4{*>VpHsjrJp`Gho zcx2?A(xzk9LW@iRk5{WZ9K=M(iZ?|F%$|?Vuk8Mq#w%BTQ0D<-`yf=iamCTxIpE=5l`<8j~UPI&b6RyV)oa52*q7KK`@DYaiVtNq$bwUzJ+|}Pl=#| zFDo|60)7nM#WZ&wt7j;n*I`ZWfP9bw!tC@~-_2@=Avbfi&_bUIge6euh~$=9wX|*t z``5Z#fRoqhDT5~OQw5+gg6a?yD*aIR0}C4)#N)i4$KAg`1M^P@3|#{R`GCro>3$CH zv}hZs{s#lxQByZ-uq7S-&4fJE93JVVbiUh+t?n#}srz{S9zmxm^^2Rp*2rEY8{;~x zQKh{#heNo^X9`7=NX`DZth)1OCuG~Q6uyhcSl#;X6Ft?JM;`RRq3-$diV0$AAnA{ej^?`< zVmo5Q2h9W^Fpu)zq~TzILvwx*1iuCYW()|=V+*eTkEO+0f&laLdSmTS+~6LyYF8Sh zlB?6Q^F3@SE~mV(BQIWJEn5i>>9`YfI7r_*E-b)2_`OnoS1nG)RAuuf$hemz*v;V#aF=#q1uED~jFhT7& z0N{d$hi8#o0^C!eih4(m0AnHs$kFd957|?no0)G&w_C4J% z1S6O4xdo5D4#dIn;{wEPbh!afO@c|tPL}FYs4T<6oj1PZp>4Y$(#ptYR$ajP(CI_` z^rx#Li5nsqnA>c{I+FNzi4rY3kz!;W^M9u;9+EN=+b07%HJI&5M;9xkv<|8C=5EUD zuF6x(>umSX`ZhK;d?O=mH957lfq#+%rZ4agKKFk6j0rf@uf`b2$bDmD3OHgU%&~#h zJ8DaviA+Sjy?>WK++U6asN`(^xtNMQsq?r#byMnR8eZLT8qc@P-%Q5jM2l^V1f)+2 z4&D?uQwIG@Z`_>{xonk-Teyii?5cDp;%6U8Q7bI!*3c>@6E=I@q@IJDwt@7C3`|%S zNVs*!)9&-TL#<@L5|x?yyd7W@9~)~pIXDiGZQ%W%#9|nLLy(y8^-L-sL0(z88+2qc zigmJi=rr+8OfB=`GwkWETAe5H}^g z?0;zWH10d-M`k1Z|=R1Sj88YOv0`_2}(7wxil}(uL7Duib~sYszBsuT{=HDgWDmeRogYG>&j*aka3*a zA#FZM)G<4q4}(n>%SEuB&WiygUdes4LqvFz_+{O2oaz>vfltigZ)FyUMjYf8-eh2R zxltBBAVc6D%N!Iu+vo+|6HnP}bMv6RUr$CxRu7b4z=`7fB+YT_gB1(ce{KE0EYXIG z5niBN1+NWoJ!sIXM}UXf_RB7z*6`08DwLafPZZgdO>gb_a;A|fC}7R4+g6$3!Zfm7 zQg#get0LEj^LVBGgcvI-%_VH@f&ol6sXHZVq-y6!MJ$V+M-ySXv!P$y1ks^?A;^Q7 zDaq}qpZ*KAt2SH5vVJEG)#e6L8QadjTa?s?#z|XRjCaK);TPyi1eCcrVYVGqAkLb=LE+Gcb5OQ zEuu0qh#+B+UE>MJLk-@5kA@9&qqIe(%uSwm4K8edR#0^AwihjlbV_|JGDzm4QAUcqqmR2%>Rh3SYrxr@P_L;h$LLy^}_G{Hk-T3dw0>UAP{x6rOp z{^aoD&Gt7PbqC~?wr9A}#k&ILzm$4cOx9Jmz1WSL6&jkF_=E#=G&Dh^q5(mWWUnO& zaO-Fo8UKIG0{9fL+({7`P?Avjp@G;^FAQ{FjEiTFvvBJQyqfh)2BQI9q6^=cdT(>$}5WVvqM?`ew2vkWGeDfMah|6bkS~VT29- zZ@bHBMSv`D`%7|v`rr!W3I1FBQ27=CW?L*@*XsulEtsWD=Gxp!8{*|WpSFo#bY|3h z{^r%49>sj~oU2NyxS2Z}p00zmsdO?0eGq94k=y}eKI z!vh0=DD@Q)6C2@mmM3AuM7S3aJ6?YNrCsZ#t3Neu3omj6cIa)bnLVKht*i2##9A-PG}i7e zz_H!G*wc!*DDx@)u1t2LM{XxWX=d=oy$77H?e+exB7RBmy4D`C`WKkp={)UaC)8*2 zohQ+f{!DARn`MTnk}`t5yvPogf~nxtwCzIT#8Gklzw}%P5$pB#q7V>RRPu)@7Q_Ma z3~*Vdf4#l9KFj)>@kXhZFU{I~Ngs`%n9BHPNVTbAv!@G3?%Xfi57ckI5)5YE#_r$S zS$WoShAtCHl>I8=x~s~lEOak*mnVcYR$1v|3?w=73Zk8yk!B;gvp@ z1y)lsNz5G-4(2sqKUy!#xHQb_g6qX!TPpos+tFMnA;9xsmGU)3<6%b5bj3Y~l^t(N zFahD}Xs`*{ay!v!0x;)#zKmY4Kj)&?Kh5U_?{X)&Fd=Ok$sTGLXS7_PmlC<6qo3SB z{xI;?A_J)6EBziFi@W0bCYO)p#ITlu$w>KSuahe=cxIX}1Prk~oct?WksJ&R;S8F! zI4aktYhA_KO{$1EuQwNHheyEq{@IZGp#vgp)L)U%lce1!froY`EH(Qf>jyRqNnAB~Pl9a+95 zhX9E6*U4W08zK%p*s{f{XlUKE%`vz<`vrv2v!TAaw5xR8mBOsDd%* zS!rodeCS`#bpP;hB;ddTe0)n(t1RYNfqnCTca37wnk3IoX{a^Rt{}{RV*6|)vIwHQ zrZT%>YrWRdwGpQLaBQXjWdp;_@FS{iYFag)uWpct)$l#%`-;N{N`kN#QA7-Knh%5P z8^i!e34L-oO_u~_5|uXB2Ns@8vETt?IGO6|Q?T*s(sQWBI%t%=S zpcn2QJyIFqq|C+v?&Q93$lyc=!rFQ;);k;oq^GAd*MgF+PHS0F`(w@dJVTaLD9wVf z-essprtw5PKw!G8>%i+J`XqX=x_IT8JhIsf>B6+RJ8$&4H>bx3pcsk(#kj=e*ZDg6 zg+TT;RutYVDmwGCr6^?r*0kU4^;YYFuHmHj9+|!#H8~}Hh>Bp_aBm&5PIRBHqM`_J zVE~QA5o2mfij=-SDcA*KLrcCz5e7aMg}<}1Iw*o8=^fGuMMIi(z&} zLxdrhvqJGO*~D0RpCO@yTF~(|N?>wClIv`)wnO6a4YE7OMnX8+|0MQv;=Hn zF?zAy4n<`;mY8gmj?SH$DCg~6SU-T+qPYnQkNBWK!#?YavHj}BdlA8HttV!{n9Z6o zKeK@+t>a2ZCVFZZjPM6Sp!d{P)Km^kbN;lG9IA$ZH@>$nw-Tifr~$OBu}-8!?l-W& zez)RjW0HOv7EBT#avmq15qLfPn)e;>i;x~x3{-RpR%MVZXX^HUdPL! zQ%|)jKrRQIU5AvqxelU{eEf6gy;Nk4r_(_~oi-V|jd1aUhNrEy$7=TAD_#KuuS2R$ zMan?5TDInuO-9>eKwPk=IFmzTdk+!-zEl-Lf+59yNi>P?Q1z3au5YFUr)~5PVb58B z07X0woz>*3RTBbLWd+b66c%eSN-$zab|ymWUom>OwY3e1{rr>-oCG}o6BD|+zB2^Z z7z8M*s#p;OQnMXM=*I^b9*kw?n_~xMdF2|zaDrX~*;PAE&iJpe)N!eb){V1uM44rK z?|4j~pfiHzL2kOLH$@KNx?bnU7`6yS#pFQQyq=Dcc#;#Huv9yK(FdLID&M4{CLR|` zGrl@I)S`^JpqB6jOv}*CO(UT5tKUk{1OzECBLbA{xamZICI7Wn+MfY6KZ|jQnaBx1 zrGSUJ|Lgfe)lMIlJrJG#$s2r2G-V~LHEzVF#|y};TZLnn=g3E=j(@@%!*8pzWjyln zz1-tINvV<%m(2Y=JX-;(^ac~_yy|8cN1`R6!-A(cHB6}0^g_LL z5!o_czqThll+Kz7I12Uamf*hzuH`_>@#6=ELOCOPCtMCfxyOT}fuW(xcCx7-3(QaY zxNu&Zi83eTbfSLXQmdn;6@_nsOfnD&rwQ` zomrB^1(c?d$J$c%k24id{WoI0R-|>O6m(zMfPxRO^g8k(Cjb?nU9mt0@s>VmL6=C* z!IHbpBZ?%9bhr2|aa3vh?b!w{n@QMzZ8@O483GQ?wd6bS+T}y4U2IvO#3;qddaLEn z-OMca!o$n2sP|~At+Yqvw=_R&Mu^oG2RT%LE8LzO__N4P zEH26bUovpY9WesqJ}F?nmz9;(8I_0=4c~(BOP)psD+@^0PS5&?V>2_EUb{z@3`Vft z;;rEQZlAYXmR^Gn0diCz-0OESJp~(6a}Hyv%tkw=!|RA2W87BKe#Va{BNKbYbGEtT z)w?f9bDlhlJdh z_>yzQ)MqPQPJ!DP1!RKo-hr|7PP+C8avslr2IiYR7qt=h*n-`3GJ8ci+k%RG*-pwd z?Ia_c>d6ul1=9Qc9@6hDCZs_tw>_BnzG`jQh^WB<7Yy14BnTs9w_cFyxWquQz$B7c_8U&;`0?v=Ttt+h|(iQK3j-uVe zI?Uu+X^G~;=sKuDbG6MuecPU(7?k5Q|MU{ewbGlKYsj750V2 zRheE|(za+r16$b-PY*Yy)5RK~qsg1F1wjp9oc*t(F%`R2j{3}va$^b}sn(yItb*g> zQB}TEp1_#w*-Yn23d^rwXDe?1V7qKSY2r>>6Ubf@eRz0Qi6u0&6=%F@<^CU2UmccZ zx_zxEN=d4u5+Wsybc%qKv>+i!3rKf2sC0vLNlSNwbc;xLcS+Z`-#NcOzPZksYlcDe zeV+T?vG&?)eN)#$=@@VJe!Ht*wBqXxy{an4`(|X8qtqnC+S0&OwFbc=A9SKc_Pd(t z-R&J62xm}j5kwg+2Pw}u*Qg}LxLnO{cjhgu(;(YJ~z=ZKSr%b00ebSfZ+A}SUA}uW~kWL+z5>-{>n8EV{Ntes%AI+@mNg@yn zdzR@n>&Eor{vsp2>Hv$qmkTmab{@KxmldU!tW3#OvH87CQxW2PdU}c+QGV6prJsL( z#&GYLKAnz(BXY1?)rP7UmxpFCT$8AQtt6+lumVbpT%s+;2Z(!0yyCNI_?eZCN(I36aJ>}<&7$27nJ2Mse)UJGwh-KaI#Ls?aAudlR=Z9>HR6$2+S_M= z{xX~xSX>2=1|*6hvU|yRco(1xn0bC4Z|vW?Fa|S_h}?BjSh$7WcVX0=rZDHF#6`$} zbCl`*(c!*EeEoN#zmlfh<&UPT^_XYPwZxWIje5aMkRT8#9fqAfAXJCr?iwCkP+rR1 z>5h$u*P4~=W~?+03RFb~eMJ8|COOvU3$HU_)`@epx3m0g5inKQW(*Byx3!Hl)Mi7+v~?kup2$z8iI!+JiR@ zzZW(c(>727b+>nS_m4RXOBNR$>ZXN#UNJ6-`jxYT!nIh`12i<9wZYVuFNkKUIa2Bi z3|T;zz}!Vqu4&g$!SOAc?>F z`g}8pj+lt3`wPx99~@r#e%by%(EL9G)CGVeazkwnk4GYn5Y6JdtMw59qt908ux z%$hD+@0;;R1)9uvchhCRI6Rwunwyu`)!X|r_p`F{V-T;#```J569Ne=KEn(!?oloG zx0aU0i1Yb1R>1h_n{bLgb&s*y^il6?!2_xq?y9}Ld}O|hwn?h>j_m8vaINrwf~W`X zPtW(gditDL1BD7LG#hX3v&`KUD|NfDN_u}y22a7`Hoq9UcUeS624#9>Di9cduaQt7 zhFuPz#nlQDQ_y%zQ!TE4#q{j6(MFa4Qod{bSB@f4{JFC zYy9@+G^b9Q*`CaV#8XWN)d!)E9F=DnXpM2?t_oB~O!zs0rHMbmXQcEqKwkMu7jUjG zPf@OFz7`0zTd=4Xi4bT)u)=@!=@Si@W4-LV6($LKZ6V<1bQh^v|NB%Xnv?%OLlChs zpcirhwngNq#u(bB^GUt9nJT%~?%3G8>-y8dn8#7yzx%QNw!*tPs+|n^yj0m)4qHz+ zEQ5E&4(HE19Ipaa&o(38JKe{^xyOPFt7ae%rLP1~q&iGPeE)m@wu@UciIDET|M&0< z8?PlD9jg%!zblqkpB#1l4P)oPf)%XWh%qY4sXEWceGycv^I@O-8=)CHo$5-6&q9dr ztRne>?yKb4YJmw){kK&?)y~61#HKmJy|^YC&2yWlCT<_vo0&>rJx_~Zi2`JoRzYcq zGZ&#w_rB6B@qh8Mv$uB%aPR-pNmz6=Rl*=dhR(qTydnjjy`#U63?|wDVP!nM zn0E21TK%r>@Ubo6$wWxeoTts zal1W3*y;sdBLI-wbk-dsoVas4t&4eD+k*`lXvDs1cg96mLn@+@VmfEC3+j$M#5Jfs z3GyUH6NVtmDMj}+GpQGq+C3Co|FUT}NQRKSP#VwsS@SL4yg`*f9svUarKx=_V7G

hBn^JP?2v^&Tdcq(RL-AF~@y1 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 LTNzdT=@R!}bM^9b literal 0 HcmV?d00001 diff --git a/docs/doxygen/images/SignalConditioner.png b/docs/doxygen/images/SignalConditioner.png new file mode 100644 index 0000000000000000000000000000000000000000..03cdcb44088092d03d838b27e57ef4ff2c449e5d GIT binary patch literal 13268 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 literal 0 HcmV?d00001 diff --git a/docs/doxygen/other/main_page.dox b/docs/doxygen/other/main_page.dox index 04cc9c3fe..be9c5c2e3 100644 --- a/docs/doxygen/other/main_page.dox +++ b/docs/doxygen/other/main_page.dox @@ -366,15 +366,15 @@ A channel encapsulates all signal processing devoted to a single satellite. Thus channels is selectable by the user in the configuration file, this approach helps improving the scalability and maintainability of the receiver. This module is also in charge of managing the interplay between acquisition and tracking. Acquisition can be initialized in several ways, depending on - the prior information available (called cold start when the receiver has no information about its position nor the satellites almanac; warm start when - a rough location and the approximate time of day are available, and the receiver has a recently recorded almanac broadcast; or hot start when the receiver - was tracking a satellite and the signal line of sight broke for a short period of time, but the ephemeris and almanac data is still valid, or this information - is provided by other means), and an acquisition process can finish deciding that the satellite is not present, that longer integration is needed in order to - confirm the presence of the satellite, or declaring the satellite present. In the latter case, acquisition process should stop and trigger the tracking module - with coarse estimations of the synchronization parameters. The mathematical abstraction used to design this logic is known as finite state machine (FSM), that is - a behavior model composed of a finite number of states, transitions between those states, and actions. For the implementation, we used the - Boost.Statechart library, - which provides desirable features such as support for asynchronous state machines, multi-threading, type-safety, error handling and compile-time validation. +the prior information available (called cold start when the receiver has no information about its position nor the satellites almanac; warm start when +a rough location and the approximate time of day are available, and the receiver has a recently recorded almanac broadcast; or hot start when the receiver +was tracking a satellite and the signal line of sight broke for a short period of time, but the ephemeris and almanac data is still valid, or this information +is provided by other means), and an acquisition process can finish deciding that the satellite is not present, that longer integration is needed in order to +confirm the presence of the satellite, or declaring the satellite present. In the latter case, acquisition process should stop and trigger the tracking module +with coarse estimations of the synchronization parameters. The mathematical abstraction used to design this logic is known as finite state machine (FSM), that is +a behavior model composed of a finite number of states, transitions between those states, and actions. For the implementation, we used the +Boost.Statechart library, +which provides desirable features such as support for asynchronous state machines, multi-threading, type-safety, error handling and compile-time validation. The abstract class ChannelInterface represents an interface to a channel GNSS block. Check Channel for an actual implementation. @@ -665,7 +665,7 @@ Please do not hesitate to