Showing preview only (2,408K chars total). Download the full file or copy to clipboard to get everything.
Repository: DoctorTeeth/diffmem
Branch: master
Commit: 77478331eba2
Files: 18
Total size: 2.3 MB
Directory structure:
gitextract_31qnb1wz/
├── .gitignore
├── README.md
├── ntm/
│ ├── __init__.py
│ ├── addressing.py
│ ├── memory.py
│ ├── new_cos.py
│ ├── newmem.py
│ └── ntm.py
├── run_model.py
├── saved_models/
│ ├── associative_recall.pkl
│ ├── copy.pkl
│ ├── ngrams.pkl
│ ├── priority_sort.pkl
│ └── repeat_copy.pkl
└── util/
├── __init__.py
├── optimizers.py
├── sequences.py
└── util.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.pyc
*.swp
out*
log
*.pkl
!copy.pkl
!repeat_copy.pkl
!priority_sort.pkl
!ngrams.pkl
!associative_recall.pkl
================================================
FILE: README.md
================================================
# Differentiable Memory
Reference implementations of various differentiable memory schemes for neural networks, in pure numpy.
These are meant to serve as correctness checks against which higher performance batched GPU implementations can be evaluated.
## Code Structure
The code is structured as follows.
The ntm directory has 3 files of note: ntm.py, addressing.py, and memory.py.
* `addressing.py` deals with creating the memory read and write weights from the head parameters.
* `memory.py` deals with how the memory is addressed given the read and write weights.
* `ntm.py` implements fprop and bprop for the ntm model.
The utils directory also has 3 files of note.
* `optimizers.py` implements RMSprop
* `util.py` is a grab-bag of helper functions.
* `sequences.py` generates syntetic test and training data for the tasks from the paper.
The root directory contains dotfiles and `run_model.py`, the latter of which allows for training and testing of the ntm model on various tasks depending on the arguments passed to it.
## Setup
You will need to install the autograd library (`pip install autograd`).
I'm using autograd to do the backprop, since the architecture of the models is still in flux, but I found (at least when benchmarked using a GRU I have) that it's about 8x slower than doing backprop manually (maybe this is operator error?), so once I'm sure that everything is working properly I'll probably get rid of that dependency.
The code is Python 2.7.
## Models
Currently, only the Neural Turing Machine is implemented.
I'd also like to implement some of the stuff from [Learning to Transduce with Unbounded Memory](http://arxiv.org/pdf/1506.02516v1.pdf), but it's unclear whether I'll have time (or whether it will be worth doing, given the generality of NTMs).
### Neural Turing Machine
This is an instance of the model from [this paper](http://arxiv.org/pdf/1410.5401v2.pdf).
The paper was relatively vague about the architecture of the model, so I had to make some stuff up.
It's likely that some of the stuff I made up is dumb, and I'd appreciate feedback to that effect.
All 5 of the tasks from the paper are implemented. There's more detail in the below sections about performance on individual tasks, but broadly speaking the model seems to be working; it generalizes to sequences longer than those it was trained on (i.e. it learns "compact internal programs").
#### Usage
The script `run_model.py` handles both training and testing.
Execute `./run_model.py --help` to get a list of arguments and their descriptions.
The saved_models directory contains pickled models for every task.
To test the saved copy model on sequences of length 10, do `./run_model.py --model=saved_models/copy.pkl --lo=10 --hi=10`.
Serialized models include information about about which input size and output size and number of hidden units etc were used, so you don't need to remember that.
#### Tasks
In some cases, a task as described by the paper wasn't completely well-defined.
In those cases I took some creative liberty - I think that the spirit of the tasks is the same.
##### Copy
In this task, we feed the model a start bit, then some bit vectors, then a stop bit, and ask it to reproduce all the bit vectors in the same order in which it saw them.
The model performs very well on this task, acheiving negligible error on the training set and generalizing well to sequences longer than those seen during training.
Below is logging output from a model that was trained on sequences of up to length 5 copying a sequence of length 10.
Time flows left to right - the memory of this model has 15 locations, each of size 7. It uses only one read head and one write head.
The 4th row in the input is the channel containing the start bit. The 5th row contains the stop bit. The first 3 rows constitute the bit vectors to be copied.
inputs:
[ 0.0 0.0 1.0 1.0 0.0 0.0 1.0 1.0 1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 1.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 1.0 1.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
outputs:
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 1.0 1.0 0.0 1.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 1.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 1.0]
reads-0
[ 0.0 0.1 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.1 0.1 0.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.1 0.4 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.2 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.0 0.1 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0]
[ 0.1 0.1 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0]
[ 0.1 0.0 0.0 0.1 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0]
[ 0.1 0.0 0.0 0.1 0.0 0.9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0]
[ 0.1 0.0 0.1 0.0 0.7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0]
writes-0
[ 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.2]
[ 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.4 0.7 0.5]
[ 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.6 0.0 0.3]
[ 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.9 0.4 0.5 0.0 0.0 0.0]
[ 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.8 0.0 0.5 0.0 0.0 0.0 0.0]
[ 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.5 0.9 0.0 0.1 0.0 0.0 0.0 0.0 0.0]
[ 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.5 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
adds-0
[-1.0 0.5 0.9 -0.8 -1.0 0.5 0.9 0.1 0.1 0.1 0.9 -1.0 0.4 0.1 0.1 0.0 0.4 0.1 1.0 1.0 1.0 0.1]
[-0.9 -1.0 -0.9 1.0 0.9 -1.0 -0.9 -1.0 -1.0 1.0 -0.9 -1.0 1.0 1.0 -1.0 0.2 1.0 1.0 1.0 1.0 1.0 1.0]
[-1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0 -0.8 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0]
[ 1.0 -0.8 1.0 1.0 -0.7 -0.9 1.0 1.0 1.0 -0.9 1.0 1.0 -1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -0.5 -1.0]
[-1.0 -1.0 -1.0 0.6 0.8 -1.0 -1.0 -1.0 -1.0 0.9 -1.0 1.0 1.0 1.0 -0.7 -1.0 1.0 1.0 1.0 1.0 1.0 1.0]
[-1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 1.0 0.9 -1.0 -1.0 1.0 1.0 1.0 -1.0 1.0]
[ 1.0 1.0 1.0 -0.7 -0.8 1.0 1.0 -0.9 -0.9 1.0 1.0 1.0 -1.0 -1.0 -0.1 1.0 -1.0 -1.0 -0.4 -0.3 -1.0 -1.0]
erases-0
[ 1.0 1.0 1.0 1.0 0.9 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.8 1.0 0.0 0.0 0.0 0.0 0.1 0.0]
[ 1.0 0.9 0.9 0.1 0.5 0.9 0.9 0.9 0.9 0.3 0.9 0.9 0.0 0.0 0.5 0.9 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.7 0.9 0.9 0.0 0.0 0.9 0.9 0.1 0.1 0.8 0.9]
[ 1.0 1.0 1.0 0.6 0.8 1.0 1.0 0.9 0.9 0.9 1.0 0.6 0.1 0.0 0.1 0.9 0.1 0.0 0.0 0.1 0.1 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 1.0 0.0 0.0 0.5 1.0 0.2 0.2 0.0 1.0]
[ 0.0 1.0 1.0 0.7 0.1 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.6 0.0 0.4 1.0 0.6 0.0 0.4 0.5 1.0 0.0]
[ 0.5 0.0 0.0 0.3 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.4 0.8 0.9 0.0 0.0 0.8 0.9 0.1 0.1 0.8 0.9]
There are a few cool things to note about this example.
The first cool thing is that the error is so low.
I've rounded the numbers to 1 digit after the decimal, but the actual BPC for this sequence was less than 2e-8.
This is especially interesting because we never trained the model on sequences of this length.
In fact, this particular model will perform well up to length 13, after which it starts running into trouble.
My best guess is that the NTM needs a few extra rows of memory for some reason, but I don't feel very strongly about that hypothesis.
The second cool thing is the memory access pattern.
The NTM starts writing the bit vectors at memory location 6 (counting from 1), and shifts backwards by one location every time step until it sees the stop bit.
Once the stop bit is read, the NTM then starts reading from the corresponding locations, after (presumably), doing a content-based shift back to the beginning of the sequence in memory.
Note that read and write shifts just wrap around - the memory is treated as circular.
##### Repeat Copy
This task is the same as the copy task, but instead of a stop bit, the model sees a scalar, which represents the number of copies to be made.
After the required number of copies is made, the model is also supposed to output a stop bit on a separate channel.
I don't normalize the repeat-scalar, though it's normalized in the paper.
I expect that this is seriously hurting generalization performance; fixing it is on my todo-list.
Here is the logging output of a small example model:
inputs:
[ 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0]
outputs:
[ 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0]
[ 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0]
[ 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0]
reads-0
[ 0.2 0.0 0.0 0.0 0.0 0.2 0.0 0.2 0.1]
[ 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.1 0.2]
[ 0.3 0.6 1.0 0.0 0.0 0.1 0.0 0.3 0.2]
[ 0.2 0.2 0.0 1.0 0.0 0.7 0.0 0.5 0.2]
[ 0.1 0.0 0.0 0.0 1.0 0.0 0.9 0.0 0.3]
writes-0
[ 0.0 0.0 0.1 0.4 0.1 0.2 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.3 0.4 0.3 0.2 0.2 0.1]
[ 0.0 0.0 0.0 0.0 0.3 0.3 0.3 0.2 0.4]
[ 0.9 0.6 0.0 0.2 0.0 0.1 0.3 0.3 0.1]
[ 0.1 0.4 0.9 0.1 0.2 0.1 0.1 0.2 0.3]
adds-0
[ 1.0 1.0 0.8 1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
[-1.0 -1.0 -1.0 -1.0 1.0 1.0 1.0 1.0 -0.4]
[-1.0 -1.0 0.9 0.5 -0.9 0.2 -1.0 0.3 -0.9]
[ 1.0 0.9 1.0 1.0 1.0 1.0 1.0 0.7 -1.0]
[-1.0 0.9 1.0 1.0 1.0 1.0 0.8 1.0 -1.0]
[-1.0 1.0 1.0 -1.0 -1.0 0.8 -1.0 1.0 1.0]
[ 1.0 -1.0 -0.3 1.0 1.0 0.2 1.0 0.3 0.6]
erases-0
[ 0.6 0.2 0.8 0.5 0.9 0.2 0.9 0.2 0.5]
[ 0.6 0.1 0.1 0.1 0.6 0.7 0.5 0.6 0.5]
[ 0.5 0.9 1.0 0.0 1.0 0.6 1.0 0.9 1.0]
[ 0.3 1.0 1.0 0.0 1.0 0.9 1.0 1.0 1.0]
[ 1.0 1.0 1.0 0.0 1.0 0.6 1.0 0.6 1.0]
[ 0.0 0.0 0.0 0.0 0.0 0.7 0.0 1.0 0.0]
[ 0.7 0.9 1.0 0.9 0.9 0.6 0.9 0.6 0.9]
Again, note the memory access patterns.
They're not as clean as in the simple copy example (I'm trying to figure out exactly why), but it's still relatively clear what's going on:
The NTM writes the first bit vector to the 4th region of memory, then writes the second bit vector to the 5th region.
Then, once the repeat scalar is seen, the NTM reads out locations 4,5,4 and then 5, after which it does whatever, since it will now ignore the read values.
It outputs a stop bit in the correct location.
##### Associative Recall
In this task, we feed the model groups of bit vectors delimited by start bits, then a query vector delimited by end bits.
The goal is for the model to output the vector that it saw immediateley following the query vector.
inputs:
[ 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0]
[ 1.0 0.0 1.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0]
outputs:
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
reads-0
[ 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.5 0.5 0.4 0.4 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.0]
[ 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1]
writes-0
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.1 0.1 0.6]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.1 0.0]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.0 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.0]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.0]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.0]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.1 0.1 0.0]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.0 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.1 0.0 0.0]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.0 0.1 0.0]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.2 0.0 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.3 0.0]
adds-0
[ 1.0 1.0 1.0 -1.0 -1.0 -1.0 1.0 1.0 1.0 1.0]
[-1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
[ 1.0 1.0 1.0 -1.0 -1.0 1.0 1.0 -1.0 1.0 1.0]
[ 1.0 1.0 1.0 -1.0 1.0 -1.0 1.0 1.0 1.0 1.0]
[-1.0 -1.0 -1.0 1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
[-1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
[ 1.0 1.0 1.0 -1.0 -1.0 -0.9 1.0 1.0 1.0 1.0]
erases-0
[ 0.0 0.0 1.0 0.0 1.0 0.0 0.0 0.9 0.0 0.0]
[ 1.0 1.0 0.5 0.0 0.0 0.1 1.0 1.0 1.0 0.6]
[ 1.0 0.0 1.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0]
[ 1.0 1.0 0.9 0.9 0.0 0.9 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[ 1.0 0.0 0.9 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 1.0 1.0 1.0 1.0 1.0 0.8 0.0 1.0 0.0 0.0]
In the above sequence, the key could have been 0,0,1 or 0,0,0.
It was 0,0,1 (8th time step), and so the model outputs (or mostly outputs, in this case), the item it saw after that, which was 0,0,0.
##### Dynamic n-Grams
In this task, we fix a natural number n and then generate a probability table that encodes the likelihood that the next bit in a sequence will be a 1, having observed the last n-1 bits. We generate a new table for each training sequence, and train the model to predict the next bit at all times.
It's hard to generate an engaging visualization of this task, but if you look at the following it's possible you can get a sense of what's going on.
inputs:
[ 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0 1.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 0.0]
outputs:
[ 0.5 0.8 0.5 0.2 0.2 0.1 0.2 0.5 0.4 0.0 0.2 0.2 0.1 0.1 0.1 0.0 0.1 0.1 0.1 0.1]
reads-0
[ 0.1 0.1 0.2 0.1 0.1 0.1 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.1 0.1 0.1]
[ 0.1 0.0 0.0 0.1 0.0 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.1 0.1 0.1 0.0]
[ 0.1 0.0 0.1 0.0 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.3 0.0 0.0 0.0 0.1 0.1 0.1 0.0 0.0]
[ 0.1 0.2 0.0 0.0 0.1 0.1 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.1 0.1 0.0 0.0 0.0 0.0]
[ 0.1 0.1 0.0 0.1 0.1 0.1 0.0 0.0 0.0 0.3 0.0 0.0 0.0 0.1 0.1 0.1 0.0 0.0 0.0 0.0]
[ 0.1 0.0 0.1 0.1 0.1 0.0 0.0 0.0 0.3 0.0 0.0 0.0 0.1 0.1 0.1 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.4 0.0 0.0 0.0 0.1 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.0 0.0 0.0 0.0 0.0 0.2 0.1 0.0 0.0 0.2 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.0 0.0 0.0 0.0 0.2 0.1 0.1 0.0 0.1 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.1 0.1 0.0 0.0 0.2 0.1 0.1 0.0 0.1 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5]
[ 0.1 0.1 0.0 0.3 0.1 0.1 0.1 0.2 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0]
[ 0.1 0.1 0.4 0.1 0.1 0.1 0.2 0.1 0.1 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0]
[ 0.1 0.0 0.0 0.0 0.0 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.6 0.0 0.0 0.0]
[ 0.1 0.1 0.0 0.0 0.1 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.1]
[ 0.1 0.1 0.0 0.1 0.1 0.1 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.1 0.1]
writes-0
[ 0.0 0.5 0.9 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.0 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.0 0.1 0.1 0.1]
[ 0.1 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.2 0.2 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.1 0.0 0.1 0.1 0.1 0.0 0.1 0.1 0.1]
[ 0.9 0.5 0.1 0.1 0.3 0.2 0.8 1.0 0.9 0.1 0.1 0.1 0.0 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.2 0.3 0.1 0.1 0.1 0.2 0.2 0.2 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.1 0.0 0.1 0.0 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.0 0.1 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.1 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.1 0.0 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.7 0.7 0.8 0.2 0.0 0.0 0.0 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
adds-0
[ 1.0 1.0 1.0 1.0 1.0 1.0 0.9 1.0 1.0 0.2 0.9 1.0 0.9 0.7 0.6 -0.0 0.9 0.9 0.8 0.7]
[-1.0 1.0 -0.9 -1.0 -1.0 -1.0 -1.0 -0.1 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
[ 1.0 -1.0 -1.0 -0.8 -0.7 -0.3 -0.9 -1.0 -0.8 0.8 -0.7 -0.6 -0.5 0.8 0.9 0.9 -0.6 -0.2 0.3 0.8]
[-0.9 1.0 1.0 1.0 1.0 0.9 0.9 1.0 1.0 0.7 0.9 1.0 0.9 0.8 0.2 0.6 0.9 0.9 0.8 0.8]
[ 1.0 0.6 0.6 0.9 0.9 0.9 0.9 0.9 0.8 1.0 1.0 0.9 1.0 1.0 1.0 1.0 0.9 0.9 1.0 1.0]
[-1.0 -0.9 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0]
[-1.0 -1.0 -1.0 -0.9 -1.0 -0.9 -1.0 -1.0 -1.0 0.7 -0.9 -1.0 -0.9 0.1 0.4 0.8 -0.9 -0.9 -0.5 -0.1]
erases-0
[ 0.1 0.1 0.1 0.2 0.1 0.2 0.1 0.1 0.1 0.6 0.2 0.2 0.2 0.5 0.5 0.7 0.2 0.2 0.3 0.5]
[ 0.1 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.2 0.6 0.1 0.1 0.1 0.1 0.2 0.3 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.8 0.8 0.1 0.0 0.0 0.0 0.1 0.3 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.2 0.7 0.0 0.0 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.1 0.2 0.0 0.0 0.0 0.1]
[ 0.7 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.6 0.1 0.0 0.1 0.5 0.7 0.8 0.1 0.1 0.2 0.4]
##### Priority Sort
In this task, we feed the model a sequence of bit vectors, each with a real-valued priority that lies in (-1,1), which comes on a separate priority channel.
The desired output is that sequence of bit vectors, sorted by the scalar priority.
Here is an example of an NTM sorting a bit vector of length 2.
The first 3 rows represent the bit vectors to be sorted, and the last row represents the scalar priority.
The fourth and fifth rows are channels just for the start and stop bits.
inputs:
[ 0.0 1.0 0.0 0.0 0.0 0.0]
[ 0.0 1.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 1.0 0.0 0.0 0.0]
[ 1.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 1.0 0.0 0.0]
[ 0.0 0.7 -0.6 0.0 0.0 0.0]
outputs:
[ 0.0 0.0 0.0 0.0 0.0 1.0]
[ 0.0 0.0 0.0 0.0 0.0 1.0]
[ 0.0 0.0 0.0 0.0 1.0 0.0]
reads-0
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
writes-0
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
[ 0.1 0.1 0.1 0.1 0.1 0.1]
adds-0
[-0.3 -0.7 -0.8 0.1 -0.8 0.2]
[ 0.1 0.9 0.1 0.7 -0.1 0.2]
[ 0.6 0.5 0.9 0.4 -0.2 0.4]
[ 0.3 -0.4 0.7 -0.6 0.9 -0.1]
[ 0.3 0.2 -0.3 -0.6 0.3 0.0]
[-0.1 -0.2 -0.2 -0.1 -0.0 -0.1]
[ 0.8 0.9 0.9 -0.1 0.9 -0.8]
erases-0
[ 0.3 0.6 0.9 0.5 0.9 0.5]
[ 0.4 0.6 0.5 0.4 0.4 0.4]
[ 0.7 0.5 0.9 0.7 0.8 0.6]
[ 0.3 0.5 0.3 0.3 0.4 0.5]
[ 0.7 0.7 0.3 0.8 0.4 0.7]
[ 0.4 0.5 0.4 0.2 0.3 0.2]
[ 0.6 0.7 0.7 0.4 0.6 0.4]
reads-1
[ 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.4 0.4 0.3 0.0 0.1]
[ 0.0 0.0 0.0 0.0 0.3 0.0]
[ 0.7 0.0 0.0 0.0 0.0 0.1]
[ 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.3 0.4 0.5 0.0 0.1]
[ 0.0 0.0 0.0 0.0 0.6 0.1]
[ 0.0 0.2 0.2 0.0 0.0 0.2]
[ 0.0 0.0 0.0 0.0 0.0 0.1]
[ 0.0 0.0 0.0 0.1 0.0 0.1]
[ 0.0 0.0 0.0 0.0 0.1 0.0]
[ 0.2 0.0 0.0 0.0 0.0 0.1]
writes-1
[ 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.0]
[ 0.0 0.0 0.0 0.0 0.1 0.1]
[ 0.7 0.0 0.7 0.1 0.2 0.1]
[ 0.0 0.2 0.0 0.0 0.0 0.1]
[ 0.0 0.0 0.0 0.1 0.1 0.0]
[ 0.0 0.0 0.0 0.0 0.0 0.1]
[ 0.0 0.0 0.0 0.1 0.1 0.1]
[ 0.3 0.1 0.3 0.1 0.2 0.1]
[ 0.0 0.2 0.0 0.1 0.0 0.1]
[ 0.0 0.1 0.0 0.1 0.1 0.0]
[ 0.0 0.2 0.0 0.1 0.0 0.1]
[ 0.0 0.0 0.0 0.1 0.1 0.1]
[ 0.0 0.0 0.0 0.0 0.1 0.1]
[ 0.0 0.0 0.0 0.1 0.1 0.1]
adds-1
[ 1.0 -1.0 1.0 1.0 0.9 -1.0]
[ 1.0 1.0 1.0 1.0 1.0 0.7]
[-0.8 -1.0 0.8 1.0 -0.7 1.0]
[-1.0 1.0 -0.9 -1.0 -0.9 -0.3]
[ 1.0 0.5 0.6 1.0 0.9 -0.8]
[ 1.0 -1.0 1.0 1.0 -0.4 -1.0]
[ 1.0 1.0 0.5 1.0 0.6 0.5]
erases-1
[ 0.1 0.3 0.0 0.4 0.0 0.4]
[ 0.9 0.7 0.1 0.8 0.4 0.7]
[ 0.0 0.6 0.0 0.0 0.0 0.8]
[ 0.0 0.9 0.0 0.0 0.0 0.7]
[ 0.2 0.2 0.8 0.0 0.9 0.1]
[ 0.0 0.1 0.1 0.0 0.2 0.9]
[ 1.0 0.9 1.0 1.0 1.0 0.1]
Note that the NTM correctly sorts the example sequence.
In general, the model will fail to sort properly if the priorities are too close together.
This supports the hypothsis put forward in the paper, which is that the location of the writes is determined by the priorities, and that at read time the NTM simply linearly traverses the memory.
However, if this were all that was going on, it seems the model ought to converge examples this size using just one head, and I wasn't able to get it to converge on this task without using 2 heads. Moreover, the memory access patterns above don't exactly align with that interpretation.
#### Miscellaneous Notes
* The controller is just a single FF layer with a tanh activation. All heads take input straight from the output of the controller layer. I couple the number of read heads and write heads. If you pass --heads=8 to the model, there will be 8 read and 8 write heads. As mentioned in the paper, the order of the reads/writes doesn't matter.
* Restricting the range of allowed integer shifts to [-1,0,1] seems totally essential for length-generalization in the copy task. It's possible that this restriction (which currently I've hardcoded into the model), is harming performance on some of the other tasks.
* Gradients are clipped to (-10,10), as advised in the paper.
* The initial state of the memory and the initial state of the last read, the last write weight, and the last read weight are actually learnable parameters of the model, randomly intialized as are the rest of the weights. This modification greatly improved training performance.
* The initialization is currently suboptimal. Where multiple inputs feed into an activation, we should be concatenating the weight vectors that generate those inputs before intializing. Fixing this is high on my todo-list, as I expect it's seriously holding back multi-head performance.
* Performance of the code is poor. The focus of this project is on providing a reliable, deterministic reference implementation, so I'm not going to put a huge amount of effort into speeding up this code. That being said, I'm sure some of the stuff I'm doing is clearly (to some people) ridiculous from a performance perspective - please tell me if you see anything like this.
* It seems that starting with shorter sequences and gradually increasing sequence length as training error falls speeds up convergence, but so far it's been my experience that the NTM will converge if you just let it train for long enough.
* You might see negative BPC because of the way I clip the loss to avoid log(0).
================================================
FILE: ntm/__init__.py
================================================
================================================
FILE: ntm/addressing.py
================================================
"""
This module implements addressing as described in the paper.
It's basically a python version of figure 2.
"""
import autograd.numpy as np
def cosine_sim(a_t, b_t):
"""
Computes the cosine similarity of vectors a and b.
Specifically \frac{u \cdot v}{||u|| \cdot ||v||}.
"""
# numerator is the inner product
num = np.dot(a_t, b_t)
# denominator is the product of the norms
anorm = np.sqrt(np.sum(a_t*a_t))
bnorm = np.sqrt(np.sum(b_t*b_t))
den2 = (anorm * bnorm) + 1e-20
return num / den2
def content_focus(k_t, b_t, mem):
"""
The content-addressing method described in 3.3.1.
Specifically, this is equations (5) and (6).
k_t is the similarity key vector.
b_t is the similarity key strength.
memObject is a ref to our NTM memory object.
"""
def K(u):
"""
Given the key vector k_t, compute our sim
function between k_t and u and exponentiate.
"""
return np.exp(b_t * cosine_sim(u, k_t))
# Apply above function to every row in the matrix
# This is surely much slower than it needs to be
l = []
for row in mem:
l.append(K(row)[0])
# Return the normalized similarity weights
# This is essentially a softmax over the similarities
# with an extra degree of freedom parametrized by b_t
sims = np.array(l)
n = sims
d = np.sum(sims)
return n/d
def shift(w_gt, s_t):
"""
Perform the shifting operation as described in equation 8 from the paper.
"""
# This function could be more performant.
N = w_gt.size
backward = [1, 0, 0]
same = [0, 1, 0]
forward = [0, 0, 1]
null = [0, 0, 0]
restrictionList = []
for i in range(0, N):
if i == 0:
restrictionList.append(backward)
elif i == 1:
restrictionList.append(same)
elif i == N-1:
restrictionList.append(forward)
else:
restrictionList.append(null)
rT = np.array(restrictionList)
if N >= 3:
s_t = np.dot(rT, s_t)
sums = []
for i in range(N):
sums.append(0)
for j in range(N):
sums[i] += w_gt[j] * s_t[(i - j) % N]
return np.array(sums)
def location_focus(g_t, s_t, gamma_t, w_old, w_content):
"""
The location-addressing method described in 3.3.2.
Specifically, this is equations (7), (8), and (9).
g_t is the interpolation gate and it lies in (0,1).
s_t is the shift weight vector:
The shift weight vector is of length V, where V is the number
of allowed integer shifts. e.g. if we allow shifts 0,1, and -1
(which are computed modulo N and so can be though of as 0,1,2)
then our shift vector lies in R^3, has non-negative entries,
and sums to 1. If you wanted to encode a matrix down-shift of 1 row,
you would pass [0,1,0] here. [1,0,0] corresponds to no shift.
gamma_t \geq 1 is is sharpening scalar.
w_old is the weight used by this head for the last time step.
w_content is the weight generated by the content addressing mechanism
at the current time step, t.
"""
# Use the interpolation gate to smooth between old and new weights.
w_gt = g_t * w_content + (1-g_t) * w_old
# convolve w_gt with s_t to get shifted weights
w_tp = shift(w_gt, s_t)
# Take every element of the weight vector to the gamma_t-th power.
# pows = w_tp ** gamma_t
# Normalize that vector by its sum.
# w_t = pows / np.sum(pows)
# return w_t
# w_gt is unchanged through all this - i checked (shouldn't have to though)
return w_tp, w_gt
def create_weights(k_t, b_t, g_t, s_t, gamma_t, w_old, mem):
"""
Convenience function to be called from NTM fprop.
"""
w_content = content_focus(k_t, b_t, mem)
w_tp, w_gt = location_focus(g_t, s_t, gamma_t, w_old, w_content)
return w_tp, w_gt, w_content
================================================
FILE: ntm/memory.py
================================================
"""
Implements functions for reading and writing from and to the memory bank
via weight vectors as in section 3.
"""
import autograd.numpy as np
def read(mem, weight_vector):
"""
The reading procedure as described in 3.1.
weight_vector (w_t below) is a weighting over the rows such that:
1. \sum_i w_t(i) = 1
2. 0 \leq w_t(i) \leq 1, \forall i
We return \sum_i w_t(i) M_t(i); M_t(i) is the i-th row of memory.
"""
return np.dot(weight_vector.T, mem)
def write(mem, w_t, e_t, a_t):
"""
The writing procedure as described in 3.2.
w_t is a length N weighting over the rows as above.
e_t (the erase vector) is length M with elements all in (0,1).
a_t (the add vector) is length M with no such restrictions.
We first multiply the memory matrix pointwise by [1-w_t(i)e_t]
Then we do M_t(i) <- w_t(i)a_t.
According to the paper, the erase/add decomposition was
inspired by the forget/input gates in LSTM.
"""
# Perform erasure on the existing memory, parametrized by e_t and w_t
W = np.reshape(w_t, (w_t.shape[0], 1))
E = np.reshape(e_t, (e_t.shape[0], 1))
# Transpose W so we can create WTE, a matrix whose i,j-th element
# represents the extent to which we will erase M_t[i,j]
WTE = np.dot(W, E.T)
# KEEP is such that KEEP[i,j] represents the extent to which we
# will keep M_t[i,j]
KEEP = np.ones(mem.shape) - WTE
# To complete erasure, multiply memory pointwise by KEEP
newmem = np.multiply(mem, KEEP)
# Perform addition on the newly erased memory
# Convert add vector to a matrix
A = np.reshape(a_t, (a_t.shape[0], 1))
# Add is the add vector weighted by w_t, which is added pointwise to
# the existing memory, finishing the write sequence.
ADD = np.dot(W, A.T)
newmem = newmem + ADD
return newmem
================================================
FILE: ntm/new_cos.py
================================================
import math
import autograd.numpy as np
from autograd import grad
import memory
import addressing
import sys
"""
Testing our hand-computed derivatives for cosine sim
cos_sim(u,k) where k is the similarity key and u is an elt of the matrix
we want the grad of cosine sim w.r.t an element of u, though grad
w.r.t. an element of k is computed the same regardless of which elt of k,
and actually it is the same for u as well, since cos_sim is symmetric about
its arguments
"""
def cosine_sim(a_t, b_t):
"""
Computes the cosine similarity of vectors a and b.
Specifically \frac{u \cdot v}{||u|| \cdot ||v||}.
"""
# numerator is the inner product
num = np.dot(a_t, b_t)
# denominator is the product of the norms
anorm = np.sqrt(np.sum(a_t*a_t))
bnorm = np.sqrt(np.sum(b_t*b_t))
den2 = (anorm * bnorm) + 1e-5
return num / den2
if __name__ == "__main__":
M = 5
u = np.random.uniform(high=1, low=-1, size=(M,))
v = np.random.uniform(high=1, low=-1, size=(M,))
print cosine_sim(u,v)
# compute deltas automatically
# just with respect to u
cs_grad = grad(cosine_sim, argnum=0)
auto_deltas = cs_grad(u,v)
# compute deltas manually
manual_deltas = np.zeros_like(auto_deltas)
# compute the denominator
anorm = np.sqrt(np.sum(u*u))
bnorm = np.sqrt(np.sum(v*v))
den2 = (anorm * bnorm) + 1e-5
a = v / den2
b = u / np.sum(np.square(u))
c = cosine_sim(u,v)
manual_deltas = a - b*c
print "auto deltas"
print auto_deltas
print "manual deltas"
print manual_deltas
"""
manual_deltas gives us dk_i / dK_j
"""
================================================
FILE: ntm/newmem.py
================================================
import math
import autograd.numpy as np
from autograd import grad
import memory
import addressing
import sys
"""
Testing our hand-computed derivatives
compute the grad of the Ks w.r.t. each of the outputs of the softmax
"""
def softmax_0(Ks):
return np.exp(Ks[0]) / np.sum(np.exp(Ks))
if __name__ == "__main__":
length = 5
Ks = np.random.uniform(high=1, low=-1, size=(length,1))
print softmax_0(Ks)
# compute deltas automatically
sm_grad = grad(softmax_0)
auto_deltas = sm_grad(Ks)
# compute the deltas manually
manual_deltas = np.zeros_like(auto_deltas)
this_i = 0
for j in range(length):
if j == this_i:
num = np.exp(Ks[this_i]) * (np.sum(np.exp(Ks)) - np.exp(Ks[this_i]))
else:
num = -np.exp(Ks[this_i] + Ks[j])
den1 = np.sum(np.exp(Ks))
manual_deltas[j] = num / (den1 * den1)
print "auto deltas"
print auto_deltas
print "manual deltas"
print manual_deltas
================================================
FILE: ntm/ntm.py
================================================
"""
This module implements a neural turing machine.
"""
import math
import autograd.numpy as np
from autograd import grad, jacobian
from util.util import rando, sigmoid, softmax, softplus, unwrap, sigmoid_prime, tanh_prime, compare_deltas, dKdu, softmax_grads, beta_grads, K_focus
import memory
import addressing
from addressing import cosine_sim, shift
import sys
class NTM(object):
"""
NTM with a single-layer feed-forward controller, using autodiff
"""
def __init__(self, in_size, out_size, hidden_size, N, M, vec_size):
self.N = N # the number of memory locations
self.M = M # the number of columns in a memory location
self.out_size = out_size
self.vec_size = vec_size
shift_width = min(3,self.N) # seems necessary for generalization
self.stats = None
self.W = {} # maps parameter names to tensors
# non-head parameters
self.W['xh'] = rando(hidden_size, in_size)
self.W['ho'] = rando(hidden_size, hidden_size)
self.W['oy'] = rando(out_size, hidden_size)
self.W['bh'] = rando(hidden_size, 1)
self.W['by'] = rando(out_size, 1)
self.W['bo'] = rando(hidden_size, 1)
# weights from last read head output to hidden layer
self.W['rh'] = rando(hidden_size, self.M)
# weights
self.W['ok_r'] = rando(self.M,hidden_size)
self.W['ok_w'] = rando(self.M,hidden_size)
self.W['obeta_r'] = rando(1,hidden_size)
self.W['obeta_w'] = rando(1,hidden_size)
# the interpolation gate is a scalar
self.W['og_r'] = rando(1,hidden_size)
self.W['og_w'] = rando(1,hidden_size)
self.W['os_r'] = rando(shift_width,hidden_size)
self.W['os_w'] = rando(shift_width,hidden_size)
# gamma is also a scalar
self.W['ogamma_r'] = rando(1,hidden_size)
self.W['ogamma_w'] = rando(1,hidden_size)
self.W['oadds'] = rando(self.M,hidden_size)
self.W['oerases'] = rando(self.M,hidden_size)
# biases
self.W['bk_r'] = rando(self.M,1)
self.W['bk_w'] = rando(self.M,1)
self.W['bbeta_r'] = rando(1,1)
self.W['bbeta_w'] = rando(1,1)
self.W['bg_r'] = rando(1,1)
self.W['bg_w'] = rando(1,1)
self.W['bs_r'] = rando(shift_width,1)
self.W['bs_w'] = rando(shift_width,1)
self.W['bgamma_r'] = rando(1,1)
self.W['bgamma_w'] = rando(1,1)
self.W['badds'] = rando(self.M,1)
self.W['berases'] = rando(self.M,1)
# parameters specifying initial conditions
self.W['rsInit'] = np.random.uniform(-1,1,(self.M,1))
self.W['w_wsInit'] = np.random.randn(self.N,1)*0.01
self.W['w_rsInit'] = np.random.randn(self.N,1)*0.01
# initial condition of the memory
self.W['memsInit'] = np.random.randn(self.N,self.M)*0.01
def lossFun(self, inputs, targets, manual_grad=False):
"""
Returns the loss given an inputs,targets tuple
"""
def fprop(params):
"""
Forward pass of the NTM.
"""
W = params # aliasing for brevity
xs, zhs, hs, ys, ps, ts, zos, os = {}, {}, {}, {}, {}, {}, {}, {}
def l():
"""
Silly utility function that should be called in init.
"""
return {}
rs = l()
zk_rs = l()
k_rs, beta_rs, g_rs, s_rs, gamma_rs = l(),l(),l(),l(),l()
k_ws, beta_ws, g_ws, s_ws, gamma_ws = l(),l(),l(),l(),l()
adds, erases = l(),l()
zbeta_rs, zbeta_ws = l(),l()
zs_rs, zs_ws = l(),l()
wg_rs, wg_ws = l(),l()
w_ws, w_rs = l(),l() # read weights and write weights
wc_ws, wc_rs = l(),l() # read and write content weights
rs[-1] = self.W['rsInit'] # stores values read from memory
w_ws[-1] = softmax(self.W['w_wsInit'])
w_rs[-1] = softmax(self.W['w_rsInit'])
mems = {} # the state of the memory at every timestep
mems[-1] = self.W['memsInit']
loss = 0
for t in xrange(len(inputs)):
xs[t] = np.reshape(np.array(inputs[t]),inputs[t].shape[::-1])
rsum = np.dot(W['rh'], np.reshape(rs[t-1],(self.M,1)))
zhs[t] = np.dot(W['xh'], xs[t]) + rsum + W['bh']
hs[t] = np.tanh(zhs[t])
zos[t] = np.dot(W['ho'], hs[t]) + W['bo']
os[t] = np.tanh(zos[t])
# parameters to the read head
zk_rs[t] =np.dot(W['ok_r'],os[t]) + W['bk_r']
k_rs[t] = np.tanh(zk_rs[t])
zbeta_rs[t] = np.dot(W['obeta_r'],os[t]) + W['bbeta_r']
beta_rs[t] = softplus(zbeta_rs[t])
g_rs[t] = sigmoid(np.dot(W['og_r'],os[t]) + W['bg_r'])
zs_rs[t] = np.dot(W['os_r'],os[t]) + W['bs_r']
s_rs[t] = softmax(zs_rs[t])
gamma_rs[t] = 1 + sigmoid(np.dot(W['ogamma_r'], os[t])
+ W['bgamma_r'])
# parameters to the write head
k_ws[t] = np.tanh(np.dot(W['ok_w'],os[t]) + W['bk_w'])
zbeta_ws[t] = np.dot(W['obeta_w'],os[t]) + W['bbeta_w']
beta_ws[t] = softplus(zbeta_ws[t])
g_ws[t] = sigmoid(np.dot(W['og_w'],os[t]) + W['bg_w'])
zs_ws[t] = np.dot(W['os_w'],os[t]) + W['bs_w']
s_ws[t] = softmax(zs_ws[t])
gamma_ws[t] = 1 + sigmoid(np.dot(W['ogamma_w'], os[t])
+ W['bgamma_w'])
# the erase and add vectors
# these are also parameters to the write head
# but they describe "what" is to be written rather than "where"
adds[t] = np.tanh(np.dot(W['oadds'], os[t]) + W['badds'])
erases[t] = sigmoid(np.dot(W['oerases'], os[t]) + W['berases'])
w_ws[t], wg_ws[t], wc_ws[t] = addressing.create_weights( k_ws[t]
, beta_ws[t]
, g_ws[t]
, s_ws[t]
, gamma_ws[t]
, w_ws[t-1]
, mems[t-1])
w_rs[t], wg_rs[t], wc_rs[t] = addressing.create_weights( k_rs[t]
, beta_rs[t]
, g_rs[t]
, s_rs[t]
, gamma_rs[t]
, w_rs[t-1]
, mems[t-1])
ys[t] = np.dot(W['oy'], os[t]) + W['by']
ps[t] = sigmoid(ys[t])
one = np.ones(ps[t].shape)
ts[t] = np.reshape(np.array(targets[t]),(self.out_size,1))
epsilon = 2**-23 # to prevent log(0)
a = np.multiply(ts[t] , np.log(ps[t] + epsilon))
b = np.multiply(one - ts[t], np.log(one-ps[t] + epsilon))
loss = loss - (a + b)
# read from the memory
rs[t] = memory.read(mems[t-1],w_rs[t])
# write into the memory
mems[t] = memory.write(mems[t-1],w_ws[t],erases[t],adds[t])
self.stats = [loss, mems, ps, ys, os, zos, hs, zhs, xs, rs, w_rs,
w_ws, adds, erases, k_rs, k_ws, g_rs, g_ws, wc_rs, wc_ws,
zbeta_rs, zbeta_ws, zs_rs, zs_ws, wg_rs, wg_ws]
return np.sum(loss)
def manual_grads(params):
"""
Compute the gradient of the loss WRT the parameters
Ordering of the operations is reverse of that in fprop()
"""
deltas = {}
for key, val in params.iteritems():
deltas[key] = np.zeros_like(val)
[loss, mems, ps, ys, os, zos, hs, zhs, xs, rs, w_rs,
w_ws, adds, erases, k_rs, k_ws, g_rs, g_ws, wc_rs, wc_ws,
zbeta_rs, zbeta_ws, zs_rs, zs_ws, wg_rs, wg_ws] = self.stats
dd = {}
drs = {}
dzh = {}
dmem = {} # might not need this, since we have dmemtilde
dmemtilde = {}
du_r = {}
du_w = {}
dwg_r = {}
dwg_w = {}
for t in reversed(xrange(len(targets))):
dy = np.copy(ps[t])
dy -= targets[t].T # backprop into y
deltas['oy'] += np.dot(dy, os[t].T)
deltas['by'] += dy
if t < len(targets) - 1:
# r[t] affects cost through zh[t+1] via Wrh
drs[t] = np.dot(self.W['rh'].T, dzh[t + 1])
# right now, mems[t] influences cost through rs[t+1], via w_rs[t+1]
dmem[t] = np.dot( w_rs[t + 1], drs[t + 1].reshape((self.M,1)).T )
# and also through mems at next step
W = np.reshape(w_ws[t+1], (w_ws[t+1].shape[0], 1))
E = np.reshape(erases[t+1], (erases[t+1].shape[0], 1))
WTE = np.dot(W, E.T)
KEEP = np.ones(mems[0].shape) - WTE
dmem[t] += np.multiply(dmemtilde[t+1], KEEP)
# and also through its influence on the content weighting next step
dmem[t] += du_r[t+1] + du_w[t+1]
dmemtilde[t] = dmem[t]
# erases[t] affects cost through mems[t], via w_ws[t]
derase = np.dot(np.multiply(dmemtilde[t], -mems[t-1]).T, w_ws[t])
# zerase affects just erases through a sigmoid
dzerase = derase * (erases[t] * (1 - erases[t]))
# adds[t] affects costs through mems[t], via w_ws
dadd = np.dot(dmem[t].T, w_ws[t])
# zadds affects just adds through a tanh
dzadd = dadd * (1 - adds[t] * adds[t])
# dbadds is just dzadds
deltas['badds'] += dzadd
deltas['oadds'] += np.dot(dzadd, os[t].T)
deltas['berases'] += dzerase
deltas['oerases'] += np.dot(dzerase, os[t].T)
# # read weights affect what is read, via what's in mems[t-1]
# dwc_r = np.dot(mems[t-1], drs[t])
# # write weights affect mem[t] through adding
# dwc_w = np.dot(dmem[t], adds[t])
# # they also affect memtilde[t] through erasing
# dwc_w += np.dot(np.multiply(dmemtilde[t], -mems[t-1]), erases[t])
dw_r = np.dot(mems[t-1], drs[t])
dw_r += dwg_r[t+1] * (1 - g_rs[t+1])
# write weights affect mem[t] through adding
dw_w = np.dot(dmem[t], adds[t])
# they also affect memtilde[t] through erasing
dw_w += np.dot(np.multiply(dmemtilde[t], -mems[t-1]), erases[t])
dw_w += dwg_w[t+1] * (1 - g_ws[t+1])
sgwr = np.zeros((self.N, self.N))
sgww = np.zeros((self.N, self.N))
for i in range(self.N):
sgwr[i,i] = softmax(zs_rs[t])[0]
sgwr[i,(i+1) % self.N] = softmax(zs_rs[t])[2]
sgwr[i,(i-1) % self.N] = softmax(zs_rs[t])[1]
sgww[i,i] = softmax(zs_ws[t])[0]
sgww[i,(i+1) % self.N] = softmax(zs_ws[t])[2]
sgww[i,(i-1) % self.N] = softmax(zs_ws[t])[1]
# right now, shifted weights are final weight
dws_r = dw_r
dws_w = dw_w
dwg_r[t] = np.dot(sgwr.T, dws_r)
dwg_w[t] = np.dot(sgww.T, dws_w)
dwc_r = dwg_r[t] * g_rs[t]
dwc_w = dwg_w[t] * g_ws[t]
"""
We need dw/dK
now w has N elts and K has N elts
and we want, for every elt of W, the grad of that elt w.r.t. each
of the N elts of K. that gives us N * N things
"""
# first, we must build up the K values (should be taken from fprop)
K_rs = []
K_ws = []
for i in range(self.N):
K_rs.append(cosine_sim(mems[t-1][i, :], k_rs[t]))
K_ws.append(cosine_sim(mems[t-1][i, :], k_ws[t]))
# then, we populate the grads
dwdK_r = np.zeros((self.N, self.N))
dwdK_w = np.zeros((self.N, self.N))
# for every row in the memory
for i in range(self.N):
# for every element in the weighting
for j in range(self.N):
dwdK_r[i,j] += softmax_grads(K_rs, softplus(zbeta_rs[t]), i, j)
dwdK_w[i,j] += softmax_grads(K_ws, softplus(zbeta_ws[t]), i, j)
# compute dK for all i in N
# K is the evaluated cosine similarity for the i-th row of mem matrix
dK_r = np.zeros_like(w_rs[0])
dK_w = np.zeros_like(w_ws[0])
# for all i in N (for every row that we've simmed)
for i in range(self.N):
# for every j in N (for every elt of the weighting)
for j in range(self.N):
# specifically, dwdK_r will change, and for write as well
dK_r[i] += dwc_r[j] * dwdK_r[i,j]
dK_w[i] += dwc_w[j] * dwdK_w[i,j]
"""
dK_r_dk_rs is a list of N things
each elt of the list corresponds to grads of K_idx
w.r.t. the key k_t
so it should be a length N list of M by 1 vectors
"""
dK_r_dk_rs = []
dK_r_dmem = []
for i in range(self.N):
# let k_rs be u, Mem[i] be v
u = np.reshape(k_rs[t], (self.M,))
v = mems[t-1][i, :]
dK_r_dk_rs.append( dKdu(u,v) )
dK_r_dmem.append( dKdu(v,u))
dK_w_dk_ws = []
dK_w_dmem = []
for i in range(self.N):
# let k_ws be u, Mem[i] be v
u = np.reshape(k_ws[t], (self.M,))
v = mems[t-1][i, :]
dK_w_dk_ws.append( dKdu(u,v) )
dK_w_dmem.append( dKdu(v,u))
# compute delta for keys
dk_r = np.zeros_like(k_rs[0])
dk_w = np.zeros_like(k_ws[0])
# for every one of M elt of dk_r
for i in range(self.M):
# for every one of the N Ks
for j in range(self.N):
# add delta K_r[j] * dK_r[j] / dk_r[i]
# add influence on through K_r[j]
dk_r[i] += dK_r[j] * dK_r_dk_rs[j][i]
dk_w[i] += dK_w[j] * dK_w_dk_ws[j][i]
# these represent influence of mem on next K
"""
Let's let du_r[t] represent the
influence of mems[t-1] on the cost through the K values
this is analogous to dk_w, but, k only every affects that
whereas mems[t-1] will also affect what is read at time t+1
and through memtilde at time t+1
"""
du_r[t] = np.zeros_like(mems[0])
du_w[t] = np.zeros_like(mems[0])
# for every row in mems[t-1]
for i in range(self.N):
# for every elt of this row (one of M)
for j in range(self.M):
du_r[t][i,j] = dK_r[i] * dK_r_dmem[i][j]
du_w[t][i,j] = dK_w[i] * dK_w_dmem[i][j]
# key values are activated as tanh
dzk_r = dk_r * (1 - k_rs[t] * k_rs[t])
dzk_w = dk_w * (1 - k_ws[t] * k_ws[t])
deltas['ok_r'] += np.dot(dzk_r, os[t].T)
deltas['ok_w'] += np.dot(dzk_w, os[t].T)
deltas['bk_r'] += dzk_r
deltas['bk_w'] += dzk_w
dg_r = np.dot(dwg_r[t].T, (wc_rs[t] - w_rs[t-1]) )
dg_w = np.dot(dwg_w[t].T, (wc_ws[t] - w_ws[t-1]) )
# compute dzg_r, dzg_w
dzg_r = dg_r * (g_rs[t] * (1 - g_rs[t]))
dzg_w = dg_w * (g_ws[t] * (1 - g_ws[t]))
deltas['og_r'] += np.dot(dzg_r, os[t].T)
deltas['og_w'] += np.dot(dzg_w, os[t].T)
deltas['bg_r'] += dzg_r
deltas['bg_w'] += dzg_w
# compute dbeta, which affects w_content through interaction with Ks
dwcdbeta_r = np.zeros_like(w_rs[0])
dwcdbeta_w = np.zeros_like(w_ws[0])
for i in range(self.N):
dwcdbeta_r[i] = beta_grads(K_rs, softplus(zbeta_rs[t]), i)
dwcdbeta_w[i] = beta_grads(K_ws, softplus(zbeta_ws[t]), i)
dbeta_r = np.zeros_like(zbeta_rs[0])
dbeta_w = np.zeros_like(zbeta_ws[0])
for i in range(self.N):
dbeta_r[0] += dwc_r[i] * dwcdbeta_r[i]
dbeta_w[0] += dwc_w[i] * dwcdbeta_w[i]
# beta is activated from zbeta by softplus, grad of which is sigmoid
dzbeta_r = dbeta_r * sigmoid(zbeta_rs[t])
dzbeta_w = dbeta_w * sigmoid(zbeta_ws[t])
deltas['obeta_r'] += np.dot(dzbeta_r, os[t].T)
deltas['obeta_w'] += np.dot(dzbeta_w, os[t].T)
deltas['bbeta_r'] += dzbeta_r
deltas['bbeta_w'] += dzbeta_w
sgsr = np.zeros((self.N, 3))
sgsw = np.zeros((self.N, 3))
for i in range(self.N):
sgsr[i,1] = wg_rs[t][(i - 1) % self.N]
sgsr[i,0] = wg_rs[t][i]
sgsr[i,2] = wg_rs[t][(i + 1) % self.N]
sgsw[i,1] = wg_ws[t][(i - 1) % self.N]
sgsw[i,0] = wg_ws[t][i]
sgsw[i,2] = wg_ws[t][(i + 1) % self.N]
ds_r = np.dot(sgsr.T, dws_r)
ds_w = np.dot(sgsw.T, dws_w)
shift_act_jac_r = np.zeros((3,3))
shift_act_jac_w = np.zeros((3,3))
bf = np.array([[1.0]])
for i in range(3):
for j in range(3):
shift_act_jac_r[i,j] = softmax_grads(zs_rs[t], bf, i, j)
shift_act_jac_w[i,j] = softmax_grads(zs_ws[t], bf, i, j)
dzs_r = np.dot(shift_act_jac_r.T, ds_r)
dzs_w = np.dot(shift_act_jac_w.T, ds_w)
deltas['os_r'] += np.dot(dzs_r, os[t].T)
deltas['os_w'] += np.dot(dzs_w, os[t].T)
deltas['bs_r'] += dzs_r
deltas['bs_w'] += dzs_w
else:
drs[t] = np.zeros_like(rs[0])
dmemtilde[t] = np.zeros_like(mems[0])
du_r[t] = np.zeros_like(mems[0])
du_w[t] = np.zeros_like(mems[0])
dwg_r[t] = np.zeros_like(w_rs[0])
dwg_w[t] = np.zeros_like(w_ws[0])
# o affects y through Woy
do = np.dot(params['oy'].T, dy)
if t < len(targets) - 1:
# and also zadd through Woadds
do += np.dot(params['oadds'].T, dzadd)
do += np.dot(params['oerases'].T, dzerase)
# and also through the keys
do += np.dot(params['ok_r'].T, dzk_r)
do += np.dot(params['ok_w'].T, dzk_w)
# and also through the interpolators
do += np.dot(params['og_r'].T, dzg_r)
do += np.dot(params['og_w'].T, dzg_w)
# and also through beta
do += np.dot(params['obeta_r'].T, dzbeta_r)
do += np.dot(params['obeta_w'].T, dzbeta_w)
# and also through the shift values
do += np.dot(params['os_r'].T, dzs_r)
do += np.dot(params['os_w'].T, dzs_w)
# compute deriv w.r.t. pre-activation of o
dzo = do * (1 - os[t] * os[t])
deltas['ho'] += np.dot(dzo, hs[t].T)
deltas['bo'] += dzo
# compute hidden dh
dh = np.dot(params['ho'].T, dzo)
# compute deriv w.r.t. pre-activation of h
dzh[t] = dh * (1 - hs[t] * hs[t])
deltas['xh'] += np.dot(dzh[t], xs[t].T)
deltas['bh'] += dzh[t]
# Wrh affects zh via rs[t-1]
deltas['rh'] += np.dot(dzh[t], rs[t-1].reshape((self.M, 1)).T)
return deltas
def bprop(params, manual_grad):
"""
Compute the gradient of the loss WRT the parameters (W)
using backward-mode differentiation.
"""
if manual_grad:
# compute gradients manually
fprop(params)
deltas = manual_grads(params)
# f = grad(fprop)
# auto_deltas = f(params)
# failed_keys = []
# passed_keys = []
# for k in auto_deltas.keys():
# rval = compare_deltas(baseline=auto_deltas[k], candidate=deltas[k])
# if not rval:
# print "compare deltas FAILED for key:", k
# print "baseline"
# print auto_deltas[k]
# print "candidate"
# print deltas[k]
# failed_keys.append(k)
# else:
# print "compare deltas PASSED for key:", k
# print "baseline"
# print auto_deltas[k]
# print "candidate"
# print deltas[k]
# passed_keys.append(k)
# if len(failed_keys) > 0:
# print "FAILED KEYS:"
# for k in failed_keys:
# print k
# print "PASSED KEYS:"
# for k in passed_keys:
# print k
# sys.exit(1)
else:
# compute gradients automatically
f = grad(fprop)
deltas = f(params)
return deltas
deltas = bprop(self.W, manual_grad)
[loss, mems, ps, ys, os, zos, hs, zhs, xs, rs, w_rs,
w_ws, adds, erases, k_rs, k_ws, g_rs, g_ws, wc_rs, wc_ws,
zbeta_rs, zbeta_ws, zs_rs, zs_ws, wg_rs, wg_ws] = map(unwrap, self.stats)
return loss, deltas, ps, w_rs, w_ws, adds, erases
================================================
FILE: run_model.py
================================================
#!/usr/bin/env python
import argparse
import autograd.numpy as np
from util.sequences import SequenceGen
from ntm.ntm import NTM
from util.optimizers import RMSProp
from util.util import gradCheck, serialize, deserialize, visualize
import os
import warnings
import time
import pdb
# Comment next line to remove determinism
np.random.seed(0)
# Uncomment below for debugging numerical issues
# warnings.simplefilter("error")
parser = argparse.ArgumentParser()
parser.add_argument("--model", help="location of the serialized model",
default=None)
parser.add_argument("--task", help="the task to train or test on",
default='copy')
parser.add_argument("--N", help="the number of memory locations",
default=15, type=int)
parser.add_argument("--M", help="the number of cells in a memory location",
default=7, type=int)
parser.add_argument("--vec_size", help="width of input vector (the paper uses 8)",
default=3, type=int)
parser.add_argument("--hi", help="upper bound on seq length",
default=3, type=int)
parser.add_argument("--lo", help="lower bound on seq length",
default=1, type=int)
parser.add_argument("--units", help="number of hidden units",
default=100, type=int)
parser.add_argument("--lr_rate", help="maybe halve learning rate at this interval",
default=None, type=int)
parser.add_argument("--serialize_freq", help="serialize every <this many sequences>",
default=100, type=int)
parser.add_argument("--log_freq", help="how often to log diagnostic information",
default=100, type=int)
parser.add_argument("--serialize_to", help="where to save models",
default=None)
parser.add_argument('--test_mode', dest='test_mode', action='store_true')
parser.add_argument('--grad_check', dest='grad_check', action='store_true')
parser.add_argument('--manual_grad', dest='manual_grad', action='store_true')
parser.set_defaults(test_mode=False)
parser.set_defaults(grad_check=False)
parser.set_defaults(manual_grad=False)
args = parser.parse_args()
# create directory for serializations if necessary
if args.serialize_to is not None:
print "Serializing to:", args.serialize_to
try:
os.mkdir(args.serialize_to)
except OSError:
pass
# if we use lr schedule, we need to keep track of errors over time
if args.lr_rate is not None:
print "Using lr schedule rate of:", args.lr_rate
errors = {}
error_sum = 0
# deserialize saved model if path given
if args.model is None:
# If not using a saved model, initialize from params
vec_size = args.vec_size
seq = SequenceGen(args.task, vec_size, args.hi, args.lo)
hidden_size = args.units # Size of hidden layer of neurons
N = args.N # number of memory locations
M = args.M # size of a memory location
model = NTM(seq.in_size, seq.out_size, hidden_size, N, M, vec_size)
else:
# otherwise, load the model from specified file
print "Using saved model:", args.model
model = deserialize(args.model)
vec_size = model.vec_size # vec size comes from model
seq = SequenceGen(args.task, vec_size, args.hi, args.lo)
# An object that keeps the optimizer state during training
optimizer = RMSProp(model.W)
n = 0 # counts the number of sequences trained on
bpc = None # keeps track of trailing bpc (cost)
while n < 10000:
i, t, seq_len = seq.make()
inputs = np.matrix(i)
targets = np.matrix(t)
loss, deltas, outputs, r, w, a, e = model.lossFun(inputs, targets, args.manual_grad)
newbpc = np.sum(loss) / ((seq_len*2 + 2) * vec_size)
if bpc is not None:
bpc = 0.99 * bpc + 0.01 * newbpc
else:
bpc = newbpc
# sometimes print out diagnostic info
if ((n % args.log_freq) == 0) or args.test_mode:
print 'iter %d' % (n)
visualize(inputs, outputs, r, w, a, e)
# log ratio of delta l2 norm to weight l2 norm
print "update/weight ratios:"
for k in model.W.keys():
print k + ": " + str(optimizer.qs[k])
print "trailing bpc estimate: ", bpc
print "this bpc: ", newbpc
# maybe serialize
if (args.serialize_to is not None) and (n % args.serialize_freq) == 0:
ts = time.strftime("%Y-%m-%d-%h-%m-%s")
filename = args.serialize_to + '/params_n-' + str(n) + '_' + ts + '.pkl'
serialize(filename,model)
if args.grad_check:
# Check weights using finite differences
check = gradCheck(model, deltas, inputs, targets, 1e-5, 1e-7)
print "PASS DIFF CHECK?: ", check
if not args.test_mode:
# optionally halve the learning rate if error has not gone down
if args.lr_rate is not None:
error_sum += newbpc
if n % args.lr_rate == 0:
errors[n] = error_sum
error_sum = 0
if n > args.lr_rate: # don't do this for the first "epoch"
if errors[n] > errors[n - args.lr_rate]:
print "halving learning rate!"
optimizer.lr /= 2
print "learning rate is now:", optimizer.lr
optimizer.update_weights(model.W, deltas)
n += 1
================================================
FILE: saved_models/associative_recall.pkl
================================================
ccopy_reg
_reconstructor
p0
(cntm.ntm
NTM
p1
c__builtin__
object
p2
Ntp3
Rp4
(dp5
S'heads'
p6
I2
sS'M'
p7
I15
sS'N'
p8
I15
sS'vec_size'
p9
I3
sS'W'
p10
(dp11
S'xh'
p12
cnumpy.core.multiarray
_reconstruct
p13
(cnumpy
ndarray
p14
(I0
tp15
S'b'
p16
tp17
Rp18
(I1
(I100
I5
tp19
cnumpy
dtype
p20
(S'f8'
p21
I0
I1
tp22
Rp23
(I3
S'<'
p24
NNNI-1
I-1
I0
tp25
bI00
S'\x96GPQ\x12\x08\xbe?\xf4\xb1\xe6\x08.\xe0\xa0?\xae\xf0T{\x08\xc4\xe0\xbf\xf7l\xa9q\xc4\xa4\xd3\xbf\x9f\x9f\x9a\xfb\xc2g\xdc\xbf\xe1A\xfb\x91\x12\xe8\xbc?\xb0\xe9:\x93xw\xda?\xf2\x84\x82\xdaW\xb4\xe2?MsF\x06\xa2\xe4\xdd?\xb5 \x930P\\\xa4?\xb5\x96\xa68K\xc1\xe0?=yn\xe5\xc57\xc4\xbf\xf5\xc2\xfc\xaav\xda\xa7\xbf\x05\xe4\xd9-\x92\x0f\xe4?^\xcb\xf7\x97\xdfJ\xd9\xbf\xd1g\xe2\xf7\x11Y\xe6\xbf=\x02\x03\xc3\x8b)\xdb\xbf\xf3\x8cj4\x0cl\xb0?S<%rW;\xdd?\x16\xb5\x14\xe2\x0f\x81\xe7?\x8f\xa1f(\x15f\xd6?\xf3[\x10a\xae\xb2\xa3?\xac\xc0P\x83\x15\xab\xb5\xbfze\x84\xcd\xe8\xa7\xde?\xe0\xd9-\x1a\xd2\xe6\x9a?.\x05L\xa0\x0fX\xb3\xbf\xf0\x18\x88\xf0\x0b\xcb\xdc\xbf-@\xa7\x96ck\xdd?X\xd6A-\x90\x88\xb5\xbf\xb6Fx\x95q%\xda?xt\n\x17W)\xaf?\xa1\xcd\xe7\x12\xb2\x97\xde?\xceyq\xfb_\n\xb9?\x0e7;\xf2*+\xd5?\xd014\x0e\xc1\x1d\xe1\xbf\xac\'\xd7"\x84\xcb\xd7\xbf\x95l\x04\xae\xdb\xf7\xc1\xbf,\xd0dmI\xa1\xb8?\xe2l\x0e\x88\x8bw\xe3?\xae[,2N\xb9\xd9?\xe4a\x8f\xbe\'\x01\xb4?\xbct\xb3\x82\x83R\xcb\xbf\x03\xf32\xc7\x80Z\xd3?\x8a\xe7y\xee\xd5\xb9\xd2\xbf\t`\xd6g\x96+\xe8?\x15\xcb-b\x84\xf4\xcf?\x1a\xf3\x18\xb3\r\xe5\x99?]\x890\x17\xc9\xb5\xda\xbf\xb1*\xeeLg\x87\xcd\xbf\x05\xd1p\xdd\xda\xf6\xc1\xbf\xce\x1c\x1f\xb3\x90#\xb5\xbf\xb3\x1b|\x86*\x9e\xdf\xbf\xf3\x03\x99\xac?\xd6\xd8?(d\x86 !p\xbf?\xcc|\xd6\xb3;\x1d\xdd\xbf@b\xe0\xb0\xd7\xf3\xd1\xbf*\x0b\x89\x0c\xca\xe1\xcb\xbfKK\x97\x11\xf3\x16\xd6\xbfT\xb4\xc6\xbaSc\x92?\x82\xaf!N\xd6C\xe1\xbf\xcfzb\xcb\x8bw\xdb\xbf\\\xa4FxmR\xd3\xbf\xaef\x9c\x1bY2\x9c?;sZ\xe2PH\xe2\xbf[:\x0f\xd4\xbf[\xb0\xbftw\xbb\xd9\x83\x0c\xc9?0~\xcc\xb4\\\x8d\xd7?v\x80\xc4\x0e\xf6\xa9\xdf\xbf\xd3z\x8b\xe4\x15%\xe2?\xf2g>\x06\xf9\xdaF\xbf\xc9\x80C\xab9\x0c\xe0?\xdde\x02o\x98\xfd\xc5\xbf\xe9\xf8\x8f\xe7\xc0\x9e\xd0?\xe6\xdf\x99!vE\xcb?\x15\xc1\x15\xb5uj\xd9\xbf\x19\x85)S>P\xcf\xbf\x96d.h!\x1a\xc5\xbf\xf0T\xc8\x86\xf6D\xd0\xbfy\xe30x\xfb\xea\xac?\xabs?\xa7\xe2\xcb\xde\xbf\xd5\xfd\x91\xbb\xe6\x9a\xcf\xbf\xee\xe0(\xfc\xba\xd0\x9f?\xc8/\x1c@\x1cS\xdc\xbf\x18\x81\xd0u.)\xbf?WeO\x1e+\x9b\xe0?\xdf\xea\xfe\xab\xff\x9a\xbd\xbf\x9f\xf3\xacXS\xe3\xc7?\x10\xfb\xcb.8\xca\xd1\xbf"\xf8\xd8\xd4\xacz\xb0\xbf?n\x1a\x81B9\x97?\xae\xc5\x17\xc5lH\xb6\xbf\xb2\xcc\xa3\xf0\xed\x1e\xd6?\x11\xdbG\x87\x9a\xa9\xc7\xbf\'\x181\xc8\xbd\xc6\xbf?\xbfA%a~R\xe4\xbf\x93E\xa7\xd4#R\xc7\xbf\x16\xee\xba\x80\x8dP\xba\xbf\x9c\x1e#\xc2i\x0f\xac\xbf\xbb\xdf\xe1,\xd6\xc7\xe0?\xce\xb1\x11/4\xa5\xe3\xbf\xde\xaa\xc0f\x11K\x9c?S\xfb\xfd,B\xe8\xc4\xbf\xc1\xd3%\x80\xe0\xc5\xc2?\x97ePq\xf1\xa2\xe0?;\xdf\xa0E\xae8\xe8\xbf\xd16\xfe\xb1\x03\x12\xc5\xbf\xf8\x92&\xbfdn\xcd?\x8c\xe5e<\\\xff\xd1\xbf\xb2@\xdf,\x85\x87\xe3\xbf\x0b\xa2Cc/\x17\xde?\xb3\x84D\xa8\xcf*\xc2\xbf\xad\xd5>l>\x19\xc2?-Amy\x0f \xa6\xbf\xc6\xb6m\xf2\x92\xb4\xdb\xbfP\x82B6F\n\xd8?L\xb38RJ\xa0\xdf\xbf\x86U\xcc\xc4\xed\xd9\xd5?\x8c\x875\x1a\x11v\xc5?l\xcd\x88;\xf2(\xd9?o\x8b\x80\nC\xc9\xb4?\xe6\xa5v3\x1d\xb5\xd6?=\xb3\x9b_\xe5?y?\x1d\x8a\xb2\x91\x02^\xc0?\xc1\xa5%b\xb2*\xae?/\xb4\x96\x8dqn\xe6\xbfJ\xdcLA-\xbf\xda?\x93\'\xcb\x03\xc2\xf7\x81?acpveF\xc4\xbfJR-\xbe"\xed\xb7\xbf\x1e\xd9kV\x9f\xa3\xc9?e\xb5E@\x91\xe0\xd3?\xd9\xf3\x9e\x82\xc6\x19\xb8?\x08\x15x\xa8\x14C\xd5\xbf\xff\xfcs\xf4\xd8P\xe7\xbf\xb1\xbc\xe6E*\x1b\xd3?~a\xc4J\x03\x92\xa4?(\xda\xac\xfdnC\xc3\xbf\xf9\x1c\xaa\xf4\x1f\x9f\xdb?\xcbz\nF\xd3\xef\xbe\xbf\xb8\xb0\xceq\xf8\x18\xbd?\x00\x01\xbd"T\n\xda?\x95F\x18\xd7\x18!\xab\xbf\xf0\x05\xfb,\xab\xd5\xca?~\xe2\xc4\x8dbd\xd9?1\xd0H\x9c\xfb\x00\xe0?\xb9\x0e\x06\xc5i\xfd\xd6?8sd\xe3\xae\x0e\xb9?F\xe7\x04u\x06O\xe0?\x8dt^Z\xf2\r\xce?-Z\xd9\x18\xc0L\xe2?\x1e\x83\xfd\xe6\xccm\xd8\xbf(0\xe5e\x82\x01\xc3?\xcf!\x11\xe4\x12\xd6\xd0\xbf\x17\x91\xad[~\xf0\xc3\xbf\xaa8@\x83>\xfa\xf2\xbf/<xq\x92u\xdc?\x9a+\xcd\x80\xdc\xac\xc0?\xba\xa1c\n\x0f\xbe\xc9\xbfvv\xe45\x85\xda\xd5\xbf\x0f\x13\xde\xd3\x0fa\xe5\xbfif\xa8\x86\xc4\x16\xd7?\xb9\xb5\xce \xf9M\xd2?\x08\xb7\xf1\x80\xec}\xdf?\xa5v\x01u\xaet\xc2?\x0bd\x1f\xda\xc2\xeb\xe6?\x17>\n\x0eBw\xc9?&?\x13.\x89\x11\xd3\xbf\x16A\x8dS0D\xd2\xbfyB\xf7\xfb\xd67\xe0?\xb7-, \xeeHq\xbf\'\x05\xaf\xa6\xedw\xbd?\x1d\xa7\x06[\x15\xff\xe6\xbf\xe3\xa2\xd6\xc4\x1d\xe6\xd1\xbf\xfb\xeb\xa8\xf7Y\xcc\xca\xbfBR\x87?2\x06\xe5?i\xb4\x17"$\x13\xe8\xbf`\xaa\xea\x16\x14\xda\xda\xbf\xb2j:\xe3\x03c\xa8?\xc6\xf4c\x00\x95\x9f\xd4?\x8b\xc1!!\xc3\x7f\xe7\xbf\xfd}QG\xd3\xa5\xd0\xbf\xf9\xcf\x1a\xf5\x0f\x0c\x89?\xa8\xb7\xeb\x9bkS\xa0\xbf\xa4\xd2\x93\x84\xbd\xe2\xdc\xbfE\x86\xc6\x0f\x11\xf6\xe6?+-=~\xf4\x99~?\xcc\x8c?h\xbd\xa3|?=\xc8e&\x8ax\xb6\xbf\x87ys\xe87U\xbf?\x081\x9a\xae\x0e\xbe\xea\xbf\x9d|\xf1\xb1\xc5\xe3\xc2?&$\xdej`\xcb\x93\xbf\xf5\xcc\xabXi\r\xdf\xbfL+a\'f@\xe4?\xc7\xee \xe7\x87\xd5\xe0?\xff\x84\xf6\x13-A\xc1?\xd3\x9d\x0f\x9a\x15y\xcd\xbf\xfb9\xcf\xdf\x17\xa3\xa9\xbf\x19\xfc\x1e2=z\xd1\xbf\t\xd4\xddW\xf6J\xe2?75\xc4\xfbZ\xf6\xc4\xbf\xf60/%\x9a\x1d\xca?\xef\x14\xbe(\xdd\x08\xb5\xbf\xb5\xf9\x8b\x11&=\xc4?\xa47\xd4\xa2\x01 \x85?\xe5\xde\x18\xfb^\xb6\xd3\xbf\xa5{WI\xe3c\xc8?Y\xea\xd1\xc8\x94\xf2\xd6\xbf\x7f\xd4\x13\xcc\x96\\\xcd\xbf\xaaA\xa6\xcd4\x9a\xd6?\xd7\xddd[\x87F\xe4?\xbe/\x0b\xd8\x01a\xa1\xbf@\x16\xab\xdeU\xab\xb0? \x10\xde\xe9\xe5\xc4\xce\xbfE,R\xb4\\}\xd3\xbf\x16\x95\xc0\n-N\xce?\xac\xdd\r*\xe8`\xc0\xbf\x8f\x00\x16Q\n\x1b\xcd\xbf\xf3\x92\xb4\x1a\xc9\xcb\xa3\xbf\x0ekTGg\xfe\xd6?\xa8:\xb7\x1b%+\xc5\xbf\x97\x1cp\xc6\x98\t\xc5?\xf2e\x8f\xc9i%\xe1\xbfA\x08eNB\xf5\xce?\x08\xce\xf7\xb3#(\xdb\xbf\x03F\x9c\xfeuD\xdf?\x01\xcc\x1b\x9c\x8c?\xd3?|\xe3\xc7\xc1\xa4\x05\xd7\xbf\x03\xcdl\x10\xf3\n\\\xbfL@\xb7s\xac\x1b\xd3\xbf\xf9\x0f\xe0H\xa7\x8b\xc4?\xec0:\x9d4p\xda\xbf\xb9\xdd\x9c\xb8\x1eP\xc3?\xf7\x9c`\xf5\x92\x02\xdb\xbf\xcbW!NG\xc2\xe1\xbf\xbe\xb07_\xc6\xe0\xd6?\xfa\xff\xf8\x97\\\xf4\xb7?\xa2>]\xb4g\xef\x86?\xae\x19U\xe6:q\xb7\xbf\x03\x8e<\xca\x90\x84\xd9?U\xcc\x89`\xfc\xec\xda?\xb3\xac\xdbP\xe2\xec\xdb\xbfw\x9eu\xcc\xa8\x9b\xbf?-\xe5!\xe5\xdf\xc0\xb6\xbfV\x14\x96\xd4\x85\xde\xce?\xe8\x00\x95\xbfH\x18\xd2\xbf!>\xb6$\x894\xca\xbf\xccAXt\\#\xd2\xbf\xbb\xca/\xde\x8eR\xb7?\xad\x90GQl&\xd5\xbfr\xef\xda~[\x1f\xa7\xbf\x1a\xc8%\x8e\xff\xdf\xc5?\xe8\xfa\xb3\xc0\xee&\xde?\xac\x0fh\x94\x03e\xbf?dkbITU\xd2?\x0c\x8f\xde\x16\x93@\xdc\xbf\xae\xc5\xbex\xe3\xdb\xba\xbf\xb8\xb0\x0e)\x9b\xfd\xae?\xbc\x7f!\xfc\x7f\x17\xd4?\xcd\xe5\xc0\xa2@\x8a\xe5\xbf\xf0\'\x83\xdd\x82\xb4\xc9\xbfS|\xec\xdb#t\xc9\xbf\xbd\x99e\x9a.\x80\xdb\xbf\x1a\xa9\xdb\x86\x0b\xc8\xd9?\xc3qqv\xeeW\xe0?\x8aw\xb8i\xb8#\xd3?E\xb6\x89\x11x\xa6\xda\xbf\xd9\xb2\x1aB+A\xbd\xbf\xa7\xa9\xa3Q6B\xac\xbf\x10MF\x07 \x87\xd5?j\x9b\xea$U\x83\xdb?\x91!^\x9c\x98\xbd\xd9?9pn\x02\xedI\xc5\xbf\xc3:Gq\x8f\x85\xd7?\xe1\x0cC\x06O\x94\xd9\xbf\xc3\xc9\x14\xb5(\xfa\xd9?\xb7\xab2\xe5\xf2\xc3\xe3?Hk\n\xa9X\xb0\xdb?\x1ek\xe7\xc7\xce\x88\xc2?3\xd5M\xf1\x95\x9a\xe7?g\xd8"\xcdm\x1b\x91\xbf\x15\xc3d:\x12\xc8\xa1\xbf\xd3\xe4\xaf\x8eG\xfd\xd4\xbf\x15\x12\xc5\xedd3\xe2\xbfI\xf7\xdb\xdbng\xd2\xbf\xfd[\x92\xb8\x14\xfe\xd0\xbf)`\xbc6\x13\x14\xe4?"\xbf\xbc2\x15\xd6\xd7?\xda=x\xb9\xae\x84\xda?;\xc11\xec\x86\x7f\xd8?\x0b,\xe0\xaf<\xea\xd2\xbf\xedA}\x8a\xf0\x95\xdb\xbf(@\xc8\xa6\x10\xfc\xc0?\x8e\x81P\x85\x9e\xda\xd1\xbf>\xd2\n\x11q<\xa2\xbf\xa5\x9b!\n\xe4\x0f\xc3\xbfl\xeb\x87f\x12\x0b\xc5\xbfl\xd1\xe1\xad\xb5\xf6\xe1?\xf7\x12\x07\xff\x92:\xd3?\xaey\xf17\xd0\x9e\xe7?\xe0\x9a\x05B{\xd6\xdf?\xc9\x87X\xf9\xa5\x9d\xd1?]\xda\xd4\x1c\xe5\xf4\xbe\xbf\xa0\x0b(\x11\xfc}\xd3\xbfC\xb2\x08{y&\xcf?V\xec$\xcdC\x10\xd0\xbf\xde\x86\x1cz\xa3X\xd9\xbf\xc6-\x99\xc6\xdc\x07\xd2\xbf\xec\x9aX\xce\x9aV\xd5?\xd4\xb5\xd6\x02\xff2\xe5\xbf\xd2\xf1\xce\n\xa0\xf2\xc0\xbf7\xeb"\x82\xa8\x15\xdc\xbf\xac,&\xabY\xc6\xd6\xbf\'P$\xa9\xc4b\xd4\xbfk\x8b\xa8\x82\x90\x8c\xd7\xbfi\xe4\xd8)/f\x9a?Cvf\x86\x8f\x12m\xbf`\x11\x0f\n\x85i\xd1?K\xfdI\xc5\xb0\xb4\xde?\x876O\xb2?\xc4\xe8?Z^\xc5\xe3Z9\xd0\xbf\x16\xe6\x1b\x11\xbbb\xe2\xbf~\xb2\x01#\x8f\x00\xe3\xbf\xcd5\xfc\x87*\xd8\xbf\xbf\xe8y\xac\xf2@\xcc\xd2\xbf\xca\xf1h\xf5\x87\x06\xc3?d\x15.\x9bq\xe0\xbb\xbf\xac\xe6\xd0i\x01\xc7\xc8?^v\xc7\x82\xaa\x8f\xa2?\xfbq\x99]\x8ax\xda\xbf5\xf1\xe7\xe2\x8f\xf4\xe1\xbfM\xd0\x1fV\x9b\x95\xc5\xbf\xf8\xae\x1c:\xa4\x06\xdc\xbf\xad^a_\x1cJ\xb4?\x81N\xf4\n\xec\xa4\xd7\xbf\xb9\x08\x98\x92\xe5\xc1\xc2\xbfo\xd9O-\xf57\xbb?\x98\x8f\x05\xcb\x9aq\xc1\xbfG]M\x96<\x7f\xcf?s\xba\xbb\xf9\x1f\x80\x91?\xb08\xd6\xdc\xa8\x06\x9b\xbf\x11\xcb\xa3\xf8\xed\xea\xca\xbf\x1e\xf9\xc3J\xd2\xad~?F2\x9e,\x97\xcd\xd5\xbf,S\xa3\xf9\x00\x9d\xda\xbf\xeco\x86-\x81N\xc3\xbf~\x8aP\x10\xa1\xc9\xc0?\xc4\xc6\xd1\xceO\xbf\xae\xbfE\xcbC&\xc2\x88\x91?"I9\xcc\n\x10\xeb?d\x9c\x8eN\rf\xc0?\xbfXi\xdf9\xe6\xd1\xbf\xba\xb7\xc4nfZ\xc3?\x888i\r%\xdd\xd0?\xc8\x9bi\xd6\xc1Y\xe6?\xb0\xe5\x05\xcd\xa1\xdb\xd8?\x05\xe7N\x0eI\xed\xce\xbf\x85\x95P8\xd3\xcd\xdc\xbf\xed\xef\xd7\xa22\xfd\xc4\xbf\x00\xed\xae\xf1\xd2\x12\xd3?\xd5.\\\x16/z\xde\xbfH\xa3j\xed\xb2\x8c\xd7?\x9d\xd7,]\xf1\xd7\xbc?\x0b\x89\xb4\xa9Q\x83\xc5?\xe7\xb20\xd7x1\xe2?\x9c\xda\x87\xa0pp\xcb?\xba%\xe1!\xcd#\xdf?\x91?h\xec\xeb\x02\x9d?\xceO\xcfP\xec\xc3\xda?w\x8e((\xf6u\xec?\xff\xacr[\x89\x9f\xd0?.\x15\x81\x88\xa6\x18\xd1\xbf\x03*\xd9\x85k\x10\xa7?e\xf0kA\xe1\xe5\xb0\xbfz\x8e\x84=\x98\x18\xe2\xbf\x9c\xe0w\xcd\xdc\x18\xb5\xbf7\xba\xefm\x1b{\xcd?\xda))\xfb\xab\xc2\xd2?\xc2\\\xfc[\xb3\x9e\xa1\xbf\xa7a6\x02\xf3!\xc5?\xb2\x1d:\xf4C\xd7\xc5?\xfc/]\xb9O\x9f\xb2?\xb8\xaf\x14\x98\xa2\xab\xdd?\xfao\x1d\xfa\xa9L\xd1\xbf\x85\xab\xe2\xa1\x006\xcf?Z\x02@\xbe\x84\xdf\xda?\x1dt\xf5\x80\xba9\xad?\xf6\xc79\x8b\x0c\x04\xc8\xbfNd\xcf\xbc\x13\x1b\xc4?\x9ak#6_\x07\xd2?)\xfb\xd9\xcdXh\xe0\xbf\xc1\xbf\xdb\xf8\x88T\xb4?\x16(E^SW\xc1\xbfe\xe8\x88\xd7\xf4c\xe6?\xb1p\xe1<\xfdT\xdc\xbf`M\xad\xf3\xc95\xe0?\x1d\xcd8\x07\xca\xb9\xa4\xbf\xb1\x10\xe4R\\\xdf\xd4\xbf~P\xe2\xd80\x16\xe3\xbf\xf8\xd9\xeb\xcb\\\xf4\xdc\xbf\xd1\xcbj\x12&\xfd\xba\xbf\xf9\xf5k\xce\xcb\x95\xd4?\x0c;+\x9b\xd9\xf6\xd9\xbfK\xf2\xa6\\Jr\xdd?\xd3\xfcK\xaf\x95\xeb\xbf\xbf\xbdQ\x04b\xfav\xd3\xbf+C\x1f\xd9\xe0J\xb3?\x02T\xe4\x1c\xb5\xf2\xc3?\xf6\xf2\xc3\xb2\xb1t\xd4?\xb4KI\xe3D\x1c\xc7\xbf7B\x02iA\xea\xd6\xbfU\xedI1\x06E\xdf\xbf\x05$\xb4\xc1GK\xeb\xbfv\xb4>T\xac-\xda\xbfZ}\xdd\r\xf8~\xd9\xbf\xdc\xf5\xda3\r\xe1\xd1\xbf\xba\xd5&i\x84\x93\xcb\xbf\xc8\xe60\xacdZ\xdd\xbf\xaf3b\x07d\x98\xa0?\x12D\x89\xe1]\x05\xd2?#\xf3\x9f\xc3\xd1\xf6\xd2?8\xbf\n\xa9\xa7g\xd4?\xd9K\x8d\xcd\x94~\xbd\xbf\xee\xba\x0f\n\x88N\xce\xbf\x9f(\xff_p\xa0\xed?\xa8\xa6\x08=\x04\x15\xc1\xbf\xc6\x97\xc7\xd9\t\x1e\xc5?\x01O\x18\xc4\x1c\x81\xd3\xbf\xba\xe5\xa9\x89\xf5\xb2\xc6?\xa1\xa2\xf3\xd2\x06\x91\xd7\xbfu\']\x04|\xb2\xdf\xbf\xe9\x81\x91\x07`4\xb3\xbf{\x9ft`\xfb\xa3\xd2\xbfn\xa5\x1f\xaci\t\xde?\xa1k\x94\x07\x97\xc4\xb9?o]\xc9\n\xcb\x04\xac\xbf/\x06\x98\xa2kG\xd7?\xeeW\x83\x1cW\xf5\xd1?\xf3\xdc\xd8\xfd\xb4\xcf\xcb?Pr\xa2\rW\xf4\xd1?\x1eG\\.\xa5\xe4\xda?Y\xbc\xe5\xe8\xcdo\xa1\xbfd\x93\xd7\xe79N\xc7?\xb8\xce\xd3\x03\x8d\x1a\xe7\xbf\xc7\xa4\xa2#\x94\xbb\xf0\xbf\xc6?\xf6\x0f\xa6\xb6\xb7\xbf\xb0\x7fQ\xd5\xec\xde\xc5?\xb4\xa7\xc4K\x03\x17\xdb?\x86\'\x91\xb1n2\xc0?5\x88>\xd1\xa9\xb8\xef?\x83-\x9a9 \xa7\xd0\xbfs\x18\xf1H\xb5\xdf\xc1?\xacQ\x81\xa3\x06x\x8c\xbf\xf1\r\xed\x10-\xbc\xdf\xbf\xd7@\xb5\xa5\x18h\xdf?\x19\xec\x96\xd9\xd7r\xca\xbf\x9c\xc6/\xf4_\xd5\xd5?b\x82\xe4H[\xb6\xd8\xbf\xa5\x17\x17\r\xf9\x15\xc2?\xc55\xd9\xf2\xcc\x1e\xe3?\x14\x89a@\x85\x92\xb1\xbf\xd2Wv\xbb^\n\xc0\xbf&I\x02l\x9e\xae\xbc\xbf\x00\xd9\xc95\x02\xe3\xb7?\xc7a\xbe\x03\xf3*\xed\xbf{\xf0NP\xe7\x90\xd6\xbfa\x03@\tP\xd1\xcb\xbf\x1e\x88\xc7\xeb_\xa5\xde\xbfuH\x87W\x96\xee\xdc?g\x1aq\xe5\x12$\xda\xbf\x05+\x8e\xb9!$\xa6?t\x04\xa2\xa1\xefQ\xda?\xfdk\x1a\xc8\x8f \x92\xbf\xdct\xb3\xc3\xe7z\xa7\xbfc\xd6\xce/N\xd2\xe5?\xa2\x1d\x015\xf3\x19\xaf?\xde\xa2wi\xe5\xe4\xc0?^\x00\xdf\\\x15\xba\xcb?\xb2\xf6\x9e\xebbJ\xc4?\xc4\xa0\xda\x08Z\xec\xc5\xbf\xe2\xb3\x89\xed\x86\x02\xde\xbfx\xf5\x9f\xf1#\x9a\xa3?(\xf3\x93\xff%\xa4\xd4\xbf\xb5\xe6\xdc@m\\\xb0\xbf\xf04\xf3\xfa\xeb\xac\xd6?\x1b\x81j\xfa\xcdy\xcd?\xd8\xac\x86\xcd\x14\x18\xbb?93Ac\x93\x9f\xbd?\x0f\x9cO\xea\n[\xdd? \x83\xfds\x08"\xd3?\xfd\x83\x14w\xa2\xd4\xde\xbf\xe2=Q7[Q\xd2\xbf\xfcPJK\x84R\xd4?W\xcb+K`\xbe\xd3\xbf\xb0d\xf2\x16\r\x10\xd2\xbf\xd6\xce}\xfa\xe0L\xb2?\xca\xfaM\x93\xce\xb5\xa8\xbf%\x03\xa2\xe5\'\xc0\xb3\xbf\x14\xc5>$\xe3u\xe2\xbf\xf3\\\x9c\xd4\x9d\xed\xcc\xbf'
p26
tp27
bsS'bbeta_w1'
p28
g13
(g14
(I0
tp29
g16
tp30
Rp31
(I1
(I1
I1
tp32
g23
I00
S'\xf8\xfa\xdd4\x1a\x82\xd5\xbf'
p33
tp34
bsS'bg_r1'
p35
g13
(g14
(I0
tp36
g16
tp37
Rp38
(I1
(I1
I1
tp39
g23
I00
S'F\xb3\xb4L\xdc\xfb\xf6?'
p40
tp41
bsS'bg_r0'
p42
g13
(g14
(I0
tp43
g16
tp44
Rp45
(I1
(I1
I1
tp46
g23
I00
S'8:\xba\xf4\x01F\xf5?'
p47
tp48
bsS'rh1'
p49
g13
(g14
(I0
tp50
g16
tp51
Rp52
(I1
(I100
I15
tp53
g23
I00
S'\xa1\x8c\xdb}\xc2P\xe4\xbfs\x95wJu\xc6\xc2\xbf\x1c\xfb\xbf}\x1fZ\xc5\xbf\xd4t\\\xd1\xaa\xa2\xb1\xbf\x7f\x9f\x05$V\xc0\x8f?\xe5\x1fo\x82\xd9\xda\xc1\xbf\xc7\x7fW\x18v\xf6\xc8\xbf$W{\xb1\x98\xb7\xd0\xbf~\xba\x11Z\xe2\x0e\xd7?\xaa\xbf\xbb\x82KE\xcb\xbf\xb4\xa3\xa8\xb1\xf7\xc3\xb2?>]\xcec\xa1\x08\xd3?\xc0\xc8\xc5\xba\xafi\x9f?\x8aa\xd9\xd5\xf8\x84\xb1\xbf\t&\xe1\xba\xae#\xd4?y\x0fm\xa8\x83\x98\x9e?\x07\x81\xc9\x1f\x05\x9c\xb2?\x86?\xbf#\xea\xd8\xad\xbf\xfa\xae\xb1\xb0\xe2\xd3\xd6?\xe3\xce\x8d\x9e\x9b\x02\xb2?\x16\x03\x13v\x82\xc2\xb2?\xe45Y\xe6\xf2\xe9\xb2?\xe1\xeb&\x1d\xdc\x11\xdb?u\r\x88\x8f1\xe7\xd1?\x89X\x8a\xec\xa2\xa8\xc4\xbf\x88\xbd\xe7\\\xbf\xb7\xc8?\xe0\x04\xb6\xa5\xca\xd9\xcc\xbf#\x92\x805\xdd0\xcb?zh\xdbMAy\xb6\xbfSOS\xe8i9\xc0?\x15\x1e?\r%\xb7\xd4\xbf2\xa1\xa3\x98*\x92\xcd?\x945\x83\xa5}m\xa7?\xfe\xe8T>P\xa8\xc3?eQQ\x10\t\x99\xc7\xbf\xa8\xa1\x81\xc9\xebM\xb7?-\xee\x96i\xd9\xb7\xac?\xb0\xca\xf0\x90m\xc5\xc1\xbf\xf2G\xf0\xab\x94\x89\xb0?\xaf\xf2x\xc5\x1d\xc1\xda\xbf\xcc\xec\xc0\x8bq9\x92?\x9a\xa7\xa8\xfbl\x0f\xca\xbf=\x06\xc5x1\xf0\xd5\xbfO6\x18\xc3\x85\x0c\xce?#\x8f\x8e\xa96\x84\xbc?\xaaa\x12I\x81\xd7\xd4?\r\xbdS_\xe0\x16\xbe\xbf-\x17X-\n9\xd0\xbf3\x9c\x94\xc8\x9f\xa9V?. H\xad\xc6}\xdc?3oI\x93&\x07\xb4?\xeb\x01\xc4\x81\x83"\xa1\xbf\x89R\xc1\xeb\xa4\x89\xa9?\xd9JN\xbd\x11\xcc\xba?\t\xb5\xa65\xebX\xe4\xbf\x7fN\x8a\x12\x0eN\xaf\xbfmh\x89\xb0\x89\xd5\xa1\xbfG\xd0\x12\xda^\x9c\xdb?\x8cp\xfc$AX\xd3?\x99\x1a\xca\xa4\x9fG\xba\xbf\x0c0S\x8f\xf8V\xdd?A\x1fDBC6\xc4\xbfN\xc2T\xda\'\x98\xc9\xbfp\xb0M\xb9\xaa(\xb1?\xfer\x0f\x00k\x08\xbd\xbf\xa9Z]\xd8\x85\x91\xc4?\xdaZY\xc6\xd1L\xd7?>WP=\xe0\x84\xad?W\xdb=\xa1\xac\xea\xc0\xbf\x835\xd7\x88y#\xe0\xbf\x84\x1b\x94bI\xd7\xc0\xbf\xdfH2\x84\xe4\xb8\xb9\xbf\xfe\x91\xf6\xdf\xa4\xb5}\xbf\xb5V<\xc2\xf0\x8d\xcb?\x17\x86L\xe6\x1bR\xd2\xbft\xf6\xe8\xc8#\xdb\xc7\xbf\x10W\x9c\x89\\\x05\xb9\xbfrg\x84\xcd]\x90\xc8\xbfB\xe8\x02\xda\x8a\xd8\x92\xbf1\xad\x91\xe3m\xd5\xc8\xbfDV\xdb\xd8C\xbeo\xbf{\xd5\xa8\xe9\x9f-\x8a?\xa7z\x1b\r\xbd\xfe\xc4\xbf\xc4yGu\xbe\x94j?\xb3v\x92\xe4\x8e&\xe3\xbf\x95\x86r0\xadB\xcc\xbf\x95gh\r\x8b\xb8\xe0\xbf\x07\x01U\xd7\x10\xb4\xb6\xbfq\xbe\x02\xce\xbd\xff\xd6?\xc1\xde\n\xfc\xac\xdc\xd3?\xe3z\xbdV`H\xd1?\x0c\x17H\xa2\x91\xc5\xad\xbf(\x9c\xcc\x8f\xe5\xfa\xd7?\x00\x84Hu(8\xb1?\xc2\xc1~\x94?\x99\xc5\xbf\xbdE\xe4\x07\x0e\x1f\xbe\xbf\x05\x9f\x19\x0e\xabg\xc5\xbfc\xcf\xfa\xbf\xd3_\xcb?\x97\xa2H\xab\xb5\x08\xb9?W\xe5\xe8\xa5}\xa7\xce?]\xd3"\x84\xa53\xbc?hcW\x9b\xa1\xa4\xd0?B\xf1\xe4\x13\xce\xe9\xb9\xbfwr?\x1av\x15\xc4\xbf\xf8j\xf4\x0f\xee\xcd\xca\xbf\xcc#\x1dSJ^\xa9?RMD\xef\x9b\xda\xc4?\'\x881\x85\xbd\x8e\xc1?\xa6xW:\xfb-\xc0?\xd4\x10|\xa1g!\xb5?\x16\xb3y\xcfl\x02\xd3?\x15W\x85\xdb\xbdO\xb3\xbf\xc75j\x07\xa8\xd7\xc7?\xc2\xfc,\xa0\x9c4\xd3\xbfwcLU\x14\xe6\xdc?\xb0d\xcb\xf4qD\xa8?\x01\xd3\xe8\x14\xe5\x9c\xd5?\tK\x8b\xd0\xe9\x95\xd3\xbf\x9e\x82O\x07\nz\xd0\xbf\xfde\x98\x16\x96T\xbf?\xaas\x89\xfd\xd2\x0c\xd4?\xaf\xd6+\x10\xae3d?\x05\xbb}\xb5}\xe7\xd5\xbf\xda\xec\xcb\xcd\xec\x88\xc1\xbfhB%\x86\xcf\xdbn?\x89\x050\xd2!\x88\xc1\xbf\\O\x81\xa1\xc5{\xdb?)\xf9:4Z\xc2\xd1\xbf\x95\xbf\xf2;(\xcb\xbf\xbf\xc1S\x018\xc3\xbd\xe6\xbfQ\xe0U\x8e\x01\xc5\xbe?\x98\xfd\x8a\xf3]:\xce\xbf\xed8\xfa\xb5>\x19\xc3?\xa6\x00k\x15m\x18\xd0?\xf4\x9261B>\xc6?{\x8fF,$\x05\xcc?\x0b\xf1\xefx\xdb\xd8\xd0\xbf\xfc\x15\xde{t\xe6\xaf?aDu\x92\xd6$\xab\xbf\xe4\xbe\'\x96\xf19\xc2\xbf\xc5\x9a\xa5\x07\x83\xe0\xa0\xbf5\x0f\x01\xd2\xbd\x1a\xcd\xbf\x8a\x7f\x13\x98\xc7p\xbf\xbf\xf9\xd0V\xcdk\xf0\xa3?\xd1\x19\x89\xfc3\xf6\xaa\xbf\x889W\x08G\x00\xaf\xbf\xdb;\xed\xe1x\xd6\xc3?aW\xbc\xa8\xa1\x13\xc9?HlD\x7ffT\xd4\xbf\xa8;\xde\x0f\xb4\x1b\xaf?.\xfc\xa8\x7f\x02\x13\xcf\xbf/\x18\xe2\x84\xd9\x91\xb1\xbf\xb2\xc7\xc4.m\x9b\xb6\xbf\xdd\xc9\xad\xd6\xaa\x85\xce\xbff\x97\x8a1\x82\xc2\xa4?q7\xc5mbu\xc8?\x00\n\xf9\x85\xdd#\xb4\xbf\xfb\xaa\x0e\x1a\xbf\xe2\xc7?H`\x7f\xfby\xd1\xb5\xbf\x8f\xb5@\x15x\xd3\xe6?\x16\x97Fj\x10R\xcc\xbfeg\xd9V\x00\x18\xc4?\xb5$\xda\x8f(!\xc4\xbf\x9bp\xf4\x86^_\xa7\xbf\xdb\xe4\xfa\x9f\xa6 \xa1\xbfw\x96\x8fW\xcdV\xae?\x930\xa3VO\x16\xca?\xef+\x06V\x81\xd0\xd7?(\xf4O\x1d\x94\x84\xca\xbf\x02\xcd>\xcb\xf5L\xb7? x\x11\xf6D>\x90?\xe0\xecZ\x0e\xd5\xe9\xaf\xbf\x81t`\x02\x04\x0e\xc4\xbfz\xad\xb7}U.\xcd\xbfdy\x974\xc2\xa7\xd6?\xb2Ev{\x94\x98\x91\xbf\x91@\xf6\xd6\xb8\xf4\xe2?6\x92\xc1\xec\xd1)\xcf?\xf7\xe1o\x10\x04\xd9\xa7\xbf:\xea\xa0=\xf9\xf4\xcc?`\xe3\x1f\x1a-\xb6\xc9\xbf\x01u\xb9\x14\x83\x1d\xc7\xbf\x15\xe7\xd1\xb5\xb8\xc9\xd0?\x82\x90v\x13\x0b\xd7\x83?\x06v\x1cU\x9e6\xce?\x84\xbd\xd4__c\xca\xbf\xcc\xbf\xdc\x0f\xde\xdd\xd3\xbf\xaf\xf0\x9dhb\x87\xab\xbf\xfa\xa5 \xe1 \x9e\xac?\xc2b\xce\x0c{O\xd6?1y5\x99\x1d\x9a\xbe?\xbe\x17$\xa7\\\xf8\xc8?!\xb2JL\xa2\x8a\xce?\x90\xee.\xb34\x8b\xd7\xbfRvb\x84\xaaE\xa4?\xc8l\xd5\x83\xde\xc7\xbf?\xa6<\xdf\x95\xb1>\xa4\xbf\x06\x13\xb4J\x171\xc7?`\x18;n\x12\x1b\x92?QF\xb6/\xce\x1e\xcd\xbf\xb9\xc84\xad\x07\xa2\xbd?\xeb\xd0C\xe1H\xb7\xb5\xbfIlx\xfb\xad\x1d\xad\xbfo*\xe7#\xf6\xa2\xc0\xbfFT\xda\xbf\xa5\x14\xc4?\tn\xd5H\x06Q\x9d\xbfQEP\x04\x92\xf6\xc4\xbf\xbf\t\xc2 \x94\xb3\xdc\xbf\xa2yG\x95\xcf\xa0\xac\xbf\xb4n\xeb|\x15\xa9\xc4\xbf\xa1H\xc9\x08\xd8\xa4\xdc\xbf\xa4\xf6\x805\xfe]\xa0\xbfJ`\x03;/q\xcc?\xd6\xb5\x92\x84D#\xbe\xbf3\x02\xfbx\xcca\xac?Z\xd7\xf5\xad \xdc\xd3\xbf\xa0J\xaf$p=\xb8\xbf\x07\x7f\xb7\x10\xde7\x9e?\x07*\xc5>\x14\x86\xc6?\xf8\x8d.)\xaf\x87\xd4?,;f \xce\x8e\xad?\x1f\xb6\xd8Q\x87\x8e\xc8?\x92\xbe\xf5\x9f\xc5;\xbc?\xea\x83\xa9=z\xe0\xcd\xbf/n\x90\xe0\xe2\xc6\xd2?8P\x8b\xdc\xb3M\xc7?\xa2\x82x\x1br\xb6\xc0\xbf\xaf\xb5$g\x1f,\xd0?=\x953]\xafg\xbd\xbf8\x8e\t\xbc\n\x06\xb2?Pr\xa5X*Z\xb7\xbf9u\xc4\xab\xb78\xa5?\x0c\xa7\x08W0\xbd\xd2\xbfpAE\xf8P\x84\xdc\xbf?\xfe\xeb|\x0f\xfd\xb5?x\xb4*,\xc2\xf9\xd5\xbfEW\xf3?/\x99\xa5\xbfOc[Z0\x97\xc4\xbfC$\xcak\x94\xb4\xc0\xbf\xfa\xe9\xb3\xe1,H\xd3?Y\xda\xd8h\x99t\xbc?\xd6\xa2\xfd\x1d\xdeD\xb1\xbf\xe0\xd9\x1e\xf5\x149\xba\xbfK\x9b\xacB\xf6|\x94?\x99\xac\x10\xef\x7f7\xc7?39\x04r.\xc1\xc7\xbf@\xed\xba\x17py\xb3\xbf\x1d\xc1\xd6\x84Z\x99\xcf\xbf\x9d7\xc3&\x92\xa3\xd1\xbf\xc8\xcd@\xe0\x89\x1f\xbe?\x8b\x9a\xe30\xff\xc7\xae\xbf\x19\x8b\x88\x1bZO\xd4\xbf)\xd7\xc7\xd4%D\xab?\xd5h6>\xf0(\xc7\xbf\xeaj\xffl|\xd9\xcc?\xd4\xce+%R\xe3\xb2?\x1f\x17\xf7\xf9\xb9\xf1\xb6?\x8d\xcf2Z\x9c-\xcb?W\xed\x9a\x9fw\xf2\xba\xbf\xc4U\xed\xd4\xfdbw?\xb3cP\xc4\xab\x9b\xa0?~\x12\xf7B"\x1b\xb1?\x9e\x05>Z}+\xb7?*5J\xf9\xf7\xc2\xbb\xbfUuRN6^\xc1\xbf3w\xdd\x1c\x03!\xb0?\xe8r\xb3\x80\xd6=\x90?\xd0\x02y4Pc\xcf?\x96\xb3]Igj\xd8\xbfIxrL\xcd\xf7k?J\xd1\x0bcn\xab\xa8?\xed\xf0RO\'K\xc3\xbfv\xb2hy\xf9{\xb2?\x10\xc1\x0ctb\xd6\xcc\xbf\x8d\xcf\xe0\x93\x95\x19\xc0?\xd2 \xcba{\x1e\xb8\xbft\x1b5\x1b\xa8\x18\xd1\xbf\x9b\xf2q.\xb2\xb7\xa5?\x13g\xc4w\x8e\x9e\xb0?\xa3J\xa1\xa6\xd7\xa4\xb9\xbf\x14|\xad\xea\x0cW\xd0?g,\xda5\x9c\xb9\xb7?\xde\x1eu\x11\xc4N\xa6?\xdf\xfc\x97\xb8\x93\xc1\xc7?\\\\\xc3\x10\x8cq\xd1?=\x94nc8!\xa4?\xee\x82\xb9\xec\xf6\xf3\xa1?\xa0\xe2zX\xbe\xa5\xd5\xbf\x03\xfc\xee\xd7\xf4\xae\xbe?%U\xc2\xa6+\xdc\xb3?f\xbaj\xba\x961\xbc?\x82h\x17\xab\xf1\xd5\xbb?h\xc2\x05\xbf\xef\xb4\xd3\xbf\x19\x04^\x14\xc2n\xc4\xbf\xb8y$*\xef\xbf\xe1\xbf\x17\x06+\x81>\xf5\x80\xbf\xa9\xe0\xa0\xceR\xcf\xc3\xbf\xdb\xe8Y[\xac\xd9\xe9?\xcb\xb6\xfeYG\x08\xb5?\xb7\xb9rf\x11\x1b\xd1?\xf0\x9f\x8f\xb7\x18\x8d\xcc\xbf\x95;qE\x80\xd4\xc3?\x95j\x14h\x08\xe3\xda?,\x19\xba\xfe\x93\xe0\xc5\xbf+\x00\xce%gQ\xab\xbf\xe2yW^Q\xd4\xb6?"\xd7\xb8\xda9/\xcd\xbf&~V\x13\xd6>\x8b?\xa6\x9c0\xd5\xda\xb5\xba\xbf\x157\x0f\xb8/\xec\xde?\xbdd/N6\xb2\xc4?(\xfa\xd0\x18~p\xd7?X\xac\xcf\x13\xf5v\xae?\xdc\x17\x0e\x15\xdc\x0e\x9b\xbf\x07\xc7\x92z{\x06d\xbf\xab\x84\xe5\xeaO\x93\xa2?8[;\x94\xfb\x01\xa2\xbfZo]\x12.4\x85?\xa1fxD\xbc2\xba\xbf\x8fQQ\xd8o\xc0\xd1?\xcbg\xdd\xb0\x9f\xb3\xb7?j\x9e\x02`\xc9\xcc\xca\xbf\xb1\x02\xef"\xff\x93\xb4?\xbe?\xd7oD\r\xc1?\x89\xf0\x1b\x16#&\xc5?T\xfe)\xfe8Z\xd7\xbf\xb1\x0b\x12R\x16\x9a\xb7?\xb5\xeb\xa8 \xed\x84\xc2?K\xfc\x8e\xede\x0f\xd1\xbf\xcba\xc2\xc9|\xc7\xc1\xbfG\x80\xe1\xd7\xe8\x15\xe1\xbf\x075\xe8]\xf9\xf2\xb6?uEk\x06\xd8e\xcd\xbffg@n&\xc4\xbb\xbf\xb8\n]\xc7\xec\xdb\xb7?\xd4\xcb\xabY\xf8`\xd3\xbf\x8bL]\xd3\x1a\x00\xa1\xbf\xd9\xa3\xbb8\x98\x95\xa3\xbf)\xc9\xd9\xab5k\xd8?H\x00\xf1I\xb6E\xde?\xb5\xa3\x17\x14>\xfd\xd8?\xb5\xa1\x9a\x08\xb5\x84\xd5\xbf\x8c\x8e\xff\x13\xd0\x92\xc2\xbfcl\xdb\xffw\xef\xa2\xbfgQ\xe7\x9b\xcc\x93\xc3?\xf2\x8bo\xcb%O\xe2?\xb0\xf2f\xfa\xcdp\xc9?E\xc2t\x81>\xeb\xc8?\x17P\x8e\x99\xb4\xaa\xd9\xbf\xf4\x88\x08\x9bN)\xaa?M\x1eA\xff\x83\x1c\xb4?\xd9\xaf`r\xfe\xd8\xc7?s\x80\x1d\xea/{\xd7\xbf\x0c\x0e\xaa\x86\x8d\xa0\xd8\xbf\xf3\xec{/p\x08\xc5\xbf\xe2>\x0b\xd8\xf2\xe4\xb8\xbfH\x8f\xb8\xa4\xb9\x19\xe0?\xae\x00\xfc\xde\xc2\x03\xa0\xbf\xab\x04\x85\xc5n\xa6\xb0\xbf\xb6\xde\xbc\x99\xc3si\xbf\x93\xbaF\x8e\x99\x02\xc2\xbfj]\xc8\xa4\x8c\x0b\xc3?\xe6\x13\xaa\xa5\xc7\xa4\xd9?\\>S\xbdR\xbf\x8a?y\xc9\x18\xfe\xcdh\xc0\xbf\xe2lM\xde\x0c\xce\xbb\xbf\xf2\xd7\x01M\xbf\x11\xd5\xbfqT5|X\xbf\x9c?\x04\x91\xedO\xed\x8b\xa5?\r\xf4\xcb\x95\x02\xf7\xaf\xbf\x978\xfe<\xd5\x17\xb7?\xa3\x10tCr\xc6\xe4?\'\xd6p\xb3\xf4\x19\xd0\xbf\r\x83^\xa5\x05\xaa\xcb\xbf\xeb:O\x9bx\x80\xc1\xbfm\x99\x1d\xb6\xaa]\xc8?\xcad\xe6\xce\x1c\x0f\xc3?\xd77\x9c\xeai\xe8\x96?T:\xa42^\x1c\xb8\xbf\xf2\x92D\xa5\xdeE\xc8\xbf\xb8\xa2\xc5\x06\xcdc\xc9?\x874\x1f\xe8\xdd\xe8\xc2?\x8f$\xa4\x14\x0e\x1f\xb2?\xc8\xe2\x88\xae~\xb2\xb3?\xf6\xae\x84\x06\xe5\xcc\xc6\xbf*y\x19\x13#\x9e\xd8\xbf\xe4j\xf9\x94B5\xc2?^\xa5\xe3\x1e\xb4\x0b\xc5\xbf\xccf:2e\x7f\xd3\xbf5\xcf\xfd\x86G\x0e\xc8\xbf\x8ck\xe9?\x9e\xc1\xe3?\xaex\xf3\xb8P\xa8\xd3?\x18\x91\x17\x16\xd8\x9b\xb6\xbf#\x9d\x95\xf3\xd01\xc4?i\'W\x94\xa2Qv\xbfE\x84\xc6Ew\xbd\x87?b\xb8\x82<\xa30\xd4?U\xa9\xc9\x138s\xb0\xbf\'@{\x05Z8\xcf\xbf\x0b\xed\x95\xd7\xefU\xe4\xbf\xb2\xfc\xe2\xca\xbbu\xd1\xbf\xcd\xdc-\xda\xf8\x1b\xab?\xc7\xdd\x9c\xbae\x0f\xce\xbf\x08\xd7\x87&\xb5-\xd6\xbf+\x93"\xccT\x10\xc8\xbfO\x0e\xc0\xab\xec\xe6\xb7\xbf\x83\x1f\x86\x10\r\x83\x9d?\xda\x0c\xce\xea\x8a\xa8\xe0\xbf\xec\x8d\xbd!FZ\xcf?y\xedlU\x8e\xf9\xce?\x03-\xd8\\\x94\xd7\xaa?\x17\xf6\xaa\x87U\xdf\xb0\xbf\xf6\xd2\xbeR\xe0\xf8\xcb\xbf\x9b\xbc\xd8\x12\xb2\xa5\xe2??\x8f\xa68\xdc\x14\xd1\xbf\x00vaa\xd8.\xd1?\xef\xd9Y\x98 \xa0M?\xac\xef\x96\xccQ8\xa0?G\x7f\xb9\xef\x82\x84\xdc?>\xc4\xfc\tl\x88\xc4\xbf\x87\x86\xe0\x0c\xed\x9b\xd1?\x9f\xdc^\xdd>d\xa5?KP\xc1\x1c9\x05\xc6?\xff\x08N\xeb\x0c\x10\xd2?\xf7z_\xfa\x10\xd5\xbb\xbf\x81=+w\xd7\xaf\xc1?\xfd\x8b\xd1iP"\xd5?\xf71\xad\x94\x186\xd0?\xca7m\xce\xdd=\xbb\xbf!\xf8VF\xc6i\xd1\xbf\xcc,\xd4a\xd1\xb8\xc4\xbfc.\x18\xaa\x835\xc1?\x97\xdc\xdc\x8a\xc8\xc4\xaa\xbf\x89o\xb9\xddv\t\xc1\xbf(\x9aI\xd3\x963\xa7\xbf\x1fv|\xe8\x0f\xc2\xc0?\x1b\x8a\xeb.\xca\x16\xc1\xbf\xec\xcb)\xa2\xe7w\xb2\xbf\xf6\xc8\x14]\xab\x0b\xd2?7\xd2\xed\xd2x~\xb7\xbf\xd2(f\xef,\xc9\xb6?\x03\x93\x04ww\x02\x9f\xbf\xce\xc9\xc2\xe5\xde\x1d\xd1?\x117\x80\x17|4\xda\xbf\x97\xb8\x10iZ\xaa\xbb?S\xed\xf9\x8a\x04\xfb\x9a\xbf\x91s\xe6\x89N\x9c\xd1\xbf.\x9a\xda(\xd0X\xe2\xbf\xda\xd3.\xbc\xdb9\x85\xbf\xc6c\x1f\xc8m[\xb9\xbf\xec\\u\xcb\xa3\xeb\xb8\xbf\xc5O2\x990\xe6\xcc?\x1d\xaf\x827y\x7f\xc6?\xda\xc2\xe6\x80X\xec\xbf?\xb2-\xe9\xed\x0f,\xc3\xbfB\x02R\x07\xe23\xd1\xbfd\x98\xceA\x98Q\xd3\xbfq\x10\xa7l\x1eb\xd0\xbfr"\xa6;wC\xb3\xbf\x1bS\xa2-\xd9/\xca?\x8e+\xcf\xeb\x01b\xbb?Sj\xca`SS\xd6?\x12\xd6\xee\xea\x819\xd3?@>\x04\xd6s \xd2\xbf\x86\xff\xdf\x0fC\x9f\xb0?3\xfa\xc3\x87\xd5\xbez\xbf8\xe5\xb5f2<\xd4?(L\xf9\x1b\xd4\x82\xd5?\xb6\xe1\x83\x13\xb2u\xcf\xbf\xc8O3\xa2\xb0\xf2\xd2\xbf,y6\xc9\xaf\xe2\xd1\xbf\x12\xc1\xf7}o\x85\xc5\xbf\xfb\x1cy\r\xd8p\xcc?q88\x03\xa1\x9b\xbb\xbf\xaew\xd5\x94\x81\xc2\xd3?\xc3H\xb1pe\xef\xb7\xbf\xfa\xe2\x08d\x15\x07\xe1?u\xeb\xd9\x8f\xdf+\xc3?b\xcc\xce\xde\xca\x1d\xe0\xbf\xba\x18\x870\xff\xfe\x98?5\x8d\xbe\x1a4?\xd7?\x15\x1b\x07p\x7f,\xb8?p\xc0\xc0n\x80\xa4\xc9?\x82S\xe2q\x0f\x04\xc3?\xbc`JRY\x03\xae?\xea&Wk\xad8\x97\xbfw\x10 I\xfe\xca\xd4?8\x1b\x90\xeb\x1e3\xd0?gF\x02\xf7 \x81\xd1\xbfU\x13\xfa\x89Wk\xdb\xbf\x06c\xd9\xcc\xc1\xdd\xb0?\xf0\xea\x87\xb3)\x1c\xb2\xbf\xe9#\x0b\x1e\xf7\xa8\xdb\xbf;A0\x0eG\x08\x9e\xbf\xa7\xae\x03\xd3\xa6\xeb\xd1\xbf*v\xe8@\x96\xa1z\xbf\xa6\x87\x81\x8fW\xb2\xd8\xbfr2ZC\xa3a\xa2\xbf\xad\xec\xd4\x86\xeb\x02\xcb?,\xa5~>:y\xb0\xbfB\xb2\xcf(\x07\x93\xc2\xbf\x1e\xd4\xb4\x03\xd8\xea\xc4\xbf\xa9\xe4\x97\x92\x9d-\xc1\xbf\xf1\x87\x143~\x8b\xd5?\xd4\xa3?\x07\xd0m\xe8\xbf3\xa2\x99G^1\x82\xbf\x9e\xcb\xa7\xe5\x9fD\xd6\xbf\n\xeaF\xc7\xff;\xdc?z0\x99\x04\x04\xa1\xc9?\xd1\x99oM.O\xd0?\xa2k^\xc0b \xd6\xbff\x17\x08~\xd9\xd1\xc2\xbf^ege\x95\xfd\xbb\xbf\xc5\xdf\xa0\xbc%\x1b|?7\x14\xaaN\xa7\xbc\xa8?Ds"\xafM\r\xd3?\xeby\x865C\x8b\x97\xbfjAp\x1e\xbc\xd9\xce?\x0e\xce\x8a\x0c\x88K\xc8?\x9aX\xfe\x9d\xf8G\xcb?\xbf\xc9\xd5\xfa\xdd\xb1\x97\xbf\t\xcf\x05\n\xe9\xb9\xd7\xbf\x1e\x1d\x0e7\x9e\x90\xd1\xbf\x9f\x84^\xf5N\xee\xd1?\xb5\xda\xc7e\xbd\xf7\x96?\x03\x80\x8b\t\xb2z\xd0\xbfE\xa1\xd6\xdd\xa2^\xd0\xbfM\x99\xde]\x13g\xc9\xbf\xbf\xc4%\xcf\x8f\xc0\xc0\xbf\x0f\xdd\x1d\xf05\xd8\xde?Uz\\\x7f9\x93\xa1?z\xb8\x17`E\x08\xc1?\x1fK\xca\x13&\x0c\xcd\xbfy\xbcJ\xa4\x8e\x98\xd2?\x0eY\x116\x8e-\xae?$i\xcb\x80\xcd\x84\xc0?\xd1|\x9a\xfehc\xd0?<\x86\x88\xa65\xa0\xa9\xbf\x0c\x14I)\xc26\xd2?\x87\xa7\xf8Y\xc8\x0b\xc3?\xb7\xc5N\x17\xa4\xb4\xc5?\xb9\xa0\x9e\xb2\x97\'\xbd\xbfX\x16b y\xf8\xa1\xbf\xf2c\xea\xc2\xed\xce\xa7?\x1d\x993IA\x82\x8b\xbf3\xa2P\xc5\x90o\xcc?\xc8c\x05\xbf\x02\xbd\xa0\xbfA\xe5\xf8e\x8f_\xda?\xc6\xfc\x02\x1a?.\xd5\xbf-LfO\xe6\x11\xde\xbf\xff\x8f\x19\xb44G\xd9\xbf\xd4cf\xe3\x1c\x0c\xba\xbf`\xd7&?\x01\xac\xb2?\r~\xb1\xe2*u\xd6\xbf5\x12\xed\x88\xb8\xe5\xcc\xbf\xc5\xa34h\xf6\x10\xdc\xbf\xfe\xbd \xb7\xe6a\xc7?v6k\x08\x0e\xb2\xc4\xbfN\xb4\xab\xa5*\x08\xaa\xbf$ \x8f(\xef^\xb4?\xc0\xec\xb5\x80\x1aw\xd9\xbfR2\x0181\x9e\xd5\xbfE\x0c\x10\xab\x89\x8a\xc1\xbfJ\x82\x90KM\xe7\xd2?!\x12\x80\xe2\xad\xa4\x9f\xbfh\xf0\xaf\xf3%b\xd7?\xcf\x1e\xd1"\x81\x1f\xe0?\xf8\xf0=l\x96\xd1\xe8?\xce\x9a>\x93\xda]\xc1?\xa8\xd6\xc5\xac\xca\x80\xd5?{\xac\xe6\xb3\xfe\xaf\xdc?s\x80\xa4\xe17\xb6\xb8\xbf\xed\xbd\x97~z\xf3\xcb\xbfpw6\xa5\x84\x8d\xbf?#u6m\xd3\xd0u\xbf\xfc\xcb.N(U\xab\xbfq\xa3\x10q=(\xd9?\xa1\xb2G0\xdbI\xc5?^#n\x19\xb0\x01u?\xf5{<\xa9\xc4\xfa\xbf\xbfV\xa5\x1e\xa3\\e\xb4\xbf\xf0\x86\x18\xea%[\xe5\xbf\xee\xaa\xc1#`\x02\xbf?LC,\x8d\x9fH\xd3?\xec\n\xc6\xa5\xcf#\xc3\xbf\xfb\x06\x9a\xba\xaf\x85\xd6?\xb93v\'\x01%\xbc\xbfXxz\xb3=\x9a\xa7\xbf\xf6<\xf1\x92\x16d\xc2\xbfz/W\x16\xc0\x17\x83?,P\xba\xcf\xa3\xce\xac?\xeasm\xbb7Q\xc2?\xa8\xd9UH\x9f\xe0\x95\xbfxV/\x10\x07\xcb\xdb\xbf\xddh\xfe\x06\x83\xac\xc2\xbf\xcf=\xdb\x04*\xc9\xd7\xbf\xbd"\xb6\x89\x87Q\xd8\xbf\x9fP\xba\xe6c\\\xd4\xbfC\x0c\xb6\xe9\xe3o\xd2?\x87D\xcf\x03\x1e\xf7\xbf?\x12\x07\xd8\xf4<D\xcf?\x10Rk\xc2q\xee\xa7?Rn(\x02K\xa2\xa2\xbf\xdbO\x8ag\xb2\x16\xd1?\x0f/\x1c\xc1\xa5\xb4\xd8\xbf3\x07\x97\xbf{$\xc0\xbf\x00\x92\x05\x7f\xee\x93\xb8?\x9a\x07\xb4\xd4e\x92\x94\xbf\xe7\x15\x93H\x91=\xd1\xbf\x81\xb8\x98\xe2`\xad\xca\xbf\x87\xad\xe8\x05[q\xd1\xbf!\x81?G\x11A\xca\xbf3\xfc\xeb\xb7\xa4\x85\xd4\xbf\xd1HV\xa6\xb2~\xcb\xbff?\xc2aj\x90\xae\xbf\xf2\x7f\x8f\x13\x94E\xbd\xbfH\xe4_\x13_L\xcc?\xc7\x92T\xe9\x1a\xce\xd2\xbf\x87\x13*\x92\x00n\xa4?\x9bU\xbc\x8a\x00z\xd2?\xea\x8b\xa0\x0b\x19\x99\xcc\xbf\x10\'s\x98\x18/\xc7\xbf\x84\xd3\xa6\'\x8fL\xcb?6\x92\xd3\xbdR\x06\xb5?\xda\xb9F\xa4]\x91\xd3?tw\xbb\xd6\xcb\x8a\xd0?%)/\xb5\xa5\xfc\xaa?\x9d\xc8\xf5\x0b[*\xc9\xbfr\x916\xfe\x11\x93\xb2\xbfyv\xc5\xdb\xd1\xee\xc5?\x82W\xf8\xc7\xf2\'\xdf\xbf\x0f\xcf\xe9[=\x99\xa8\xbf\x1b\x10\x18\xda\xf1(\xb0?\x8cK\xb8\xdd\x0c\x97\xb7?`d\xca \xaf\xbb\xbe?\xb2\xdd\xc1\x1d\x04n\xcc\xbf\x86=\xe3u\xdc\xac\xc5\xbfQ\x85\x8b;\xcan\xd0?ZX\xfc}\xe0}\xd2?M\x9b\x94c\x88\x0e\xbb?8\x8f\x96J\xea\xf2\xcb?\xa2\x00\x0e\n\x03[\xda\xbfII\xc9\xe1\xd5Xo?\xd4\xcb|\xb9\x8e/\xcb?5\x97\xd3\xb6\xab\x1d\xac\xbf\x85]Z\xed\xc1\xa3\xc2\xbf\x1d\xd3\xd0j|\xec\xc7\xbf;_;\xc2\x19\x9d\xce\xbf\xad\xf1\xb5\xf4\xb2\xe9\xb4\xbf\x10\xffu\n\x0f\xe6\xc2?\xb3\xefy\xf4\x16S\x94?x\xb3Sx\xf9\xf4\xc8?\xd3v\xd1\x17 x\xb7?\x99\r\xc0J\x97\t\xbb\xbf\xf0\xd54\xfcn:\xdb?s\x07\x9e\xf3{7\xc4?\xd1Z=\xd9\xd2\xa8\xd8\xbf\xc8\xb3\x85#\x01\x1b\xa1?\x90e\x9f\xc2\xa1n\xb4?\xdfz\xb59k\x92\xc7?\xf1m2\xd3x\xb8\xce?\xc5p\x8d\nk\xe8\xd1?\xd8\xd6|8\xae\xef\xb5?B\xa49n(c\xc1\xbf\xa4N_z9c\xcc?)\xa2\x7f\xdf\xd1\xb8\xc5?:\xaf\r\xb7\xf5\xce\xd4\xbf/\xc1\xa8\x06\x03#\xd3\xbf/\xd8\xae4\xdeF\xcf\xbfO\xb3\xdc\x80o\xf5\xb5?\x9f\x89 W\xd7j\xd4\xbf\xdbV\x8a\x92\xdc\x15\xd0?\xc0\xd7\xb7n\xdfZ\xc6?I\xe3\xecBu\xdc\xd0\xbfv>\x04\xbb\xb5\xdf\xce?K\xc5E>w\x9a\xc6?T\xde\xa1\xaa\x02|\xcf?\xfd"\x91\xad\xb0\x15\xc7?\xbd}WZ\xfc@\xc8\xbf\xb3%z\xf6q\xf5\xc0\xbf\xf3\x85\xe7\xe6\xb3\xd3\xb4\xbf\xbb:\xd0\xa6\x85\xfc\xc8\xbf\xdb\xbf\xf5\xc6\xd7\xa5\x92?\xbfx\x19\xbe=\xfd\xd7\xbff\x07t\x87\xb4\x82\xda\xbf\x88=\xc7\xbd^%\xa0?\x1d\x8d\xe7\xbd\xa2\xcf\xd5?&\xf3\x08p\x8f#\x94?K\xe9\xd7\xd6\xbb\xc0\xc9\xbfA{\xfeH\xf0@\xae\xbf\xd6\x03>>\xa0\xc8\xcc\xbfO8\xed=%>\xcd\xbf\xbc`@\t\x98\'\xc2?#\x9d\xc7V\xb8\xf6\xad?\xab\x91\xa5\xcez\x95\xd3\xbfB\xb8\xcb\xb8\xbbc\x8e?h]\xaa\x9f\xa9\xbf\xaa?\x89\xde\xd8\xfaT\x8ev\xbf\xd3\x95\xc9:^\x8e\xd7?\xda\x82N\xf6}\xed\xdd\xbf\xae\xa2\xb2\xd4\x11\\\xa0?G9\x0e\xee\x95S\x97\xbf.\x9c\xb0\xbfz*\xda?Ui\x0fH\xda\xfe\xc5?\x8b\x18\x8ai,f\xb4\xbf\xbc\xfaQ\x15Y\xfa\xaa\xbf\x93\xea\x01\x1aP\x1e\xc7\xbf/j\xd2\xd8\nW\xcb\xbf\xad\x94U\xf6\x88G\xd5?\xbc\x14\x19\x92b\xa8\xd3\xbf(,\x0f\xf1\xc04\xb0?\\?8.\x86o\xa7\xbf\x14\xb3\xd4\x01y\x9d\xdc?\xb1\xe06\xc0MU\xc2\xbf\x94\x85Hi\x88\x8f{?6\xb7\xc9\xb3]\x91\x86\xbf3\x19m\xef\xb4\'\xb4\xbf@\x06\x938\xcdr\xd4\xbf\x9ds^\xc6f\x9di\xbf\xc1\tu\x849\x88\xd3\xbfo\x9c\xc2\xfb\xaeFy\xbf\xbdL\xbfz\xd9T\xad?\x96a\x97\xb0\xf9\xf7\xc0?\xe7iq\x82\x18\xe0\xb1\xbf\xd7\x89\xf1\xeb\xd1\xae\xa2?I\xbbf\xf0\x7f\x96\x97\xbfM\x14\xab\xa2\xdc\xdd\xbc\xbf\x9f\x95\xbf\xde\x9f\xc8\xc3?\'\xef\xa4~1\xad\xc8?\x87nf\xb5\xdc\x14\xd7?e~\xd7$\xb8\xa6\x7f?\xe0\x1d1\xf6\xe2h\xd1?\x14\xb1g\xef\'|\xe8\xbfo\xef\xb5\xa4=\xc3\xb5\xbf\xee\xd0\xa6\x9b\xa5\n\xc0?\x7f\x9f\xa2\x85\x89H\xd4\xbfL\x85\xddn9\x16\xab\xbf\xdf\xc9R\x12w]\xc0\xbfF\xbd\xb7\xc0\x81R\xb7\xbf7W0M\xdbF\xcc?`\xfd\x08#\xae\xf1\xd3\xbf\x99\x03\x83f4\xa3\xd2\xbfQ\xadn\x03\xf2\xfe\xc7\xbf\xbbG<\xd3\xcb\r\xb3?o\xc8,P\xf3\xc2\xe4?\xf4\xa9\xb4\x94I$\xbd?XM9*\xba\x05\xc4\xbf\x18*3\x160\xcb\xc9?\xfeND;\xd9?\xd5\xbf\x0cC&M\xb1\xb0\xcb?#\xb2\xe2Q.\x11\xa0\xbf%Z\xd4\xbaT\x06\xbb?2\x81l\x1e4\x0f\xc7\xbfg\xe1v\xb3<\xaa\xb3?hC\x17o\xa9\xc2{\xbf\xfc\xa5\xb4=\xf2\xb3\xc5\xbfV\xd8Ld\xf8\xa0\xce\xbf?\x85\x13\xa2MO\xc1\xbf5\x97\x08\x98(\xf3\xe0?\xadW\xdc<|G\xdf\xbfQr\x17V+u\xd0?\xc9r\xf82qO\xd4\xbf\x19\x12:5\xee\x08\xb0?\x14(JU\x08\x8c\xb2?\xae\xc0\x9e\x91\xc8\x0c\xc6?6\xac\x8c\xea;\x19\xc2?\xc5\x11\xear.\t\xc0\xbf*\xad\xa9\r/r\xb4\xbf\xaf\\\xac\xeej\xee\xd1\xbf\xb9X\xac\xdd|\xa7\xd5?\x91\x9f\xfb\rko\xc3?\xaau\xb3m\xcbB\xc8\xbf\xc2`\xbc\x0ef\xfa\xb5\xbf\x95xl\xbdJ\x80\xcb?\xe2\xb4=\xf5)\x0f\xdb\xbf\xa3s\x14\x8ez\xad\xb7\xbf\x8f\r\xfd\xf8\xcd\xc8\xd2?\xf3\xf4(\xc0\xb7\xca\xe0?\xe1\xa1\xfen\x9e\xe5\xaf\xbf,5\x16\xfc\xc1\x8c\xa9\xbf\x17(\xac\xf5\xbb4\xd6\xbf\x06\xb6\x05\xb0NG\xc4?\xbb%\x04YJ1\xb1\xbf ,<\xd85G\xcd?S\xf6WR\x0e4\xc2?\xf0l\x8cQ\x99%\xc9\xbf\xf9\xc3\xbb\xdb \xaf\xb0\xbf\xc8Ii\xb4lw\xc5\xbf\x05\xb3\xee\x0b\xde\xc4\xd6?\xebc\xd4\x80U\xef\xe3?\xe7kV*\xc1P\xa4\xbf\xad\x1b1\x93\xf4\xb4\xd5\xbf{t\x8a\xa3i\x9a\xc9\xbf<S7b\xa3\xae\xc4?\xb6\xf8\xd6\xdf\xbd\xac\xc0?\xcc\x06y\x9a\xf7N\xbd?\xa9N\xef\x18\x88\xc3\x97\xbf\nQz}}R\xbf?\xf0\xd6\x85\xa3\xf6\xaf\xdb\xbf\xe8\x85N\xbf\x8f\xf1\xa2?\xe98\xba\x8f\xea\x89\xc1\xbfA\x85L\x16\xa5\x8d\xd3?\xf1\xb7{[\xac\xa5\xd5\xbf&7\x01\xc3-\x95\xc7\xbf\xc4\xf56:/\xe8\xbc\xbf\xc8^${\x10\x81\xcb\xbf\x8bd\x92H\xd02\xb8?\xd3\x19\xba\x90L=\x97\xbf\xe4m\xea xH\xd7?\xff\x02\x90\xee\xf2\xc8\xd8?Zi\xb8`t\x99\xe0\xbf\xdf+V\xf32\x88\xb8\xbf\xdf.\xc9\xf2?\xd1\x93?9m2)7\xc3\xba?\x01u\xce{^\xf0\x9d?\x8d9f\xe8\x92\xc9\xbf?\xf2\x15\xff\x13\x1d\xc9\xc0\xbfM\x83\xf8\x9c!\xd8\xb3?\xb3\xe9i\xb8K \xb8\xbf\xca\xe7\x84\xe8!\x9a\xe8?\xb7\xf5n\x16s\x86\xd8?\xbe\xbd\x82\xb6v\xc0\xbb?\xf0\xa23\xfd\x17Mh\xbf\x03#\x07\x00\xbc\xd0\xd5?\xf3\xf1&\xe8\xda\\\xb3?v\xb3r\xf4\xff\xe9\xd5?\x07r\x83\x98\xdc\x91\xc4\xbf\xa5\x89]\xe0O\xfe\xb9\xbfal\xec\x12|\xd8\xd2?^z\xe54P>\xd0\xbf\xe8Q\xa5\xe6y\xb4\xd1?\xe5\x9d\x0e\x194\x8e\xd8?\x93\xcbF[f[\xdd?\x8b\xc4\xff\x03\x81\xb1\xce\xbf\xc8_-\xd3\xa0W\xc6\xbfAA-b\xb2E\xd7\xbfF\x9a\x10\xce\xed\xcf\x93\xbfo\xb6\xe2i22\xd6\xbf\x06#\x07\x9d\x8d\xca\xd3\xbf\x11\xab.\x11\xcb\x90\xd3\xbf\xf9d\xdc-\xe2R\xcd?\\\xe3V\x04Gb\xba?\xf3\x8f\x86\xb7\xc5\xc5\xa2?\x14\xec\x04g\xa4\x90\x9d\xbf\xb05\xb4IQ\x86\xca?\x05\xbf\xac1x\x19\xc8?\x1a\xc1\x13\xa8Gj\xb5\xbf\xe2@2MX8\xb2\xbfLW\x15q\xc7\xaf\x96?\xd3\x06\xe5\xf3\xff\xa0\xdb\xbf5\xee\xef5\xb5\x13\xc2\xbfz\xa9d\x15\xa0\xa9\xa4?IvZ\xea;\xb1\xd2?\x0bS`\x82\xd3\xfa\xd2\xbf{\x8eK\xf2\xf6\x0f\xd2\xbfVB\xfd\x8aq\xb0\xc0\xbf?f\x8em\xc1=\xd4\xbfC\x08\xd17\xc4\xc3\xd5\xbf\xbd\xfa\xe0hL\xa3\xc8?]\xec\xb4\xb8\xd1\x8f\xbf?\xf8\x99\xc8\xf4\'\xbe\xb0??\xf0\xff~\x85\xfd\xc1?\x91\xa7\xce\xcad\xcb\xc5?\x07\x06\x1b\xb6k1\x82\xbf\xac\xa2\xdc\xc06\x91\xc1\xbf\x99\xc6\x00\x17 \x15\xb4\xbf\x1fR\xe8\xdf\xc5\xed\xd1\xbfMc\xde\xe9\xfaV\xb2?\'\x06\xdc\xda\x9f>\xe1?\x969\xf1(\xa9\x1a\xd1\xbfY\xfb\xfb\xfb=\x84\x88?/{I\xaa\x14U\xb1?\tW\x9e\x02.7\x9e?\xc4\xcb\x10\xdcE_\xce\xbfZ\xa6\x8c\x18\x89\xb7\xc0\xbf\xdd1i-\xf8\x9a\xc2?\x82,\xc8\xc8\xfa\xf2\xa9?/\x01N%sRp?\xdd\r\xf5\xe9\xe5\xc0\xd5\xbf\x02\x15\xea\xe0J\x1f\xdc\xbf\x81&3\xa1\x90\xc7\xdb\xbf\x1d\xa1\x00\x9f;S\xca?e\x1f\x97\x9cu\x17\xce?\xc9\xb1W\xe9\x92\x86\xc6\xbf\x1c\xae\xec\xc5:\x1b\xbf\xbf\xb96t\xc5c\xd2\xd2?\x1b\xd6\xdf\x01\xde~\xa4?\xea\x92\x1b\x9e\x1c\x94\xc0\xbf4ya\xf7\x96\x99\xc7?\xcbA\x83x\x19\xa7\xc2\xbf\r\\\xa7\x0ft%\xc9?\x01\x04\x13\xf8sy\xcf?\x80{_\xd2/\xbb\xc5?\xba\xe7\xe9\xc0\xba\x82\xc2?\x9a;\xcd\x86\xbd\xce\xe9\xbf\x1d&\xfb_\xe1\xdf\xce\xbf\xbd\xeaT\x8e\x10d\xd9\xbf\xfb\xe5\x1e\xbdi\x86\xba\xbf\xf1\x8d\xe9\xc0\x84\x88\xc3?\x02\x92\x9a\xd9K\xf2\xb9?\xd4\xd7\xd39BC\xc4?k\xb0\x85\x9e\xef\xa1\xc9\xbfz\xc5\xbcXVb\xc8\xbf\xd2\x87\xf5\x01\x83\x0b\xd3?Om\xcb4\xf0\xdc\xcd\xbf\xad5y\x99\xbc\xea\xcf\xbfl\x1a\xcfP\x02\x0b\xd9?\x12\x07=\xdcD\x1b\xc9?\xe2h>\xe0,\x8a\xc4\xbf\x11u\xd7\x13w\x90\x81?_h\xbb\xa9\x8f[a\xbfd\xce\x151\x1fn\xde\xbfb.\xfd+\xa9Mp\xbf\x80\xeb]\xe3vA\xd0?\x95I7=\xb0>\xc1\xbfT\xc4\xff\x12C1\xcc\xbf+\x93\xcaKF\xee\xae?u]Y\xc9T\x17\xb8?\x06\xd4\xf3\x1b\x9d\xc0\xcb\xbfP\xd2\xd0-Y{\xd0?b\tu\xa7\x9d\x05\xc9?\x12\x00\x08w\x8e\x97\x84\xbf.f\xfb\xba8g\xd6\xbf\xd6\x0bF!f&T?\xdd\x91\xb8tK\xf1\xd2?\xf0y\xe9\xa8\xfd\x03\xcf?\xa9Lz\xc8\xd4.\xe0?#\xa1-\x98\t\xb0\xc3?\xbb\x97\x8eY\x84z\xc9\xbf;\x83Oa\xf9\xe4s?\x05E\xf0\x1e\xc1r\xde\xbfA\xe7.\x84\xf4\x96\xcd?MgA,Wp\xb8?!\x02\xd51\x16\x99\xd1\xbf\xb6\x1c\xc8D\xcc\xc7\xb4\xbf\x95\xdd\x114\xd8\x1a\xcc\xbf\xd3\xf3~j>x\xcb\xbf\x0f\x8ec\xf7\xaa\x0e\xa3\xbf/UY\xb9D\xd5\xc4?03_d\xcf\xc8\xd5?\xbfuSm\x00`\xd5?\x1d\xd7\xa8\xff#\xd6\xa5?\\\x0c\x13 \x86\xec\xa2?\xc4\xa3\x8a\xc3C\x00\xae?\xab\x16\x1d\x85;\xbb\xd7?\x13\xc2|i\xb0{\xcd?\x03\\\xff\xee`\x8e\xb8\xbfa"H8\x7f9\xbd\xbf\xa3m\xd9\xc6\xac\x0e\xcf?_\xefeEQF\xb2?\xe0o]\xd0]\xdd\xad?\xec4B\xf68\x05\x92?L%\x97\xa6\xf0\x84\xc4?j.[\xfb\x9d\xb6\xd0?\xe25\xc6\xb4B\xd3\xe6\xbf\xe2\xc6\xa6\xaa\x16\xf7\xc5\xbf8\xa9\xc5\x83\x88\'\xd0\xbf\xc7\x9d,\xbb\x9c\xb3\xb5?Q2\x01w\xe5\xa8\xdc??\xaf$S\xa3-\x9c\xbf\x10T\x00,\xbdn\xcd\xbf\xb1T\xb8\x841d\xd2?\x7f\x00!"\x87C\xab?\xd9\xf5\xb1\x18@\xdb\xd7\xbfb\xf1:\xc6\x17\x1e\x97\xbfo\x8c+\\\xc9\xef\xcb\xbf\xc7k,\xc4\x0e;\x87?\xf5\x8e!\x04y8\xb0\xbf(\x1d\x88\x7f$\xd3\xd2?hd\x1b\xe8_\xcb\x9b\xbf\xb5\x98\x00\xa8+2\xc8?\ne\xb1\xf7\x05]\xbd?t\x8f\x8d\x99!\t\xc1?\xd3$\x84\xc2\x93\x88\xb2\xbf\xc9\x89PF\t\x85\xb9?p\x18\r\x91\n\\\xcd\xbf\\h\xe2\x0euG\xd4\xbfa\xbc\x06\x11_Z\xa3?X\xad~\xb1fp\xbd?R\x1f\x814\x87\x08\xce\xbf\x12\x0e\xda\xcc\xc0)\xb2?\xd7(|\x9e\x87\x15x?\x93\x9f\t\xed\xa2\x98\xd5?i`\xca\xf8\xd5\xe6\xd7?\x8b\xd9\x8aHp\'\xda\xbf\xf8F\xcb\xa7\x85\xdc\xc4\xbf\x02\xfd\xd6\xc5\xaan\x87?(\xa9\xb6\xeb\x12:\xc5?\xf9i\xe5\xf4\x10\xcf\xd6?\x13wBX\xee\xe8\x8b\xbf\n\xae\xc6\x8e\x1d\xfa\xae?\xa5\x15M\x05_-\xb0\xbfS\xf8[p\x18\x82\xc9?\x06\xdd\xc9\xe8\x10?\xda\xbf\xb7\xa5\xdc\x85W\xf0\xa5\xbfF\x8eU\xf89*\xb7\xbf$\x19-\xad\x7f&\xd5\xbf\xe5\x9f\x99b\xebf\xd5\xbf\\\xa16thj\xc2\xbf\xddJ\x95\xdec\r\xd3?\x82Rp\xa3\x07\r\xc4?n49u\x1c\x87\xdb?"\x1fi\xb4K#\xe1?n\xdd\x05\xd1\xd5r\xb9\xbfJ@Oc^\xe0\xd7?\x12\xf5%\xca|\x00\xc6?\xd3\xaf\xf0\x855\x0b\xc7?\xa3\xcd\x80\xa0n\xe3\xd7?\xd3\\\xf3\xcc\xa4{\xd1\xbfC\x11\x84R\'5}?\xba\xd1C8P\xb6\xc9?\x95V\x0eV\xf3\xeb\xb2\xbf\x00\xfe\x04Q<\xa9\xba?c* \x0f\xef\x15\xd8\xbf\xa24\x1c$n+\xc1\xbf\x8c\xc8\xbc\x07<\xd0\xcc\xbfKy\xcf }\x85\xa6\xbf\x7f7U\xeb\x00\xcd\xb2?\xbbBN\x05k\xc0\xd7\xbf\xe0m\xa9\xae\xe5#\xc1?sz\xf6k\x15\xc6\xc1?\xae\x04\xdf\x9ahg\xc9\xbf\xf6.\xf1\x1c\x91/\xa0?K\x96`\x02~\xe7\xc5\xbf\xbe\x03\t\x02\xdd \xc2?<\xbd\xe13\x12u\xc8\xbf\xa5@\xb0I\xee\x95\xc0\xbf/\xf3\x97\x83\xc9\xbfq?\x12\x85\x15\\\xc9\xa4\xaa\xbf\x1f \x8e\xec\x1e\xbe\xd4\xbfj\x7fN_S\x11$\xbf\xa6Yu\xd4\xce\x85\xdb?\x0c\xaaP\x17\xa7\xa7\xd7?3\xd1\x96%4l\xce\xbffB\xd6\xd1\x8e8\xc3\xbf-1\xba\xad\xa3\xd0\xd0?WJ\xd3\x02\x9d1\xc3?\xf3\x9f\xa8\xcc\x87u\xc2?\x1c5N\xc7\xad\x81\xad?\xf4,I\x11\xb3\xd6\xb9\xbf\x13\xa9\x07\xd3J\x8e\xc7?vT\x8dR\x82\xfd\xcf\xbf\xb0\xc2\x90\x05\xf0\x04\xd1?Uk\x0c\xe2\xe7j\xba\xbf\x13x0\xbciZ\xe8?z_\xc7\x04;\x9d\xce\xbf\x1e\xe3\x06V\x92\xc5\xe0\xbf\x01Y\x15\x99>\xbc\xd0\xbf>,\xc1<3n\xca?\xbb\\Z\xfb\xeb\xc2\xca\xbf\x17\xc2\x8f\x19\xb8l\xc2?\x1ax\x00:\xcc\xe4\xac\xbf\xb4^\xddy\t\xaf\xc0\xbf\xc5\xaf\x16\xb8y\x17\xc1\xbf\x10s\n\x87\x00\xf2\xd0\xbf\xf8]7\x13\xfb\x1b\xcc?Rh\xd7&\xce\x90\xd2?"\x17\x16\xc4\xd3v\xd5?\xdc\x1c\xe9U\x13\xfc\xc7\xbf\xfc\xec\xf6\x87\xac\xc3\xd2?\xcb\xe0\x1f\xbc\xcc8\xcc\xbfI\x08\xa6\x96\xd0\xc9\xc0\xbfr6\x06wD\xc2\xd9\xbf\xb1^\xd6\xb6w\x80\xb5\xbf\xd8\x16\xa7\x8e\xd8m\xb6\xbf\\\x8f2\x87\x18\xe6\xd4?Y\xf1\x14\xeaQ?\xb7?\xf7O\x85EP$\xce?Z\xac\xa5\x03\xe7a\xd8\xbf\x03Q\xe6\n\x84\x08c\xbf\x9dc+\x9aa \xb5\xbf\'\x8cF$\xce\xea\x9d?s\xfa\xeb\xe4\x1b:\xc2\xbf\xc6K\xfcI\xb5&\xce\xbf\xf3\x009\xfe9\xb6\xb4?\x9a\x8d0\x06\x0f\xef\xb7\xbf*!o@{\x10\xc9?\r*\xd3#\xbe\xe5\xa1\xbf_\xde\xda!\x88\x8b\xc5\xbf\r\xc1}\xa1\xee@\xd1?\xe3\xcd9\xeb\xab \xa5?\xa5\x11\xdf\x17`\xed\xc3?\xeb=\xb7\xa3\xb7\xb7\xae\xbfT\xa5,.\xf9q\xb5\xbfLDK\xf0\xf4\xc8\xb1?>\xcf=\xfa\x9c:\xcd?/\xa92~h\x8b\xb0\xbf]F4\xd4\xc4\x13\xba\xbf\xb1\x00\x89\xabD\x81\xbe?\xa4\xb8\xe4>\xa4\x0f\xd1?\xb5\xb2\xe7-\x8d\x93\xc7?R\x1c"\xea\xd3\x04\xe1\xbf\x9fO\x96\xae\x80i\xc5?R\xbf\xa0\xa8\x99)\xb4?\x94TEd\r\xde\xb2\xbfF\'L\xffd\x01\xdf?\xdeY\x03\x9f\x1cU\x9d\xbf2\x021\x9f\x8bi\xb7\xbf\x0e\xacCZ\xf6\x89\xc1\xbf4\x8c\xbb\xfa\xc4\xe7\xc0?\xf1Iyq5\x7f\xd0?\xaa\xee\x8d\x03\xb6\xf0\xd7?X\xed\xdd;\\Z\xd4?\xea\xcf\xa0O\xea\xd3\xe0\xbf\xe5\xb4h\x98\xc4f\xd0?*\xc8\xf2,\x84\xe3\xda\xbf\x04\xfb\xc4\xd5Z\xbd\xc9\xbf\x1f\x83\xcd\x89\xc2\xd0\xdd\xbf\x0f\x9aw1vJ\xbe\xbf\x0bBD$\xfb\x16\xd2\xbf\xc01\x06\xfeN\xe3\xc8?\x00\xab\x1b\x1e\xea\xe6\xce?\x8b\x1a=\x9b5V\xdc?n\x9bh}\x01%\xdc\xbf\xec\xda\xa3\x82T\xf5\xd0\xbf\xb3q\xbe\xc0\x17\xf0\xa3?01\x90\xc6i\x83\xa0\xbf!o\x06\x8a\xd6=\xb7?\xd9\xb7\xc8\xc96z\x92\xbf\x10nd\xb7+T"?\xfd\x96\xd2\x06mx\xc4\xbf\x81\x04K\x8d,\xd3\xe6?\xbb\xd5x\xc0)\xd4y\xbf\x00<\xe4\xabI\x7f\xc8\xbfU\xd7f\xe2\x83\xd8\xb6?{\xbb\xe1\xf0x\x8c\xd9?\xb3\xcd\xee\x9eQ\xd3\xc1?n\xbd[\xf9\x94\x03\xcc?\x9d\xaa\xa7\x87\xc2\xd8\xb0?\xa5\xfa\xab\x9f\xf2{\xd2\xbf\xf8P\x00\xeaq\xf6\xc9?\x94y7#v\xf1\xa8\xbfS\x9cWh1y\xdc?\xff\x8a]\xa3-\x9e\x87?E\xcf\xfcW\x8cr\xc2\xbfR\xde\xd9\xae\x86\xce\x94\xbf\x12\xe0u\x92K\xdf\xc4\xbf\xbfO\xf2\x8c\x13\x00\xae?\xa2\x7fm\xb5\xd1\xed\xc1\xbfCPG\x00\x0f\xb9\xd0\xbf7\xf4\x88I~V\xca?\xc3\x8c\x11\xfc\x01\xf5\xc0?\xd1\xa7P>\xa1\x7fv\xbf\xc5\xf7\x1301\xe4\xd1\xbf\xbc\x86\xfd\x81\xe3~\xc6\xbf\xb5\r\x1d\x88\xbe\x1f\xb3\xbf\xc0\xcaJ\xee\xbc\x98\xa5?\t\x8et\x83\x94\xad\xd0\xbf\x08E\'R<-\xc6?\xfdt\x7f\x90\xd4\xa4x\xbf]\xc0>\x18\x0cF\x90\xbf\xeb\xcc\x19\xb9B\x11\xd1?\xf7T\x87%\xcb\x18\xc3?KyEf*u\x93?\xc5\x06\xbb~\x11\xe3\xc4?A\x99\x02\x13\xe6\xc9\xba?5X%$*\x06\xb5?\x99s\x99\xdb%\xfd\xd2\xbf\xa4a\xff\x1d\x89b\xe1?I8m\xac\x99\x0e\xdb\xbf\xa1\x14i\r\xdf\xf9\xd3?V\xdc\x8f\xd8\xd84\xba?R\x93\xb1\x86\xd8\xcd\xbb?\xf1\x12\xc9?\x91H\xd1?Y\xa6\xf8\xf8\x8c\x05\xdf\xbf}\x12r\xac\x1a\xab\xb1\xbf/\x89m\x05\xcaY\xe0\xbfgX*d\xba>\xc4?\x1d\x05\xe3\xcaF4\xdf?\xe2\xe4@\xc6\xaf~\xd0\xbf\xa0\x07S\xd2\xa3\xa4\xd4?\x11(\xfe\xa9Y\x19\xc1?\xbfQ\x1f\xb9e\xb2\x94?\x92wI\xb8]\xdc\xca\xbfY\x15\xe5\x9a\x9d\xa3\xd8?\xd5\xf1"t\t\x8d\xd8?\\9\xc5\x85\xfb\xc8\xbe?\x11\xd2Xb\xa3r\xaf?n\x01,m\xbf\xe1\xd7\xbf\xa9G\x1d\x95p\x16\xdb?\xad}\x05\x83\x10\xb4\xa5\xbf\x9b\x9c;\nk\x08\xd2?\xb6\x8b\xe7a\t\xc4\x95\xbf]\xb3\xe3\xae\rS\xa0?D\x98CB_]\xaf\xbf\xc6%q""\x7f\x9a\xbf\xa6\xdb\x84\xcf\xd1\xad\xc0?\x18\x1c\x83\x94\xdc\x9b\xd4?cu\x0c8\x8ci\xa0?\xf4]\x9f\xf06\xae\x9e??\\T\x87\xa0H\xb2?\xe40F]\x04h\xb9?\x14\xe7T\xa5\xf8\x83\xc3\xbf\xafX#U\x10Z\xb2?\xfdmn\xab\xe3g\xe4\xbf\xf52I\x8a\x97\x06\xbc\xbf#F>\x06\x99\r\xcb\xbf\xcd`s\xc5p1\xb8?\xfa\xe7\x1eS\xbe\xc6\xb4\xbf\rO\xd0^\xe4\r\x9d\xbf\xcf\xe7[5\x12\xed\x9a?B,X\xb1\x87\xa0\xbb\xbf\x8c\xf1\x16\xab\xcc\x19\xc3?\xbc\xc4\x16\xc4\xeb\xa2\xa0?\x1e\x84\x1e}%i\xa5?\x05\xe1\xc6\xad\xb7\xefV?\\\xb5 {\xfb\x91\x9c?r\'4Xc\x81\xa7?\x91\x95\x1b8\x94\xfa\xd3\xbf`\xec)?\xc9?\xa6\xbf\xc5\xc0(\x85\xa4\xd1\xc9?\xcf\xca\xfe\x01a=\xd2?\xa7\x97\xad\x99\xa0j\xa3\xbf\xa9bz\xcf\xab\x9d\xa9\xbf\x03\xa0\xe1\xc5e\xd9\xa9?R\x11\x1d\x15>Y\xdc?\xcdc\xba\xaf`f\xbb?T\x93\xc8\xd2\x82\xb5\xbd?q\xf6\x87\xa3\xc4\xc9\xcb\xbf\x04s=\xc9\xef\xdc\xb4\xbf\x9b\xf8pjzG\xb8?\\\xe5\xc6%\xd3[\xb5?\xa7\xf5z\x04p\x97\xc5\xbf\x99\x08vn\xd5\xb5\xcd\xbf\xe9\xe9A\xd7rx\xdb\xbf\xf47\xed`\x81s\xd1\xbfH\x80\x87<\xd2\xde\xd4?\xf3(\xaeI+\xde\xc8?#bc\x8ff|\xc3?nT\xf0:\x1b\xba\xbf?w\xef\x9c\xd6)r\x9b?\x95\x81V\xca\x9f \xd0?I\x00\xa6"\x86(\xcd?\x15\x9bv\\\xb3@\xd4\xbf\x0b\xfbn\xa0\x97p\xd7?\xd0U)R \xf7\xa7\xbfD\x11\x98\xad9\xf1\xb1?\x86\xff\'\xf7\x02\xfc\xd3\xbfze\xba\xa7\xee!\xca?e7\xa2/J!\xc3\xbf\xa2\xa6r\xcf:\xc5\xb9?0\xc8N\x94\xc3\x84\xd5?\xfeG\xe7\xa1\x01y\xa2?S/X\xe5\x82\xbc\xd4\xbf\x93\xcab\x89}{p\xbf\xd3.&@B\xb2\xd2?\x98\x822\xd7H\x82\xc3?\xf5\xe3\x04GOG\xbb?j\xcf \x1cRm\xd7\xbfG\x9f\xa2p*\xa5\x81\xbf\x92\xef\x1f\xbf\xad\xa1S\xbfuf\xa99\xbb\x1c\xd2\xbf\xf1\xb7\xaf\x1bH\x89\xce\xbf>\x02\x80\xa9\x83\xd3\xdb\xbf\xd2j\x16\x88\xa7D\xa5?8\xf64KW)\xc4\xbf\xe1<\xf2P\'\xba\xd2?\x8c\x04\xf5\x9e;\xb0\xd3?\xdd\xcf\xdd\x9d\xe7\xbf\xcc\xbf\xae\x0e\r\xc6b\xfc\xc1?\xa8\xdeA\xe9\xef\x0b\xd7?,\xe0\x02\xc0e"\xaf\xbfo\xf2\xea\x87f\xd6\x87\xbf(\xb4\x08\'\x18\xc6\xc7\xbf\t\x0e\xf3\xbe\xf5\x06\xd0\xbfpR6\xcc4,\xc1?\xde\xc9\xac\xb4\x99\n\xd9?\xe3\xa1\x11w<\xee\xcc?\xcf\xa3\x15\x185\xa4\xd2\xbfu\xa4\xe4\xbb\xffS\xcc\xbfJ\xa5\x83\n\x99\xa3\xc2\xbf>#\xa23\xef\xc2\xdf\xbfgg\x1c\xa6s)\xdd\xbfU\x10\x1f\x03\rL\xd0?\xffR1\xa95\xb4\xb3\xbf\xfb\x93P\r\xaaO\xc7\xbfa\x1b\x138\xf8N\xb5\xbf\xf5L\xef\xcc\xfa\x91\xb5\xbf\xf4\xcc\x86U\xd1?\xbc?\xac\xa7A\xb2\xb3\x94\xda?\x16\x97>_\xd3\x11\xc8\xbf\xe6%\x87\x13\xd9}\xd7\xbf\xa1\xe8\x13<\xa7\xe5\xba\xbf[\x12J\xa2\xd05\xcd?#\xa1V\x15\xedA\xcd?\xab\xa8\xba4\xf1\x0c\xdb?ycNB.U\xcd?\xee\xc5\n\xa7\x9c\xcd\xd5?9\xbe\x9e5\xb72\xc7\xbf\x85\x98\xeb\xdaU\xd7\xc7?\xd0i\xbb(\xb6\x9f\xc7\xbfu\xa2\t\xca\xa3\x8c\xaa?iG|n\xf5G\xa0?\xaf\xbf<\x12\xa0j\xb2\xbf5\x9f\xb5\xb4\r \xaa?\xe2\xac\xb7su\x05\x80\xbf\xc5\x16\xe2\xbdv\xb0\xc0?}&\x97\x90\x16\x14\xbc\xbf\x97\xc9!\r\xeax\xb0?&\xb8\xd3\x1b%\x85M\xbf]"U\xac\x1aW\xb1?\xa2\x88\xf18}K\xcf\xbf\xe5{\xb1\x13\xc1\xcc\xcf?q\xaf-\x0eH\xb9\xb0?\x1e\xf2\xe8h\xf1\x8d\xd2?Y\x01\xc4s\xce\xd6\xce?\xa3\xec\x00\x8el\xbf\xa9?\x11\x9f\xfa\x8d\xb9?\xab\xbf(\xbfM\x9f\x19x\xc6?\x8a\xcc\x0f\xadF#\xb1\xbf\xff\xfc\x07c\x8f\x9a\xcd?\xc1\x13\\~U/\xd2?Q\xd8S\x0b\x10m\xcf?H\x80\xa1\xbf\x16s\xd4\xbf\xa4 \xd8\x1cr\xd1\xdc\xbf\x08\xeea\x06K\x19\x94\xbf,I\x8ci\x15\xa4\xc1\xbf\xad\xbft\xe0BU\xa7?E\x03\xe3\x89K\xc5\xbc?x\x0e\x07\xc8#|\xa1?3\'\xea\x13z\x03\xd0\xbf\x81\xd1\xb3\x91\xaa\xaa\xbb?!\x8c\xd1\xf8\xd9~\xd4?\x07\x06\xc7\t\x916\xb1\xbf:\x05X\t\x84P\xb0\xbf\x0b\x0e\xbd\xb0;<\x9f\xbf\xe3,\x81\x9d1\xd2\xa3?\xc0\xe6s\x05)2\xc3?\x1f\xe4\x1b75\xba\xdc?_\xc7r\xf9\x16l\xc6\xbf\x070\xcd\x02\xef\n\xcb?\xde\xa8j4\xe1\x1f\xa8\xbf\xf6/\xde\xb92\x8e\xc5?\xbf\x06\xd0\xd3\xad\xac\xbb\xbf\x95\xb6\xb5\x17Z\x9c\xca\xbf"6D\xf7\xc8Y\xd9?\x06%D\xa1\xa5\xc2\xd7?\xa1\xa0\x88\xa3 \xd3\xc0\xbf\xbb\x18=Z\x84\x91\xd1?\xdbI\xb0X\xdc\xdc\xcc\xbfu9\xa2?\x94\xbb\xd9?\xb3\x1cA5e\x0e\x97\xbf\xb9\x0b\x0f\x14C\xfa\xc7?/0n\xeb\xb0\x98\xba\xbf\'bpv\x90\x87\xcf\xbf\xd7\xa7\xf4\xbd\x01#\x8d?N%\xff\x89\x81}\xd1\xbfH\xe7\x1c\xd8=\x7f\xcb\xbf\xa8X}&\xd3=\xd0?p\x8e5\x03\xdfs\xc6\xbfz\x0c\xa9\xfd\x96\x9f\xe0?\x18\xef\xaf\xf4 \xfa\x9b?\x0c\x0e\x1c\x92\x9e\xb9\xb7?\xc3<\xca\x85\xf2Z\xa7\xbf\x11\xa6\x14N<\xb9\xc1\xbfAf5\xf6A\xb6\x95?\xfb,\xbc\xa4\xa2\x03\xcf?\x11\xa7\t\x07h\x82\xcd?\xfe^!#\xb1\x9a\xd0\xbf)\x9fU8\x99x\xe0\xbf\x83\xfc k\x8e/\xd9\xbf.\xacU\xfb\r\xf8\x96?\xd9\x8c\xa4\xad\x90Q\xc4\xbfE\t\x14\xec\x9d\x93\xcf\xbfj\x80\xc3\xda\x8eV\xb4?\xf98G\x140\xcc\xa7\xbfJK\xa1(\xf2\xbf\xb0?\xd0@;\xd5\x11\xda\xdc\xbf\x05\x08\x1f|\xe7\xe7\xca?\x88\xe8f\xc7\x01\xc1\xdf?\xb6>`\xf1~>\xd5\xbfd\xef\x9askP\xc1\xbf)\x00\xff2\x02\x9e\xc9\xbf\tlVI\x95\xa3\xda?\xfd\x94)-D\xado\xbf\x14\r\xbfk\x13\x1e\xd2?\xb5\x8a\xa0\x1fE\x93\xcb\xbf\xd7\x86!\x19\xe4\x82\xc3?\x9d@7\x98&\xb6\xd2?\xc7BJ\x1bo\xdc\x98?\xf2\xb0\x0bnX\xae\xae\xbf\xf9z\xda"\xf8:\xca\xbf%M\x1a\xea\x08\xf0\xd1\xbf8\x1f\xf6\xe3,B\xcd?\n\xad\xe4\xe2A\x89B?_\x1c,j\x0b\x1a\xbe?\x9f\xb6\x84\x7fS\xb2\xc7\xbf)\x03\x1c\x16{\x13\xc8\xbf(\xa3\xb9\xae L\xc4?L\x8bT\xe16%\xdc\xbf\xe8\xccc\x06\x8a\xea\xc8?\xae\xaah\x8a*\xba\xdc?\xff\nK\x15oy\xe3?\x05/(`\x0cO\xc4?}\x95\x80B\xab\xa6\xa1\xbf\x1b}\xc27\x9e\xaa\x99\xbfO\x80K[i\xbf\xb4\xbfqO\xc6\xedk\xc9\xc1\xbf\xdd\xc1\xfe\x885\xa3\xbe\xbfG\r\x15J*\x81\xd8?\xcb\xf3\x966\xc8D\xb2\xbf\xa1F\x88\xcd\xe2\x19\xcc\xbff\xa9\xe7\xbc\xbd\x9b\x81\xbf\x89\xddr\x8a\xb6\x10\xa9?\xaa\x17\x12\xb3n\xfa\xda?|\rE_w\xaa\x82\xbf\xaen\xbc\xe6p1\xd7?\xcdf\xfa4/\x8f\xce\xbfY\xd5:\x14\xd5\xa8\xa0?w\xaa\xe4u\xc7\xc7\xcc?;\x1c\xfd\x14\xecj\xbb\xbf\xfb\x8a\xfd\xeb\x9b\xea\xd0?>\x8a6\x9am\x82\xb9?\x86w-\xdb2<\xc0\xbf\x84\x07z\xd7\xd6\xd4\xd0?\x9e\xe1u\tNu\xb9\xbf\x98\xb5x>$^\xd3\xbfT\xde\x06\x9ck\xce\xc3?\x0e\xb3\x1evD$\xb8?\xb3YJfk\x81\xe1?\xf8\x8a\x15\x99\x13[\xbc?\xf9\xff\x18\x827)\xa5\xbf\x9dD\xd1\x7f\xec\x15\xd9\xbfgs\xcc\xad\x15\xdc\xbe?+\x8d\xf9Q\xe1/\xcc?\xec\x1e\x93\xfa\xa9\xc1\xdd?\xfb\xa2h\xba\x14\xdd\xcc?\xe0\rQ\x16\xc8X\x8e\xbfjX`\xb8r\x88\xd2\xbf\x10(\x15~\xa2\xcd\xd0\xbfbG\xfdX\x03\x9e\xb5?F\x08\xdeLC&\xcb\xbf\x15\xa6\xc9G\xa0\x01\xb3\xbf\x89E\xa8\x00\xaa_\xac\xbf\xa6\x1bR\xe7\xf2\xf3\xeb\xbfg|\x01\x0b\xec\x16\xd3\xbf\xd6\xe2\xb3\xb9\xdcv\xce?\x07\xef\xc2\xa3X\xe0\xd1?\x1c\x8a\x91)W9\xb4\xbf\xc8i\xe1b\x11\x96\xb1?\x85hiV\xbb\x95\xde?\xab\xecy\t\xba,\xb2?y\x08q\x06%\x9c\xcd\xbf\xaaD"\xb0\xd1$\xce?\x03\xd4\xd7\x8c\xb1\x19\xd0?!=\x01\xcf\xda\xa9\xd0\xbfvc\xc5V\x99\xd7\xb2\xbfS\xfc\xae\xee\xb2\xd3\xc4?\x0c\xdc\xa3S$\xb9\xcf\xbf\x1a\xce\xa3\xce1\xc9\xe2\xbf\x93\x84\x03}w\x9d\xcd\xbf\x12\xc6[\xbd\xfc2\x98\xbf\xaa\xf8*\x1c\x92\xbc\xd7?\xba\xfb\xeeb\xcc\xbd\xcf?\xcfy|\x1eX\xcc\xd1\xbf&\xacu\xf3\xce\xc5\xbd\xbf%\xed.\xef\xce\x08\xc2\xbf\xc3\x0b\xe0O\xe9c\xc6?|\xd1\x8ct\xc8*\xb7?40\xd9\xe5\x0c\xdb\xb5\xbf/\x89r\x17\xbeu\xd4?$^\x7f\xaa\xdc\x8d\xc2?\x88\x9d\xff\xa8c \x82?-\xcdqX\x02\xfb\xbd?j\\N;-\xb0r\xbf\x11e"\xd5\xe9\x12\xb5\xbf9*\xe0\x94\xbd\x87\xce?\xaf\xd8\x1d5\xc81\xd5\xbf6>Ue\xb7~\xa7\xbf\xfcp/sA?\xc9?\xff\xb5\x12\xd6\xfa#\xb1\xbf\xc1\x9a\x9f=Q\xd0\xc3?zy\x84N\x83\xd3\xcc\xbfy\xb2&\xf7\xb2r\xc2\xbf\xd6\x8d\xe4\x13\xf8o\xcd?\'\xb2b\xa4\x93\x96\xc4\xbf4\x98{f\x17W\x92\xbf\x92^\x80\xb6\xe7\xf6\xcb\xbf\x1e\xa1\xdb\xfb\xb9\xd6\xd6?\xbc\x17!\x14\x8b\x02\xe0\xbf<\xa6\xf2\xd3,@\xc3?pG\xa4T\xab\x7f\xd4?R\x91\xaa\x8c\x12M\xe6?o+\xeeC\xb8]\xb5\xbfTQ^\x81\xf9#\xd5?\x0cB==\xab\xf4\x97\xbfI\xe0\xf5Q\\\xd1\xcb?\x81\x84\x1c\xb5\xcb\xa1\xcb\xbfJ\x83\xad\xba\xb8\xc0\x93\xbf\x98\xbc\xb2\x19\xff%\xb4\xbf?q\x9f\x07|n\xcd\xbfj,\xdbh\x05\xc8\xc6?\x87!GY\x13\x85\xb0\xbf\x15]>\xeb[L\xd5?+bX\xf5;\xf7\x80\xbfq\x12\xa9jX\\\xc0?\xd76\x85tF\n\xd2\xbf\xa5L;\xff\xf8\t\xe0?J\x96\xa8\x87F6\xb5?\x12\xf7\xbf\x17ez\xc8\xbf'
p54
tp55
bsS'rh0'
p56
g13
(g14
(I0
tp57
g16
tp58
Rp59
(I1
(I100
I15
tp60
g23
I00
S'\x96\xfd\xfd\x88B\xe7\xe7\xbf.\xa0\x17\xc4\xe26\xb6\xbf\xd5\x08\x02\xd0\x8fD\xa4\xbf\x8d\xdf\xb8$;\xc4\x8c?\x1a6\x9c7\x18E\x90\xbf\x90)\xb6\xe3\xa0"\xbd\xbf-\xac\x9a\x13\xcd\xf7\xc0\xbf\xcd\xe5R\x83g\xbe\xb7?"x\x9f=\xdef\xcf?\xf2\xd7\xf2J3\x90\xd5\xbf0\xe6H\xa6\x88\xd3\xd7\xbfy\xe1\xe1Ka\xc9\xbb\xbfQ\xe1 S\x0f\x86\xd6?Fi\x90\xa0\xeft\xd2?\xae\xa9p95e\xb6\xbf(\xbd\xf6\x1f\xfd\'\xd4?\x05b\x1aU\xb2>\xa5\xbf~\x0eLV<\xfb\xdb?\x83\xec6\xd3o\xee\xcf?w\xf5\x02?\xe1\x17\xc2\xbf\xf9(\x0b\x19x\x87\x82?{\xeaa\xd8\xcf\x87\xb7\xbfgS\\\x9a\x14\xb7\xa2?\x97\xf3C\xab\xf6\x98\xde?SB\x7f\x05~L\xd8\xbf\xac\x02H\xffHJ\xa6?\xf1\'\x0e\xa40\xf2\xd5?\x8f\x14\xf32\xfc\xf5\xb4?b\'\xf6\x82~Z\xc8?\x0f\xc0\xe4\xd5\xc4\xe5\xa2\xbft1\xc9!\xb29\xa6?\xc5l.\xaa\x15\xf3\xc2\xbf\x9d\xb6\xba\xf3\xd2\xb7\xd2\xbf\xa0\x0cH\x9a0\xc3u?\x9f\x930v\xc7\x9f\xd7?\xf2\x0fp\xbfnP\xd2\xbf_\x97\x10;]-\xd1\xbfv\x1c\xef\xc5\x18\x11\xc8\xbf\x9f\xdd\xd2\x87Mc\xd4\xbf\xc4o\xbe\xce\xa8\x87\xc5\xbf\xff\xbd\x9a+\xe7\xf8\xc6?^Qq\xa7\x13\xcc\xd3\xbf\x99?0\x97\xaf\xe2\xae\xbfX|7\xa9x\xc0\xf0?=\x8d\xb3Q\xd5F\xdd?\'\x13\x92\x1b\xc6\xf5\xac?%\xc9\x13\x9e\\\xfa\xba?\x18/xb\xbe"\xbe\xbf>.\xe4S\xd7\xeb\xb0?\xfchH\xf0\xff\xa8\xc7\xbf\xcf\x02\x05@Y|\xc2\xbfq\xaa(\xee\xa8\xa2\xb1\xbfF\x1e\x9d?\xd1\xa1\xc4\xbfN\x82B\x1f\xb8F\xb9?\x98\x9f7~\xa7\n\xde\xbfq\xda\xe6a\xe5\x9d\xb9\xbf55"\xd3q\xb6\xd1\xbf)\x98|\xa2\xcb\xda\xd3?\xb0\xce\xcc\xba\xc3U\x92\xbf\xf3%\xccc\x86D\xae?\xc1\x11\xc0`\xa5\xda\xe7?\xbc\x17(\x84|\x1b\xc3?\xb4\x06\x9e\x7f\xacx\xb1\xbfc~|\x1e\xef\t\xba?,\x81\xfb\xf3\xdfx\xc2\xbf\x7f\xb0\x01c\xacu\xb1?"J=\xaa\xeb%\xa4\xbf\x18\x19\x9fv\xf5\x18\xbf\xbf\x11%\x98}\x85\xf7\x93?\xc0\x93)\x8c\x8cR\xd5\xbfW\xd0Lpwb\xc5?\x1e\xa4\x0ejr\xa2\xd1?\xb0\x90\x8d\xee\xe0\xc6\xc4?\xb8L\x0e\x9c\x81\x8c\xc8?\x1a\xfe\xefO7\xa2\xc2?\x19\x9e\xe9+\xd5A\xd0?\xdd\xd3\x0c\x16\x9b\xf4\xa0\xbf[\x05\x8f\xbbs\x8c\xc9\xbf\x8a\xe3\x89\xc6Joy\xbf\xcc\xd9Sa\x13\xea\xb5\xbf\xff\xb0\xb0\x1e\xc1\xce\xc7\xbf\x8f54\xd2\xb4\xaf\xb6\xbff\xc0\xd5|\xf3r\xe2\xbfY\x04\x91\x8cvZ\xb9\xbf\x19\xf2\x80,\x04O\xb3\xbfP\xda\x14\xc2\x98\xf6\xa3\xbf\x04\xdfFs\x19\xae\x9b?\xdc\xb2\x92I\x0e\x03\xf0?\x9c\xbf\xaaI\xf9\xe1\xdc?\x98\xfc\xa7"0\xb8\xd4?&\xd6\x87{\xd6\x9d\xe0?\xb6\xf8\xdb\xbd*\xb0\xc0?*G \x15\x1f\xf5\xd4?\x1fmk\x9b\xb8?\xb4\xbf\x17\xbd\xe2\x9c\x17%\xa0?\r\xa7\xde~Z\xbe\xd2\xbf(\x8d\xe05\x0fa\xc2\xbf\x8a\xa6m\x18\xe0T\xd1?CYp\xe0Y\x85\xac\xbf\xda]y\xab\xb3x\xcb?m\xb1\x9f\x10\x89\xa1\xc5?\x8e\xb0\x86\x8ca\xad\xde?|\xd3\x19\xbb\xa4\x1e\xe6\xbf\xa6g\xc8ONk\xcb\xbf\xc7I\xa8A\xba\xd5\xcd\xbfC\xfe\x01\xc9n\x80\xd9\xbf\xc0\x80\xc1\x89K\x10\xa7\xbf/w\xb3{\xfc3\xa8\xbf0\x16\x1a\xbd\x93\x96\xce\xbf8\x88T\xd4\xc6\xa6\xc7\xbf\xeb\x0f\xe5i\xdc@\xa1?HU\xd6^A\xcc\xc3?\xb1\x95UQ@{\xa3?\xdb\x9afv\x82\x04v\xbf\xa0\xe9\x119\xfa\xa4\xe1?[\x0f\x11\x13m\x91\xc7\xbf\xf5\xafsK\xd6z\xbe?@$|\x0f\x87\xe3\xe5\xbfH\x83wi\x80O\xe1\xbf\xd7\x8a\xa2\x13\xd4\xa5\xb1?\xb0\xdfGZ\xe2/\xe5?b\xe6\xc3\xe1\xdf!\xc6?\xdd\t\x838\x12]\xb9\xbfD\xac\xa2Oc2\xbc?Q\x9e^\xc7o\x92\xa8?\'\xad1\xd4\xb9\xa6\xbb\xbf\xe5\xa0\x85\x84\x1c*\xb5\xbf\xf4\xc5\x8d\xf1#H\xd6\xbf\xcd\x05\xf7\xfc\xc4W\x9b?\xd3`n\xf8"8\xd9\xbf\x82\xb9\xfd\xdf$F\xca?"my\xae\xdb\x19\xb0\xbf2e\x05\x16AD\xe5?\xcc\xfe\xe7\xf3\xb6 \xda?&\r[\x00\x8e\xf3\xa8?\xf3\x06#\x82vT\xe8?\x01\x83\xf7\xc6cv\xcf?\xa0\xf0\xcc\xe5\x986\xe5?-\xa0m\'lX\x89\xbf1\xf7\x83\xa4\x10~\xc3?\x1d\xf8\x9e\x14v\xca\x9c?\'u\x10r\xc6\x01\xd5?`n\r.\x16\xe0\xe1?.,e\x94\xa1\x02\xd8?O\xbe\xa6\xfdA\xe6\xd3\xbf\x14:\xe9H\xff\xb2\xda?\n\xb1<\x18;P\xd6?\xc8\xf4\x12.\xd8\xd5\xd2?\xa8\x176\xef%\xbd\xe5\xbf\xf5\xb9\xe1\xc8\xfb\xfa\xd5\xbf\xaa\x94\x9dl\xc1\xc8\xe0\xbf\xd4\xa4\x1ed0B\xcb\xbf\x1eBhp\xfbE\xda\xbf**X !\x81\xa0?H\xb3\xbb\x8a\xc4\x8f\xba?\x15\xaaZ>\x8d\xe1\xd2?]q\x0b\x1dt-\xc6\xbf~9nb\x8d\xd2\xae\xbf\xc4\x0cc|\xb0 \xd9\xbfF\xd8{\x7f\xb7\x0c\xdf?\x07y\x87\xea\xac\x1b\xc4\xbf5\x15X\x8dLV\xce\xbf\xadI"\x02\xfe\xfa\xda\xbft\xa9J\xf3\xbf\x8f\xba\xbf\x852\xe1\xf9Kc\xc7?a\x06w\xa8YQ\xaf\xbf\xdc\xe7\x9a\xa4\xebb\xbb\xbf\x1f\xaa\xca\xeb\xa46\xc0?\x92?#nXB\xd6\xbf#\xbc\xcf\xa9\x1b\x85\xba\xbf1\x11\xb2\xb6\xfc\xf2\x89\xbf}\x1dx\x92\xa9F\xd2?\xf1\xcb\xb7\xb7o\xa8\xb5\xbf\x00\x94\xde;\xe3f\xc5?L\x0eEu\x8f\xc5\x98?\x06~>g\x065\xa1\xbf\xab\xd12\xaacp\xb9\xbfQ\xc6\x13t!\x1a\xb6\xbf\xd0<;\xb5[2\xdc\xbfn\xb2\x06[e\xfe\x8a?I\xdf\xe9\xc0\xf62\xcf\xbfD\x8a\xe6\xa2\xfc\xed\xca?qE\xfab0p\xac?M\x9cce@\xfc\xc0?!\xfbR\xde~k\xc9?\x918&_O\xc5\xb1?\xdc\xc3\x8b\xeb\x8f\xa9\xa9\xbf\xc8O\xcej\x199\xbc?\x83\x1c\xc4-Q\x80\xc1\xbfnk\xb1\x0815\xb0?\xdc\x95Z\xc9&\xcd\xcf\xbfz\xbd^\xa9M=\x94\xbfVis\x975\x07\xd3?\xb1a\x8f\x97\xf0\xc5\xe0\xbf\xad`\xff\xd5Z\x07\xa8\xbf\xfc>\xceHL\x89\xd1?<\x06+\x11\xbch\xc8\xbf\x05\x1b%3\x9c\xb6\xb1\xbf\xfaD\x06{z\xd9\xce\xbf?\xdf\xcdE\xa8\x9f\xd4?\x82*\x9a\xf7\t\x92\xae?.\x9b\xa8\x80q\xdc\xd2\xbf\xfe/c\x1bR\xee\x83\xbf\x1a\xb0\xe6\xa2\xe0\xa2\xe0\xbf\xf35\n0\xe6\xb5\xc2?\xbflp\xab\xa9\xf8\xcf?1\xc5i\xd7?\x1a\xa6\xbf\xdb\xc8\xc8\xaeo\xfe\xd4\xbf\xcf\xa0/\x88\x9d\xc3\xc2?~]\x1c-\xc4\xb8\xca?Y\x95=d\xec\r\xc9\xbf\xef\x80\xf6\'%\xf7\xc1?<\xe80\x8c\xa3}&?\x81U\xe2^\xb7\xdb\xc5\xbf\xba9)\x0e\xaa\xdd\xd2\xbfb\x8ar+\xd7\xb5\xb4?\x84,Qb\xe3\xb8\xb8\xbf\xc3\xf87\x13c\xbc\xd4\xbfm\xa3\x1aH\xa3h\x83?\xbe\x9b\xdb\xbc2/\xc8?!\x92\xcb\xa4{\xde\xc8?\xd8^\xc6-\x10F\xc7?(\x82\xd4~X#\xce\xbf\x1b\x12\x8e\x109\x14\xc6\xbf>Q\x99\xc1!u\xd4?8-R\n\xadJ\xd4?\xfb\x89@=\xd7\x86\xd6\xbf)\xb1yh4\x1c\xc7\xbfU\xe8\xbb\xd8\xc6\xb0\xc4\xbf}\xab\xcf\xf4\xa4\x15\xd5?N\x1c\xd6\xe5\n\xd5\xbe?\xabd\x14\xc7\xe3\x9a\xc1\xbf=P\x8f\x1d\xef\xbc\xc8\xbf\x0c`/\x17\xb0\x83\xe2\xbfBw\xd9J\x87\xbd\xc4?92\xef\xc6q\x1d\xc9\xbf\xdf\xf7\xc3+TY\xd2\xbf\xb7\x7f\x1a\xd5\x11\x14\xb8\xbf\xa2u\x18_\xe6\x11\xb0\xbf;j)\xe5\xc4\xbb\xda?uL\xbc\xb3\x10\xc4\xd3\xbf\x99@B]\xc6+\xc2?\xdf\xdb1\xa6\xfcj\xd6?\xa9\x1c\xd8859\x96\xbfzj\xac\xc7Y\xac\xa8\xbf~t\x0fL\x1c\x89\xc5\xbf\xea\x7f\x87\x9c\xf0\x9b\xa0\xbf\xcbb$\xe2\x9ct\xc5?T\xf8\x0f\x11\xdaj\xc1?\x19\xfb\x08$\xf7=\xd8\xbf\x97\xd5\xb9\xc3yq\xc0\xbf\x95\xe1\xca@qh\xb5\xbfBL^\xb9\xe4\xc7\xaa?\x1f\x0f\x18930\xba\xbf\xb71\x11;\xd9u\xb1\xbf\x1a\xe8\xe8\n\xc7w\xbe\xbf\xa1\x82\n\xe8\x06w\xc4\xbf\xb3h\xc2\x17\xcfR\xc1?\x8b\xc1j)\xf6$\x9e?\xee]\xfe\x8e!_\xc3?\x0c+\xfc\x92a\x86\xd4?\x0fJ\xf6\xfd7G\xce?\xb1\x97\x9b+7\xe6\xd4?\x81\x96\xae@\x7f\xe6\xd6\xbft\xc0U\xb3r\x7f\xc4\xbf\x04\x9dV\xa8\x87\xd8\xd1\xbf\xfef\xe8\xd3R&\xc4?\xd4\xe1\'H\x0c\x9c\xd8?\xffK\xf5|\xd6\x8b\xe0\xbf\xb8\xb5\x8aYep\xc9\xbf_hy\xdf\x99;\xd0?o\xc7\xc5Ck\x93\xc9\xbf\x9e\xcc\xaa\x1b\n%\xbc?M\xd4\x1b\x8a\xaf\xed\xc0\xbf\xb0\xa3:\xe3&\xc8\xd1?Bn!\xdbq7\xc4?\xa0$\xd9\t\xd7\xc8\xae??)"\xbfZ\xaa\xb8?>\xc0\xb2T\xba\xfb\xb6\xbf\x9c\xc8\xb1\xd9\x04\xda\xcd\xbf\xc7\x97\xc6\x13\xbd\xbd\xa0\xbfG\xd4\xb4\x0e\xe1q\x8c\xbf|\x15H\x9f%\xf9\xa7?\xaa\xca<\x96H\x8f\xbb?\xa6A\xc1\xec\xd5\xcf\xc2\xbf=?\x16|wh\xc8?\xe2\x90\x18P\x82\xc7\xc0\xbf\xd8L;\xae{~\xe5?m\x06#J?\x84\xe2?_\x91\xbf\x80\x1f<\xb7\xbf\xd0l\xd3\xd0\xdd\x0f\xc5\xbf\xb0\x0bB0+\xdb\xba?\x06Gh\x10\xdc\xd8\xad\xbf\x7f\xb5\x89b!A\xd4?\x1c\xef\xde\xcb\x9d\'\xe9\xbf\xc8\xe6\xacM4 \xd0?\x01m7ofW\xdb?\xe9\xf2\x0b\x8d\xb5\x04\xf0?.D\n\xa0\xb22\xdf?\xbe\xdc?\xa26\x8b\xd2\xbf\xcd8\xbf\x8ft\xf8\xb1?\xdc@\xc8\x8e\xdd\x0f\xa3?\xc0\x9a0+Gs\xd0?cEc\xdc\x91\xc6\xd4\xbf\xd50Bq\x9f\xa9\x88\xbf\x930\x13\xcc\x89\x95\xc6\xbf\x8f\xfc\xad\x90\xfd\xc0\xae\xbf\x8e0\xbb\xd2\x9aZ\xa8\xbf\x08\xeb\xcbZ\xdb5\xd4?\x8a\xe1\xfc\xb1\x1e\xac\xcb?\x84\x13\x83\xeca\r\xd6?],\x80\n\xdfh\xd1?Z\xce\xf9\x85\xb3\xaf\xe1\xbf\x97\x12\\\xa6J\xb3\xe7\xbf^\xeb\xad%\xa5\x83\xcf\xbf\x00p\xca\x1c\xbc\xb7\xe0\xbfr\xb7\xe9"\xe1\xfc\xca?o\x82t \xbb|\xc4?\xfd\x13\xd4\xb6X\xbf\xb9\xbf\x98\xa9U\xa8\x01D\xdb\xbf\xdb\x7f\xf3\x0b\x80\xdd\xbc\xbfQ\xe4\xcf&\xf8\xf6\xdb? \xf8p\x0e(G\xde?\xe4\xe7\xe6\x10\x1f\x1b\xd4?6\xe2\n\x05\x9f]\xcb\xbf\xc2\xa0\x08k\xfe\xd3\xc0?\xf1\xfc\xd5\x01\xaf\x17\x95\xbf\xb0\xdeXj\xdbA\x9e\xbf\xd7\xba7x\xf1!\xe7\xbf\xcdo\xa9h\xe6\xdb\xd0\xbf0\x17\x97\xb8\xc4\x9e\xf1\xbf\xe3E\xe9\xac|8\xdd\xbfx\xfb\x9a\xb0\x98?\xce?\xa5\xb7\x84\xddk%\xab\xbfd\xa3u\x04\xe8\xed\xdc\xbfTd\x98\xd9$\xa9\xd9?\xedC\xee-\x99.\xcb?\xfb\x8f: \xfc\x9d\xb5?\x1b=\x90))i\xd9?I\xa5\xaa\xfdf\x85\xd3\xbf\x83\x1eA\x91\xe1\xe0\xc9\xbf\xa8\x97\xb5-\xe8F\xc9?\xfb~0\x90\xe1f\xd9\xbf\x0b+\xa0\x8c\x8aE\xd3?\x9b\xb8p\x0b\xc52\xcd?\t\xf6\xec\x9f=\xc0\xe0?d/_\x0f\x82\xbd\x9d?\xdbC{lN\x9a\xba\xbf\xe0\xe2y\xadA\xed\xcd\xbfG\xe8\x88U\xda\xef\xcc\xbfSqa>\xd1\x9a\xb6\xbf\xc7\xc2`\xc3\xc9j\xbb?\xac\x1d\xf6\xc9\xa6\xda\xd0\xbf\xf6\xd7\x89f\x97!\xda\xbfz \xd4)$\xac\xce?\xfe\x9b \x05&\x05\xc7?\x03y\x1c\xfb\xb5S\xd5?\xa3\x9b\xf3\x82\xab\x03\xc5\xbf\xe6\xc7\x16\x89{\xf8\xe1\xbf\xfc\xd4.\xe9\xa4\xed\xbd?\xf3\x94\xee\xc0\x9b\x06\xd3?6\x07\x81\x03w\x17\xc1?=\x966\x0f\x9b\xa2\xd6?\xf4G[\x99b\xe1\xc7\xbfV\xe1\xd5\xe9m\x8a\xc6\xbf\x00z\x1a\x07\xe0\xb5\xb7?\xc0\x0b[\xcb\x9e\xb1\xd5?\xb2\xa6u!&\xaf\xdd?geF\xaa\x1a\xc4\xb5?\x14E\xf9\xb1Yr\xda\xbf\xfaY2\xcbmD\xd6?\xf4\r\xc9\x0e\x8bJ\xb7?n\xb4\xce\x9a\xef\xec\xe4\xbf@~\xfb\x93"\xb2\xe8\xbfMM\x92P\x9e~\x9a\xbf##\xc7+t!\xb7?\xdek\xf0K6_\xde?\x8b\xc4\xe3U\x8a\x1f\xc6?\xd1\x98d\xc7?\xf8\xa8?\x10z\xd1\xb2\xed\xb3\xbb\xbftx[\xd11I\xc2\xbf\r\x16V\x86\x823\xbe\xbf\x07\xbe\xa8k\x19\xdc\xb7?\x15\x89\x00\xc3\xf6\x92\xaa?a\xc8!\x1b\xed#\xb0?\xe6\x0b\xb9~\xcdN\xb5\xbf\xf4\xd5\xb8\x9d,\r\xcb?\xd3\xa2\xde\xcb\x04\xd5\xaf\xbfV\x9bp\x14\xb7\xe5\xd6\xbf\x02\x9f\x90)\x16\x10\xcf\xbf-Npl\xe6\x19\xed?\xed\xb1:\xa9\t\x1c\xd0?\xc9\xc8Xu@\x8a\xbc\xbfe]g\xe5\xe9\x94\xbd\xbf\xba\xe6\xbeg\xbf6\x8a?\xc7gA\x8a\xaa\xc3\xc5\xbf"=f\x94\xf0\xd8\xb7?\\\xd4\xfc\xf9F3\xd3?\xa9M\xab\x82\x87\xcf\xd5\xbf\xd0\xc8\x04\x18\x9bI\x91?\xbeul\xdd^\x1e\xca?g"\xdcA\x8am\x91?On\xfcH\x11\xb7\xd8?\x81\xc79\xd3:\xf8\xe1\xbf\xeb\xf9&C\xc3\xfb\x96\xbf\xc6\x9e\xa8~\xab/\xcb\xbf\xd0\xf7\\E\x07\xd1\x9e\xbf\x85\x16\x07\xea\xc2\x1b\xb4?\x7f\xf2\xc0\t\xacM\xc9?\xdcM\x1d\'\x0e\x9d\xc4\xbf\xe4\xd9\xe7c\x02\xcd\xb4\xbf:\xaf\xe6\x00\\\x81\xb6?\xe7H\xed \xba\xc4\xb1\xbf9\xc1\xa4A\x9f\xd2\xd6?\x88R\xaaV\x89\xc5\xd4\xbfE\xa5t\xa1\xf1\x84\xd0?\xbb\xb3I\xd2=>\xb7\xbf\x9f?\x10l\xf1\x06\xd8?\x88g-5\xb0~\xe8?\x9b\x84mR\x05\x9b\xb3\xbf\xe0\xbc\xfc\x18n;\xd7?\xff\xc7\xea\x0f\xea\xc5\xbf?\xb9\t\x17:p\xfd\xd1?\xb7|l\x87nH\xc0?\xa3\x05Y\x1aF\x93\xcd?-\x0e\xdc\xc8c\xd0\xce\xbf\xba\xa3y\xf5\x98,\xa4?PL\x92{\x1e\x99\xd1?H\x93\xec\x98\n\xd8\xad\xbf\x88\xca <\x06\xa7\xbf\xbfc\xb0\x95\xebM=\xd7?~\'\xce\x91l\x86\xb6?\xfc\x1b\xf8\x84\xeb_\xac?\xc3\xb2\x19i\x03\x81\xd3\xbf\x9e\x93]\xcf:\x97\xbb\xbf`]\x16\xee\x9b\x14\xd0?\x9a\xef\x04W\x93tt\xbf\x8dZ\xdf\xee4\xb0\xcc?\x17\x10\xf6\x82?\xe9\xca?\xdd5\x1b\x10\xb8:\xc2\xbf\x81\xb0\xf9\x83\x1a(\xb6\xbf3\xdaS\xd0-\x1f\xcc\xbf\xed\xa70\x84T\x9f\xd3?\xb9X\xe3\xda\x86<\xb3?,\x87k\xb1uO\xb4?U>@\xd9\'\xac\xd5?\xe4\xe4\xf1\xed\xa5\x14\xd2?\xa4\xb0\xe6qj\xe8\xdf\xbf\x19\xd7\xdd\xb9i\x06\xc3\xbf\xcc&Wi\xf0\xb5\xc3\xbf\x800\xef\xbb\xe9+\xd0\xbfG \xed6\x8d\xea\xcb\xbf\x10\xabKFg\xe3\xd3?\xb5O={J\xe7\xc9\xbf\xe2\xee\x90\xf7g8\xa2?\x9e\xb1%\xc6>T\xc0\xbf>,\xc0&\x825\xd4?\xc1\x1e\xaf\xd9?\xfe\xc2\xbf1\xc9<y\x07_\xc1?\x89\xd0\xbf\x84\x94\xd9\xa1?\x1er\xdf\x08\x0c\xb2\xae?\xcdO\x9ed\x82\xfe\xae\xbf\x02X\xbb\xbf\xaf\n\xae?\xb0\x19c8i5\xe3\xbf[\xa5#\x8c\xad\xbb\xc1\xbf\x9f,\xef\xb8g\x8f\xba?\xee\xdb\xca\x83\x07.\xb3\xbf\xaf\x1e\xf98m\x07\xe1?\xa5\xf8\xb3N\x07q\xcd\xbf\x82\xea\xc8\x16Q\xdd\xbd\xbfpp5?\x1eq\xc0\xbf9\xc8L\xac\x18\xc1\xb7?\xce].\x07\xddM\xc1?\x9fY\x1by\xd3q\xbc?\x1a\xc2\xbf\x00|F\xcc\xbf\xcdj*\x00cu\xd3?X\x86\x84!\x1b\x81\xaf?\xe25\xfd\x7fM\x8d\xda\xbf\xda\xf4\xea\xd2d4\xed\xbf\x07\xa9\xce\xf9\xe6$\xd1\xbf\x1b\xd8Q\xbe\xe0\x16\xa6\xbf\x86\xf7\xf5f#\xe2\xb8?x\x0bb\x1e\xc4^y?\xadG\x8a\xa9\x8e\x8d\xaa\xbfQ\x9e_\xf2\xbcf\xd5\xbf\xdf\xe1(\xa5]\x10\xc5\xbf\xa9i\xa9\x06\x8b\xbe\xc3\xbf\xae$O\xed8:\xd6\xbf\xad\xbb.Z\x01$\xd8\xbfD\xfb\xfe\xa0_\xbc\xa8?\n\xc4\xc7e\x00\x9c\x99\xbf\xa3\xa4\xb2/\xa8\xb4\xbc?\x11\x1c\xd0~\xa6\xaa\x8c\xbf\';\x81\xb7P~\xa5?\xc6\xc6L\xf1aG\x92\xbf\xdeu\xf87\xa7l\xb1?R\xdf^\x07\x0f\x12\xc7\xbf\xda\x12\xf4_\x08\x16\xd0?\x9c\xd2q\x99W\xd0\xdb?\\1\xad)\x05\x93x\xbf$\x92Y\xe4\x07\x7f\xa0?\xe2\x0fES\xe5(\xb1\xbf\xa0\x07\xe5\x98\x81\'\xb0?k\x1e\x10\x0f\x13\x00\xd0?\xf7\x97j\xbbY\xd0\xe5\xbf\xd2\xb5\x91\xcf@\xdc\xb8?Z\xb3J\xa8\xbfm\xb8\xbf*Y\xa2\x1e\xaf4\xf0?\x1e?\r\x92\x9f\xb7\xe0?\xf4\x1eA\xc5\xe6\xb1\xbf?\xed\x83\t84\xfc\xe4\xbf;\xaa?\x83\xe2Q\xb8\xbf\xdc\'\x9b8\xf1\xc3\xc5\xbf\xf4\xc6\xd6\x9c\xd1\x0c\xbb\xbf\xcdUuB\xc9\x1e\xc2?b\xf0\xaa.v\x08\xc1\xbf\xb72\xd65\xb2\x16\xc0?,\xab\x1c\x96WF\xac?\x9e\xe3\xe6fSR\xc8?\x04\x87\x1bcII\xa8?\'3\x03\x01\xff\x8a\xc3\xbf\x00\xe4\x8f\x03a\x92\xd4\xbf#Y\xed\xd9eC\xb5\xbf\xc8z@gF\xb7\xd7?-\xd7\x93\xce<\xc4\xd5?v\xd4}{\xeb\xfa\xe9\xbf\x14\x08!\xe5\xb5\xc9\xc9\xbf\x8a\xc7\xfaH\xcf\x1d\xc4\xbf\x1a\x98"kx \xa0\xbfK\n2\x9f\xb1\xa9\xb7?\xae\x07\x8b\xa3@\xb6\xa8?\xf1\x98\x81o\xd9\x85\xc1\xbf+\x92\xd2\xf4:0\xab\xbfP8\xddnK{\xca?\x08\x1c\x8b\x1f\x0cS\xb2\xbf\x95\xc9\xe1t<\xe4\xc5\xbf\xb5]\xe8\xe9\x9c\xbd\xd8\xbf1\x9a\x85\xfdV\x97\xde\xbf\xb6\x82\xde-\xb8\xc9\xd7?k\xe9\xf5\x00E\xc5\xb1?BKe\xa5\xdd\x07\xe9?\xe30\xed\x99`:\xc9?\xa1v\x17\x10\xba\xac\xd8\xbf\xa1~3\x1fCB\xaa\xbf\x04\x07x\x7f\xb7\xd9\xc8?\xfa\xce\x8d\xed\xc9Ok?\x89vW!\xc54\x8d?\x04\x88<P\xaf\x81\xb1?\x8fk\x9a\xcc\xb8S\xd1\xbfu\xec\x14\xb2\x1a\xa4\xcd?b\xf9JY\xbb\x1b\xa0\xbff\x8f\xf0\xcd\xab\x15\xb8\xbf\x9bx\x8d]\xdb[\xe3?i\xfd{~\xa7i\xd1\xbf\xca\x8c\xf2Z\x8f>\x95?5\x07J\x9bbA\xd0\xbf\xd4-\xb8:eC\xca\xbf\xe3\xa8R\x80\x966\xe6?\xf1\x1f\xa2"\x8b\xff\xd4?\xda\x06i\xab\xe3e\xd0\xbf@\xc6j5\xf4)\xa5?\x04\x80\x19p\x81i\xdb?\xef\x0e\xe9fT\xfa\xe0?\xa6I\xf2\xe8\xcam\xf2?\xac\x10f\xcb`\x8d\xd0\xbf\xce\x80\x9e\xa2\n\x18\xd9?\xd1\x1a\xfe\xf1\x8b\x05\xab?\xca\x91\xcc\xb2q\xb3\xc8?q\x10)!II\xca\xbf\x8d]\xec@\x06\x0e\xd6\xbf\xbb*DXB\xdb\xc8?\xe2\xd3}\xe6\x168\x97?\xc3\x91Vx\x8e\x14\xd6\xbf\x82\x94\xbd_\x81O\xb5?7W;KJ\xa4\xcb?\x85\x00\'\x8e\xa7\x83v?v\xfa\x8b\x0f>\xbc\xca\xbfeN\xa2\xb0L \xcc\xbf\x01r/\xbe\xf6\xa7\xde\xbfw\x02Y\xe8\x952\x83?6\x04\xcbq\x8a\xbd\x82\xbf\xfb`Tm\xa3\x1e\xce\xbfW\xb2\x1eb\x0e\x13\xe3?\x9eU\r\x0c\xcd\xfa\xd9?\x0e1|\xbe)i\xc6\xbf\xd5\\i\xb9\x97\x99\xd3?\xf6\xf7\xb06\xd6\x1f\xb1\xbf\x12\x17\x9d\x98\xcc`\xdb\xbfzt\x9en\xfe\xc7\xd1\xbf>g{f\xeeu\xbf\xbf\xa1\xfd\x10\xa0\xcc\xd8\x80\xbf\xd6\x16F\x061?\xd3\xbf\xb9\xee\x87\xbf/Z\xe7\xbf\xfb\x1a\x95\xb8\xde\xab\xe8\xbf\x1c\x915\xbfBr\xd4?\xb1Us\\\x02\xbc\xce\xbf\xea;\x83\xcc\x97\x13\x9a\xbf\xd6\x82"\xd1\x97R\xcb?\xe1\xd4(\xe9\x80\r\xe1?\xe61\xa3\x81\xa2\x9e\xd5?$a\xf2\xc3\xad+\xdc?\xfd\x12\x916\x19\x03\xa8\xbf09\xb1\xf5\xe2^\xd6?kwn\xccN\xf4\xd0?7!\x1e\xdb\xae\xf2\xd6?Isl\xcb\xf6\xba\xa1?\x06b\x98\xb2\x93\x93\xca\xbfR\xfb\xef\n\x00\xea\xd3?\x8e\xdf\x14\xb5\xc5m\xc5?\x98\\\x9aaZ\xee\xc1?\x82\xb8\xe3\x81\x81\x9c\xd0?\x03\xa4\xc0\x00\xd4\r\xd2?\x00\xfa\x17\x0b\x9d`\xd6\xbfX\x98\'\\\xbel\x8d\xbf\xf1b\n\x02\xcc+\xb8\xbf\x96*\xfdC\xf3\xcf\xdc\xbf\x82\xd7R\x90eO\xc7\xbfE\rO\xe3tC\xd5?_\xbe\xc9\x83\x86\x84\xcc?\x05\x87D\xc65\xc8\xbc\xbfzx\xdb_\xcf\x10\xc3\xbf\xd6\xc4<\xb5n6\xcf?kL\xf9B\xf8o\xcd?\x85\xb7\x07\xfa\xee|\xd7?\xf0D\x86\xd3>\x9e\xc9\xbf\x01n\xed;\xab\xdb\xa1?\x96\x80\x9d\x8d0\x1f\x81?G\n\x06\x8e\xb5\xa7\xec\xbf\x8a\xee\x94\x00-\xc9\xdd\xbf\x94\xbb/,!\xbf\xc9\xbf\x9b\xac\x01\x14\x95\x96\xe7\xbfGJ\x1b\x92Q\xdb\xb4\xbf\x9c\xb1\x1e\xe0\xc4\xa0\xaf\xbf]\x80\xe8\'\x92\xe3\xd7?\xd1\xa4\xcf\x84\xb8\xa2v?\xb2l\x16\x14"\xa9\xc5?\xec1\xcb<\x16I\xd9\xbf\x93d\x01\xc2\xc2\xfc\xc5?J\xcb\x86\xc9m\xa7\xbb\xbf\x87\x92v\x9b=\xed\xad\xbf\xdd\xe9\xea\xb2\x90$\xc3\xbf\xd5ZA\xe0\xdd\xe7\xa7?\xac\xe0\xfaD\x8a\xa3\xb9?\xcf\xc3\xdf\xa36;\xd6?O}\xb0\x9c5\xe9\xd0?\xba\x92\xa0r~X\xea\xbf\x90\xbd\xedr\xa2\xb3\xb2\xbfW\xdf\x17r\t\xa7\xe4\xbf\xdf4\x114>\xde\xc3?\x01\xc6\xcf\x7f\xa5\xa0\xc4\xbf\xb2\xd5\xcd\xbb\x1e\xdb\xcd?\x7f\x8b\x13d\xc4\xea\xd9\xbf\xd8T\x0f\xf6\xc1\xcc\xda\xbf\xf9\xce\x8d\x05\xb4\xfd\xda\xbfY\xc3\xd7Y\xc6\x98\xd2?K\x7f\xf2W@t\xe1\xbf\x87\x1c\xdfC\xa6\x13\x92\xbf\xc2\xe7\x14bw\x12\xc1?\x85\x97\xe4+\x81\xbe\xd1?j\x97Y\x01\x87\x11\x97\xbf\\\x01\xc93;\x08\xd7?w\x048\x9cr\x05\x8d\xbf\x97\xc6{\nD;\xb4\xbf\x80\xbe\xe7\xf7\x99\x9f\xdb\xbf\xcf\xa7$\x84?5\xcf?c&\xa3\xd5\xbb\xef\xcc\xbf\xc9\x03\xde)vw\xcf\xbf\x83\xcf\xd9\x1c\x94\xf8\x9a\xbf(Y\x8f\xf4\xf3\xe2\xd5\xbf\x00bb\xca\x9b\xf7\xb8\xbf\x05\xb1\xebV\x92V\xae\xbf7N\x11#\x07\xa3\xbd\xbf\xbd\x9a\xa3\x86\x85\x04\xb2\xbf\xffa<\x96\xd9\xec\xe1\xbf\xf1\xae~ \x18\xca\xb7?VW\x15/;\xce\xda?\x83\xf2oN\x96\r\xb5?\x94\x87\xdf{#\xaa\x19\xbf\x9f\xef\x8b6\xcf0\xd0\xbf\x99O\xd5\x9e3R\xc9?\xb0\x15\x9ck\xe8{\x8d\xbf \xabN\xa2\x8ce\x80?\xaf\xff\x9f\x98L\xc5\x81\xbf\xb6\x05\xbf\xda\xf7\x96\x96?\x1a\xcd\xc3~L\x8c\xc4?\xa3\xfa\xc1\xe4\xb7\x12\xb8?\xeb\x1a\xb5\x8b\x98\x8b\xc1\xbfv[:\xe1\x94\x18\xbe?\xe9\xbc\xb1\x99,q\xe5\xbf\xaa\x8e\xf0\xce\x9a\x15\xb6?\'\xae\xc4t\xef\x85\xcd?\xa1Ic\x1f\xd3-\xab\xbf\x0c^4\xc9\x84v\\\xbf\xed\x03O\xfb\xfb\x01\xb7?\x8b\x83o\xad\x9c\xf9\xcb?\xb8\xb3bR\\\x93\xa9\xbf%#\xde\xdbU\x1f\xc3?|\x01F\xe9&b\xc0?F\x7f\x1d\x8e=\x16\xb4?\x8d\xc43\x01fD\xe0\xbf\xa7!\x01\x8f\xfc\xc1\xb7\xbfi\xf4\xfd`\xcb\xc2\xb7\xbf\xaf#BCX\xf1\xf2?_q6AP\x9c\xc1?\xd7\xaaU\xea\x1a\xec\xc5?\x89\xa3\\\x0e\x0b\xe1\xd8?\xa0\x87\xc76,\x7fs?5#\x04\xdf\x80\x93\xb0?\x8e\\Y\x1bp\xf0\xcb?\x84qa\x8b\xee\xcb\xc2?\xfd\xc6\xa3\xb0\x8a\x19\xb5\xbfq\x8b\xb18\x12\n\xc0\xbf\x8aK3Ty\x88\xcf?+At\x80I\x89\xc3?\xb191\xd1[\xdf\xa5?\x9el\xac\xd0Q|\xcd?\x11U\xe4\xd5\x10\xd2\xb3?\x96\xeeN\x98\x98W\xd4\xbfM?\x9fW\x91\xcf\xa6?%\xa6\x17\xd6q\n\xd1\xbf\xf7\xde\xde\x0eD,\xd1\xbf\'\xf8\x06_"\xc5\xb3\xbf!\xf9\xf1\xe8\x18\x93\xc8\xbfJ\xc7[\x85\xedM\xd3\xbf\xa2\x97>q\xcc\xf2\xba\xbf0<\xdb#\xb7\xa1\xc6\xbf\xe3\xe4\xac4i\xa9\xb4?\xc8\x86,B\x83\xee\xca?\x05x\xfd\x19\xe5\x0c\xd7?N\x14aZ\x98\x1e\xde?\x9e\xfa\x18{\xc9\xb6\xa1\xbf\x97)\x92\xba\xfd2\xac?\x18^)\x92\xd8D\xf3\xbf3+\x97\xb9:\x92\x7f?FED{\xff\xb5\xc5?\x10$D\x0b\xfd*\xe3\xbf\xf5\xbb\xc4\x8c\xac\xed\xde\xbf\x95\x18[\x0bv\x9f\xcc?\xc9\x8e\'3\xd5\x87\xc6?\xe5z0\xac<\xda\x96\xbfW\xab)\x15\xa8\xe8\xb9\xbf*\x8e\xa6\x8er\xec\xcb?]\xaf\x8a\x9d:A\xca?\xbcs\xf8\x99\x08\x18\xa7?J\xb6\xd62\x87\xfe\xc2\xbf\xd7E\x9a\xd8\xe0\x14\xbd\xbfr!\xc1\r\x93\x1e\x91\xbfO(\xfe .\x8c\xd1\xbf\x1b*\xba\xfe\xb0\x87\xb3?\xb1BH\x87H\x07\xc4?JF\xf0\xbb(B\x96?\xdc\xc0\xec\xe1]\\\x97?\xe2#\xc1z\xd5\xf9\xca?\xcd\x120\x9fok\xc6?\xc4=\xde\x08\xed:\xcd\xbf\x85\xfexsd&\xca\xbfOg\xce\xfc\xb5\x7f\xb9\xbf\xb2$\xee\xb0\xc3&\xd1\xbf!\xfbo\xe2,\x17\xac?9r?1\xac\x82\xd0\xbfe\xa5d\xf0\x18\xc1\xd5?\xeb\x14\n\xdez\xa4w\xbf\x05\xfd4TR\x1f\xcc?*IW$\xa6\xb5\xdb?\x86\xed\xa8w\x18\x0b\xc5?\xc7\xafeJ\x00\x02\xd3?y[\xecM\xdd3\xc2?,)\x8f\xe9\xb0`\xc8\xbf!\xd0\xe0Ef\xdd\xd1\xbf\xfbd|\xd0\xf4~\xbf\xbf\xb3\xc7\xcb\xa2\xfd$\xac\xbf\xaf\xa3\xb9a3\xe4\xc3\xbf\xef\xb7\xbc\xdfY\n\xa1?yRKq\xf3\xbc\xc1\xbf\x8b2\xcc\xe3F9\xc6\xbf$\x9b\x14\xeb\xd3\x93\xc8\xbf\x13\xd47\xe1\xa0J\xce\xbf\x11\xf9I\xdb?\xbd\xee?By\xc6\xd3\x96X\xbf?\x9aO\xd7\x16n\xac\x81\xbf\xc0\xffn\xf8\xac5\xd8\xbf?\t\xae\x89\xe6\x17\xde\xbf\t\xa2LR\xf9a\xcd?\x08\xcc\x0c\x92\xb6\x97\xa3\xbf;k\x021\xef}\xb8\xbf\xd1\x05ZC\x96=\xa7\xbf\xe80\xeb\xab\xc6\x13\xba?\x0eN\x84\xf0\xee`\xa3?=\xf5\x88\xa5\xd0\xa5\xc0?\xd8\x9d\xe0\x90\x02\x05\xcd\xbf\x18\x89x"\x94\xc9\xca?3\xc6\x06\xc5\xde\x82\xc5?<o\x0c\xe3\x94\x10\xde\xbf\x98\t\x98\xcd\xc8\xbe\xc6?4A\xcc8C {?\x82-\xcf\x1f\x17\x7f\xcd?\xca\x9f\xb3p\xd7;\xc4\xbf\xe7\x18i\x8dI\xa8\xd1?\x847o\x1b\x90\x1f\xc6\xbfR\xf5\x8fY\xb4g\x95\xbfk\xc4\xe5\xf3\x88N\xd1\xbf\xd1\x9e\x8aEZE\xc1\xbf0\xf2\xe9\xe2\x95\xd2\xb5\xbf|\x96\x07O\xc1\xac\xc4\xbf\x8e\x85\x84"\xc7\xda\xd8\xbf\xc5\xed2i%o\xcc?c\xc4\xaa\xed\x151\xbb\xbf\x9e\x1d\xf6ud5\xd4\xbf\x8b\xab\xc2G\xdf\xdd\xcd\xbf\xa6\xdd/\r\xbe\xdc\xcd?\xc1\x1dVT\x19}\xeb\xbfn\xc4\r\xd8X\xda\xaa\xbf$w\x1b)\xab\xb7\xcc\xbf\xae\xf4\xa6\x0f(\x93\xb1?8yzF\x80\x05\x9e\xbf\xcdaK9\xc2R\xd1?\xc4\x84t\xc8\x1f\xb6\xca\xbf\x0bC\xd6|\xcf\xcd\xa6\xbfG\x8a\xe7/\x9d\x16\xaf\xbf{\xd7\x89\xf1+\xd1\xd7?1\xf7\xf4\xd9\x88\xb6\xcb\xbf\xa2#ZS\x16\x0b\xc5?\x84\xba\x90\xb9&9\xd4\xbfqYa\xd8>O\xce?\xd7\xc2\xa1W\x1e\xc2\xbb?c\xbf(\x1d\x90_\xd7?\x02,\xc4\xf2D\xb8\xc4?\xffFfS\x87\r\xd3?.\xcd\xef74\xf4\xda?\xf1\x8ay\x7f3>\xd3?\xac\x9f\xea\xae\\\x92\x8f\xbf\xc0{\xbb\xc3\xa4{\xb6?\xe8\xe4\x86T11\xc3?\xf2\x9d+_\x80\x85\xd1?\xfc\xeb\xeb\x1a\xd3\xcc\xd3?V\xd2\xaf\xa8\xe9\x0f\xcc?\xde\xb2\xa4~T\xc4\xbf?\x0e\xd0=\'\\\x1c\xc0\xbfZ\xa4\x80H\xc1\xed\xc2\xbf\x91h\xb4\x18\x99\xb2\xc8\xbfP\'(+\xe7\xa8\xcb?et#0,`\xc9?\x1f\xc1\xde\xd8\x0cn\xe1\xbf\xcb\x8d\xf4\x8e\xe6\x0c\xd5\xbf\xbf@7\x8b\xfc\xc3\xcf?\xf8}F-1\xbd\xca?\x8f\x0c-\xecG\x93\xb4?G\x0f\xd0\xb6\xb0c\xd8\xbf:;\xdbY\xf1\x82\xd0\xbfB\x01E\xb5\xc3\x13\xb8?\xf4\xaf!\xc7a\xa3\xd1\xbfOu2\x8f\x17-\xd7\xbf\xdf\xe4\x97fLP\xd8?\x8a\r\xe1<\xff:\xd9\xbf\xdc\xe3\xb2\x9d\x1a\xdf\xb9?\x0f\xc0\xa2\xcd\xca\xe4\xc6?\x8b\x94\xcf6\xb0\x8e\xb4\xbfk\xc4\xc1\xa3y{\x9f\xbfp\x9eG\x80I5\xdf?\x97J\x89f\xad\x17\x88?A\x14\x01V\x171\xbb?\xc0Lw\x06\xe4)\xc2?\xfa\x1e\x07\xde\xa1y\xd6?\xd5\x80\xdc\xf6\xea\xf2\xb9?\xa7\x9e\n\xc8@\xc6\xbd?\xe2"\x84N\xa2z\xc2?\xb8<\xa0,\x8et\xb4?*0\x92\n\xf2:\xc6?-~e\xd5D\x13\xe5?\x15z\x02\x99\xf7(\xcc\xbf o%\x8d\xc9#\xe0?~\xd62\xc1<\xc6\xbe\xbf\xbb\xcdhf\x98?\xc2?\xb9P \xb8\xa0\xaa\xd1\xbf\xb90s\xab\xbf=\xc0?\x0f\x16\x92\xff\x11<\xc2\xbf\x14\x0f\xa6\xe3\x04B\xd7?\xad-\x84\xaakD\xc9\xbf\xe6\xa5U=\\\xb2\x96\xbf\x9e!m"f\r\xd7\xbf\xee\x98\xc9@\x13H\xbd?K\x15\xf7Q=\xd8\xcb\xbfe\x90\x92\x80\xb8\xe2\xda?\xed\x9cw\xdb;\xbf\xd4\xbf\x82\xf3\xf5\x1e\x01\xfd\xb8?\x0b\x85\xf9\x04$3\xd5?Uo\x10E#\xfc\xc3?\x95\xcb\xacM\xc3\xa0\xbf?\x0b\x82\xf2V+\xec\x81\xbf4lK\x85_\x9c\x9c\xbf+\xddK\x00\x9e\x95\xcc\xbf\x192\xb2\x9dD\xfc\xbd\xbf\xe30\xe1[H\x8c\xac?(\xa1Ilz2\xb8\xbf\xb0\x97\x06C\xe2\xa6\xc8\xbf]\x18?\x10\x0f9\x93?\x17\xd9\x03\x02\xae\xff\xbd\xbf\xad\xcdC\x07\x1a\xfb\xdb?\xa7\xdfV\x8b\xc2\x90\x9b?\xdaY\xe37\xdd\xc8\xc6?\x053u\x9e\x86r\xab?\n\xe0\xc6\xb0"\xfa\xb5\xbf\xf9~\xe3\xd4\xb6P\xbb\xbfVK\xf1\x04"$\xd8?\x0c\xbfs\x80\x95\x19\xb7\xbf\t\xbf\x05mG?\xbd?(\xf37U\x97\xd0\xba\xbfR?Z]\x01\x19\x96?\x8eH\xcbD3\xa6\xc7?\n\xebZw\xbe\xf2\xc8\xbf\xae\x95\x17\xfcA\x06\xd4?\xa7\xc2\x86\xda\x97q\x80\xbf\xd6\xdc\xfa\x9fvG\x9e\xbf\x99\xe9x\xdb\xe3f\xaf?r\x8c\xa5\x8e\x01\x12\x9b?\x13\x90f\xba2\xaa\xbb?\xc6\x88\x95\xc3u\xf2\xca\xbf]\xf3\x16\x06[\xa9\xd3?\x1b\xb4\x94\xe5W\xa5\xb4?\xb9\x97\xbc5\x11\x17\xbd\xbf8,\xe9\xec.\xb0\xb6\xbf%$\xa4?\xb0\x0f\xcc?\x87B\x04\xd2\xaa\n\xe0?\xdea\x94\x8b\xdeA\xe0?M9\xffo\xf1v\xba?\x8c\xa9I\xf8+\x16\xbc\xbf\xcah\x93\x08\xe4\n\xc9?\x1d\n\xe88\x06\xa9\xba\xbf\x90(b\x02u<\xe6\xbfJ\xb6\xaalu\xe9\xe3\xbfW\x9fXz\x8c\x12\xd5\xbf\x85 \x87t:\xcb\xc8?\xda\xab\xf6B\x11\x9b\xc3\xbf\xf0(\xb9\xf2\x84^\xc1\xbf1\xda\x8a\xe9e\xfb\x94\xbf\xf8\xa2\xb5\x8a6\xd0\xc4?\xc0e\x85\xe3\xaf\xc1\xc7?3<\x9e\xd1\x0fh\xd5\xbfA\x12\x1eew0\xb0?\x02X0\xb4%\x98\xd1?\x1c\xfcF\x07\x99*\x95?c\x1f\x12{\x02\x13\xcc\xbf\xd7Bex\t\x0e\xcb?Rf\xba\xbb7\xc0\xc0\xbf\x9f\xb7\xbaxF/\xbe?\xb0qPa\xaa7\xc6?1\xe2\x00\x8a\xac\xa8\xd5?\xf2\nVQ]\xf9\xd0\xbf\xf1pw\x13\x12\xa6\xc5?0{\xd8\xa05\\`?1\xbf,\x08,\xc8\xce\xbf]\xcb\xba\xedf{\xc8\xbf\x9b\xeae{\xdf\xc6N?~\xaf\xb3\xab\x0er\xc6\xbf`\xb0\x92\x95\x95%\xa4\xbfs\xe9c&\xa3\xe8\xb8\xbfv}~d\x06\xbf\xaf?\x93[\x99\xd2\xb6\x91\xdb?\xa9\x86\xdc{\x95\xc1\xdd?\x031Y_\x8c\xd6\xcb?\x832\xd7K\xcbG\x92\xbfk3\xb9b/\x95\xb7\xbf(\xba\n\xfe\x82\xa2\x93\xbf\xc5\xe3\xd7\xe0\xbcg\xd9\xbf\xf5\xa4\xd4\xe5\xd3\xd2\xc3?\xff\xa9|\x89\x9e\xc0\xaa?WG\x9e\xfd;\xbc\x94\xbfl\xb9\xd5\x9apo\xc6\xbf\x86\xac\x02X\xff\xba\xc9\xbf3\'\x7f\x86\x07\xe5\xc0\xbf\x94c \xea{\xfd\xcb\xbfV9\x07\xdc\xb0"\xd0\xbfK\xdf\x0ep\xcc\xd6\xd9?B\x1c;5b\xcd\xc1\xbf\x93\xfd\x8d\x96>\x82\xcd?\xfe\xf1\xd1\xc7\xae\xd1\xab?\x8d*\xb9r\x88v\xb9?\xb0\x93+J\xce*\xc4\xbf\xe8|\xa6\x19\x1f\xda\xcc\xbfwj3\x9a\x04\x95\xd2?\xad\xba\x00\x9b\x07\xa5\xbd\xbf\xc7!\x05\xf7\xb8K\xb8?f\x07\xa5\x1a4\x98\xcc\xbf\xf3\xf4\xe3\x95\xa0z\xd3\xbf\xe1\xdb5\xe362\xd2?\xe2\xed\xae\x9bB:\xd7\xbf\xc5\x19g\x05h\xa8\xcb\xbf\xcb\xd4\xab\x08\xfd\xfc\xda?1\xbe\x7f\x9b\x9bH\xd0?o\xa5\x1e*\x06\x0f\xd2\xbf\x87Nq\x83\x97\x8f\xa8?*\xf2\x0f\x7f\t\x7f\xbc?\xfa\x9f>\\\x1fU\xa9?\xf4b\xf5"yc\xd7\xbf\x1c\xbf\xff\xcb\xd3\x15\xc2?\xca\xda\xfc-\x02\x91\xc7?\x1c\x0bH\xa3\xdf\x0c\xcb?x\xf1\xb0\xef\xf5\xf6\x80\xbf\xc7\xb48qe\x03\xc0?\xda(\x15\xd0\x0fO\xc7\xbf\xe0\x1a\x89\xcc\xd5m\xc3\xbf\x01(Tm\x84|\xd0\xbf\xc8\xd1Q;K!\xd2?)To\xd7\xbb\x19\xb6\xbf5%\x08f\xfa\xbc\xc5?\xf9G\xd6\xc5{\xd8\xe3?\xd6\xc0\xf32\xa1\xd6\xcf?\x03\x13\xa7\xe7\xd2\xc0\x91\xbf\x82A5\x05\x07\x89\xc6?B\x8c\xba\xc4()\xe0?,\x16\xc9\x97\xad\xee\xb7\xbf:h\x18\xcb\xb4\xaa\xd1\xbf\xf3\xb5\xab\x9f\xf1\x96\xca?r^M\x88\x18\x1c\xc5\xbf\x988P:\xe0)\xd3?%v1H\xa2:\xaa\xbf\x02\x987F\x93%\x88?\x9b\x10\x9a2B\x87\xcc?\x19\xe2}\xa0\x04s\x9f\xbf\xef\n\xc9\x86s\xcf\xac?4\x9eU\n\xee>\xd7?H\xd5\x93\x02\xf0e\xd2?\x9d\xebT\xaa\xf7\xca\xe4?\x92\xc3\x17\x0c\x87u\xb0?c\xf1&\x8e\x00\x91\xd3\xbf\xd5n\xd4\xa3\xc0\xb6\xc4?\xba\x85\xf3\xdf\xfb\xdf\xd9?E\xf89I\xd4\xd6\xdb?\xe8\xc8)\xd7Z\x13\xe4?:2\xd8\xdfy\x80\xe3\xbfW$\xda]\xae7\xd4?\xad4\xa0\xf0\xbdW\xb8\xbf\x98\x1c#\xcc\x15\x1e\xe5?\x9c\xbc\x00\x9f\x81\xab\xd8\xbf\xc3\xcd\xc6\x86\x07\xae\xdd\xbf\x1a~\xe7\xce\xaa\xa4\xdb\xbf\xa5\x04UJk\x90\xc0\xbf\xaf\x1b\x1d\x8e\x9d\xf6\xe1\xbf\xf4[`\xb05\xe8\xcd\xbf\x7f\xc39\xe8f?\xd0?\xe3\xb4\xf3\x0e\xeb\x9a\xb9?\xcaJ\xb7\x11\x1f<\xc2\xbf\xb0]ayO\xd7\xbc\xbf\xef\x18]\x0b\xa4\xe8\xe2\xbf>\x19!\xa0(s\xe3?M\x18oVvy\xc8\xbfb\x96\x98\x86:\xce\xa0?\x07\xebO\xa7Wl\xc3\xbf\xfa\xb2\x88\xf1\x94\xd6\xd1\xbf~\x81k\xc4I\x9b\xcb?\x8e\x9e:\rXN\xc4?D\x12Wv\xf05\xc5\xbfW\x02\xe8=}\x07\xaf?\xec\xff\xea\xdf\xdcO\x83\xbf\xa4B.\xb3\xaf\x9b\xbe?\xd7w\xf9\x97\x95\xbe\xc1\xbf\xc9K\x98\x9b\x90\x8e\xbc\xbf\x87\xc9F\xee\xb9F\xa2\xbfH\xdbX\xca\xf2\xc4\xd6\xbfO\xf0$\x06\x03\x95\xe3?\xb0\x90\x00\x92\xce\xb3\x9c\xbfW\xf7\xcdP\xd2\xa7\x91\xbf{\xa1\xa1\xec|\xe6\xee\xbfSz {\x12Y\xc6\xbf\xca\x83\xa5f\xd5\xa3\xcb?\x814\x8b\xe1u\xbf\xc6?\xb6\xfa\xd1\xb8@\x16\xa8?\xfe\x0f\xd3\x12\xd8\xb2\xb6\xbf(9\x8f\xdc\x81\xe4\xd6\xbf6[\xbc<vO\x80\xbf\xc429sr\xb4\xbd\xbf\x05\xef\x1e\x89\xd8K\xbc\xbf\xa1\x95\xb2\xab\x1fO\xd2\xbf\x96 \x81\x87s\xf4\xbc\xbf(\x8c\x93\xc4\x07U\xd5\xbf6]u\xe0\x87W\xc7?\xd0#7\xfb!e\xc8?\xea\x16\x9e\n\x9f\xcc\x98?O*P\x04\x05\xdb\xc8\xbf>TX|\x8a\xfb\xb4?\xf2\x9f\x9a\xc3\x04&\xc6?\xf3T\xf9UU\x89\xc0\xbf*3\x9a\xed\x98\xb7\xd6\xbf\xa7\xf6\x13}9`\x94?w\xee:A\x8d\xb4\xc3\xbf\xbd\x0eC\x9a8\xb3\xb7\xbf\xbaT\xa6\xdc\x02\xe0\xb1\xbf\xbf,\xbaM\x00\x1c\xcd\xbf\xf4\x13\xbc\x88\xb9\xae\xcc\xbf]\x05B\x08\x16n\xc9?A\xd0\x9bH\xd6\x18\xc4\xbf}\xe7\xdde\xd4\xef\xcc?\xc3{\x9f\xf4\xe1\x87\xd5?}\xcc}\x90\xc4I\x89\xbf\x87\xb4b\xb0\xdd\x03\xc6\xbf\xc8\xd4\xc36W7\xd3?\xdb.\x10\xed\x7f\xc5\xbc\xbf~\xd8\xbc\xa5\x11\xf2\x96?P<g\xd8>l\xbd\xbfQ\xa8\xb4\xd3\xc3f\xbc?\x94\xe06k\xb6>\xa2?_2\x15\xf6b\x95\xb4?h\xc7\xa4\xd4\xec\x12\xc7?\x94\x0b\x86\x8f\x12\x1b\xb9\xbfC\xcf\x1bA\x81\xa2\xc2?\x16\xda\xe2X\'"\xb3?\xb0\xe7\xf1\x89&b\xbd\xbfVa\xb8\xee\xc6a\xdb\xbf\xdf&\xd0\xe0\xcc\x1c\xb6?\x9d>\xc7\xf3\x03`\x9f\xbf(\x03\x8a}\x80\x82\xd4?\xce`-\xdb\xea8\xa4\xbfr\x8b|\xf9\x8e\x88\xb8?*b\x159\xd0h\xd7\xbf/\xec;|\x8d\xe8\xc0?\x8e/\x97dl\xca\xc2\xbf\xe0c\xc7\xf2K\xed\xd1?\xcd\xe6?\x15_\xf0\xc3\xbf\xae\x98$\xfeT\x90\xbd\xbf\xb4\xc2\xde\x17\x82\xa7\xb1\xbf\xa3v\x15\x19\xfe\xc0\xa6?\xbc\xd7\xb4pB\x06\x8c?T\xa1\xc5\x0f\x11\xfc\xc5\xbf\xbe\x14\xe0*x\xc6\xe5\xbf(\xb2pT\x9a\xa3\xc8\xbf\xccE\xc9\xd1Y\xa3\xde?~\x068\xf5"\x0c\xc6?<\xd1\xf2)\x85\xff\xcb\xbf\x9d\x11e\x12\xbc\x80\xb1\xbf\x03\x9e\x9d\x01k\xf0\xc3\xbfU\xa1\xeez\xc9\x98\xa0?\xc9\xa9.<t\x9d\xc3\xbf0\x19\xbe\x80F"\xab\xbfD\xb3\xf3z\xcc\x8b\xd5\xbf\xb8\xff\xe2a3\xff\xde?-\x83\xe1\xb3\x13\xd0\xbf?^T\x8d\xf1\xd0A\xc5\xbfr\xddQQn\xb4\xd2?\xbb\xeb\xed7\xb6\x05\xa7\xbf`\xf6\xcf\xfe\xb1\x14\xa9\xbf\xf3\xa0\xcf\x19\xa0\x15\xc4?\xd6C\x93V}\xd8\x93\xbf @\x98%\xba\xef\xb1?n\x94CM\x9b\xef\xb4?\xee\x10\x1d\\\xd6v\xd0\xbf\xdaC\x1a\xc7=@\xb9?\x8c\'\xc8_\x88\xba\xb0\xbf\xdc\xba{\x87\x81W\xc2?\x04#ZD#;\xcd?N\x88w\xc2\xe1\xfd\xa7\xbf\x9d\xed~/s9\xb5?Y\xbd\xbfTn\xc3\xd1?\x80\xa3\xed\xfa\xee\x08\xd7?\xb6aS\x92\x93\x05\xd0\xbf\x86\xbdv\x92\t\x0c\xa8?T\xa3\xad\xa0\xd4M\xc1?[U\xaa\xa0\x96\x87\xc4?\xd4\x16\xa8\xce\xa2\xec\xd1?\xffBOV\xef\xdc\xd7?\xfc\xc9\xfa|U\xe5\xc0\xbfi\xfd\xb7\x94wp\xc1\xbf-\xff\xfah\x00\xd3\xa9?\x8c\xcd\x81\xb0\xd6\xeb\xce?\xb0\xba\x98\x96\x92]\xb9?\x03BD>\xb8u\xd2\xbf\x0c\xa5\xe2\xac5\x18\xd0\xbfJDQ&\x8c8\x97\xbf[\xb1$#\x1a\x99\xdd?\xc0\xc8\xe5\xb8+!\xd7?\xd4\xcbce\x1c?\xba\xbfKA\xbd\x16\xf7\x16\xd1?\x80n\xe7\xc4\x16\xad\xa5?\xa7e<o\xce\x13\xc8\xbfpXL\x8e\x13\'\x98\xbf\x96@xk\xed\x12`\xbfZQ,SSL\xc1\xbfb\xc7P\x83e\xdb\xc7\xbfp\xf2\x9e\x11i\xff\xbd\xbfGMf\xcd\xe3\x03\xc9?\x14\x86\xf8\x80\xe8\xb3\xd4?\x9f\x04\xf8m\x9d\xe6\xc9\xbf\xf8\x17~L\xbe\xd7\xb6?X\xa3\xbd\xcc\x81\xae\xb6\xbf\x12oj\xad\xb3\xa0\xcd\xbfNJ\xce\x1c\xa1\xa8\x87\xbfH\xd3\xd5\xd3\x88\xbc\xa6?\xfd+C\x1bB\xd1\xca?\xd1b\xf0d\x07:\xd0\xbf\xee\x97\x17\xc6\xab\x8d\xc2?\x15\xbc\xf9\x90=*\xb0\xbf\xdd~\xb5\xf8\xe6X\xa7\xbf\xde\xd0\x00\x8b\xa2\xee\xbb?\x0e%+\xdf/P\xd2?\xcec\xbduh\xc6\xac?\xae,\x97\xed\xcd\xfb\xd6\xbf\xd8\xe9\x98\xa11y\xdc\xbfUCB\x87\x97\'\xce\xbf\x98XK\x1b\x9a\xbf\xda?\xba\x19\x17\xc5\xa5"\xc2\xbf\xb4\xe4Kd\xfe\xa4\xc6\xbfnK\xd8c\x89\xff\xb1?\xbf+\x08%O=\xba?d\x12_2\x01:\xb7?\x19\x019\xf3Y\xf4\xb7?\x16\x8dQ\xa2\xc9\xf3\xcd?F\x14\xb8\xe5\xe1\xe2\xb3\xbfTR\x7f\xf9\xe4\x11\xde?\x02\xab(\xab]<\xce?M9@B\x86I\xcc?\x81\x04\xfa\x11\x02\xd6\xbb?\xe6|\x0b\x81r\x90\xce?\x80\xcd\xea\x18\xa7J\xb6\xbfu!w\xadg:\xac\xbf\x84\xb6\xde\xb5\x8c\xd0\xf1\xbf\xc9]h\xbf\r\x10\xde\xbf\x05"\\\x81\xcf\xf4\xe6?+\xbe6\x1a\xd4\x87\xce?\x8dKFo3\xed\xa1?\xfc\x8e\xb6\x98kG\xa7?\xa2\x1f\x19\x92\x80~L?I\x02f\xfc}\xe2\xd1\xbf\xed\xd7#\'\xbc\x8b\xc0\xbf\x8a\x19=\xe9\xb2?\xb1\xbf+X\x0fU\x8c\xb3\xd3\xbfW\x15\xb0\x02m\x1c\x95\xbf\x9e\\\x9d\x12\xab\x1a\xaa\xbf\xc7\xe6f\x94\xd6Y\xa9?\xa7\xe9\xf4\x1c\x19d\xcf?\x9f\xa8#\x9a\xd4x\xdd\xbf\xcc\x8b?\xe4\xd7\x1a\xa0\xbf7\xaa,5]5\xc4?\xbb\xcf\xa4\xb1\xf3\t\xc7\xbfaM^\xdb\xc0\xb8\xd4\xbf\x86z\x12:\xf8\xcb\xa9\xbfIJ\xce\xf7[\xf8\xb3?\xcc\x94\xbep\xa5\x81\xbd?\xb3\xbe\x86T\xd2\xeb\xc0?H\r\x86\xfa\xb6\xc2\x87\xbff\xb5\x14\x83W,\xd8\xbfJ\xf5+\x9bR\x96\xab?\xa5\x1c\x0578M\xda\xbf\xa6\xdf\xdc{\x04\x9c\xa4\xbf\xf36\x80tHd\xe2?\xcc\xc7\xe9`\xb1a\xdd\xbf\x07Pe.\xed\xc7\xc2?\x9fc\xf9\xdc\xe1#\xcb?\xc7`\xf6\x96\x1a\xee\xce\xbfi\x8e\xe6t\xfc\xe8\xc8?aq\xc0\xd6\x00W\xc3\xbfI\xd1|\x02\x04d\xd3?\x14\xf1\xddE\x03\xea\xc5?\xc6\x11v@{a\xcf?3\x9f\x17\xe1\xec\xc6\xc1?\x0c\x0eX^\xe9j\xbb\xbfW\xe6\xed,\xbc\x81\xbf\xbf\xd5\x7fkS\xd5\xc9\xbb\xbf\xbe\xba\xb8\xa1\x8b5\x9a?_\x1b3\x9a\xb9\xbc\xc4?\xab\xf9\xb1+\xb7\x8a\xd4\xbfB@\x9b\xf0\xe8\x8f\x9c?\xc0\xad\x1f\x00\xbf\xe4\xcf?\x98\x8f\xbb\xa4\x12\xb6\xc3?\xce\x16\x814\xc2_\xd1\xbfY\xb9\x1c\xd5"\xe1\xdb\xbf\x17\x1dh\x8c\xbf~\xae?\xcb\xb0\x8a\xa2\t\x19l\xbf\x7f\xd7-\x82\x18\xa1\x96\xbfE\x12O\x96\x99\xa6\xdd\xbf*\xd9\x94-\xc4\x05\xd8\xbf\x7f\x18\xab\x80\x05Y\xdb?$i\x00\xbb\xd6\x97\xc7\xbf\xc0\xbf\xf5C\x8cg\xc1?q\xc8z\xc3x\xa5\xa6\xbfl\xb6\x15?\xf4\xdb\xc1?]\x07_\t\xdfA\xd4?\xddH\x82\xc4Q#\xeb\xbf\xa3\x8b\xef\xf9Om\xca\xbfj\xb8\xc0\x06\xf1\x00\xa4\xbf\xc3\'\xe1l\xa6~\xd4?\x06\t\xf4\xb3T\xd4\xc1\xbf\xc99C\xa6\x11\xe4\xce?\x8f\x7f\xc1\x19\x84\\\xa4?y^\x8b\xb5\x85\xd4\x9d?\xa04\xa3W\xc1\x1e\xd4?\xad\xf7\xb6?\xa0\xd3\xbe?>D\xb6\x14\xf2(\xbe\xbf\x01\x1a\xe7=\x02\xf3\xb8?\xd3\xb6eK\xcb\x12\xbb?\xe3Q\'\xa9\xfd\xab\xc8\xbfr\xb8\xe8V\x00\x04\xd4\xbf\tl\xdfp\xfc\xb2\xc4?\x9b\x8a1\x05\x8a\xaf\xc2\xbf\x14\xc6\x8d!\xbbL\xe0\xbf\xe6\x85>\xf8~\xc0\xd2\xbf\xeb\xa8+\x17\xe2\xfe\xcc?\xf1\xb6\x04\x7f\xe4.\xd2\xbf\xa1_8?\xfcL\xa2\xbf\x80\xdb\xc5\xf7\xf9\xb7\xd2\xbf\x9e\xad\xca_)\x9a\xe2\xbf\xf7\x88\xf3&\x08\x03\xce?\x9b\xd2B\xee\xc3\xe9\xda\xbf[a6bl\xd6\xc5\xbft\xac\x83una\xe5?\xeaf\xf0\nd!\xd1?\xfd\x95\xdfT\xcck\xc6?\xae\xd1\x93H|s\xe4?\x054\xdd\xe7\xa3\\\x91?\x8e\x0b\x9a\x92\xf57x\xbf\x01\xd4\tn\x1f\x18\xd6?!C\xd1\x99\xc0\xb4\xbd?<@\xa0\xee\x1f\x98\xc9\xbf/rSVxs\xc2?\xcb\x19\xde\xf8XL\xcd?\xc7\xa3J\xa7\xda,\xc1?6\xed\xf1x{\x14\xb2\xbfRJ\xef\xfa$\x01\xc5?\x94\x10\x9f\xe1\\+\xd7?\xe0\xf3\x9a\x117o\xc9?8_\xddbL\xf4\xc3?Q\xcan\xbcRw\xd7\xbf\xb6\xbf\xe9\x82\xcfl\xb2\xbf\x06\xc1b\x82\xc4\'\xca?SB\xd7/\xe6\xce\xda\xbf\x037\xf6\xb2\xadn\x8c?\xe7\xc6\xd6s\xcb\x97\xc2?\xda\xd2\xb93\xd4\xbf\xc2\xbf\xbdY\x1a\xea\x85\xd0\x97\xbf\xf4\x7f\x85\xbfZ\x82\xcd\xbf\xb74+[O\xf5\xcc\xbf\xa6\x06\xdd\xde\t\x1d\xb0?QF\x9a,O\xe5\xd6\xbf\xed\xdfx(\xbe.\xd7\xbf\x83|\x92J\x9d\x1b\xec?\xf3G\xd0\xa2\xc4\x05\x9e?\xb8X\x15\x0b_\xca\xd1\xbf\x9f\xc5\xd4m\x18Z\xc6?|\xd2\x911\xe8\x14\xc6? \xbc\xf0\x0e\xe5\xaf\xce\xbf\x1a\x14\x1d\xcc\xfdx\xd1\xbf\xf5\xc8\xc9\xbf\x12\xe4\xbb?c\x06\rM\x9cb\xaf? \xdb\x91[Y \xae\xbfR-\xa4\xe4\xa40\xe0\xbf\xc5-4j\x82[\xe5\xbfK\xcd\xb8\x06\xbd\x0c\xb7?\xdb\xe4+U\xc6y\xa2\xbf\x00\xa8Y"{K\xbe\xbfD\xa2\x94`\xeb\t\xe2?\x90\x8b\xf0#P\xcd\xda?\xb5\x9a\x9a= ;\xe3?B\xd6T\x9aY\xc2\xe7?\xd4\x85\x07\xd2\xc8\xf6{?8\xfeFJ\tk\xc8?B/\x82\xcd\x0c`\xa3\xbf&\x1e\xdb\xc1\xba>\xc4?\xce\xd1\xb9\xc9aT\xbe\xbf\xb8X\xb4\xbf\xd0|\xc3?\'\xf9\xaazuz\xc8?\x06xD\xaf\x13\x97\xcf\xbf\xcch8\x82/s\xbe\xbf\x00\x7f\xf7\xf1\xaf\xa6\xc1\xbf_\x1b*BY&\xcd?\xd1\xfe\x8b\xcb\x06W\xaf?\x0fcP_\xdc1\x95?\xf2\xa6{\xeb\xd3\xd0\x93?;\xac\x0f)\xdbO\xc7\xbf\xb2-C7K%\xc4\xbf\xeb\xb7!\x99\xad\x12y?\xda\xc5D\xfe\xf2`\xcc?x\x8d\x9b\xeeo\xb3\xcd\xbf\xa56\x07\n$8\xae\xbf\nAZ\xb3\x1f\x8f\xa5?\xd4{A\xee\xf2x\xd3\xbf\xe3\x97\x8f$\xeb\xaf\xc5?\x82\x146\x04"\xbe\xe0\xbf9n\\\xe6\xb8P\xc1?7\r\x9c\x85s?r\xbf\xf9\x15#\xfb\r\xd2\xad\xbfnE\xc9\x83\x8cS\xc7?V\x06\xad\x8c\x96\xa1\xc2?\xa2b:E\x880d\xbf\x0b|\xd6\xe5\x12\xe1\xc9\xbf\xb0\xac@\xd6\xf9`\xb0?\x81\xf3\xde#\xa7\x13\x90?Y\xc3\xed`\xb3\x9d\x80?2L\r\x0ef7\xc6\xbfg\x16\xebz\n\n\x9a?w\x1e\xd8\x8d]\x0e\xd1?\xfdCc\xe3T\n\xd3?\x991\x95O\xa3\xf7\xe5\xbf\xb7\xfek\x1c\xf4\x13\xc7\xbf\xe4"Q;\x94F\xc3\xbf\xa9\x1aK\xbb\xdau\xd5?$\xa7;>B\xa3\xa1\xbfr\x17[F\xe1\xf5\xb5\xbf;\xc5\x9b\xbebY\xb7\xbf\x80W\xbc/V\xb4\xda\xbf\xa5\xca\x10wh&\xbf?\xbe\x08\xaf?\x14\xb4\xa2\xbf\xe7\x9dE8\xf4\x9a\xcf?.zmQ\x95\x01\xca?\x8c\x11\x98e\xa2\x1b\xc4\xbf\x1b$\x8e\xbeU3\xd7?\xf4i\xc0\xd0&4\xd0?\xeb\x1f\xec\xceF\xc5\xcc?.\xde\x01Y\x85\x8c\xc5?\xea\x8e\x8b\xcc!8\xbf\xbf\xcfEs@\xa3\x02\xf1\xbfE0\x0cVM\x82\xbe\xbf\x13\xe2^\x95\xcd`t?\x95\xfa!\xbc\xcc"\xdf\xbf\xaf\xb1\xcdY`(\xcb\xbf$\x1e}\x19\r\xeb\xc8?kj\xc1t\xcc\xff\xb6?\xafuz\xc9\x84\xe4\xb6\xbf\x82\x0e]\xc6\xd9\xae\xbb\xbf\x08\xa9\xc3\x04\xfb`\xaa?\xb1\x9c\xb9q\xc2\x1b\x9e\xbf\xe4j\xb1\xee\xdf\x15\xbf\xbf\xb3\x10\x98\xbcEW\xe0?u\xa3\x9f\r\x91a\xc5?\x10Lm%\xfdl\xc2?\xb4\x9cT\xe9\xaf\x8c\xe0\xbfR\xdd\xee:u\x97\xa0\xbfU\xe1s\xc0\xe6\xed\xb4\xbf\x95\xdfOL\x0fv\xdc?\xf2\xb7\xa1\x0b\xbe\x8a\xd1?*\xac%!\rG\xb3?\xc0\x12\xb9@.\x96\xc8\xbfu!&\x99\x1e\xaa\xc5?8vy\x8b\x8f4\x97?\x1d\x87\x96\x91R\xcf\xcd\xbf\'\x0e\xce\xdc|\x19\xbb?;\x1c\x0eC\xb9\xa3\xd1\xbf)\xd1\t\xff\x7f\xc7\xe1\xbf\xb2\xc1\xec\xc9\xbbG\x84?H\xe3\x98mg*f\xbf!\xae2A\x95\xc6\xee?\x0c)c>\x8bW\xb8?\xf0\xa9\xcf\x81z\xc4\xc3\xbf\xa6d\xbe\x19R:\xe3?5\xdcmuV\x17\xb4?~,\x8bH\xae\x10\xd3?\x0b"\x19\xc5\x10(\xe1??i\x15\xb1\xe1}\xc5\xbfK\xa7;\xd7\xe3\xe2\xa0\xbf\xb1\xee\x89%C\xc2\xd0?\x8a\x8c\xa9\xc3p\x03\xb9?\x13\xb2\xcc&\xa3?\xe0?\xa8q\t0d`\xe0\xbf\x14_\xd7c\xbf\x9f\xd4?\x8fN\x8b\xf7\xfb\xef\xa4\xbf\xe6\x9a\xcf(\xe6\xe6\xe9?\xf0J@\x10E\xcd\x97?EYX\xa8\x0f\xf1\xd6\xbf\xaeq\x18\xd8\xc9\xe3\xc1?bk\xda\xd3\x8f\x12\xd0?]\xa3\x96\x991\xa0\xc0?\x17\x8am\xef\x16&\xc8\xbf\x1b\x82*\x991\xd1\xbd\xbf\xaa\x8f\xf5\x12\x8e#\xb2?\xf6\x8e5\xa7\xfc\t\x88\xbf\xb8\xe5$\xd2NA\xbc\xbfI\x97\x17S\xc5\xb0\xc6?j\x1b\xfa\xe7x\xf9\xe0?p\xc5\x88SLA\xc9?\xf8\xddOd7Vr?\x89T\xda.o\r\xe0\xbf\xca\xdb($\xd0\x89\xb3\xbf\xe3\x82\xac\xa1\xad?\xbc\xbf\xbf"\xd51i\xea\xcc?\xa5\x80\x8a[p\x15z?q\x0c^\x82\x8e\xabn?^\x9e\xdbF\xd4d\xa4?j\x8ff\xf4\xd1\x93\xc9?`\\\x8e\xa0\x8a7\xc3?8K\xee\xe3\xad\x11\x80\xbf\xbe:\xda\xf8Q\x8b\xa9?CU\xc8\xb2;r\xc0?\x16:\xa1\xd6X\r\xe7\xbf\x82\x90X\x8a\xd6\x05\xb1\xbf\xab\x02\xd80\xac\x86\x93\xbfx^I\x8a\xf5\x12\xeb?\x03\x15\xf11\xee\x18\xa8?\xc7\xe2i\xb9\x10\xfa\xca\xbf\x06\xf6_\xc9t\xab\xd9\xbfU\x85\x1as\x00\xba\xc8\xbfZ"\xe8k\xe8%\xe3\xbfw\xf7\x00/\xef\x83\xb4?\x13\x9e\x83\xe1\x94\x97\xa6\xbf\xde\xda\xb9*+\x8b\x82\xbf\xfeX\xbc\x97<\x0f\xc3\xbf\xf1Y\xbc\xa4\xdb}\xc4\xbfm\x13#\x1fG\xbe\xc3\xbfx\x02\x9a\x89^p\xab\xbf\x9a\x96\x8d\xd6\xb8\x0f\xc2\xbf\xf9\x93\x027\xb6\xb9\xd3\xbf\x15\x8b\x85\xf7\x05\xa5\xe3?h\x10\x1d\xe2\xab.\xdd?\x011)~\xe3\xa9\xc5?'
p61
tp62
bsS'oadds1'
p63
g13
(g14
(I0
tp64
g16
tp65
Rp66
(I1
(I15
I100
tp67
g23
I00
S'\xe5$\xb4\xa6\xaa\x8c\xd3\xbf\xb0/\x05\x1aT\\\xa5?0)\xcf\xb7\'\xc2\xc2\xbf\x07\x93\x8a\xab\'\x83\xc0?|[\xde\xcf\xd3@\xc4\xbf\x02]\xb1\xb0\x98"\xc8?\xabU\x9b\x91.\xda\xce\xbfaC\xd6\xb7\xb1>\xde?v\x9e\xa6N\xe2q\xb0\xbf@\x8a\xbf.\xd7K\xcc?\x05\x9d\xa1\xe9\x88K\xa6\xbf\xae\x051i\x9f\xbb\xc0\xbf\x9aNbd\xb3\x01\xca?\x1c\x8f\xdd\x98\xe0\xf1\xd3?3\xe7\xd9\xc2\x90G\xc3?\xe7|y\xff\xcac\xdf?\xb3\x8eo\xeb\x9f\x91\xe0?q5)\x87s\x98\xb4?la\x8e\xcb\xcf9\xdb\xbf3\xb37x\x14*\xf3\xbf\xec\x02\x90\xf3C!\xcf\xbf\xbf\xd0\x97@P\x18\xa5?\xaei1gh\x17\xca\xbf\xbdf\xb0cP\xcd\xc4?\xac\x96\x08y\xb7\xb4\xc0?T\xf2I\xd5\xd3\xb6\xc3\xbfs\xe7\xbcp\x01-\xc0?\xa4\xc43\xde\xa5\xfe\xbb?\x80D\xb7\xa7\xf9\xc3\xd3?$jgZe\x98\xb5?\xc33T\xc7\x1a\xb7\xd3\xbf6\xe4\xf0\x83\xb5Z\xbc?4\xd1*N\x0e\xa9\xc3?\xf6\xe8r\x91\xa4\xc8\xc5?\xb2\xadt\x94q\xde\xbd\xbf\xcdO<\x81fR\xd4?\x88\xadR\xebC\x05\xcb\xbf\xf4\xe7}U{\xcf\xb3\xbf5\x8a\x93\xa6\xc3V\xc0\xbf_\x83\x05\xe7 \x9a\xc8\xbf\x8e\xe1\x1e\x95\xac\xff\xd9\xbf|\xa1\x00\xadr\xf5\xc4?\xf95M\x12\xb4e\xe6?\xf5\x85Xb)\xc5\xa1?|\x90\xdd|\xde\xdc\x9d?\xe4,7D\xd2\xcb\xd9\xbfL,\t>\xdc9\xa6?\xa1\xe3v\xd9ij\xb9?\x8db\xd7\x1b\x1c(\xc3?\x9e\xeed\xde\x19\xa2\xd3?\xf94o\xf02\xa8J?+\xd4P\\4\xcd\xab\xbf\xe8\xc5\xdea\xd7\x99\x80\xbf6\xde1\xd7O\x84\xb6\xbf!$@3\x1bz\xd7\xbf\x9dl\xdd516\xd2\xbf\x89\xf9\xcdr\xa9`\xc5?\xc0\x01\xec5\nc\xcb\xbf\xf1\xe2\xa8;\xfb\xa5\xc1?d\xeb\x00\x88\x0e)\xa0\xbf\x13\x91\xcbO\x98\xe3\xc2\xbf~Z\xc2\x8d\xee\x8f\xd7\xbf\x8a\xde\'\xd0\xfd\xd6\xd0\xbf\x1b7\xc9\xc1\x16Q\xcb\xbf\t\xb6N\xf6\x0c\xa1\xdb?\x11\xc1\xef\xa8\xf9@\xca?\x1b\x80\xf8\xc0\xbd\x16\xeb\xbf\xf3\xef-\xef\x18y\xc7\xbf\xd8\x8e\xd4\x9c"\x12\xd8\xbf\xa7\xa7\xc1\x81\x9f\xf3\xbf?\xccY\xd4=\xfd\xb9\xd2\xbf==\xa3uI\xee\xd1\xbf4H\xe9\xee`\xf6\xc2?\xd0JC\x10\x7f^\xd0?f\xf9L"\xcf\xf3\xb7?\x8e0D\x0c\x865\x8b\xbf\x8e\xf4\x9c\x87~k\x99?kp\x10\x06x\x91\xa8\xbff\xb6\xbe\xe87\xab\xe4?\xdd\xb7\xffd\xeep\xee?&\xbcUf\xde=\xcb\xbf/ya?dq\xde?\xcf\xd9\xf6\xe9\xa3\xcb\xc3?\xc04-\x1b]\xf5\xde\xbf\xeb9d\xd1G\xb8\xc7\xbf\xd3X\xeb2\x16\x8d\xdf\xbf\xd9\r]4\xffN\xd4\xbf\xe66\xdd\x82\xf0\xb8\xd1\xbf26\x08\x15\xc4~\\?\xd5\x03\xb3)\xf3\xba\xa0\xbf\xb1Uh\xbew\xe9\xbe\xbfd\xc6U;\x0c\xa1\xb5\xbf\x91\xfd+\xf0\x8b=\xd5?\x07\xccQ\xd8\x1c?\xe0?\x19\xe6\xfe\xa5\xc0;\xd0?\x91\x80\xb6{\xd3\xe3\xa4?\xcb\x19Q\x10|?\xe3\xbfj\xd0ZB\xbd\xee\xc1\xbf\xeb\xef\xd1L/\x90\xa7\xbf\xd2\xeb\xe1\x0c\\F\xba\xbf\x7f\x15\xb3S\xb4`\xdb?8\x15\xd6\x0f"\xd6\xc9\xbf\x8eI\x15\xd6(\xb6\xd0?\xfd\x8f\x92\xd8\xfe\xe1\x8e?\x1a\xf8\xf9\xfd8}\xc7\xbf{N\xd0\xd0\xbe\xb7\xb8?*\xe3 B\x86n\xbb?\x85\xc3\x96\xb3\xe9a\xd5\xbf\xca\x8e\x96\x0c\x96\x8d\xcb\xbf\x07\xc1_i\xef\xa7\xb3\xbf\xf9\x843K\xdf\xd9\xc7?z\x94w\x1cut\xbd?.\x05\xfa6bc\x9f\xbf\x16\x86C\xfe\xe6-\xb1\xbf\xe8\xfd\x08\xd5_\xe3\xb0\xbf\xae\tJ\xa7\x8b\n\xb1\xbfm\xfc\r\xa5\x80\x86\xc3\xbfK\x16\xd4[\x82:\xd8\xbf\x99Ew\xcf\x91T\xdd?b\xc5\xff\xae\xdf6\xb1\xbf\xa08u\x95\x1c\xfa\xd0\xbfxg\xf0H\x17j\xdb?\xa4O}!\xcc\xc0\xce?M\x16V\xd2\xeaW\x9e\xbf\xd7L\xfa8\x80\xef\xb6?\xb9\x98\x11\xbd\xde~w\xbf\xd7{\xd6B\xe1\x08\xc6\xbf\xfc/V~\x87e\xc3?\xc6H\xb8\xbc\x82_\xb8\xbf\xc5\xbb\xa0I\xa9y\xc1\xbf\x98\xb8-;\xc1\xe5\xd2\xbf28\x90\xfeU&\xb1\xbfWVq9\x01\x8a\xc5?\x82=#\xc59=\xcb\xbf\x80\xb4\xa6v\x1f\xde\xc5?\xed\n\xa3\xa0!3\xe4?5\xed\xff\xc3\xfc\xad\xd3?\xd6\x157\xc7\xe6\x99\xb4?O\xf0\x96GP\xbb\xa4\xbf\x183\xed6/I\xb9?&\x10U\x10?\xdb\xca\xbfae\t\xfc&+\xd1?\xf9\xe6I~\xce<Q?\x85\xc8Hl\x06s\xdd?\x82,\xf1P^\\\xd4?\xd2\x087\xb6\xe9\xfa\x96?\x03\xfb\xd2\x94\xfd\xbe\xc1\xbfv\xbbEjVL\xc1\xbfp\x83\x93\xabF\xa9\xb9\xbf\xbab\x1c\xfcU\xd8\xcb?\xe5#\xddz<3\xb1\xbf~\x9e\x9d\x0b\xf2{\x95\xbf\x19\xb9\xf7\x94\x8a\xcb\xa1?\x1e\n\xad{{K\xd3?\x15\x1b\xe2\xea>\xf6\xae\xbf\xd2\xd8 \x9a\xcc\xdc\xb4\xbfT\x0f\xfdY\xbc\x8c\xc2?\xee"\x975x~\xd2?\xd1O\xc4\xa0\x05}\xc2\xbf\x12\xb3\x03))t\xc1?c\x05\x89\xfb]\x0b\xb8?\xb9lLi@[\x9b\xbf\x8f\x88\xcd\xea\xe4\x7f\xc2?\xcf6p\xa1!\xfd\xd7\xbf\x04\xf8\xd4\t\x9e\x8d\xdb\xbfc\x86\xd3|F\x93\xcc?\xe8 -9\x18x\xe5?\xa7\xf6\xd8i\xf0&u?I\x1b\x9d]w5\xa2\xbf\n\x13\x9e\xeaM\x01\xda?\x8e\x81\x18\xd2\xd4\x97\xcd\xbfL\x18(\xb7\xc1\xa2\xd8?hKk\xa0\x02\x17\xd2?\xb6\xc4\xeff\xe1X\xcc\xbf\x1d\xdfE0\x9a\xcc\xca\xbf\x19\x05&\x96\xf8\n\xb2?gM \xe4;\xf1\xc4?\x82[\xef\xf2j\xeb\x83\xbf\x1f\xe5\xb1\xc7\xdf\x06\xa2\xbf\x87\xcf?\xe1\xb1\x03\xc4\xbf\'\xf5\xc1d\x9aT\xca\xbf\xb6\xf8\x9be"\xd7\xb5\xbf\xdc_d[o-\xb6?\xc7\x99_d(Q\xc2?t\x87~T\xb5\x98\xc5?fU\xa3\x96\x1c?\xca?\x9e?\x08\xc9\x1dm\xc0\xbf\xcb\x13t\xd4\xd9\x13\xc8?#\xba\x1b\xc9\xc4>\xd0?\xb0\x1ac\xb0\xb1\xfe\x9d\xbf\x952\xe5B\xf7\xf4\x89?\xdfQhRK\xdc\xd2?<;/\\U)\x98\xbf\xb9\xfd\xa7\xd0q\\\xca\xbf\xfe\xab\x0e;9S\xb5\xbf\x16\x01\xd4:\xf0\xa8\xc4?}\xff\x87Q\xdf\\\x8e?\x83\x08Wa\xa2\x1e\xc4?\xd3b\xad\xec(\xc1\xcb\xbf\x83\x8f\xd7&\xd6\xc2\xc0\xbf\xc1\xf8\xfd\xe2\x1b\xcb\xc7\xbf\r\xb3\x94[82\xd0\xbf\xfe\xb9\xbd\xe0Y\x1e\xb0\xbf!\x96\x82\x9f\x01\xfe\xd1\xbf$\x1e\x8bx\x170\xcd\xbf\x08\xf3\\?Mh\xab\xbf\x1f$\x8f\xd3\x99^\xbd\xbf2\x8b\xbeZ\xed\xce\xcc\xbf\xddO\xf3\x1bk\xf8\xaa\xbf\x97\xa6\xc3\xc7\xd2\x9c\xcf\xbf\xe3\x03ou\xbf\xfc\xd4?\xc0\xdc\x9c\x1c#\xc0\xd0?\xd7\'\x10:b!\xd2?g\xd1~O\x1c2\xc7?\xe8\x19\xe9.eB\x98\xbf\x13B\n\n(\xd4\xb0\xbf\t\x7f\x9e\x91\xe3\x9c\xc0?\x97\x81^\x03\xfc\xd5\xc4\xbf<\x0b\xd0\x94\x03\x8e\xd2?\xe1\xabzY\xc9}\xc7?\xcek$A\xfd\xf8\xd7?\xf7^9\xc1C\n\xb0\xbf\xca{N\xee\xc2\x83\xb2\xbfO6\x8e\x9e\x1d7\xc0\xbf\xa9\x7f\x98\x1b\xc9\x01\xe1?\xecB\x03P\xac\x87\xc4\xbfq\xe7Y\x0f\xdf>\xc8\xbfsq\xb2\x94KA\xb3\xbf\xdd\xd5F\xf6\x96\xa8\xd3?\xcf\xe3SU\xb4O\xb3\xbf\xb4\xc5\xd8\x10\x06I\x84?\xae\xdaz\xaa\xe57\x9c\xbfu!\xbdH\x82o\xb9\xbf@\x1b\x10\x9b\xaf\xa3\xaa\xbf\x91\x9d\xf4\xe6*\x8c\xc4\xbf5[\xec\xfa\x9a\x92\xd1\xbfVN4n/A\xc8\xbfp/\xea\x8d/\x18a?\x98\x9e\xcb\xe5\'w\x93\xbfM\xcb\x05vu\xb8\xcb\xbfE\x10\xb8\x1c\xab\x99\xde?\xd4\x90.\xff\xae\xb4\xe0\xbfid\xfc\xbbyT\xd5\xbf3I\xd8S\xf7\xf5\xbb\xbf"\xa4\x1f\x17oE\xcd\xbf\x04\xa5S\x8da\x18\xae?\xe0~\xba\x00/\xc6\xdf?|\xc7\x10\xcb\xd7\xd1\xc4?\xf5\xe6\x9d\x80\xa0\xa3\xb8\xbf\xed\x8e\x85\x13\xdb\xf6\xb3\xbf\xde&;\x83\xcc\x14\xaa\xbf_\x14S\x87\x9d|\xc4\xbf\x11-\x91\xa0\x04\x0e\xc1\xbf\r\xcb+\x97,]\xe1\xbfN\xdd)n\x05\x1c\xb2\xbf\xf8f|+\x06\x82\xd6?t\x99\x97\x11\xc3\xbf\xe0?\xeaQ,m\x8f\xa1\xc8?\xd2&Sy\x8a\xa7\x9d\xbf\xa4\x9aq\xdd\x9f\x0c\xae\xbf\x9b\xb9:\x84\xc8\xdb\xb4\xbf\x05\xa3V\x17\xdb\xb5\xca?c\n\x8e"\xafW\xa1\xbf\xbc\xb8R\xcb\x19{\xd8?\x9a\x9c\x11\xc9\x0cr\xc7\xbf\xe7\x8e\x9a\xa3\x19\xaf\xd3\xbf\\\n\x93\x847\xae\xd5?xz\x86\x1e\x11\x9b\xdc?\xd3\xec\r\xb0\t\xed\xb4?]+\xc8Ty+\xd0\xbf\x05\x02\xfa\xe3\x1eA\xd3?!\xe7\xd7\xa4\xe41\xc5\xbf\x118\xf3k\xbfV\xbf\xbf;\x87#\xf6t\x14\xcf\xbfPl\x05\xa6FX\xc3?\x9b=\xae\xc2\x97C\xd4\xbf\xb7\xa7\x85\x9d\x89G\xc4\xbf\xf3*\\\x98*\x17\xd0?\xd7\x03\xc2-\xd7e\xe1\xbf\x9a\xa9y\x85q{\xb0\xbf\xcf\xb5\xf4\x10\xb3\xcb\xb4?\x05\xdc\x02\xc4\xefN\xb1?\x0b\xf5x\x05Q\x11\xc9?\xa3\x01\x8e\xf4U\xea\xc3?\xe0\x89\x8b\'sl\xdd\xbf\xa0\xf1\xe6[:\xc4\xab\xbf\xa7\xf0\xb4\xc8\xae\x84\xe4?-{\xc5\xb2G"\xc0?\x9f\xeai\xc2E6\xda\xbfW\x7f\xd0\xf0\xffI\xce\xbf\n\x8a\xc7\x03\x80\x1c\xc0?\xe9r\x94B\xa4,\xc9\xbf\x10\xb8:\xe7\x90\xfe\xd0\xbf\xea\x97\xa0\x92\xf4\xd9\xb3\xbf\x9c\x9f,\x8b\xa0p\xd1?\xc4\x9b\xdaM\xca\xa9\xa3\xbf\x92\x15\xb7\xbbW\xdc\xcf?\xd8}D\xfd\xd6>\xc9\xbf\xa5\xa2_\x01\x11\x06\xbe?\x9eo\xd1\xb8\x16e\xd0\xbf\xfb\xc3Jiy\\\xa7\xbfN\xba\xado#\x89\xc0?b\x8dN\x14\x80Cy\xbfq\x95\xe9a\x05\xaf\xba\xbfl\xdfs\xf7\xbc\x1e\xb3\xbf\xfc\xe3\x8a\xf2\xe1@\xbf?B#\xd4\x9bCI\xc4\xbf\xad\xa7\xb0T\xdb\xa4\xd1?&\x96\xf3;!\xe5\x92\xbfg\x90\x97H\xcdP\xc0?\x17s\xa6\x02Z\xed\xc9\xbf\x98s\x0e*\xa1{\xc7\xbf\\\x1eO\x11G\x13\xd6?\xc2\xbd, \xc2\x1e\xc6?\x90t\x13\xd8i\xab\xca\xbfT\x1f\x84\xbcSv\xd9?\x106\t\xe1\xf8C\xbf?\xb6W\xe6z\x06\xe4\xd7\xbfN\xbby^\x0b\xb1\xc4\xbf\x14DZ9\x03\xfb\xdf\xbf8P\xf6z\xfc\xa8\xc0\xbf\x84\xb2y\xb3\x06$\xb1\xbf\xdc\x9aR\x1fq\x0c\xa6\xbf\xd8\x9f\xee>-\\\xce?b\xcba\xee\xb1r\xda?\xaa<9 \xb4\xac\xc1\xbf=\xb1!\xc0\xfb\\\xbf\xbf\xe1\xb4\x0e\xfb\xf1\t\xc2?:\xa2\xb1\xa8\x1fw\xc2?\xea\x83\x12\xa9\x84\x01\xb4\xbf\\\xd9\xc6\xa3\xc7\xd2\x84\xbf\xe7\xa6\x8dg\xb4\xea\xb2\xbft\x8aH.\xd4{\xd5\xbf\xaf\x0c\xc4\x9c\xfe\xa0\xac\xbf\x92a5\xd4\xe2\xbf\xc0\xbf\xa4\x14\x9fr\x13\xa5\xb9?C5\xb8LV!\xb2\xbf\x87\x96\xcac\xfc\xa3\xbd\xbf\x88k\x897\x0fZ\xca?\xc3;3\x0cR\xce\xc5\xbf/\xe4\xafm\xc1\x0c\xc4\xbfi\x8eef\xf5\xf2\xc2\xbf\x05\xd1Bu\xbc\x1a\xc3\xbf\x9d"$p\x13\x05\xe7\xbf\x81s\x1d\xd1\x1e\xd5\xb2\xbf\xbeUm[\x18\x11\xd1\xbfS.\x13+h[\xdf?6a\x91\xe2\xff\x97\xd1\xbfK3\xf2\xfe\xab\x14\xc1\xbf\r-6\xb4\x1d\x99\xc4?K\x981e\x0b\x8d\xd2\xbf\xe8\t\x08\xd7\x19\xd2\x87?\x98\x13\xf1\x89\xb5bx?\xb2zn&\x8e~\xc3\xbf6>r\xf0\x81\x90\xef\xbf\x83>\xe3\xd3\x9d\xdf\xdf?\x90\xd1\xa3\xb7\x98\xc9\xe3?\x0b\x1b\xf3\x9c\nY\x7f\xbf\xcd\xc2\\\x18\xfb\xb6\x80?N\xa6^\x0e\x7f\xb8\xc0\xbfU\x9e\x97@\xc1\x14\xa1\xbfi\x91\xef\xc7\xc6\x8c\xde?\xa5\xa4\xd6\x06\x11\x97\xc4\xbf\xe2f\xffpN\xc6\xd5\xbf*\x8b*\xc1\xa3M\xd2?|r\xdf+#\xcd\xab?\x8a-1\xd7`\xf3\xa9\xbfe$"\xe8\x19\xfe\xd8?\x92\xf0\x84p\xb1"\xce\xbfc\xc0\xfc\xba\x02\x1b\xb6\xbf\xf6`9\xc7hT\xa1?V\xe6X\xdf\x0bs\xc8?\x027\xabh\xb76\xe0?\xaf\xac\xcfI\x9f\xac\xbb\xbf\x9d\xf2\x15\xfaM`\xe2?{\x8c\xa9DO!\xd2?{FBJ0\xa2\xc6\xbfe\x91zl\x9b[\xd5\xbfN\x9c~LAF\xc6?\xf3FT\x85\xcd(\xad\xbf\xb7\xf0v\xb2I\x95\xa9\xbfWY]\xc2\x06\xca\xcd\xbf\xfeH2\xfcj\xd8\xa9\xbf\x89\x92P\xe2$\x94\xdc?O\xd8c@8B\xcf\xbfm\xea\r\xe5C\xb5\xa9?\xa0\x0f\x93\x92\x8d\xb0\xe1\xbfb\xb6\xb5\xd0b\xff\xb9?\xbam3/\xf2\xf7\xdc\xbf\x91\x98t\x95\x80\x87\xd1\xbf\xe4\x80&\xbb\x11s\xc8\xbf5\xe44#\xeb\x05\xcf\xbfR\xfb+\xb6\xa4\r\xb7\xbf\xfc\xa4\xa3\x93\x8a\\\xa7?s\x14\xdf\x04e\xe0\xa6\xbf\xa7\x1b\xa3\x82@\xed\xbf?\xd4r\x868\x15Q\xe3?U\xd8\x8fJ\xb3$\xdb\xbf\x0b\xa3q!J\xec\xb6\xbf\xa05I\x12$\'\xbf?\xd8%\x92\xcf\x05\xb6\xa3\xbfT\xee\x9b\x9a\x05r\xa5?\xd5\xa7vF\xd5\x03\x8e?*\xd6\xb7\xa9=S\xd3?Q\x17\x1b#ze\xd6\xbfs_\t-\xef\x11\xc8?s\xd5oZjM\xbf?\x96\x84\xcb\xe7\xa1\xae\xd4?n\xe6\xe8\x07\xd8\xb6\xce\xbf\x9a\xc3\xad\xa4\xbb\x8a\xb4\xbf\xdd\xc3u\x96\xcf\x0f\xd0?ph\xc7;f\xab\xc1?\xcc\xbd\xca\xfb\x80\xa1\xd0?:\xa7N\x86\xa8\xda\xa1\xbf\xd4\x0bf\x8ecn\xd0?QG\rWQ\xf3\xdf?\x82\x16\xd7\xde\xeeq\xd4?F\xd9V"/h\xa3?\x1e\xaf\xa4\xf5M\x9a\xa0\xbf]P\xdfG\xa0\xe9\xe4\xbf\x1a\xef\x989K\x13\xd2\xbfeB\\\x03\xae\xf1\xcd?\x8a\xa9\x15\x80\x94\x0f\xd5\xbf\xba\x91\xb1\xdf_w\xc8?\xea\xc2\x11D\x1c\xbd\xb3?\xafP\x0bF|\x91q\xbfYPF\x9e\x9c\xaa\xd2?\x1b\t\xf2gw+\xd0\xbf3\n\xd3\xc2H\xbf\xbb?.\x8bE\xe3\x14E\xbd\xbfy\xc8\x1f\xa5\xb4N\xb5?\xbb&\xd6o\xecK\xcf\xbf\x04\xf4\xdaz7\xa7\xb9?<KOd\x7f\x13\xbb\xbf\xea\xb1\\`s\xc2\xce?[\x1e[x"\x94\xe1?_\xd2\x00\xdcv\xd2\xce?\x93\xc1\xa5I&\xb2\xba?\x85r?\x90/K\xb3\xbfY\xe4rmQ\xb0\xae?m1\xd4\x96\xe2\x07\xda\xbf\xd7\x871\x98\xfe\x93\x90?\x10\x10\x83D\xbb\\\xdb?\x84x\xf9\xac\xc4\xcb\xb1?\xff\xfe\x03%\x169\x90?\xdc[\xe5/\x9a\xa6\xd1\xbfs2F^\xe4\xe8\xbe?s\x06\xda\xbd72\xb2\xbf\xea\xb4\xb1\x19Br\xcd?\xa6#\t\xc0\xf6i\xb3?F\xf4\xd2\xb9\x90\xa7\xd6?z\xdeI\xa0Hi\xad?}\x04\xf9<\x02"\xcf\xbf\x15\x16\x9f\xe7>\xebb\xbf\xca\x8a\x9a\xeehK\xb6\xbf|\xcc\x95\x1dQ\xf0\x9c?\xc1\xbb\xae\xfa\xf3\xd7\xa7?\xd0A\x92\xe9\xb3\xb4m?Ch\xc3G\xdeU\xd4?\xe6\xf50\x0bl\xf0\xc0?\xb1\xa1\xb7\x80\x89\xcd\xb1\xbfw=\x96\xe0\x82\xb9\xb5\xbf\xe8\xb46\x10\x96[\xd7\xbf\x0b\x83\x18\xc0EI\xd4\xbf\x80\xd9w\xc1\x03\xa8\xc3?\xa8\xb9\xee\xb8\x82\xa1\xd1?\xd7\xcf\xc2\xd5\xe8n\xd1\xbfR\x08~ _g\xc7?\xcblrl}C\xd4\xbf\x7f\xd4\xc4\x11c\xa3\xa0\xbfjJ\xc1\x9cy|\xb2\xbf\x92\xdeYf\x94\x08\xa1\xbf\xa4\x0f\r1f\x98\xc9?\xcf\xbb\xc8\xe4\xd6\xb8\x96\xbf\x15\xa4\xb08+\xff\xcf\xbf\xce\xcf\xef\xf5\xc2k\xbc\xbf\x16k\xe3\xa2\xe1?\xbf?\x8f\x06\xfa\x9f\xc2\x8e\xd3\xbf\x16f\x01\xae\xaf\xbb\xdd?\x00\xc9\x0f\x1df\x08\xe2?N\xf9]\xcd\x19\x91\xdb\xbf\xaeV\x8d\xe4P\xbc\xc6?\xd4jD\x94|\xea\xc0?P\xbb\xb3\xf4\x03s\xa6?2H\xf7^\xb9m\xc0?\xde\x1f\x85\x17\xcd\xc0\xc9\xbf\x00\xeaP\xe0\x17\xc0\xc6\xbfQ\x9c\xb7@\xf9\x89\xd3\xbf_\r\xa8k\xb3F\x96?\xab\xd5A\x83\xe8\xc5\x8e?<\xb1f\xba\xc4"\xc8?\x96$\xae\x9d\xac\xda\xda?#)D\xb8\x96\x97\xcd?\x10\xd2ZJ\x89@\xdb?\x032\x9f7\x7f\x90\xd2?\x97u\xa0\xa6\x10#\xbd?ly\x18kh\x85\xd3\xbf\\\xaa\x86K\xab\x9d\xc2?Yon\x13\xe9\rm?\x13\x1f\xc8=\x16\xbf\xc5\xbf\x82}\x17_\xfe\x08\xe8\xbf\\\x96\xca\xec\x82c\xd2\xbfvh\xf1b\xcdE\x90\xbf\xe6\xec\xc5j92\xa8\xbf\x8e{\xbdm\xb0T\xb8?\x0b<\x1d\xc0U\\\xbb?\xdc\x11\x1a\x0f\x84\xa6\xb3\xbf\x11\xbf\xccxW\xf3\xd0?\xf0\xa2h\xcf\xd9q\xd0?|\xdcX\x0b(\x17\xd1\xbf\xae8\xc6\xb5`\xa0\xae?Up70\x9d\x04\xba\xbf\xe5{\xeb\xdb\xeb\xc5\xcd?\x0c\xf6\x8f\xba\xbf-\xce?\xcd\xb4BV\t\x04\xd6?V\x97i\xab\x94?\xbb?R\xd8\xec\xb6Y\x8d\xd9?\xda\xcas\xd5\xd9\xed\x90\xbf\xc6\x18\xf2\xbc\x1c3\xca?b\xdb\xc7\xfb\xae\xb8\xd2?\xb1O\xfb98\xd3\xb5?\xaf\xf7\xcf\x86\xa6\xd8\xd4?\xe6j\xac\xc0<Y\xd1?\x08\xdf\x96,\xdf0\xd1?\xea\x08\x19\xe7?\xd0\xc8\xbf6%i\',=\xbe?\xc1\xcc#\xd2\xe3\xa0\xd8?E@\xd6\xf5\xb4b\xd0\xbfg\x18\xb6cF\xa8\xc4\xbf+\x8ayEiM\xca?\xfax8\xcb|)\xd1?X\xfc\xa6\x06#9\x86?ie\xe9\xe4\x04\x00\xc3\xbf1F\xfc\xa6\xf9[o?h\xafD\xe0\xf8R\xd8\xbf\xd9M\x98\x80\xfa\x16\xac?\xb4\x91\x0bR\xc7\xd4\x88?\x87\xa6}l\xa6\xd6\xb8\xbf\xaf\x00\x11\x84\x8e\xaa\xc9\xbf@\xfa\xbe\xbe,\xea\xb9\xbf\xad1\x83\xf2\x7f\xb4\xa7\xbfc1\xdf\xe8\xc1\xb2\xa6?Bw\xce\xa7\n\x01\xae\xbf`2w}\xfc\xe4\xd1\xbf\xb7\x9fX}8\xd1\xcf\xbf~,\xbc:V\x08\xdc\xbf\x89A\xfdx\x04\x0f\xc7\xbf?V\x03J&\xbd\xb1?\xbe\xc1\xc4\xdc\x92\xe8\xad?\'\x13\xa2pP\x86\xc0?\\\x95\xb8\xe4e\xf5\xa0\xbf\xb9\xabF\x85r\xba\xb9?S[H\xfev5\xd2?\x1e\xe5\xf6\xf2+\x19\xa8?\xec\xb4\x88\x82\xe9\x90\xc5\xbf\x8a\xd9\xd6\xe9i5\xd0?W~\xbf\xbe\xf3\x12\xa0?\xc2\xac\x8f\x10/\xf7\x87\xbf`\x16x\xca!\xe6\xd5\xbf\xdb\xd1\xda\x80\x9f\xfb\xb1\xbf\x17nQ\x04\xb5\x05\xc7\xbfI\x1b\xc4\n>J\xbd?\x80t\'\x9b\x9eV\xc7?\x1a\xd0\x90@\xad\x8d\xb3?e\xbb\xd8,\x92;\xbb\xbf\xd9\x85%i\xde\xd3\xd2\xbf\x82B\x89|\'\x02\x90?\xe3\xf5tf\x91\x9f\xb7\xbf>\x82j\x86Nh\x9a?\xd9\xb5\xf9G&\xc9\xb3\xbf0Z\xde\xb3\x0cy\xbb\xbfJ\xb8\x03\xed+$\xc8\xbf\x0b)v\xe0\xdd\x90\xaf\xbf\xa1~Te\x82\x97\xd0?c\xec\xea1\xbe\x84\xcd?|\x19\xe0\xb1\xbaV\xd7\xbf}\xb32\xacHa\xda\xbf?aM\x1fr{\x81?]\xa7\x12\xc1\x01#\xbd?\xbe8\xacl\x15l\xc6?\xb9Cz\x0c\xbb\x92\xa3?\t\xb9C\xee\xc43\xd4\xbf\xd1\xd7\xf2\x1b[.\xcd?d\x8e\x0f\xdfv/\xcc\xbf\x94\x0e@\xa8\x1d7\xd0\xbfo\x1e\x80\x8f\x0c\xe5\xe1\xbf;\xb4Og\xdd\xaa\xd3\xbf\xa6\xf2c\x10\x90\x02\xd1?\x98]\xab\xc8y}\xb5\xbf\xfe\x11i`@\xf1\x9e?\x12\xef8n%\xfex?B\x19\xc9t\xeb\x1b\x9c\xbf\xb9\x13<E65\xbd?8]\xf7\xce#z\xd6\xbf\x80r\x1d_}\xbf\xb2\xbf6\xd702@\xdf\xd6\xbf\x1a\xdc%H\xb1 \x88\xbfd,\x1a\xab\x1fR\xc6\xbf\x0b\xc8\x0c\xdd7\xad\xc0?e\x0b\xa3k\x01\xee\xb2?\xefn\x9f\xf5Qi\xaa\xbf\x9bw\x16\xfa\xad\xc4\xce?\x95\xa4\xf8\xd3\xe2&\xe0\xbf>\x07\xc7U\xa7\x1e\xcd\xbf\x98`?*=\xf8\xd1?\xb5\r|\x8b\x06\x0e\xab\xbf\x9c\xfc\x1a\x91M\xe4\xd1\xbf\xe0\xa4zy\xc3\xcf\xd7?\xb6\xa1\x0b\x9b\x1f2\xc2?4g\xd9\x88\xd6!\xa5\xbf\xdf\xaf%\xa9\xac\xf7\xb7\xbfP\xd4\xb9\x99(\xb3\xc7\xbf5\\Ap\x1f\xaf\xd1\xbf\xd3\xadP*\xd6\x1ex?i\x8e\xd1\xc7\xe9\x95\xaa\xbf:\x18\xb0\xaf\xb8\xb3\xb4\xbf\xde%\x9a\xa6\x84b\x8d?t\x99iw\xcdU\xe1?\xdb\xf3\xf9\x17\xf3\'\xd3\xbf\x08\xa5\x0bQW]\xb6\xbfR\xb9\xa7F\xf3\xee\xc5\xbf\x0f\xf3V\x15\x84\xbd\xca?\xb0\x87\xf43\xe2Z\xc5?\xee\xb8\x04\xe1\x95,\x86?\x0b\xdb\x8d!\xf3:\xda\xbf\x1c\xc2\xca\xfb\x0f\xc6\xc0\xbf\xb8#\x9d\xf9\x11\xd7\xca?\x8dfB\xb3``\xbf\xbf\x01\xbd,t\x0cH\xc5\xbfjL\xb2\xe8\xd4T\xd7?\xf4\xa0\x01\xb7R\xd3\xc9\xbf\xe16\x054\x18\n\xa1\xbf\xb7:P\xbelA\xd3\xbf\x16\x13\xa3T\x08Hi\xbf\x18\x96"\xa1\xbbl\xdb\xbf\x9d\x00\xc6\x95\\y\xd4\xbf\x0f\xdf\x13\x9a\xa8\xa2\xb3\xbf\x03\xc8\t\x9f\xa8@\x9e\xbf\x13U\xa5\xb8v\xb5\xc8?\xd8y\x8c\xce}\xec\x83\xbf\xd2\xb7\xf4\x8d\xf6\x14w?\x1d\x9d\x8c\x1c/n\x8d?\xca6\xe3\x8c\nA\xb5?a\xd5E\x93Q`\xd3\xbfg"\xd2\xfc\x97\xad\xa0?_\x9fK\xe2A\xfe\xc6\xbfX\xd3\'\x80\x0er\xe0\xbf\xe7t`\xa0f\\\xde?@\x08\xd3i\xcf\xb4\xc5\xbf}\rn\x10m\x82\xdb\xbf\x8e|\x12\x0bz\xb7\xb0\xbfUI\x93e^w\xab\xbf\x99\xf2r\x00R\xf8\xb7?NQ\xa5\x02\xae\xea\xbb?\xb8?\xfc\xd4\x80\xa9\xb3?\xd6\xfek@\x8c\x7f\x84?zx\x10\xc6=0\xb9\xbf\x1fy\x0f\x1c\x00\xc4\xab\xbf\xc0\xd2\x95Q\x1ct\xc2?\x9aq\xb3!\xd7\xe4\x88?\tn\xad\xdc\x94\x8e\xbb\xbf\xeak/\xc7\x89\xac\x90?\x9d\x8e\xc2\'+\xff\xd3?p\xf5]{\xfc\xa0\xd0\xbf\xabm\xaf\xe56W\xcb?\x90\xaa;\x02]0\xc9\xbf@\x8c\x08\xfcQ\xc1\xdc\xbfs\xa9\xb6\xacE\xeb\xcb?\xa0wa%K\xff\xd2?>.\xc2\x9f\x9c\xc9\xd8\xbf\x0f\xe9c\x1fl\x82\xb1?\x1d\xad\xe6;\xe7\n\xe3\xbf#V\xdd\x18\x81v\xd3\xbf\xa2\xe2\xcf\x9dN\x8b\x97?\xcdK\xc9$\xa4\xac\xc1\xbf,\x03\x0ee\x01\xa0\xd5\xbf\x9f+\x829\xf3\xcd\xb2\xbf\x0f\x83\x06\xdbi\xc5\xc9\xbf\xba&\\\x12I\xeb\xc4\xbf^\xac\x06LJ`\xb8?\xb5Kv,DT\xe0?(@\xff6\xa8\x05\xc7\xbf\xefj\xbc\xddZ\xbc\xca?\xe2BQ\x97\x0b\x08\xb4\xbfR\x92\xa3\x1d\x06\xe3\xd3\xbf\xcf\xc5\xe3\xd8\x17\x81\xd0\xbf\xf9]\xaapT\xea\xa6?;q\xba\xd0\xe1\xc4\xc0?\xa1KU2\x9a\xd3\xb9?D\xa9k\xff!\xcb\xc2\xbf\xdfs\xfa$\xd0\xac\xb8\xbf"@\x84\xd4\x19\x86\xa9\xbf\xeb\xfc\xb0\x1f\xb1h\x98?\xbf\xf6\xbc\x17\x9f\xd9\xd0?\x1e\x0bT\xd5\xa7\xbc\xc6\xbf\x9f`|\x13\xf7\xc8\xa6?B\xe9\x1b\xf6\x81C\xbb?\xd0\xadUuGO\xb3\xbf\x82\x9e-\x95h\xb0\xc6?W\xed\x94}\t\xab\x85\xbf\xde\xa9\x85;I\xfe\xd2\xbf\xd5%N6\xa8)\xbb?%\x04\xe9\x9a$\xbc\xb6\xbf\xaf1U\x14\xd4\xb5\xc3\xbfX\xf7\xbb\x16\x95P\xd2?l\xd8}\x06BA\xa4\xbf\xcd\xcb\x08\x17yw\xa8\xbf%\xfc\xee\x06r\xa7\xe0?-\xbe\xcb\x9e\x1cD\xa9\xbf\x85\x01\x1f\x84\x11\xb8\xc0\xbf\xcc\xbc\x16\x85z"r\xbf\x07\xc5l-\x1eQ\xc6?#\x9a\xdc\xb6Z\xdb\xca?\xa4\x1a\xa6Y]\xfa\xbd\xbfI\x98\xc1"\xc7\x88\xa2\xbfa\x10\xc4\x93NR\xd0?\xcd\xa0\x99vZ\x9e\xc1\xbfF\xd0\x89\xf4a\xb1\xd3?M\x1b<\xcf\xac\xea\x81\xbf\x9b\xc1p\x1d\x02\x8c\xd4\xbf\xdf\xfd\xcf4ya\xb9\xbfI9Macg\xd2\xbf\x00j\xbd\xcc\xce\x9a\xb1\xbf\x94U\xa0\r@W\xd2?\xa1\x87\xb6\xa1N\xf9\xc0?_\x1ab\xf7\xc4\xe1\x90\xbf\x91\x89\xb4\x99\xe7\x8c\xa2?\xc2R$Z\x91H\xc3\xbfg^\x08G\xae\x9f\xde?\x8b\x8e\x0e\x13n\xde\x99\xbf\x05\xf1\x85/HL\xa4\xbf\xfb\x0e\xe0j\xb6B\xd6?\xbf\x1b=H\x92\x00\xbc\xbf\x17\xc1m\xb8\x17Z\xa0\xbf\x8d\x14S\xe8o2\xbb?\x1f@H\x08\x8a\xef\xac?7PW_\xea\x97\xa2?\xe1x\r_N\xd6\xc3\xbf1\xc4\x17\xea5\x01\xc8?\xb2\xcd\xa7B\x18/\xd1\xbf\xe4q\x06c\xc0\x9a\xc5\xbf%{\x9f(-\x89\xcb?q\x12B\x1f\x83^\xd5?\x1aX\x9c#\xa2\x0f\xbf\xbf\xe3I\xfe\x90W\xa9\xbe?\xffG\x1aSS]\xab\xbf\xa6\xedZ1\xa1\xec\xe0?\xf6l\xf9\x15[\x08\xd4\xbf\xec\x0fg\xbc\xf9\xe7\xd4\xbfJ78\x1f\xe8\xb6\xbf?\x9fm;\xc1\x06\xc6\xd0\xbf\x87\xb0[\xf1\xdf\x00\xb1\xbfq\x1e\xb5t\xbbk\x96\xbfuc\xf9\x1e\xbb\x1e\xb3\xbf\xa3\x1a\xfd\x0e,\xbb\xda\xbf\xfb\xcf!\x1d1!\xd0?,\xeb\x95\x98}\x90\x90?\xd0\xa3\x7f\x0c)2\xa5\xbfH/<\xc3\x84\xa1\xac?X\xf9Tf\xeb\xd3\xc9\xbfSh\xb9\xae\xfb\n\xd2\xbf\xdf\'fu>\x08\xb9?b\xff\xd7HE\xd1\xcb?=2\xdb\xdf\xb1\x8d\xc0\xbf\x96\x08\xe6\xc8\xd7\xce\xca?XN\x1d_\x9c\x0f\xc2\xbf\xba\xcbP(}\xe2\xc5\xbf\'L\xaf\x89L\xac\xb8\xbfm\x8fb\x13\xf1\xc7\xdd\xbf\xc3\xf9u\xcd\x13\xfd\xd2\xbf\xa4\xed\x952=\x94\xa2\xbf\xfa\xbd\xd1\x17\xc1\xd7\x83\xbf\x1da\x89\xa3g\t\xca?(\xf5<\x93\x0e\xaa\xcd\xbf\xe5\xaf\xc8\x18\xcd!\xdf?\x80\xdd\xbc\xf0\x12\x98\xac?\x81j%<\x83\x08\xa4\xbf\x17\x9eU\xd9\x06\xdc\xd5\xbfY\xa1R\x9e\xe5\x0b\x91\xbfJ\xdd4,[\xf9\xbc\xbf\x87\xcb\xb5\x1e\xa7m\xc3?\xd0\x9f\x86\xd0u\xcd\xda\xbf1\x98\xaf\xa2e\x99\xc8\xbf\xc5D"N\x92&\xa9\xbfl\xd6E\x9dk\xa7\xd0\xbf\t\xa9O\xb0U\xa6\xb5?0\xa1{]\x1e\xa4\xad?*\x02l\xe7\xaf\xd2\xb4\xbf\xfe\xedv\x18\x1c\x1b\xe0\xbf\xa6\xcf6YL\x1a\xd7\xbf\xd4(\xe9\xd0XF\xca\xbf\xb7\x92{P\xa8b\xb9?\x87P\x94\xc4E\x0c\x87\xbf\xd1\x050\xbf\x8f\xc0\xc7?^K\x08\xe4\x06\xff\xd2?\xf3\x03\x9b\xbb\xd1\xa3\xc2?\xa4\xb7N=\xe5\x9f\xb9\xbf\xbd\xdaI\x03\xae\xed\xd0\xbf\xe9\xf3\xa7BX\xaf\x91?\xea\x9c:\xc5X\xf4\xb5?_F\x93cA\xf3\xa7?\xf4j\x8c\x7fY\x08\xcd?Z\x01~~u\x15\xd1?y\xe7H\xa8U{\xac\xbfy\xc2j"\xe2\x06\xbf?\xbe\x01v\xee\xbb-\xdc\xbf>\xeaE\xff64\xcf\xbf\xf2\xad\x93|?q\xad?\xf1\xe6M(\xc1`\xc7?,\x10\x80l\x1eB\xb0?\x01\x86\x9ey\x93\xa4\xc1\xbf_\x00(>o\x88\xab?\xcf\x04\xf3\x92MP\xdb\xbf\x85\x87c\xdc"\x06\xc5?\x8d\x99\x8b<\xfc\xe0\xa0?CB\xc3\xf7\x00[\xb4?;j\x9f\xd9\xa0\x85\xc4?\xc4\x849\xef\xe3\xda\x95?\xcfH\r_\x16\x7f\xca?\xea\xc0\x95\xae\xd4uz?\xbc\xdd6\x89\x90WX?F\xd0^\xfcR\x1a\xc2\xbf\xea\x1d\xed\xdb\x8d\xbad?d\xee\xed\xba!\x87\xc9?\x8c\xc1A\xdf\x1aw\xb2?6\xe1Y\x94o\xb5\xdf\xbf\xa8{w\xfe _\xa6?\x020\x1b\xe6\x0b>\xcc\xbfc\xc7\x17\xd9\xa4\x04\xc8?\x02\xb6\xf4\xe5\'&\xbb?9\xfd\x01\xab\xa5I\xd6?\x94{\xaetp\xec\xc5?C\xf3\xe8\xe3\xc9J\xd4?\'\xd9\xe2\xdfF\x19\xd8?\xdb~\xd0\xcb\x96!\x8e?\x88L\xff\xc2\x81\xde\xc7\xbf\x12\x9a\\\x86\x8d~\xe9\xbf&>\xf1?\x87=\xc7?\xca\x16\xeaieV\xaa?\xb1\xa5\x9d\x1d\x85\xc8\xd2\xbfK_\xba\xf9\x04\xc8\xd0?\x10\xe8G\xe1W5\xc3\xbfb\x87\xc9\x1bx\xf4\xbb?\xe3\x82YS8\x82\xd0?\xdf \xe3o$U\xd4\xbfk\xce\xa6\x85\xacV\xc3\xbf\x04\x8e\xbe\xa7\xb9w\xc2?\x087\x14\x1d\xdf\xc8\xc1\xbf\xd9\x8e-}\x07.\xa2\xbf\xb8+\x8d6\xd3v\xd3\xbf=\xe2\xd0\x11\x86)\xd5\xbf\xa9\xf3\xbd\x8a\x02\xd9\xc1\xbf\xc5\xd4\xabH\x11\x14\xda?PI\\\'\xb1\x92\xc9\xbf16\x07<k6\xa3\xbf\x90\x92 \xfajx\xe6\xbf\x9d4\xeb&\xcc\xac\xd9\xbf\xd3g\xfaJNw\xd9\xbf1\x06\x18\x05\xb7\xf6\xd5?[\xfa\xa5\x11\xaa\xcc\xc3\xbf\xcff\xa0u\xb4\x8e\xbf\xbfq\x89)\xf5\xfej\x92\xbf\x0c\xe0\xd1\xabz[k\xbf\xe6{\xd3\xb1b\xed\xd0?\xa8\xbc\xf5\t]\xb7\xd4\xbf\xdd\xf0W\xf4\xdd|\xb8\xbf\x1akb#\xe1\x11\xcc\xbf\r\x98\x1c\x98\x08\xe1\xbd\xbf\x16P\xe3\xcd\xfc\xbf\xa2?\xccS8\x08\xf6\x94\x9e\xbf6k\x1f\xe0\xac\xf1\xe1?\xf1\xb9Wu8\xf3\x9f\xbf\xba\xb0{\xf5\xe7\x84\xd3\xbf\xfeJ\x11q\x9c>\xc8?v~}\t\xdcL\xc3?\xcb3\xe1Bm\x89\xd9?\xd4Ze\xc0\xb9I\xd4?)ar\xca\\<\xb2?FdH\xa4*\x91\xdb\xbfb\xb8\xe3\xf6\xcf\xb1\xd1\xbfZ\x00>r\xcb5\xcb?C\xa0\xd3\r\xef\xdd\xb5?s\x8a\xd2\\\xd5\x9d\xd5\xbf\xe1\x99\xbc\x0e($\x82\xbfY\xfdi\nT\xbb\xb7?\xca\x9ed\xc6\x8bm\xc1?\xe1@&}hC\xc8?6@\xcem\x16\xac\xb5?\xf9U\x9e8L\xa8\xb3?QW\x18\xb9\xa2A\xa0?\xb9\xe8-r\xdc\xado?$\x912\x86\xe8\x91\x9d?%e^Vg\x0c\xcc\xbf\xd1\x95\xfbh\xe2\x1e\xbd?S\x90\xcdxY\x1b\xc3?\x89\x95~\x9dn\xff\xac?\x81\xe6\xe9\xc0\xb0\x87\x90\xbfC5\xda_\xbf\xe7\xb7?\xf8\xa2\xd6\x1cXw\xc1?\xbfC\xb7~#\xad\xdc?i\xcf(%;\x13\xd7?C\xe3\xaa\xcfh\xca\xb6?!\xba\xd8\x07\xdc\xa1\xd1?\xff)!\x05\x8c\x8b\xc4?|\xe7\x07\xa8|k\xce\xbfX\xbdh\xa1h\xf2\xcc?T\xf0T\xf8\x9d8\xcd?\xac6\x87\xd3\x996\x94\xbfj\xebpC\xf35\x9d\xbfZ<\\"\x18\x83\xb5?\xfak\xe1\x15\x05\r\xa8\xbfd#\xd1G\xb1\xe2\xd5?\x1dzR\xfa\x9e5\xd0?\xac-\xd6"#7\x87?#\xb1A\xab\xdb\'\xd7\xbf\xf8\xc6\x8e*8\xb4\xd9?\xdc(n\x8d\xc0W\xb4\xbf)@\xb6I\xa5|\xe5\xbf\xc6]v\xc3\xfc\x06\xd5?p\xdaO\x15\xa5d\xb9\xbf\x8b\x1b6W\xe0\xf5\xd1\xbf\xcb\xab\xaa\x1ejM\x84?\xfc\x01\xca\x7fh\xc6\xb0?`\xb5\x0e\xab\xaa\xef\xa2\xbf\x18!\x98\xb1\tV\xa5?\xf7sT0\xcf\xcd\x9e\xbf\xbdpa\x80\x97u\xc0\xbf\xd4(I&?\x06\xa0?\x05\x15n\x9c\x8dY\xab?\x85\xf12g\x0fP\xc4\xbf\xf27]\x1d\xe8\xfd\xd9\xbf-\xef\x9d]:u\xcc\xbf\xfcP\xd9MR\xb7\xd4\xbfVI\x1d\x05?<\xc2?:i\x821\x19Y\xca?\x03\x13F\x02\xf6z\xd8?\xe4w\x9a\xf4\x85\xbf\xa9\xbf\x84\xedR\x9a\xac0\xc4?\xd6\xac\x7f\xea\xac^\xb3?\x87o\xf39|\x8e\xd5?eO(\xee\xc8\xb9\xd5\xbf\xd9\xbf`\xc5x\xd2\xd1?\x91\xe9\xa0%\xaf\xec\xc9?\xedR\xa7\x91)3\xcc?*\x10\xf7\xb6\x82\x89\xbb\xbf\'\'\xd1\xa3\xceR\xa3?<\xdb\xdc\x0cC\xd5\xb8\xbf\xcf4\x9d\xaf\x93z\xc0\xbfs\x9c\xd0)\xb3\xd9\xc2?%\xcc\xf6\xdb\x0cv\xe7?\xd8\x17n\x89\x06\xab\xc9?u\xed\xd8I\xa7\xe2\xcf?\x88\x9b\xd4\x07`\xae\xc5\xbfW\xe9\x18\x9e\xf6\xca\xcf?\xb1\x9a\xcf\x8b\x7fY\xc7\xbf\x93C\xc7\xaf\x9f\x00\xa1?i7\xc1\xee#\xcf\xe0?\xac\xce\x9do\x8b[\xc4\xbf\xc7M\xcb\x02\x85B\x87?\xd9\xe1\xfe;\xea\xd7\xb7\xbf\x9d\xe5\xbe0I\xee\xc9\xbf\xe4\x93\x12]\xa2\x99\xbc?\x13\r\x8d\xce9\x94\xb6??\xb0Ob\x8e\xcc\xc0\xbf\xd5\xfc=\x9e;\x92\xbf?-\xfd\x9b\xf4\x81\x05\xc1?\xdc\xea\x0e\x1e\xd4\x95\xb1\xbf\xad\x12G\x10;:\xbf?\r\xff\x16>\x1e=\xe2\xbf\xc1Jl\xa6\x8a\xc5\xd0?[\xed2\xf1\xef\x03\xd9?\x0e\x15\x8d\xf3Lj\xc2?b\xb4\xa8\n\xc6\x9f\xdc?\xbeKEs\xb3\x83\xba\xbf\x1d\xd6\xb4\xe3I\xcd\xc2?\xa3@\xad\xbeUk\xd1?\x93m\x10\x86\x8a\x8d\xc4?\x7f\x96\x0f3\x14]\x8b\xbf\xa4QO\xdb\xfa\xa3\xce?\x9c\xff0\x93M\xa3\xcf\xbf) \xa9\xe5\xb7[\xdf\xbf\x98C\xf2\xb8?\xf6\xdc?I\x0e\x86\x1cU\xa3\xb6?\x9eDz\xa4\xd6\xea\xd6?i[\xd3\x95u\x15\xbf\xbf@\x13\xab\xab\xbfJ\xce??3\xa8\\t\xcd\xd4\xbf\xf9\xaa\xd9\x80\xe1\x9e\xd3?\xf4\x97\xdb\x01\x16g\xbb\xbf\xff\xf0E_i}\x88?Q~\x95z\x05_\xd1?Ds N}e\xd5\xbf\x9a$\x90\x1ev\x8d\xc1\xbfhi70\xc9\xe7\xc5?\x05\xa7\x1e\x82\xe7^\xb5?%\xa7=h\x97]\xd3?\x8a\xec \xe6@R\xa4\xbf\xf1\xd9%\x9e\xef\xf6\xd5\xbf\xbb\xef\xb2\xbc\xc8r\x9a\xbf\xe3\xa56\xaa\x83\x9c\xd3\xbf\xa2\xd8C\xc6\xcaI\xe0?\x10\xfd\xa5\xb3o\xd9\xb8?du\x06\xe3V\x94\xc0?\x1d\xc76\xb5\x1bh\xd6?\xea9\xbb\xce\x9b\xfe\xbc?7\xd7\xf7\xcc\x06-\xb7?\xb0\x90\xc6-\x08\xd0\xa1?\x02\x8dG5\xed\x10\xdd\xbfyb\xc12%\xbf\xbf\xbf\x94\xff\x82\x8c\xbc\xd4\xc2?y>eZ\xdc|\xbb\xbfR\x0f\xca5-\xb4\xbe?\x83\x02\x92_U\xb6\xd0\xbf\xd5\x8dx\xc9\xea\xb9\xd1\xbf\xc1\xed\xef\x16\xed\xb8\xc8\xbf\xf2\xbf_u\xe7Q\xbd?-\xb0\xf8\xf6\xc0\xcc\xd2\xbf\xdet\xa5s\xbc\xd4\xb1\xbf\xc7\x9e|\x0bC*\xd4?\x81;\x89#S\x9f\xc6\xbfS\x02_\x98\xbeC\xcf?\x9c\xb4\xa6+\x04d\xc1\xbf\x87"\xa5\xfc\x01\x00\xc4\xbf\xe5B!#g\xe5\xc3?\x81\xaeP\xe0\x83S\xc6\xbf\xcf$\xc4\xbf\x04=\xd2\xbf0\t\x90\x9a]A\xc3\xbfY\x89\xeb\xf0\x15p\xa9\xbf\x14\x80\xae\x0b\x94b\xd4\xbf\xb7\x0f\xc5\xdb\xc7f\xd4\xbf\xac|\xe0\\\xc43\xa1?b\x00(\x90\xa3\xd9\x81?\xfa\xbc\x9e\xb1DV\xe6?\x08j8\x89s\xe0\xad?v\x16a^9\xdb\xb0?1^\x87\x12\xc4\xa3\xce\xbf\xe1\xcb\xd9\xe1\x1ai\xb3\xbf\xfe\x0ej\xee\xf8\xe0\xc8?\x99o\x83Q\xac\x93\xd4?\x91\xef*\x04\x9a\xfa\xcd?I\xaep\x98Z\x0e\xc9?\xf1\x9f\xbd\xb8A\x02\xaf?BX\xd1\x88b\xd4\xb0\xbfy\xee\xf0\x9d\x88!\xad?\xe6A)\x0b{h\xd2?\x8b\xe3\xc5qbL\xd7?!\xd6\xcd\xe8\xf3g\xb5?\x004\x1e\xcb\xcbrI?$\xfd\xc0<\xc4\t\xc4\xbf\xc92\xc8%YH\xd1\xbfT\xa7\x0c\x0c\xa8J\xbd?qKUS\xf9\xc7\x94?\xc0\xd7\xa1[\xa2\x8c\xd4\xbf\xce\x11\x89g\x85\xad\xb4\xbfr\xa9r:&\x0c\xd1?\xfb;\x10H\x1b\x80\xd7\xbf*\xee\xa1,\xe9p\xc9\xbf_Ts\x87\xf35\xbf\xbf\xe1J1\x90\xbdS\xcf?vI\n\x80\x80\x03w\xbf\nu\xa5\x8c\xa6\x07\xc3\xbf8\xcb-\xcfHU\xd7\xbf\xd9W\x11\xbf\x1b\xe0\xd0?\xca\x9fl;b\xef\xdc?\xf9\xd8\xb8\x9f\x89Z\x88\xbf\x0ct~ \xdf\xd5\xd0?\x8d:\xda\xc1L\xa8R?\xeb"\x86\xa0\xdf\xcd\xa1\xbf{\xe3\x17|\xddk\xc1?\xd7j\xea]S>\xb2\xbf\xe3\xa0\xf8\xab\xa3\xde\x97?b\xb0\xdeh\xb0\xd7\xc9\xbf&\x01RR\xc5(\xd9\xbf\xa5\x8d#c\xe6\xf9\xca\xbf#\x13\n\xa2\t\x89\xc5\xbfB\xae\xdd\x99\xf7\x88\xc9\xbf\x9dn\xf4s\x98n\xcb?\xc6\xd6\xc1\xa5\xff\xc0\xcd?\xf6\xecN\xcc3\xe9\xdb\xbf\x1a\x96\xdb\xa6\x18\xcd\xad?O,\xff\x05/\xe2\xbb\xbf)\x1d\xc8#\x84\x02\xd7?t\x87NC\xb2o\xd4\xbf4&\xf20\xac\x90\x80\xbffG\xd3\x919L\xb3\xbfd\xb2\x07P\xc2\xb0\xc3?\xa4\xbf6x\xed\x05\xd2?\x95\x0f\xd5\x9aw\x03\xc1?\x9b(\x8e\xc8S\xac\xc2?%mRc\xe8:\xc9?\xa3\xad\x9a,\x953\xbb\xbf\xc5\xb0\xfd\x0e\xc9\xc6\xc0?s\xc1\xf6\x7f\xf6\x9b\xd5\xbf\xd0\x07!.\xf2\x0e\xbf?\xa4Z)3r\x8c\xb1\xbf\xbd\xec\x02XIp\xad?\xc4F\x85_\xb2\x1f\x9e\xbf\x8e\xf5\x92\xe8\xc4K\xce?vK.\x12\xde\x8c\xcf\xbfg\xd2#\xe9\x84\x84\xb0?\xcf\x04\x0f\xab\x14\x91\xab\xbf\xfaG\x91\xaaQ\xc5\xd7?X"\xd2\xc0\x19c\xda\xbf\xa5P\xbc!l9\x99?\xce\xa2?R4\xefl?f\x14\xd2\xfb\xea\xc4\xc3\xbf\xdd\xe7\x0eL\xe8\xa1\xa0?\xce\xfe\n,\xa0\xd8\xd4\xbf\xa6A\xffI\x82\xb8\x94\xbfT\xfb\xf8F\x83\xf4\xb3?\x91\x13ah\xa5i\xae\xbfdpa\xc3\x95_\xd2\xbf9o\xc3\xd9\x12,\xe2?Y%$`\x80\x8a\xb8\xbf\xa0GK5\xe5`\xd3\xbf5w\xb6Vh\x87\xc4?k\xc9q\x02T3\xc5\xbftH\xf3,\x8a\x9a\xa6\xbf\x96\xebg\xf1\xbf\xd6\xbb\xbf1\xfc\xddxi\x03\x84\xbf4\x8d\xbf\xb0\xd3P\xae?\xe8\xdfFy$?\xda\xbf\x99\\\x00T\x91\x1d\xae?\x9d;=\x05\xf1\x90\xc2?\x9d\x16Y\xa8\xde\x1e\xe1?\xc2\x83\xe5)\xacF\xcb?\x96\xd7\x8c\xbb\xe4\x0b\xa6\xbf\x01\xd4\xd8\xcf\x8c\x1c\xba?\xf5Y\x99L\x8c\xf3\xc7?\x9b\xc1\xcf\xaf\x14\xfa\xc4?O\xc4\xc3\x03\xc8\x12\xc3?\xaa\xe8\x02\xb3\x1f\xbe\xc0?\xca\xe6k\xa3\xa5\xdf\xcf\xbf/o\x91\x98\r\xdf\xcb\xbf\xaa\x0b\xb7\xa5\xa9\xb3\xc4\xbf\xfa\xa9\xb7\xac\xc3\xe7\xc3\xbf\x1e\xa9\x92\xef\xfa\xb5\xd9\xbf\xfa\xa1\x8ed\x02\x93\xc1\xbf\x0c\xfd\xdd\x82\x12Z\xc0?\x13u\x1f;(]\xd0\xbf\xe9\x9f=\xaf\x81"\xe1?:\x9b\x85\xd8u\x9c\xe0\xbf\x1aJ\x0crv\xd0\xca\xbf+\xd2\x84\xaa\xee`\xdf\xbf\x04\x9c\xf8\xd4\xf6p\xcc\xbf8\xde!|\xc3\xe2\xb0?gB\x9cJG\xa9\xe1?\x80T\xbc\xf8\xd0\xf1\xc3?3\xe8\xe2i\xb9\x13\xd2\xbf}\xb9\x1f\xa10\xc3\xd2?\xfem\xdd\xd9)\xd3\xb8?\r\xa2\xa51\t\xef\xc0\xbfP3Q[!\xab\xc2\xbf\x0f\xd7*\x82\xb8\x1d\xe0\xbf\x06B\x02\xfe\xdd\xac\x9f\xbfb\xd4\xb7\xf3\xa9D\xd6?\x07v\x82.`\x97\xc6?\x98 \xa5id\xac\xb1?\x7f\xc9\xc6\xdb\x9a\x13\xb9?\xb9,\x16)\x91G\x93?\xca\x19\xea\x86X\x87\xc5?\xb2\x89_\xe2\xe9\x06\xb4\xbf\x80\xfbz\xba}\xfc\xd6?\xdd\xa1\xf64\xd6,\xcb?\x87G\xd1\r\xf8\xd8\xb8?\xbd!\xdc;\n\x96\xb4?+G\xdd\xd4\x9e*\xd1?=\xf7\xb4\xdag}\xd1?\xce(\x19\xd6\xb1Z\xb8\xbf}\x96\xde\xb6\xc0\x90\xdb\xbf\xc99\x0f\x81\x04#\xd6?\xd9`\xf0"\x08r\xc0\xbfD\x94\\\x85!\xe7\xba\xbf=d\'\xee\xa4\xf8\xb0\xbf\x0b\xae\xfeT:\n\xbd?\x1e\x84\x81Q\xec!\xc0?\x0e\xe8\x91\xdf0\\\xc7\xbf\x16\x9e%\x9a\xac\xf2\xc8?,\xab\x98\x96Gd\xd5\xbf\x18\x88\xe1\xcf\x17\x1c\xc0?\x7f\x91\xf3\x81\xa0\xc4\x9a?\x89\xc9D\x133\xec\x97\xbfT\x00\x03QH\x1c\xc4\xbf8\x1e\xfe`\x08\xdb\xb8?\xdfV!!,_\xe6\xbfLd\xbf\xcb\xc9<\xba\xbf\x90N\x9bl-\xb1\xc6?\x196v2Oi\xa2?\xee<m\x1d\xe8\xe8\xc1\xbfS\xb9`\xa1"\xb1\x86\xbf\xc3\xc6\xe1\xcf\x95\xff\x92\xbfk\xc2\xbf\xd9\\\x10\xb5\xbfq\xf6\xb9OW\xf7\xa4\xbf\x13\xc5\xe7\xac\x8aY\xb8\xbf\x1a?\xe5W/\xbb\xd8?\x15\x08W\xb8\xcfd\xd4?\xfd\x99\x8c\x9cY\xfc\xe5?\x92o\xd5LzY\xd3\xbf\x00\x81\xa3\x9d\x04\x19\xd3?\xfe\x94t\xd0\xec!\xc2\xbf\x83\xa1\xee\xbe\xde#\xc9?5\xa4\x169\x964\xcb?\xbe\x81\xf0 \x02c\xb6?\xa5\xc9\x9f\xd2\xcf\xbe\xd2?\x19T\xaf\x0fv#\xc8\xbf\x1cb\x08s\xd6\x19\xb6?[V\xe2\xc2\xdb\x80\xb8\xbfN\x80^GO\xd5\xe8\xbf\x82\xe7\xed\x83Cyu\xbf2\xc6\xee\xe1\xd7)\x9c\xbf\xb8\x89\xcf\xb5o\x7f\xb1?\x05m\xe25\'$\xd0?\x17\xc8\xc9\xd87N\xd0?\x0e\nci\x97\x1d\xb4\xbf\x1fI\x1fz\x95\xe0\xdf\xbf\x86\x13]\xbd\x81\xf6u\xbf\xc2\xec\xed\x1b\x06b\xa7?\x90\x01\xaf"Uq\xe3\xbf\x91W\xe9$\xeaE\xce\xbf\xf0W\x86\x92\xe0\xf2\xce?\xdb\xd3.\xff\xc2~\xe4?\xfa`\x89\x04\xae\xb6\xb4\xbfwh/\xf2\xd7\x90\xd3\xbf\xed\xb5bj3N\xbe\xbfyc\xcf?G\x1e\xc8?<\xe5\xca\xfe\x04\x14\xb4\xbf\xc5\xe4\xd7Mk\x81\xe3\xbf\xb0#\x12\xc5?\xe2\xe1?}\xb5\x81\xfb\xb0\x1e\xc4\xbf\x91\x90\x1aO-w\xd8\xbf\xf7JD\xb9s\xbb\xdd\xbf%8\x0b.\x90y\xaf\xbf\x82H\xd6\x11\x0b^\xdf?f\xe6\xa4\x80\xee\xa7\xc9?\x91\xa1\x024\x87\xd8\xc0\xbf\x81\x8e\x81\xc5\x87\x1c\xc3\xbf\x16\x96\x97(\x84qX\xbf\xf7t\xd3\x9f\x1e\x04\xc7?\xbe\'3\xb0w\xaf\xd3?!\xce\xb2\xcaa;\xd0?\x93\xc7C\xbe\xd6#\xb1?\xe5\x9f\x91\xff\x15\xb7\xc7\xbfXS)\xba\x8a\xe1\xe3\xbfm\xab\x92\tb(\xc7?\x8c\xf5\x90\xc3\xb5\xf1\xb7\xbf0\xc7\x15F\x1e9\xb4\xbfa\xcc"c\xfb\xc1\xcc\xbfb<\xb4zS=\xd3?q\x18\xc2\xa0\xe2\xa4\xd1?)k\xb9\xc6i:\xdb?\xc4>^h\xb3\xce\xc1?\x9d\x81\xfe\x94*\x83\xaf?\x10\xdf,\x15f\xed\xd8\xbf\xb7\x95\x9c\xa4\xa4\xcc\x90?\xcco\xd3\x9b8C\xc4?q\x1d\\\xbd\x07\x91R?O\x92\xff\xce\x96W\xc7?\xbd\xcf\xf42\xce\x86\x99\xbf\xef\x07\xa4\x9e\x8ft\xbc\xbf\xc8\xd2\xac\x9am~\xad?\xb9\x9cq\xaeNe\xac\xbfb8\xd2<P+\xca\xbf7&\xf7\x8f\xd3v\xd2?\x9d\xb2\x8c;\xb9\xca\xc4?\xe8\x96L\xec\xbf<\xd3\xbf\xad\x9d:\x13\xc7l\xb5\xbf\x91\xaa}B\xb5\xcd\xd9?\xc2\xb6\x97T\x1e\xa9\xac?\xb8# \xae\x1b\xa5\xe2?e\x9a\xd6\x11\xbc\xd3\xa4\xbf{\xda\x87\xa8\xaf\xec\xb6\xbf\xb0!\xcf\x1e\xabA\x8a\xbf\xcbf\xd1/\xf2\xbe\xd7\xbf\xc4\xb0w\xd6\xdb\xb6\xda\xbfg\xbd\x04\xddoq\xb5\xbf\xae\xdaz\x84\xf99^?\x00\xd4\xd9\xbb\xe4\xa2\xce?$\x1b\xcb\xf0\xd7S\xd2?ov\x07\xfc\xecO\xd3\xbf\x9c\xeb\x8a\xc2.\xa7\xd3?\xb6\x1fm\xf4/}\xc5?5\x85\xfasW\xe2\xe7?\xcd0s\xceO\xae\xd1?\xd3;\xe2\x9a\x84\xb4\xb2?\x8bu\xdc\xd4\xff\xef\xb3\xbf\xa5\xc2Y1`@\xdb?\xaa\xd5\xf2xQs\xdc?\xc1\xe1e\xe7\x97\xc9\xc0?\x91\xfd\x04\xcf\x1d \xe3?[\x1d\xca3\x87r\xba?\x98K\xce%\x15u\x93?\x04\xfa\x9aj\xe2\x01\xb4\xbf\xc0x\xae\x0cF\xe4\xdb?\xa0\xeb>\xc4v\x1e\xb9?/+)(n\xca\xa6?\x1eJ\xd2<\xed7\xca?\xafG+\x99\xffY\xc4?Z\x82\x87a\x82\xfb\xbc?\x8e\xd2\xe92.{\xbf?NA\xf7\x98\xeco\xc2\xbfN\x1cF\x97,4\xe3\xbf<$\xe8\\9\x99\xc0\xbf\x979\xd1=\x0el\xcb\xbf_\r\xe7O\xfa`\xc2\xbfCW\x06o&\x13\x97\xbf\x81\xab\xd6\x81\xa5\xaf\xb2?\x80\x8a>Okx\xd0\xbf\xd2\xb4?\xea\x9e\x07\xde?1\xdaA\xed\xd9\x19\xb5?L\x1aW\x91\xdd\xc9\x9a\xbf^\xe3Du\xd3\xb2\xc1\xbfg\xc3\x86\t\x91?\xda\xbf\xea\xd8\x9e\xe3\xf3+\xd0?3\x1a\x9eO\xb6\xca\xc0?\x1d\x16\x1c(\xa9\xc4\xd2?\x8bd\xb0s\x87\xfa\xdd?\x92f\xb6\xc8>\x1f\xe3?\xe6\xe3\xc5\xe4c\x18\xb7?Q\xed\x9a\xa8%\xef\xaf\xbf2\x0fe\xd5\x85F\xd7\xbf/\xd2"Cv|t?\xc9\x7f\x05\x9fT:\xc6?\x8d<\xe4\xf8\x0e\xe9\xb2?\xd2\x1fr1\x1a]\x92?\x85\x0e\xe6k\xa3O\xcc?\xb1\x0fJ\xb8\xd9\x95\xb2?\xf0\xa6\xb1\x13\xf7\xae\xcf?\xc3\x0fMt\x93\x80\xc2?\xefcbt\xcal\xc7\xbf\x81\x0e\x8d\x1aT\x81\xc6?\x17@C\xb2\xf4\xfe\xc3\xbf\xc5;\xb6\xa0\x9f\x85\xcb??0\xb4\xd6\xcb:\xe1\xbf\xa3\xba\x1bL`\xfc\xbd\xbf0\xaen\xca\x01v\xbf\xbf\x00\xbbi\'\n<\xdf\xbf%\xd6!/\x7f\xa1\xc7\xbfV\\\xaa&;\x1c\xc5\xbfr\xb6E\x89A\xca\xd0?\x7f\x04\xf9\xb6"\xda\xd0\xbf\xa3\x8a\x1dx\x1eA\xd7\xbf\xf5p\x925g\xef\xd4\xbf\x8f\xeft[\x92\x8d\xba\xbfk\x0f\xcd\t#\x1d\xf0\xbf\x074h\t!\x94]?\xca\xfak\xec\x19\xd8\xe2\xbf\x00\xfbL\xbe\xea\xe1\xc1?p\xbcEA\x94H\xc6\xbf\xee\xca\xecB\xd7Y\xbe?\xe7\xc1\xbc\xac\x9dS\xbb?s\xf9\x9b\xf6*\x85\xac?\x95K\xf6\xc9\xf6I\xab\xbf\xfe.\xfddg\xd2\xd3? \\ \xad\xc8e\x9a\xbf\x9c\xe3\x17\xd5\xa1\x82\xec\xbf\xb4\xa9}\x1e\x85\xe0\xc3?\x8f9\xe12\xf6\xd8\xe8?\x8c\xd8P+\xe7\x05\xa0\xbf\xbff\xb2\xbf\x18\x98\xc1?\xd1\xac\x11\x9f\xa9\xa5\xd3\xbfs+Z\x0c#\xcf\xb7?,\xe3\x9e\x02Py\xdd?\x81\x95\xde\xce!\xa3\x89\xbf\xe6\xc5g\x8b}.\xd1\xbf\xf2\xd6\xfc\x12\x17B\xd9?"\xb1X\xf5\xd0Wx\xbf\xa2y[\x96S\x0e\xcb\xbf\x8e\xdbn\x9e\xea\xea\xda?\xe1\xd76\xe9\x10\xda\xc9?\x83b(\xe2\n{\xcb\xbf\xf6\x8d\x1df\xbb\t\xc7?\xa2Y\x16M[\xaa\x82\xbf\x9fW\xb5\x98\xb6\x15\xe0?\xea3\xa3\x1f\x18\xe0\xd0?\x93\x88\xf1\xda\xac\x86\xba?+2\x98Z\xaf\xfd\xad\xbf9\xa7\xc4\x8fx9\xc8\xbf\x0b\xb1\x04\x00\x1f\xcd\xe3\xbf\xf6\xf0`\xee\xbb\xa3\xce?\x9f\x8cu\xe3\x9c\xc8\xc7?\xdf\x1f"6\xdf\xe4\xd0\xbf\x11\x1b\x13\xad\x01\xb4\xd2\xbf!\x1ao{*\x18\xa8?\x1e%\x87*\xae\x08\xd0?\xc7\xbch\xbe\x10\xda\xba\xbf*6$*\x99\xbb\xc8\xbf\x05\xce`\xca\xd3d\xd2\xbf\xc6\xcc\x0c\x1e\xa1m\xbf\xbf\xf9\xf0T\xb3\xaa(\xa4\xbf\x8c\xcbp6\xe0\x7f\xc7\xbfY\xeeO\x128\xca\xc8\xbf\xaf\'%\x19\x9e\xb5\x94\xbf\x7f\xe7.Y\x0b\xd2\xb5?(\x1a\xb6\xcd\x98x\xda?\xfcN&\\\xb9*\xb9\xbf\xf6\x97\xf2EL\xcc\xcd?e)\x08\xae\xac\x14\xc2?3V\xbe\x08\xeaL\xc3\xbfI \x85k\xf4\xbe\xce?\xd1\xa5\x16W\x19\x0b\xb2\xbf\xac\xe2+\x92Wz\xb5\xbfk|\xbe\x15\x9b"\x86?\xc1\x9b\xa3.\x1a}\xba\xbf\xd8\xb9\x12\x83eB\x90\xbfB\x92i!\xa6\xc6\xcf?\xda\xe5X\xc0\xbf\x0e\xc2?\xfe\xcf\x0c4<\xb3\xc6?\x1cI\rd\xa3[\xa3\xbf\xc1\xe5\x13\x8e\x98`\xab?\xfc\x05DY\xe4c\xcb\xbf\xb3\t\xb1"90\xa5\xbf\x02\xa2\xd7\xff\xf9\xae\xb4?\xe1\x7f7+\xb5y\xbd\xbf\xaf\x0b)qy\xe6\xb0\xbf3\x99,\xcd\x08U\xb4?\xde^4Q\xa2\xf8\x99\xbf\x92Ag\xab\x98\x07\xa1?\x8b\xd2[\xe6\x1a\xbd\xba?\xff\xa4\xbc\xb8\xf0\xcf\xca?\xc6\x1cx\xdf\x11-\xdb?w\xed\xa7\x16\xa1\x88\xb0\xbf\x98\xcf\xaf\x8d[+\xb0\xbfE\xd3\xe4\xbe6}\xc4\xbf\x0c(\x94\x9bC\r\xd1\xbf\xe1d\x12\xb2\xfe\xc8\xca\xbfD\'\xc6_\xb5\xcf\xb4?\xa6\x8c\xa1>\x1bF\xd1?\xed\x82\xc4\xcd\xf3\xd8\xcc?\xf8#\xf7\xd7\xd0r\xbd\xbf.5\x04\xe8O \xb2? e\xf0\xfenz\xb8\xbfb\x99\x87\xf1y\xf6\xca\xbf\xd4\xd1\xe9.\xbc`\xd3?Z^iM\t\xad\xcc\xbf\x1c\xc1\xed\xca\x8fe\xc3?NA\xca\xc9{y\xe9\xbf\x9dfb\xd8\xc96\xca\xbf?M\xda`\x16\x8e\xa5?\x881G\xd7M\x17\xc8\xbfjq2\x82l\x81\xb8?n\nN\xedW\xbb\xd0?g\x9c\xd7$<-\xd5\xbf\xaeL\x18b<\xd7\x8a?\xbe\xf1\x92\x10\xf2\xab\xa9?\x0fP1{\xbc#P\xbf\xa8\xac\xe3:\xe9\xf6\xaa\xbf\xe6\x1a\x82\x91\xd7\xc2\xd7\xbf.\xae\x95z\x81\x15\xb7?4\xc4\xfc\xa3J\t\xc8\xbf\x9e\xd4\xd3\xcc\x99_\xe1\xbf\xa9r;\x08\xd2gu\xbf\xd9{\xc0h\xd7H\xc5?\xbc\xb0\xfdD\xac?\xd6?\x87\x92\xecK\x1a\x13\x9f\xbf\r\xac\xc3\x16|k\xcc?\xc3\xaf\xd9\xd0\xc3\xf8\xb3\xbf\x08\xe5\xe0N\xefJ\xd4\xbfREs\x88k\xb3\xbd\xbf^\xc9\xf1\xc6f1\x7f\xbf4\x9d\xbb0\xea\x8d\xcb\xbf\x12e\xc7\xcf\x10\xf5\xc4\xbf`X\x1a\xd6\xcb\x95y?B\xf1Z@\xb1D\xc8?u;\x9et\x0eT\xcc?I\xd5\xcev\x8bx\xa4\xbf\xb6\xbc\x1b\xb3Gy\xc0?\x9e\x00\xe8\xaf\x9b;\xad\xbfiT\x8c\xc5\xa5s\xa8?\x16,e|\xce\x13\xd1?\x13\xcb\x9f}\xac\xf0\xd5\xbf\xb1\xd8"\xf6,L\x8c\xbf\x08\x90(\xe0\xdd\xd7\xd0\xbf\xe3p1\xf5\x88i\xd7\xbf\xfb\xbb\xfcf\n\xcb\xd3?\x85\xe9C\xe2Y\x0c\xcb\xbfT&\x00\xd4\x13\xe8\xae?\\\xf9\x97\x7f\xf2\xe2\xa3\xbf\xaar/\xb8Xy\xd3?\x9e\xb0\x0f\xd9o\xff\xd5\xbf\x15b?\x86\xdb\x00\xc6?\xbd\xcc&\xea\xc4\xe6\xae?\x18\x0e\xc4\x9f\xee;\x9d?F\x92\xa3x\x1d-\xc4\xbfe{Q\x0c\x93y\xd0\xbf\xac\x95\xc39g\x9e\xb4\xbf\x0c\xb9\x89\xb7\xc7A\xa4?\xe9\x01\xf9Y\xaeL\xc5?\xc6\xe6v\xbc8\xa7\xc4?(\x18\xcc\xaa\x8f\x16\xd1?\xb3\x1f\x14_\xdb5\xb5?\xc4\xf4\x8c\x00\xf76\x8f\xbf\xff.!\x8b~9\xbe\xbf\x08\x9d|\x97\xe9u\xc6\xbfB\xb6m\x07-t\xc0\xbf\xed\xfb\x069-\x82\xb9\xbf\xffi\xf1\xcd2\xd3\xb3\xbf\x06\xab\xc9\x86\x7f\xbf\xc9?q\xb0\xfeyU\x96\xc6?&\xcbYI\xea\xf4\xcd\xbf\x9a(\xc9\xf7,\x89\xa5\xbf'
p68
tp69
bsS'oadds0'
p70
g13
(g14
(I0
tp71
g16
tp72
Rp73
(I1
(I15
I100
tp74
g23
I00
S'\xe6z\x8d`\xe6\xd4\xb5?\'Z\xd7\x16o\x14\xbd\xbf\x847\xbddc\xd7\xa0?/\xe6\xec\xd0J\xfe\xc7\xbf\xc7I\xb0\x99\xec\xcb\xc5\xbfc\xa8\xd2\xcbF\xe5\xc5\xbf\x82\xdfp\xc5%\xe6\xb1\xbf\xf8\xef\xb9\xea\x08\x06\x97\xbf\x02\xeeLE\xb0\xc8\xbd?\xab\xa3\xdb\xd4n\xb3\xc7?\xec\xe4\x05Oi\x05\xaf?\xec\xb1>S^\x97\xb5\xbf\x10R\xb5Z\r\xb4\x9a\xbf\xce\xe5\x10Y\x1c\xf0\xb1\xbf,/\x0c*t}\xa5?\xcc\xb7\xf8KG\xf8\xad?\x1b\x0b\xef:\xe7.\xc1?\xaaWc\xde\xf7+\xc1\xbf\xf8\xe2R\xe6\x80\xe8\xc2\xbf\xb0\\\xb7\xb9\xa8\xdb\x83?\x0f\x9f\x0b\r1O\xc8\xbf\xbe\xd5\xb3\x12x{\xb8\xbf-\xcc]\x8d\xd9\x11\xcc?\x85\x11m\xf9\xa8\xe8\xc1?\xed\'\x15\x93\x80\xc7\xc0\xbf\xb3\xa13P\xc6\x82\xc6\xbf6/9l\x0eN\xb2?Ibn\xcf\xe4%\xc1\xbf\x14\xaa\xeeI\xfc\x89\xb8\xbf\x9ce\xaf\xfa\xb5X\xa1? \xb8U\x04\xe7\x96z?F\xce\xb3\x1a\xab\xec\xcb\xbf\xba\xd2\xe3H\xee\x9a\xb3?\xb7%\x15\xb0\xa8\xd1\xca?\xac\xe55\xc5O\x8a\xa3?\xab\x18N\xe0\x08~\xbc\xbf\xf0AG\xba\xed\xbb\x97\xbfl\x18\xa8\x80}\xcc\xb4\xbf,M\x829\x01T\xb8\xbf\x96\xfb\xae\xf0\x1e\xd1\xbb?fk=\xaf\x152\xbd?`\xe9\xb7\x84\x0b\x1a\xc3\xbf\xfa,k[\x17,\xb7?\xd5s\x8e\xd4\x84\xbc\xc0?\x84\xe3\x1b\xd2\xe8\xf7\xb9\xbfu\x82\x06\x81\x16W\xcc?\x92\x97\xb10\x0e\x0f\xb7?\xec\x98\x86\xef\xac\xe5\xa3?\xf5\xe7B\xa6:\r\xc4?\n\x1c\x96\xe3\x05\x83\xba?\x14\x8f\x16/\x8d@\xa6?\xd6\x9f\x89\xda&\xee\xb3?\xe4\xf8\xcc\xa8@\x15\xa6?\xe3\x14\x93\x1aH8\xc5?t\x0enY\xf3\xfa\xc7\xbf*E\xa6\x8dF/\xc8\xbf\xbe\xa9\xff\x02\xa1f\xb8\xbf c\xabtvPz\xbfozPK\xd5t\xc5?\xf4\xa6s\xb0\xb7U\xad?`\x9e\xf5\xdb7\x8bz\xbf\x1f\xce\xc2\x95\xb6X\xc5\xbf\xb0\xc6\xe2\x8c\x16\xd7\x94?%\xfd\x8dF\x17\xda\xc4\xbf\x90\x18\xfb\xcb\xc6\x9a\xad\xbf\x00qK\xe7\xb9\x95\xa3\xbfb\x04\x04B\xf5\xb5\xc2\xbf\x0f\x8fF\xfb_\xec\xc8?H_ iR\xce\xb0\xbf$\xb5\xe1*\xc7/\xa7\xbf\x82Y4*\x03y\xbc?\xf8R\x13!\xae\xbc\x9b?\xa3\xfc\x1e\x7f\xa5e\xbb\xbfp\\V\x93\xa4\xb0\x8e\xbf\xbb\xa8\x98<m\xd4\xbb\xbfP\xc2\x96\xbf\x05^\xa6\xbfl\x9c1\x00\x14\xde\xc8\xbf\xb1\x1b\xab\x8f\xdey\xc8?3\xbf%[\xa6\x13\xc9?\x94mKN.)\xc1\xbfw\xae\x02K\r\xca\xc9?\x80\xf4\x8e\x1d\x17\x90t?\xa7t\xfaAH\xe7\xcb\xbf\na\x82\x19\xc2\xb8\xc1\xbf\x1c\xdfi\xba\xc8 \xab?\x00\x94Mb\x04\x04p?HC\xff\x07\\\x93\xa1\xbf\x8c\xed\xf8\x0e\x9eT\xb9\xbfe\xfb\xa1O\xfc\xfb\xc7?\xf2\x04\xdd\xba\xb9\x94\xb4\xbfp\xd0r\x99\x85:\xc6\xbf\xa4\xfb\xce1\x7f-\xae?\xd8\xaah!\xcb\xae\x9d?\xa7\x12+0\xe8\xb2\xc2?\xc9\xcae0C\x8a\xc9?\x9f)\x1b\x99T\x18\xca?\xe2\xe6\xcb\x7f\xe3\x8b\xb5?\xa0\xa6\x11\xd2#D\xc7\xbfP=2\x98L\x05\xcb\xbf\\\x84\xee\xb1\x8bz\xae\xbf\x1bh87\x8c\xc4\xc2?\xe2\xeb\xddlP\xc2\xbb?l\xbbO#\xee\x0c\xb0\xbf\x11\xd6F\x05A!\xc7?\xa9\xafFr\x96\xa6\xc9\xbf\x0ee\xb8\xe1\x84|\xc0\xbf\xc0\xa70\xfewFz?X\x16a\x8f\xacU\xc3\xbf\x00<\xf5\x11\x85\'\x86\xbf\xb3_v\xf4\xf5\x90\xc3?\xfc\x98\xacdv\xd5\xc4\xbf\xb5F\x8b\xe7\xeaY\xc3?\x07\x83Ir\xac\xef\xc4?\x8a\x9cOc\x8a\xdd\xb3?\xf0\xc4\xb5x\x8b8\xc9\xbf\x14\xf5\x0c\x1f\x8dO\xc8\xbf\x14^I\xf3\xfb\xf0\xaf\xbf 3-\x02\xe5\xb5\xa2\xbf\xd8\x88\xb2\'\xa4\xc8\xc3\xbf\xa4" F#\xbf\xa9?\xe4\xd9#D\xd2\xe7\xb2\xbf\xa6\xb6\xa2\n\xf7.\xb5?\xc8\xea\xcd\xd1\xeb\xd2\xb5\xbf\xa0\x1e\xad$\xc7\xa9s?\x8b\xe9\xcf\xcbk\xba\xc6\xbfq-\xb7$\xc0\xcc\xc7?\xa0#?\n\xdb\x99\xba\xbf_\x8f\xf3\xda=\xd3\xc1?\xcc\xb9PY\xec\xe7\xc9\xbf?\xfa\xb5\x0c\x9e{\xc4?"\x0b|\xc0\x10\xf1\xca\xbf\x9d\xcdoi\x87\xcc\xc5?\xccY\xf0\xcf|\xd5\xc2\xbf@m\x08\xa6l2n?\xb3\xf6B\x18\xd2\xf3\xc9\xbfb\xf5\xc7sRp\xc4\xbfn\x8bO+(\x88\xb7\xbf\xc69\xd3\xd9\xae\xe4\xc1\xbf(\xcdR\xb8\\\x8e\x96\xbf\xfbQ\x9fU\x83\x01\xc2?pI*Vg*\xc5\xbf\x1cg!\xa6U\r\xac?h\xb9\xe6~\xbbH\xa0\xbf\xe0p\xba\x90\x03\xaa\xc9\xbf\x95\xbf1D\xf8\xd8\xc3?f\xfeb*\x9b6\xba?\xa2\xaak\xf0V\xdc\xb0?\x1b\x0c\x93Oj\xbf\xc2\xbf\xc2m\x97\\\x98\x0e\xc6\xbf\xd7\t\x916s\xc2\xc7?\xe70\xc1\x85v\x97\xc7?\xe6N\xf1PC\xae\xc0\xbf^p\x9d\xf8\x19\x9c\xb2\xbf\xcb\xb3\xafM\xb6N\xbc\xbf\xe6\x16\xb1\x97YQ\xb2?N\xf7@\xdf@0\xba\xbf\xa2=\x84\xabO\x11\xb3\xbf\xe8\xc4n\x13\x10\x87\x90\xbf\x94\x846\x0e\x80\x8d\xb1\xbfJ\xd26=\xae\x97\xbb?\xdc\xecKa\x10\xd0\xb4\xbf\xaaR@?\x06\xe1\xb2?g3\x98\xb5G!\xc3?o\xd5G\xbaF)\xc6?\xb2\xcc\x84#v\xc8\xb8?\xea\xb8\x07\xc4\xe7U\xc5\xbf\x1d\x11}\x15: \xbe\xbfNE\x8b1\x96\xec\xb4?\x80\xceH\xba\xf7\xa8k\xbfd\r0e\xcfa\xab?\xa4:\xbdg\xb7$\xc4\xbf\x08\x9e7\xfc\xb9N\xc3\xbf\xec\x9a9\x0f\xc9\x1c\xa5?\x94\x92\xd11O\xc3\xc4\xbf\x04\x89\xff4\x94\x91\xa4?>\xce\xa0\x80\xb2\x11\xb7\xbf\x15\r\xc8S\x1ek\xc5?\x08\x18t\xb2\xfa\xe2\x96\xbf\x91O\xfa\x13\xd1\xec\xc3?\x87\xae\x05\xbb08\xcc?dER\xd4n\x94\xc7\xbf\x00Q\xd7\x12\xe6I\xc6\xbf\x00\x0b_\xd2Ky\xb8\xbfY\xb4\x80K\x06\xc6\xca\xbfv9\x17\xc7Y\x0f\xbd\xbfm\x85M\x9a\xff\x1d\xc5?O\x93\x07\xbfb\x85\xc1? S<t\xd5\xdf\xc1\xbf\x0c\xa4\xc4@\xcc\n\xc2\xbf\xfe \t\x1a\x13w\xb3\xbfB\x06\xfcc\x84\x0c\xb2?"\x98\x87\xa2\xd5{\xb7?uX\x9edUu\xcc?PR\xad\x1a\xf7>\x9c\xbf\xfb\x89\x06\xb7\x00\xf5\xc8?(\xf4\x14\xc7\xa2\xd7\xc6\xbf\xef\x88F\xbf\xd1#\xcc\xbf\x15z\xcd\x071\xc4\xc2?\x8cvS1dx\xad?\x89:m\xfe\xa6q\xc9\xbfPH\xc4H,6\xa9\xbf\xdb\x11"\x83\xa0\xe5\xc1?t\x94\x18:ON\xb6\xbf\xcb5\xdc\x02|6\xcb?\xc6\xb2\xb4@\x03\x86\xb5?.>\xae\xb5\xe56\xba?\xfbH\xd2\x83\xd5\x80\xcc?~ed\xd3\xde\xd7\xbe?\xde\xd4\xe1\xdf\x17*\xb5?B\xae9\x17\xb0\x92\xb0?\x01?\x17\xb33\xcc\xc4?~\'V\xe4\x06g\xb2?g_\x93\xaf<\xe6\xcc\xbfV\xe6\xfa\xa5\x7fd\xb5?\x80\x1f\xdd\x06\xeb\xb3\x85\xbft|\xf1\xc4eg\xa7?\x00\xfa\xaau@Pi\xbf\xa9x\xdcp\xbf\xea\xcb\xbf\xa5c\x85\x7f\x13w\xc6?\xe9;E\xcc\x85A\xc8?\xc0k\xf0g\xe0\x87\x90\xbf\x0b\x83\x7f\xb1\xd5\\\xc6?\x930}\xccxl\xc7?\xf1\xf8+H>\xfa\xc1?c\xec\xd6E7]\xcc?pA\xde\xea\x05\xed\xc3\xbfH3\xf3\x1ct\xfb\x9c\xbf C\xbckd\xc7\xa5\xbf\x89\xc6\xbc9\xe4@\xc8?\xee\xd7\x8c\x08\xab\xe2\xc2\xbf\x0e\x85\xb4\xc5\xf7\xa8\xbf?\xd8\xff]\xbdG\x8d\xc3\xbf\xee{\x07\x17\x02\x1e\xbd?F;x\xd1\r\x95\xba?\xdc\xcf\x01*\x17)\xa3?\xa7R\xa1H\xa5\xd4\xbc\xbf\x93\x13k\xff0W\xc0?k\xf5\x87\xb2\xce\xaf\xc5?\xaa\xcf\x88\xdf\xe8\x7f\xcb\xbf\xd9\xe5\x88$\xc4\x80\xc1?Tt\xc5@\xf1\xfe\xa3\xbf@\xff7DS^q?\xf1H\xf9\x96\xb3a\xcb\xbf\xfb\xe1\xf9\x84\xca\xc4\xc7\xbfj\xd3~x\xb5N\xb7\xbfh\xa4[\xcb\x84F\x9d?\xef\x176\xbas~\xc5?E\x02\x89\xd1\xd0Z\xc5?\xd51\xfa`\xe3\xc7\xca?\x15\x9a\xa9\xb8\x89\xd1\xcc\xbf\x18\x1f\n\x1e\x04j\xa4\xbfmG\x16T\xfe\x9b\xcc?h\xc3\x840\xf3\xa4\x91?j\xf2\xac\x89\x17e\xb6\xbfkL\xd9de\x8c\xc2?\xe0\xd9\xd6\xb1\x83\x1cu\xbf\x000\rkX\x85\x95\xbf^\x8c\n\xaf\xea\xa7\xb6?\x85\x17F\xdac"\xc7\xbf\x80C\x83# \xdd\xaa\xbf\xd48\x88\x9c\xa0\x9a\xa5?\x92\xf9yk*\xee\xb6?\xe2)\xe9\xef\x805\xcb\xbf\xc2\xa8\xe9\x02\xdc>\xc8\xbf\xa8\xf1\x1b\x85\r\x90\xbd\xbf`\xa5\x1a\xbb\xf3\x81\x82\xbfP\xa6\x0e\xfc\xdf0\x87?\xf4\xb1\xd2Gh\xed\xa8\xbfj#|\xef\xf4!\xca\xbf\xf0(\xa5~\xc5\xb0\x84?D\xd2\xc3\x9eV\xd7\xc9\xbf\xf8\x07\xd7(4\xa3\xb3\xbf4\xd9O,\'\xee\xad?\x96\x10\xfe\xdc\xf3\xee\xb5\xbf\xf3\n\xdd\xc60y\xc8\xbf\x98\xe9\xb7\xfb\xab\xaa\x90?\xb2\xfdZv\xa0\x80\xc4\xbf9*\xc9\xc6a]\xc8?\xc0\xaa\x10\xc0{\xbd\xb6\xbf\x14\xd4\n\xae[\xd9\xa2\xbf\x04\x98\xe7o\x99\xf4\xa8?\xcc\xd6\xc3\xea\xed\xcb\xa4?=EoM\xfb\n\xcd?\xf1E\xa3d\x07\x9e\xcc\xbf(\x983\xac!\x86\xa7\xbf\xb6\x99\xd0\x08\xc3\x08\xc5\xbf\x8bf\xad\xbaE\x8d\xc9?AjP\x08\x82F\xcb?\xcc\xfe\xc5.E\x8a\xb3\xbf\xdc"\xfc\x95\x0b\x97\xab?/z\xa4\x83>Q\xc5\xbf/\xbf\x9a\xe5\x1fa\xc6?4|\xed\x19\xd1_\xa0\xbf`\x85W \n\xe9\x82?\xfa\x03l"\xea\xc9\xc4\xbfwh\n\xde\xd6\xe4\xc4?H\x84\xeb\xfb\xe5\x95\x94?\x0e\x0ew|\xab\xc2\xbb?\xf8\xe9WzT}\x9f\xbf\x80\xcc\xec\x05\x0f\xbb\x90?\xf7\xbd\xf4\t\x8b\'\xc8\xbfx\xde\x98\x940\x97\x9a?L\x01\x1b\xebt\x82\xac\xbf\x7f\x14\'\xeb\x88\x87\xc7?\x8c7b\x8c\x9f/\xac?\xcc4\x1f\x87Gl\xba\xbf\xfb\xcd\xd2Yw\x89\xc4\xbf\xd2f\xb4>i\xf1\xb5?\x9e\xf7\xf0\xae\x86\xba\xbe?J:hP\\\xa4\xb7\xbfn\xe7\xeaaU!\xb5?\xf7*\xb9N\x1f\x8f\xcc?\x80*\xe1\xf6K\xf0\x8d\xbf5\xe3\xb5\xaa*\x9f\xbf\xbf\xd8E\xec\xbf\xc8\xfc\xb6\xbf\xeeq\x93|\xb7\x13\xca\xbfuz\x9b\'\x84\x89\xc6?TE\xfcX\xf1\xe1\xb2\xbf_\x92\xf6\xdb\xa2\xa9\xc0?S\xd4\x9atb\xc3\xc1?\xa5\xf9\xdb\'\x80V\xc3?\xa3,\xb2\x85\xcf\xe3\xbc\xbf>\xf7\x14\xd3TS\xcb\xbf\x07\xe1n\xba@\xe2\xc7?\xf8\xf1\x1b^\x83\x8a\xb0\xbf\x95\x0c#\xc5\xe2\xce\xc1?k\xe5Y\x07,\xf9\xcc?\xc7?\xff\xb3\xa8\x1c\xc8\xbf\xd7v\x94\x95\xa2\x8f\xc1?h0\xdfa\x83B\x9b\xbf\x87\xa6\x85z\x85\xa0\xc6\xbfbo1\x1e&\x89\xbc?\xc5:\xa3\xc2K\x8f\xc5?\x10\xa9$-\xbc*\xcb\xbfy\x0b\xb0\x1fI\x90\xc6?D)\x04`\xe2\xf6\xa5\xbf\x12H\xa1\xd8\xcb\x14\xb4\xbfFq\x90\x8e\x80\xf6\xcb\xbf^\xe8\x00;\xe3\x93\xbe\xbf\xe0\xb3{<L\xcb\x95?\xb7:\x17;\xc7\xeb\xcb\xbf\x08\x96\xd5\xc8_!\x93?\xdc\xce1W#+\xa9\xbf2$\xea\xeb\xe2\x1b\xc3\xbf\xe0\x021\x00\x90\xe8\xb5\xbf\x8e?\xee\x83\x1a\xf3\xb4? 9\xbd\xb5\x1c\x9c\xc5\xbf\x87\x15+\x1e\x14\xb3\xca\xbf \x84\xf5\xb0\x89\xc7q\xbf4\xde\x90{\xce\xe9\xa4\xbf\x9c\x19D\xd4\xae\xfc\xb9\xbf\xf6\x98R0\x02\x10\xb2?D\xb5\x80\x94\xec\xe3\xc5\xbf\x1b\xf1d\xa5\xa7\xf0\xc9\xbf\x95FVurv\xc6?\\\xf66\xdeu\xdc\xc6\xbf)\xe5\x86\xa4\xb2+\xc6\xbf\n\xef\xdelt\x88\xca\xbf\x81\xf6]\xae\xec\xba\xca?\x98,\xecq\xe6a\x93?\xb8W\x9c\xe4\x86\x9f\xb4\xbf\x00m\x9e8i3\xbc\xbf\xce<d\xc8\x8e\xc4\xb1?\x90\x81*\xff\xf5\x0e\x91?B\xd1o}\x15]\xb2\xbf{\x08b\xdb\x85\x86\xc6\xbf~\x14\x19Qi\x9e\xc3\xbf\xc0A\x17/\xeb\x84p\xbf&\xc3\xe9\xeb\xd0*\xb1?=\xdf\x12\xf0\xae\x12\xc9?\xa0\x08\x93\xe8\xfd\x8c\xa0\xbf\x15\xac\xc0k\x00<\xca\xbf\xe7#\\\xe0\x83\xa5\xc2\xbf\x04n\'\x88\xad\x8f\xaf\xbf\x82\x0foW\xba\xb9\xbe\xbfB\xf7$a\xa2\xde\xb7\xbf@\xcaC\xcb\x1f\xdbk?\x19\xaf\xa6\x84\xf8\xc1\xc1?\x9e\xfd\x1c\xc8\x15,\xcd\xbf\x02\x02\xeb\xf5\xa2\xbf\xb0?\x00\x1a2\x17\xa0T2\xbf\xcb\xc8\x8b\xaa\x93\x9c\xc6\xbfv:\x1dR\xfb\xae\xbe\xbf\xb2D\xd9>\xab\xa1\xb7?g\xd5\xfe|\xea\x10\xc7?\xe12\xe2\xb2%\x80\xc7?$5\xf8=\xe2\xc8\xb0\xbf<\xe3\xe7\xce[\xf9\xa6?\xa8\xc6n\x02\xbb\xbc\xa6\xbf\xe4y\x86\xad\x9b\x08\xa0\xbf\x1d\xff0u\x14\xf1\xc2\xbf\xb83\xa1\xaa\xe60\x96?>\xf4B\xd1\xb27\xbc\xbf\xaap\r;\xd8\xc4\xb9?\xb9E\n\xb7\xc2\x84\xcb?\xa4\xa0\xef\xfai\x99\xb9\xbf\x80<\xc1\xd5\xfa\x05\x8a?\xb2E\xa0\xc0\xfag\xb9?6\xf0.\xc0\x1b\xf4\xb9?\x16\x12\x0e^\x92\xeb\xb1?\xc1@(\xf1M\x81\xbb\xbfH\xba\rM\xbb,\x9a?6\tz\xdc\xaa\x1a\xb9?\x00D\xb7\xce~\xc2)\xbfQ\x86/\x00 \xd8\xc7?v/;\x81\xb75\xbd?\x0f\\\xd0B42\xc9?x\xe9\xb5x|\xde\x9e?\xbc\xe3|\x9f+\xe2\xc8\xbf\xdb\x9a\x86A\xc6\x95\xc6?!<\xda\x9euS\xc5?G\xb1\x13j. \xc1\xbf\x0czhd\x8f\xcf\xbf\xbf\x98\xcd\x047u\xee\x98?zT\x89\x04\xda1\xca\xbf}\x81C\x1c\xc2M\xc6\xbf0\x1d\xa2\x14\\@\xb2\xbf\xb0\xc8r[p\xbf\x89?#2^\xf3\xb2+\xca?\xac\xc7\xd0\xc3\r%\xa7?\xc0\xe2pTX\t\xc8\xbf\xc4\x80Lk\xc9q\xa6?TC\x97\xcd\xc5\xa1\xa7?i\xdet\xac\xa3P\xc7?\xebZ\xa5\x1d\x0ee\xbc\xbf@\xb3\x98\x8aa\x9f\x8b?\x84\t^"\x15\xea\xb7\xbf.\xedY>0\xd2\xc2\xbfBM\xc0\xae\xc3\xe7\xb9?r\xc1B%-\x8e\xbb?\x01\'\x9a\xaa\xec+\xc3?\xbc\xc5\xc3\xf3\x14O\xbf\xbf\xf0\xbe\x0b\t7\xec\x82?8t\xa5\xce\xac\x1f\x97\xbf\x9d\xb1]\xd7;\xb7\xc4?\x8c7\x0c<N%\xaa?V\x9e\x9dL$=\xb2\xbf\x9d\xc5]\xcdf\x05\xca?\xf8\xb9\xb9\x06\x1b\x97\x90?\xbdT\x1ac\x9bx\xc3?\x0e>i\xc7\n\xe1\xc4\xbf\x04\x1b\xc4\x96iL\xb2\xbf\x92\xd8$\xdc-_\xbb?Hu>\xb5\x0c\xd8\x9d?\xcdNV\x14I\xa4\xcb?jb\xf3\x04\x11\x11\xc9\xbf\xfb\xd9\xb56\xb0\xa3\xcc\xbfU\x04!]\x91\xa3\xca?p|\xae\xa3\xb8\xc5\xb4\xbf\x03\xc8\x08\xc2\x9d\x0f\xc8\xbf\x03c\\\x7f\xcfK\xc6\xbf\x87S\x94U{\xd6\xc4?\xa8\x0cy\xd3}K\x9b\xbf\xf8\xad5W\x88\x9a\xb7\xbf\xe4y~v\xd5x\xb1\xbf%\xf7^\xf7\x8b\xa4\xc4?\xf0\x87\x1ay\xca.\x9e\xbf\xe8 \xc6\x0c\xebU\x95\xbf\x02#\xadS\xb5I\xcb\xbf\xdc\xd3\xa5\xf50K\xb9\xbfnH\xf5\xc5\xee\xab\xb8\xbf\xdak\xb9\xc0\xe8\x85\xb1?i5\x82|\xaf\xc9\xc8?\xa2\xd0\x87\x0b\xfe*\xbb?\x8e\xb4i#*\xcd\xbe?\x84\x10m\xc0qn\xa2\xbf\xc5&\xc8\xaa.\x18\xbe\xbf^~\x83\t\xcc!\xbb\xbf\xfe\xa3\xc8\xba\xef\xbf\xb7\xbf6#\x0e\x9b\x0b\xac\xbe?\xe0z\xbc)\x11O\xa4\xbf\x98\xa7\x8bCC&\x9c?\xcb4\xcbN\xb1\xf0\xc6?&\xf3LNy\x0c\xb9\xbf\xb5\xf1\xe7%_\xda\xca?qS\x83\x93R$\xcb?\x80\xdc/Wk\xdd\x9f\xbf$\xcam5)\xa8\xc7\xbf@\xa8\xe8\xa4zMa?\x10\xaaku\xa7(\x9f\xbf\x18B\xca0\xcb\xd7\x9d\xbf\xafI\x03B\xba\xad\xc7\xbf\x9d\xa7F\xb8\x85h\xc0?\x16\\\x9454\x98\xbd?<\x9b\xe6\xc9)a\xac\xbf\xf2)_\x15\xd8\x8f\xca\xbf\xb0a\x0c\xb1\x1a`\x8b\xbf\x1aZ.\xb5o\xb8\xcc\xbf;_!\rR\x8e\xc0\xbfR\xc8>\xbe\xc0\xbc\xba?\xe0\x04\xcd\x86 <{?\xf1cUp|\x89\xc8?A\x13\x17\xaa\xb5l\xc2\xbf\x80\xcf\xe2\x8eu\x18a?\xdd \x0bn7\x10\xc5?Y$2 \x07\x9e\xc9?i\xf5\xd6\xdd\xdeD\xc9\xbf\xd3\xb3twWm\xc3?\xfc"[w\xad\\\xad?D\x08\xad\x87\xfe\xf5\xb5\xbf\xa6=\xba\xb5\xd9B\xcb\xbf$O\xe8\xf7H\xac\xa3?\xf4\xf7\x063q\xb0\xc8\xbf\xa2\xcc\xbcH\xf9X\xb2?E:\xef\xa85^\xc6?=\xba>\x95\xf1\xfd\xcc?\x06a\x8f\x93\xfd\n\xc7\xbfh{\xc0#\x827\xb6\xbf\x8b\xb1\xeegj\xe1\xc4?=T\xdc\x96\xab\x94\xc5?\xf2/\x1f\xfb\xcb6\xb8\xbfA\xab\x92\xa0\x94\xc5\xc0?\\\x06\xae\x97\xdbA\xae?(m\xf5N\xce\xd0\xa9\xbf\xbatR\xc9\xa3x\xb9\xbf\xf4\xb0Di6b\xc0\xbfl\xdd\xdb\xa5W\xcd\xa4?}S\xdb\xb2\x1a[\xbf\xbf\xb8\xc7\xa77\xb1\x8e\x94?\xa3\xaa\xc8j\xa5!\xcb\xbf\xe9g\xae\xc9Uo\xcb?\xa2Z\xf7(&\x1c\xcd\xbf\xd6\xf4\x9eE1\xe5\xc7\xbf7\\\x99k\x04,\xca?yG\xf8\xd2\xf2\xaf\xc4?\xb8\xc3\xee\xc3I\x85\x91?t\xed\r\x9a\x90\x8c\xae?1\xce\x9c"\xa1\x7f\xc8?\xa7\x90\xdc9\x97>\xc3?\x14k\x87&\xfbu\xaa?I\x0f\xc6\x08;\xf6\xc6\xbfa\x07\x0b1r\xfa\xc8? \n\xfd\x98dA\xc6\xbf\xa0\xc9l\x01\x10\xb7\xc3\xbf\x9e\xc3\xfeR\xc6W\xb2\xbfM\xb4\x1c3\xcc\xbe\xcc\xbf"[\xbd\x04%\xb3\xb1?\\\xe3\xfc\xe0\x1d\x19\xc4\xbf\xe4\x18c\xf9\x99,\xab?\xd0u&\x1a\x1b\xde\x94?\x8b~\x1az\xb9\xde\xbc\xbf+\n\xdfnN\xc3\xc5\xbf\xef:\x82\x9c\nH\xc2?\x00\xbb\xbfA{\xb0\xab\xbf\\\xc6\xb4\xdc\x87\xac\xbe\xbf\xde\xb3\'Z\x81A\xb2?\xe8\xdd\x95\x05\x1a\x7f\x9c?LM\xde\xff\x80\xdf\xa7\xbfW\x80\x1c\x958\xa6\xc5?\xce\xbb\xbcW=5\xb9?\x1e\x112\x0f\xf4\xbb\xb7\xbf\xee:\xca\xde\x8f\x85\xc3\xbf\xe4\x15\x17\xc5\x0e\xe2\xa2?L\x88@]\xba\x9a\xa1\xbfAJ\x99\xca\x1dI\xc8?\xc2\x0f\x8f<\xe9\xf5\xbd?\x01\x9d]\xd79\xb5\xcc?\xf4D\xac\x7fSU\xa1?\x0f\x8c\x89\x8a\x11\x91\xc4\xbfR:O\xf4A$\xb4?\x8c\xe5\xc7)\x07/\xab\xbfl\x96\x1c\x9e\x81\x84\xa2?\xb4i\xc5\x84\x82\xad\xa2?\xda<"&\xc1|\xc4\xbfc\xee\x88\x18\xdc\x04\xc0?3\xde\xd9;D\x9d\xc4?w\xbfK\xe78>\xcb?xEu\xa1\xad\xd4\xb9\xbf\xac\xd7\x97$\xfe\x85\xaa?\x1c\xef\xc1X\xb8<\xa1\xbf\xcdB\xbfz\xa8\x89\xc8?\x1d\xd2L\xf0\xb7\x08\xc3?\xa8\xcc-h\x97\xdb\x98?4\x92\xe8\xe1(\x13\xa8?\x02p\xce\xc8\x03*\xc1\xbf\x10\xb0\xc1\xf1\xb2Y\x9e\xbf\xe0\xfb\x9c\xa9^\xb2\x8b\xbf\xae_V_\x86\x9f\xc3\xbf]\x040\x9c\xbbk\xc5\xbfP\xc1\xcc\xd1\xbd\xb6\x8c\xbfEa\xf7\x1e:\x14\xcb?`j\xd8c\x14A\xb1\xbf\x8b\xcco\xd9Dn\xcc?\x0c\x0c\xc1L\xac\xc0\xac?X\x13\xf1\xaf\x7f\xe7\x92?\x91\x0c\x87:I\x13\xc4?\x18j\nxJ\xa1\x9b?\xa1\t\xe9z\xed\xb0\xcb\xbf\xdc\\\xec\x1b\x04\x99\xa7?V\x94\x84\xe7\xd6\xad\xc4\xbfXE\xb8\xf7\xfb\x8f\xc5\xbf\xd2\xad\xf8\x084*\xb1?\xc4\x85\x1b7\xf2\xd5\xc3\xbf\x99\xb9\x9c\xbf\x83\xb8\xc3\xbf\x18\xc3\x91P$\xbc\x9d?*\xa1\x98\xd5\x06\xac\xbe\xbf\x00\xda\xb6\xb9\xbf\x94\xc9\xbf\xe1\xdej\x95\xfd\xf3\xc7?(g\xe6(\xac\xa9\x96?\xe2\xbe7\xfa8\xca\xb6\xbfIL<\x02;\xd6\xcb\xbfe\xf0%5\xaaR\xc3?\xe7M\x00\x80E+\xc6?t\xbey-\xf1\xe1\xad?\xc8\x03\xbd\xa5\r\xd9\xae\xbf\xb0\xb5\x1a\xda\r\xb4\x93?\xc4\x89O\xaa\t-\xc5\xbf`\xe0\x7f#\xc79\x85?\xc8\xdbo\x13\xb5\x8c\xc6\xbf\xbcB\xccZV\n\xcd\xbf\x14i\xfe\xa4\xe9.\xa1?H\x82+T\x16\xef\x92\xbf\x01\xcfq\xfbp^\xc0\xbfg\x94\xc7\x02&\x88\xc7?\x00\xec\xa2qn\xd3\x84\xbf\x12\xe3\x07\t\xc9\x85\xb5?\xa0?0\xc3\x0es\xcb\xbf6\x82\xb4Gz|\xb7\xbf8\x12\x11\xf5\xb9\x89\xc8\xbf`\x0f\x8a\xee9u\xb7\xbf\xe4B+X`\r\xa2?\x80\xd8\xad\x9a?\x00i?\xbd\xce\x16[\xf52\xc9?\xcb\xe1\xa9\xbb\xd5\t\xc8?E\xdf\xc4\xf3y8\xc2\xbf \xda\x95\xfd[!\xa3\xbf\xe7\xd1\x9a\xf9\xe1$\xc7?S\x1c>\xc2\xca\\\xc8?\xf0\xa1\xbdR\xcf\xb5\x8e?\xc3v\xd3\x08\xd3\xdc\xca?\xe8Y\x8f\xe1\xdbh\x92\xbf%\xcc{$\xb2\xda\xca?\x9b\x93\x8aZ\xcb\xb7\xc6?\xf2-L\x96\x19\xb1\xb9\xbf7h\rG\x95`\xc9\xbf\x8d\x1e\x94\xf8(0\xc2\xbft\xdf\xc1|\xd4\x9f\xa7\xbf\xec\x9bs\x925\xb1\xaa\xbf\xea\x9c\xba\xe4\x85I\xb4?\xc4\x83\xcc\x06\xa4\x11\xa7\xbfF\x96q\xbe\x18\x8f\xb5\xbfn38M\x8c\xaf\xc4\xbfAyY\xaa\x8b\xa6\xc7?\xa8\xa64\xfdR\x9e\xaf\xbf\xb4`\x9f\xc16\xd3\xc2\xbfpF3\x0fo\x9b\x93?n|\tU\xeb\xf2\xbf\xbf!\xfb\xc1\xdb\x12\xc8\xca?~\x03\xf8\x9b\xf2\x1b\xc7\xbf\x00\xcf\xa4\xde\x98\x05E?\xd46bMh\xea\xa0?H\x1b@\xf1\xe6N\xbb\xbf\xfaC{\xc6\xe9\xbe\xb9?\xc1\xcc!n)2\xc9?\x8b\x86\xa0Bz1\xbc\xbf|\xf2\x80\xdc\x94\xa2\xa3?,\xa7w\x16\xa3\x13\xa6?\x04OtWQ\x07\x
gitextract_31qnb1wz/
├── .gitignore
├── README.md
├── ntm/
│ ├── __init__.py
│ ├── addressing.py
│ ├── memory.py
│ ├── new_cos.py
│ ├── newmem.py
│ └── ntm.py
├── run_model.py
├── saved_models/
│ ├── associative_recall.pkl
│ ├── copy.pkl
│ ├── ngrams.pkl
│ ├── priority_sort.pkl
│ └── repeat_copy.pkl
└── util/
├── __init__.py
├── optimizers.py
├── sequences.py
└── util.py
SYMBOL INDEX (45 symbols across 8 files)
FILE: ntm/addressing.py
function cosine_sim (line 7) | def cosine_sim(a_t, b_t):
function content_focus (line 22) | def content_focus(k_t, b_t, mem):
function shift (line 52) | def shift(w_gt, s_t):
function location_focus (line 89) | def location_focus(g_t, s_t, gamma_t, w_old, w_content):
function create_weights (line 122) | def create_weights(k_t, b_t, g_t, s_t, gamma_t, w_old, mem):
FILE: ntm/memory.py
function read (line 8) | def read(mem, weight_vector):
function write (line 19) | def write(mem, w_t, e_t, a_t):
FILE: ntm/new_cos.py
function cosine_sim (line 18) | def cosine_sim(a_t, b_t):
FILE: ntm/newmem.py
function softmax_0 (line 14) | def softmax_0(Ks):
FILE: ntm/ntm.py
class NTM (line 13) | class NTM(object):
method __init__ (line 18) | def __init__(self, in_size, out_size, hidden_size, N, M, vec_size):
method lossFun (line 89) | def lossFun(self, inputs, targets, manual_grad=False):
FILE: util/optimizers.py
function l2 (line 6) | def l2(x):
class RMSProp (line 12) | class RMSProp(object):
method __init__ (line 18) | def __init__(self, W, learning_rate=10e-5, decay=0.95, blend=0.95):
method update_weights (line 45) | def update_weights(self, params, dparams):
FILE: util/sequences.py
function ngram_table (line 7) | def ngram_table(bits):
function sample_ngram (line 20) | def sample_ngram(table, context, n):
function copy_sequence (line 31) | def copy_sequence(seq_len, vec_size):
function easy_copy (line 69) | def easy_copy(seq_len, vec_size):
function repeat_copy (line 84) | def repeat_copy(seq_len, vec_size, repeats):
function associative_recall (line 132) | def associative_recall(seq_len, vec_size, item_size):
function priority_sort (line 182) | def priority_sort(seq_len, vec_size):
function ngrams (line 224) | def ngrams(seq_len, n):
class SequenceGen (line 248) | class SequenceGen(object):
method __init__ (line 253) | def __init__(self, sequenceType, vec_size, hi, lo):
FILE: util/util.py
function gradCheck (line 10) | def gradCheck(model, deltas, inputs, targets, epsilon, tolerance):
function getDiffs (line 35) | def getDiffs(model, deltas, inputs, targets, epsilon):
function rando (line 73) | def rando(out_size,in_size):
function sigmoid (line 80) | def sigmoid(ys):
function softmax (line 87) | def softmax(xs):
function softplus (line 96) | def softplus(xs):
function serialize (line 103) | def serialize(filename, data):
function deserialize (line 112) | def deserialize(filename):
function toArray (line 122) | def toArray(dic,h,w):
function visualize (line 135) | def visualize(inputs, outputs, reads, writes, adds, erases):
function unwrap (line 157) | def unwrap(x):
function sigmoid_prime (line 185) | def sigmoid_prime(z):
function tanh_prime (line 189) | def tanh_prime(z):
function compare_deltas (line 193) | def compare_deltas(baseline=None, candidate=None, abs_tol=1e-5, rel_tol=...
function cosine_sim (line 208) | def cosine_sim(a_t, b_t):
function dKdu (line 223) | def dKdu(u, v):
function softmax_grads (line 237) | def softmax_grads(Ks, beta, i, j):
function beta_grads (line 248) | def beta_grads(Ks, beta, i):
function K_focus (line 259) | def K_focus(Ks, b_t):
Condensed preview — 18 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,932K chars).
[
{
"path": ".gitignore",
"chars": 109,
"preview": "*.pyc\n*.swp\nout*\nlog\n*.pkl\n!copy.pkl\n!repeat_copy.pkl\n!priority_sort.pkl\n!ngrams.pkl\n!associative_recall.pkl\n"
},
{
"path": "README.md",
"chars": 29347,
"preview": "# Differentiable Memory\n\nReference implementations of various differentiable memory schemes for neural networks, in pure"
},
{
"path": "ntm/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "ntm/addressing.py",
"chars": 3941,
"preview": "\"\"\"\nThis module implements addressing as described in the paper.\nIt's basically a python version of figure 2.\n\"\"\"\nimport"
},
{
"path": "ntm/memory.py",
"chars": 1878,
"preview": "\"\"\"\nImplements functions for reading and writing from and to the memory bank\nvia weight vectors as in section 3.\n\"\"\"\n\nim"
},
{
"path": "ntm/new_cos.py",
"chars": 1647,
"preview": "import math\nimport autograd.numpy as np\nfrom autograd import grad\nimport memory\nimport addressing\nimport sys\n\n\"\"\"\nTestin"
},
{
"path": "ntm/newmem.py",
"chars": 984,
"preview": "import math\nimport autograd.numpy as np\nfrom autograd import grad\nimport memory\nimport addressing\nimport sys\n\n\"\"\"\nTestin"
},
{
"path": "ntm/ntm.py",
"chars": 20418,
"preview": "\"\"\"\nThis module implements a neural turing machine.\n\"\"\"\nimport math\nimport autograd.numpy as np\nfrom autograd import gra"
},
{
"path": "run_model.py",
"chars": 5088,
"preview": "#!/usr/bin/env python\n\nimport argparse\nimport autograd.numpy as np\nfrom util.sequences import SequenceGen\nfrom ntm.ntm i"
},
{
"path": "saved_models/associative_recall.pkl",
"chars": 692859,
"preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI2\nsS'M'\np7\nI15\nsS'N'\np8\nI"
},
{
"path": "saved_models/copy.pkl",
"chars": 381002,
"preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI1\nsS'M'\np7\nI7\nsS'N'\np8\nI1"
},
{
"path": "saved_models/ngrams.pkl",
"chars": 367034,
"preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI1\nsS'M'\np7\nI7\nsS'N'\np8\nI1"
},
{
"path": "saved_models/priority_sort.pkl",
"chars": 501118,
"preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI2\nsS'M'\np7\nI7\nsS'N'\np8\nI1"
},
{
"path": "saved_models/repeat_copy.pkl",
"chars": 381403,
"preview": "ccopy_reg\n_reconstructor\np0\n(cntm.ntm\nNTM\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'heads'\np6\nI1\nsS'M'\np7\nI7\nsS'N'\np8\nI5"
},
{
"path": "util/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "util/optimizers.py",
"chars": 1995,
"preview": "\"\"\"\nThis module implements gradient-based optimizers.\n\"\"\"\nimport autograd.numpy as np\n\ndef l2(x):\n \"\"\"\n Hacky l2-norm "
},
{
"path": "util/sequences.py",
"chars": 8739,
"preview": "\"\"\"\nGenerate random instances for each of the 5 tasks from the paper.\n\"\"\"\nimport autograd.numpy as np\nimport itertools\n\n"
},
{
"path": "util/util.py",
"chars": 7230,
"preview": "\"\"\"\nMiscellaneous utility functions.\n\nIncludes finite-difference based gradient checking, some nonlinearities,\nvisualiza"
}
]
About this extraction
This page contains the full source code of the DoctorTeeth/diffmem GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 18 files (2.3 MB), approximately 602.0k tokens, and a symbol index with 45 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.