Showing preview only (4,458K chars total). Download the full file or copy to clipboard to get everything.
Repository: src-d/go-license-detector
Branch: master
Commit: ee888f4c5e68
Files: 52
Total size: 4.2 MB
Directory structure:
gitextract_7ctmwgwc/
├── .github/
│ └── dco.yml
├── .gitignore
├── .travis.yml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── DCO
├── FAILURES.md
├── LICENSE.md
├── Makefile
├── README.md
├── appveyor.yml
├── cmd/
│ └── license-detector/
│ ├── main.go
│ └── main_test.go
├── go.mod
└── licensedb/
├── analysis.go
├── api/
│ └── api.go
├── dataset_test.go
├── filer/
│ ├── filer.go
│ ├── filer_test.go
│ └── test_data/
│ ├── 334a82b19a7c893d3807ea52ba35ff2170c296cc.siva
│ ├── git/
│ │ ├── COMMIT_EDITMSG
│ │ ├── HEAD
│ │ ├── config
│ │ ├── description
│ │ ├── info/
│ │ │ └── exclude
│ │ ├── logs/
│ │ │ ├── HEAD
│ │ │ └── refs/
│ │ │ └── heads/
│ │ │ └── master
│ │ ├── objects/
│ │ │ ├── 33/
│ │ │ │ └── 4a82b19a7c893d3807ea52ba35ff2170c296cc
│ │ │ ├── 8a/
│ │ │ │ └── 9b00e3e4f0af606178510c19f40c5a77adb881
│ │ │ ├── cc/
│ │ │ │ └── 628ccd10742baea8241c5924df992b5c019f71
│ │ │ ├── ce/
│ │ │ │ └── 013625030ba8dba906f756967f9e9ca394464a
│ │ │ └── f7/
│ │ │ └── 922e986704f99de62ca715d4794324a32e9af2
│ │ └── refs/
│ │ └── heads/
│ │ └── master
│ └── local/
│ ├── one
│ └── two/
│ └── three
├── internal/
│ ├── assets/
│ │ ├── bindata.go
│ │ ├── extract_names.go
│ │ └── extract_urls.go
│ ├── db.go
│ ├── fastlog/
│ │ ├── fastlog.go
│ │ └── fastlog_test.go
│ ├── investigation.go
│ ├── nlp.go
│ ├── nlp_test.go
│ ├── normalize/
│ │ ├── normalize.go
│ │ └── normalize_test.go
│ ├── processors/
│ │ ├── html2text.go
│ │ ├── html2text_test.go
│ │ └── markup.go
│ └── wmh/
│ ├── wmh.go
│ └── wmh_test.go
└── licensedb.go
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/dco.yml
================================================
require:
members: false
================================================
FILE: .gitignore
================================================
.idea
.vscode
# Binaries for programs and plugins
*.exe
*.dll
*.so
*.dylib
# Test binary, build with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736
.glide/
go.sum
================================================
FILE: .travis.yml
================================================
dist: trusty
language: go
go_import_path: gopkg.in/src-d/go-license-detector.v3
go:
- 1.11.x
- 1.12.x
- 1.13.x
matrix:
fast_finish: true
before_install:
- go get -v golang.org/x/lint/golint
- go get -v github.com/haya14busa/goverage
install:
- export GO111MODULE=on
- make
- go mod vendor
- go build -v gopkg.in/src-d/go-license-detector.v3/cmd/license-detector
script:
- go vet ./...
- lint_warns=$(golint ./... | grep -v vendor/) || true
- if [ ! -z "$lint_warns" ]; then echo "$lint_warns"; exit 1; fi
- goverage -coverprofile=coverage.txt -covermode=count gopkg.in/src-d/go-license-detector.v3/...
- sed -i '/assets/d' coverage.txt
after_success:
- bash <(curl -s https://codecov.io/bash)
jobs:
include:
- stage: deploy
os: osx
go: 1.13.x
after_success:
- gzip -S .darwin_amd64.gz license-detector
script: skip
deploy:
provider: releases
api_key:
secure: $GITHUB_TOKEN
file: "license-detector.darwin_amd64.gz"
skip_cleanup: true
on:
tags: true
- stage: deploy
os: linux
go: 1.13.x
script: skip
after_success:
- gzip -S .linux_amd64.gz license-detector
deploy:
provider: releases
api_key:
secure: $GITHUB_TOKEN
file: "license-detector.linux_amd64.gz"
skip_cleanup: true
on:
tags: true
notifications:
email: false
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance, race,
religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at conduct@sourced.tech. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing Guidelines
go-license-detector project is [Apache licensed](LICENSE.md) and accepts
contributions via GitHub pull requests. This document outlines some of the
conventions on development workflow, commit message formatting, contact points,
and other resources to make it easier to get your contribution accepted.
## Certificate of Origin
By contributing to this project you agree to the [Developer Certificate of
Origin (DCO)](DCO). This document was created by the Linux Kernel community and is a
simple statement that you, as a contributor, have the legal right to make the
contribution.
In order to show your agreement with the DCO you should include at the end of commit message,
the following line: `Signed-off-by: John Doe <john.doe@example.com>`, using your real name.
This can be done easily using the [`-s`](https://github.com/git/git/blob/b2c150d3aa82f6583b9aadfecc5f8fa1c74aca09/Documentation/git-commit.txt#L154-L161) flag on the `git commit`.
## Support Channels
The official support channels, for both users and contributors, are:
- GitHub [issues](https://github.com/src-d/go-license-detector/issues)*
- Slack: #machine-learning room in the [source{d} Slack](https://join.slack.com/t/sourced-community/shared_invite/enQtMjc4Njk5MzEyNzM2LTFjNzY4NjEwZGEwMzRiNTM4MzRlMzQ4MmIzZjkwZmZlM2NjODUxZmJjNDI1OTcxNDAyMmZlNmFjODZlNTg0YWM)
*Before opening a new issue or submitting a new pull request, it's helpful to
search the project - it's likely that another user has already reported the
issue you're facing, or it's a known issue that we're already aware of.
## How to Contribute
Pull Requests (PRs) are the main and exclusive way to contribute to the official go-license-detector project.
In order for a PR to be accepted it needs to pass a list of requirements:
- All PRs must be written in idiomatic Go, formatted according to [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports), and without any warnings from [go lint](https://github.com/golang/lint) nor [go vet](https://golang.org/cmd/vet/).
- New features should be generally covered with tests.
- The test suite must pass.
- All PRs have to pass the personal evaluation of at least one of the [maintainers](MAINTAINERS.md).
### Format of the commit message
The commit summary must start with a capital letter and with a verb in present tense. No dot in the end.
```
Add a feature
Remove unused code
Fix a bug
```
Every commit details should describe what was changed, under which context and, if applicable, the GitHub issue it relates to.
================================================
FILE: DCO
================================================
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
================================================
FILE: FAILURES.md
================================================
# License detection failures
This is a list of known license detection failures. Once there appear common patterns, go-license-detector
will be extended to support those.
### Clear failures
* [Microsoft/vscode](https://github.com/Microsoft/vscode/blob/master/LICENSE.txt) - license file seems legit, clear failure.
* [adobe/brackets](https://github.com/adobe/brackets/blob/master/LICENSE) - license file seems legit, clear failure.
* [pure-css/pure](https://github.com/pure-css/pure/blob/master/LICENSE.md) - BSD license not detected, clear failure.
* [TryGhost/Ghost](https://github.com/TryGhost/Ghost/blob/master/LICENSE) - MIT license, clear failure.
* [nwjs/nw.js](https://github.com/nwjs/nw.js/blob/nw28/LICENSE) - MIT, clear failure.
* [jenkinsci/jenkins](https://github.com/jenkinsci/jenkins/blob/master/LICENSE.txt) - MIT license, clear failure.
* [kahun/awesome-sysadmin](https://github.com/kahun/awesome-sysadmin/blob/master/LICENSE.txt) - CC-BY-SA 4.0, clear failure.
* [AFNetworking/AFNetworking](https://github.com/AFNetworking/AFNetworking/blob/master/LICENSE) - MIT, clear failure.
* [eslint/eslint](https://github.com/eslint/eslint/blob/master/LICENSE) - MIT, clear failure.
* [CocoaLumberjack/CocoaLumberjack](https://github.com/CocoaLumberjack/CocoaLumberjack/blob/master/LICENSE.txt) - BSD, clear failure.
* [linnovate/mean](https://github.com/linnovate/mean/blob/master/LICENSE) - MIT with broken lines, clear failure.
* [bcit-ci/CodeIgniter](https://github.com/bcit-ci/CodeIgniter/blob/develop/license.txt) - MIT, clear failure.
* [moment/moment](https://github.com/moment/moment/blob/develop/LICENSE) - MIT, clear failure.
* [webpack/webpack](https://github.com/webpack/webpack/blob/master/LICENSE) - MIT, clear failure.
* [Alamofire/Alamofire](https://github.com/Alamofire/Alamofire/blob/master/LICENSE) - MIT, clear failure.
### Custom file names
* [atech/postal](https://github.com/atech/postal) - the file is `MIT-LICENCE`.
* [rust-lang/rust](https://github.com/rust-lang/rust) - license files: `LICENSE-APACHE` and `LICENSE-MIT`; also the `README` tells about them.
* [ariya/phantomjs](https://github.com/ariya/phantomjs/blob/master/LICENSE.BSD) - the file is `LICENSE.BSD`.
* [mpv-player/mpv](https://github.com/mpv-player/mpv) - `LICENSE.GPL` and `LICENSE.LGPL`.
* [v8/v8](https://github.com/v8/v8) - `LICENSE.v8` and 4 other custom suffixes; `LICENSE` is a concatenation.
* [philc/vimium](https://github.com/philc/vimium/blob/master/MIT-LICENSE.txt) - `MIT-LICENSE.txt`.
* [torch/torch7](https://github.com/torch/torch7/blob/master/COPYRIGHT.txt) - `COPYRIGHT.txt` with custom header.
* [mathiasbynens/dotfiles](https://github.com/mathiasbynens/dotfiles/blob/master/LICENSE-MIT.txt) - the file is `LICENSE-MIT.txt`.
* [Marak/faker.js](https://github.com/Marak/faker.js/blob/master/MIT-LICENSE.txt) - file is `MIT-LICENSE.txt`, custom header.
* [gionkunz/chartist-js](https://github.com/gionkunz/chartist-js/blob/develop/LICENSE-MIT) - the file is `LICENSE-MIT`.
* [php-fig/fig-standards](https://github.com/php-fig/fig-standards) - the file names are `LICENSE-CC.md` and `LICENSE-MIT.md`.
* [VundleVim/Vundle.vim](https://github.com/VundleVim/Vundle.vim/blob/master/LICENSE-MIT.txt) - the file name is `LICENSE-MIT.txt`.
* [carhartl/jquery-cookie](https://github.com/carhartl/jquery-cookie/blob/master/MIT-LICENSE.txt) - the file name is `MIT-LICENSE.txt`.
* [JetBrains/kotlin](https://github.com/JetBrains/kotlin/tree/master/license) - `license` directory, the standard file there points to Apache.
### Pointers
* [akullpp/awesome-java](https://github.com/akullpp/awesome-java/blob/master/LICENSE.md) - file consists of the single reference to CC-BY-SA-4.0.
* [Unitech/pm2](https://github.com/Unitech/pm2/blob/master/LICENSE) - the whole content is the name of the real license file.
* [ruanyf/es6tutorial](https://github.com/ruanyf/es6tutorial/blob/gh-pages/LICENSE) - human-readable summary of CC-BY-NC 4.0.
* [lukasz-madon/awesome-remote-job](https://github.com/lukasz-madon/awesome-remote-job) - `README` contains a link to CC0.
* [sindresorhus/quick-look-plugins](https://github.com/sindresorhus/quick-look-plugins) - `README` points to CC0.
* [MaximAbramchuck/awesome-interview-questions](https://github.com/MaximAbramchuck/awesome-interview-questions) - `README` states CC0.
* [enaqx/awesome-react](https://github.com/enaqx/awesome-react#license) - `README` states CC0.
* [sorrycc/awesome-javascript](https://github.com/sorrycc/awesome-javascript#license) - `README` points to CC0.
* [vuejs/awesome-vue](https://github.com/vuejs/awesome-vue) - CC0 is appended to the end of `README`.
* [terryum/awesome-deep-learning-papers](https://github.com/terryum/awesome-deep-learning-papers) - `README` points to CC0.
* [gztchan/awesome-design](https://github.com/gztchan/awesome-design) - `README` points to CC0.
* [sindresorhus/awesome-electron](https://github.com/sindresorhus/awesome-electron) - `README` points to CC0.
* [donnemartin/system-design-primer](https://github.com/donnemartin/system-design-primer/blob/master/LICENSE.txt) - custom text, link to CC-BY 4.0.
* [vinta/awesome-python](https://github.com/vinta/awesome-python/blob/master/LICENSE) - points to CC-BY 4.0.
* [EbookFoundation/free-programming-books](https://github.com/EbookFoundation/free-programming-books/blob/master/LICENSE) - points to CC-BY 4.0.
* [kamranahmedse/design-patterns-for-humans](https://github.com/kamranahmedse/design-patterns-for-humans#license) - `README` points to CC-BY 4.0.
* [interagent/http-api-design](https://github.com/interagent/http-api-design/blob/master/LICENSE.md) - license file points to CC-BY 3.0.
* [kamranahmedse/developer-roadmap](https://github.com/kamranahmedse/developer-roadmap) - `README` points to CC-BY 3.0.
* [saltstack/salt](https://github.com/saltstack/salt/blob/develop/LICENSE) - custom text, link to Apache.
* [inconshreveable/ngrok](https://github.com/inconshreveable/ngrok/blob/master/LICENSE) - points to Apache.
* [google/python-fire](https://github.com/google/python-fire/blob/master/LICENSE) - points to Apache.
* [swagger-api/swagger-ui](https://github.com/swagger-api/swagger-ui/blob/master/LICENSE) - points to Apache.
* [SignalR/SignalR](https://github.com/SignalR/SignalR/blob/dev/LICENSE.txt) - points to Apache.
* [facebookarchive/three20](https://github.com/facebookarchive/three20/blob/master/LICENSE) - points to Apache.
* [atlassian/localstack](https://github.com/atlassian/localstack/blob/master/LICENSE.txt) - points to Apache.
* [dmlc/xgboost](https://github.com/dmlc/xgboost/blob/master/LICENSE) - points to Apache.
* [videojs/video.js](https://github.com/videojs/video.js/blob/master/LICENSE) - points to Apache.
* [alibaba/druid](https://github.com/alibaba/druid/blob/master/license.txt) - points to Apache.
* [astaxie/beego](https://github.com/astaxie/beego/blob/master/LICENSE) - points to Apache.
* [requests/requests](https://github.com/requests/requests/blob/master/LICENSE) - points to Apache.
* [alibaba/fastjson](https://github.com/alibaba/fastjson/blob/master/license.txt) - file points to Apache.
* [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS/blob/master/license.txt) - points to Apache.
* [lord/slate](https://github.com/lord/slate/blob/master/LICENSE) - points to Apache.
* [donnemartin/data-science-ipython-notebooks](https://github.com/donnemartin/data-science-ipython-notebooks/blob/master/LICENSE) - points to Apache.
* [donnemartin/interactive-coding-challenges](https://github.com/donnemartin/interactive-coding-challenges/blob/master/LICENSE) - points to Apache.
* [SFTtech/openage](https://github.com/SFTtech/openage) - `README` mentions GNU GPLv3.
* [FFmpeg/FFmpeg](https://github.com/FFmpeg/FFmpeg/blob/master/LICENSE.md) - custom license text, points to LGPL and GPL.
* [androidannotations/androidannotations](https://github.com/androidannotations/androidannotations/blob/develop/LICENSE.txt) - license points to Apache and CDDL.
* [Theano/Theano](https://github.com/Theano/Theano/blob/master/LICENSE.txt) - symlink to `doc/LICENSE.txt`.
* [mxgmn/WaveFunctionCollapse](https://github.com/mxgmn/WaveFunctionCollapse/blob/master/LICENSE.md) - custom text, points to MIT.
* [marionettejs/backbone.marionette](https://github.com/marionettejs/backbone.marionette/blob/master/license.txt) - custom text, mentions MIT, links to http://mutedsolutions.mit-license.org/.
* [date-fns/date-fns](https://github.com/date-fns/date-fns/blob/master/LICENSE.md) - custom text, points to http://kossnocorp.mit-license.org/.
* [shadowsocks/shadowsocks-android](https://github.com/shadowsocks/shadowsocks-android/blob/master/LICENSE) - shortened GPL.
* [mozilla/BrowserQuest](https://github.com/mozilla/BrowserQuest/blob/master/LICENSE) - file points to MPL and CC-BY-SA 3.0.
### Headers and footers
* [Carthage/Carthage](https://github.com/Carthage/Carthage/blob/master/LICENSE.md) - extra content with copyright at the bottom of MIT license.
* [serverless/serverless](https://github.com/serverless/serverless/blob/master/LICENSE.txt) - MIT with extra notice at the bottom.
* [gitlabhq/gitlabhq](https://github.com/gitlabhq/gitlabhq/blob/master/LICENSE) - extra content at the end of MIT or BSD license.
* [akveo/blur-admin](https://github.com/akveo/blur-admin/blob/master/LICENSE.txt) - MIT license with garbage in the end.
* [keras-team/keras](https://github.com/keras-team/keras/blob/master/LICENSE) - MIT with many copyright notices in the beginning.
* [meteor/meteor](https://github.com/meteor/meteor/blob/devel/LICENSE) - custom notice appended in the end of MIT license.
* [celery/celery](https://github.com/celery/celery/blob/master/LICENSE) - BSD with custom header and footer.
* [parse-community/parse-server](https://github.com/parse-community/parse-server/blob/master/LICENSE) - custom footer after BSD.
* [ccgus/fmdb](https://github.com/ccgus/fmdb/blob/master/LICENSE.txt) - custom header before MIT.
* [BVLC/caffe](https://github.com/BVLC/caffe/blob/master/LICENSE) - custom header and footer.
* [JuliaLang/julia](https://github.com/JuliaLang/julia/blob/master/LICENSE.md) - custom header and huge footer with dependencies description.
* [google/deepdream](https://github.com/google/deepdream/blob/master/LICENSE) - Apache with custom header.
* [pytorch/pytorch](https://github.com/pytorch/pytorch/blob/master/LICENSE) - custom header before BSD.
* [strongloop/loopback](https://github.com/strongloop/loopback/blob/master/LICENSE) - MIT with custom header.
* [aosabook/500lines](https://github.com/aosabook/500lines/blob/master/LICENSE.md) - custom format, BSD in the end.
* [janpaepke/ScrollMagic](https://github.com/janpaepke/ScrollMagic/blob/master/LICENSE.md) - MIT with custom header, mentions GPL.
* [google/protobuf](https://github.com/google/protobuf/blob/master/LICENSE) - BSD with custom header.
* [rapid7/metasploit-framework](https://github.com/rapid7/metasploit-framework/blob/master/COPYING) - BSD with custom footer.
* [ipython/ipython](https://github.com/ipython/ipython/blob/master/COPYING.rst) - custom format, huge footer.
* [jquery/jquery](https://github.com/jquery/jquery/blob/master/LICENSE.txt) - JQuery with custom footer (he-he).
* [hapijs/hapi](https://github.com/hapijs/hapi/blob/master/LICENSE) - BSD with custom header and especially footer.
* [sqlmapproject/sqlmap](https://github.com/sqlmapproject/sqlmap/blob/master/LICENSE) - GPL with custom header.
### Concatenations
* [nodejs/node](https://github.com/nodejs/node/blob/master/LICENSE) - multiple licenses in the same file.
* [chrissimpkins/Hack](https://github.com/source-foundry/Hack/blob/master/LICENSE.md) - multiple licenses in the same file.
* [shadowsocks/shadowsocks-windows](https://github.com/shadowsocks/shadowsocks-windows/blob/master/LICENSE.txt) - multiple licenses concatenated together.
* [Tencent/mars](https://github.com/Tencent/mars/blob/master/LICENSE) - many licenses concatenated, custom header.
* [lodash/lodash](https://github.com/lodash/lodash/blob/master/LICENSE) - several licenses concatenated.
* [libuv/libuv](https://github.com/libuv/libuv/blob/v1.x/LICENSE) - several licenses concatenated together.
* [iview/iview](https://github.com/iview/iview/blob/2.0/LICENSE) - several MIT licenses concatenated together.
* [fatih/vim-go](https://github.com/fatih/vim-go/blob/master/LICENSE) - two BSDs concatenated together, custom header, middle and bottom.
* [bumptech/glide](https://github.com/bumptech/glide/blob/master/LICENSE) - concatenated licenses.
* [sqlitebrowser/sqlitebrowser](https://github.com/sqlitebrowser/sqlitebrowser/blob/master/LICENSE) - GPL and MPL concatenated.
* [Mantle/Mantle](https://github.com/Mantle/Mantle/blob/master/LICENSE.md) - two licenses concatenated.
* [kripken/emscripten](https://github.com/kripken/emscripten/blob/incoming/LICENSE) - several licenses concatenated, custom header and footer.
* [browserify/browserify](https://github.com/browserify/browserify/blob/master/LICENSE) - several licenses concatenated.
* [aFarkas/html5shiv](https://github.com/aFarkas/html5shiv/blob/master/MIT%20and%20GPL2%20licenses.md) - the file is `MIT and GPL2 licenses.md` and it is a concatenation.
* [Microsoft/CNTK](https://github.com/Microsoft/CNTK/blob/master/LICENSE.md) - custom format, concatenation.
* [stedolan/jq](https://github.com/stedolan/jq/blob/master/COPYING) - concatenation of several licenses.
* [jquery/jquery-ui](https://github.com/jquery/jquery-ui/blob/master/LICENSE.txt) - concatenation of JQuery and CC0.
* [realm/realm-cocoa](https://github.com/realm/realm-cocoa/blob/master/LICENSE) - Apache concatenated with other content.
* [robbiehanson/CocoaAsyncSocket](https://github.com/robbiehanson/CocoaAsyncSocket/blob/master/LICENSE.txt) - public domain and BSD, custom format.
* [jquery/jquery-mobile](https://github.com/jquery/jquery-mobile/blob/master/LICENSE.txt) - concatenation of JQuery and CC0.
### Die hards
* [RubaXa/Sortable](https://github.com/RubaXa/Sortable) - license is appended to the end of `README.md`.
* [Automattic/mongoose](https://github.com/Automattic/mongoose) - BSD license is appended to the end of `README`.
* [mperham/sidekiq](https://github.com/mperham/sidekiq/blob/master/LICENSE) - license file is completely custom, mentions LGPL.
* [opencv/opencv](https://github.com/opencv/opencv/blob/master/LICENSE) - license is completely custom format but resembles a BSD.
* [python/cpython](https://github.com/python/cpython/blob/master/LICENSE) - license is PSF 2.
* [tmux/tmux](https://github.com/tmux/tmux) - custom `COPYING`, BSD is mentioned in `README`.
* [facebook/nuclide](https://github.com/facebook/nuclide/blob/master/LICENSE) - custom license? resembles BSD.
* [realm/realm-java](https://github.com/realm/realm-java/blob/master/LICENSE) - custom format, Apache concatenated with various notices.
* [phanan/htaccess](https://github.com/phanan/htaccess/blob/master/LICENSE) - custom, says something about public domain and unlicense.
* [cockroachdb/cockroach](https://github.com/cockroachdb/cockroach/blob/master/LICENSE) - custom text, mentions Apache, CCL, MIT and BSD,
* [fbsamples/f8app](https://github.com/fbsamples/f8app/blob/master/LICENSE) - customized MIT.
* [FortAwesome/Font-Awesome](https://github.com/FortAwesome/Font-Awesome/blob/master/LICENSE.txt) - custom format, mentions several licenses.
* [Microsoft/api-guidelines](https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md#44-license) - pointer to CC-BY 4.0 in `Guidelines.md`.
* [neovim/neovim](https://github.com/neovim/neovim/blob/master/LICENSE) - Apache with custom header and notes.
* [moklick/frontend-stuff](https://github.com/moklick/frontend-stuff/blob/master/LICENSE) - summarized CC0.
### Miscellaneous
* [IanLunn/Hover](https://github.com/IanLunn/Hover/blob/master/license.txt) - custom license, nothing can be done.
* [xdissent/ievms](https://github.com/xdissent/ievms) - "none" license stated in the `README`.
* [isocpp/CppCoreGuidelines](https://github.com/isocpp/CppCoreGuidelines/blob/master/LICENSE) - custom license.
* [Modernizr/Modernizr](https://github.com/Modernizr/Modernizr) - license file is a joke, `README` mentions MIT.
* [froala/design-blocks](https://github.com/froala/design-blocks/blob/dev/LICENSE) - FROALA OPEN WEB DESIGN LICENSE.
* [Swordfish90/cool-retro-term](https://github.com/Swordfish90/cool-retro-term) - `gpl-3.0.txt` and `gpl-2.0.txt` files.
================================================
FILE: LICENSE.md
================================================
Apache License
==============
_Version 2.0, January 2004_
_<<http://www.apache.org/licenses/>>_
### Terms and Conditions for use, reproduction, and distribution
#### 1. Definitions
“License” shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.
“Licensor” shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.
“Legal Entity” shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, “control” means **(i)** the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the
outstanding shares, or **(iii)** beneficial ownership of such entity.
“You” (or “Your”) shall mean an individual or Legal Entity exercising
permissions granted by this License.
“Source” form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.
“Object” form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.
“Work” shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).
“Derivative Works” shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.
“Contribution” shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
“submitted” means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as “Not a Contribution.”
“Contributor” shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.
#### 2. Grant of Copyright License
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.
#### 3. Grant of Patent License
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.
#### 4. Redistribution
You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:
* **(a)** You must give any other recipients of the Work or Derivative Works a copy of
this License; and
* **(b)** You must cause any modified files to carry prominent notices stating that You
changed the files; and
* **(c)** You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
* **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.
#### 5. Submission of Contributions
Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.
#### 6. Trademarks
This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
#### 7. Disclaimer of Warranty
Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.
#### 8. Limitation of Liability
In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.
#### 9. Accepting Warranty or Additional Liability
While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.
_END OF TERMS AND CONDITIONS_
### APPENDIX: How to apply the Apache License to your work
To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets `[]` replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included on
the same “printed page” as the copyright notice for easier identification within
third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: Makefile
================================================
GOPATH ?= $(shell go env GOPATH)
SPDX_DATA_VERSION ?= 3.8
licensedb/internal/assets/bindata.go: licenses.tar urls.csv names.csv $(GOPATH)/bin/go-bindata
rm -rf license-list-data-$(SPDX_DATA_VERSION)
rm -f license-list-data.tar.gz
$(GOPATH)/bin/go-bindata -nometadata -pkg assets -o licensedb/internal/assets/bindata.go licenses.tar urls.csv names.csv
rm licenses.tar urls.csv names.csv
licenses.tar: license-list-data.tar.gz
tar -xf license-list-data.tar.gz license-list-data-$(SPDX_DATA_VERSION)/text
tar -cf licenses.tar -C license-list-data-$(SPDX_DATA_VERSION)/text .
license-list-data-$(SPDX_DATA_VERSION)/json/details: license-list-data.tar.gz
tar -xf license-list-data.tar.gz license-list-data-$(SPDX_DATA_VERSION)/json/details
urls.csv: license-list-data-$(SPDX_DATA_VERSION)/json/details
go run licensedb/internal/assets/extract_urls.go license-list-data-$(SPDX_DATA_VERSION)/json/details > urls.csv
names.csv: license-list-data-$(SPDX_DATA_VERSION)/json/details
go run licensedb/internal/assets/extract_names.go license-list-data-$(SPDX_DATA_VERSION)/json/details > names.csv
license-list-data.tar.gz:
curl -SLk -o license-list-data.tar.gz https://github.com/spdx/license-list-data/archive/v$(SPDX_DATA_VERSION).tar.gz
$(GOPATH)/bin/go-bindata:
go get -v github.com/jteeuwen/go-bindata/go-bindata@6025e8de665b31fa74ab1a66f2cddd8c0abf887e
================================================
FILE: README.md
================================================
## WE CONTINUE THE DEVELOPMENT AT [go-enry/go-license-detector](https://github.com/go-enry/go-license-detector). This repository is abandoned, and no further updates will be done on the code base, nor issue/prs will be answered or attended.
# go-license-detector [](http://godoc.org/gopkg.in/src-d/go-license-detector.v3) [](https://travis-ci.com/src-d/go-license-detector) [](https://ci.appveyor.com/project/vmarkovtsev/go-license-detector) [](https://codecov.io/gh/src-d/go-license-detector) [](https://goreportcard.com/report/github.com/src-d/go-license-detector)
Project license detector - a command line application and a library, written in Go.
It scans the given directory for license files, normalizes and hashes them and outputs
all the fuzzy matches with the list of reference texts.
The returned names follow [SPDX](https://spdx.org/licenses/) standard.
Read the [blog post](https://blog.sourced.tech/post/gld/).
Why? There are no similar projects which can be compiled into a native binary without
dependencies and also support the whole SPDX license database (≈400 items).
This implementation is also fast, requires little memory, and the API is easy to use.
The license texts are taken directly from [license-list-data](https://github.com/spdx/license-list-data)
repository. The detection algorithm is **not template matching**;
this directly implies that go-license-detector does not provide any legal guarantees.
The intended area of it's usage is data mining.
## Installation
```
export GO111MODULE=on
go mod download
go build -v gopkg.in/src-d/go-license-detector.v3/cmd/license-detector
```
## Contributions
...are welcome, see [CONTRIBUTING.md](CONTRIBUTING.md) and [code of conduct](CODE_OF_CONDUCT.md).
## License
Apache 2.0, see [LICENSE.md](LICENSE.md).
## Algorithm
1. Find files in the root directory which may represent a license. E.g. `LICENSE` or `license.md`.
2. If the file is Markdown or reStructuredText, render to HTML and then convert to plain text. Original HTML files are also converted.
3. Normalize the text according to [SPDX recommendations](https://spdx.org/spdx-license-list/matching-guidelines).
4. Split the text into unigrams and build the weighted bag of words.
5. Calculate [Weighted MinHash](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36928.pdf).
6. Apply Locality Sensitive Hashing and pick the reference licenses which are close.
7. For each of the candidate, calculate the [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) - `D`.
the corresponding text is the single line with each unigram represented by a single rune (character).
8. Set the similarity as `1 - D / L` where `L` is the number of unigrams in the quieried license.
This pipeline guarantees constant time queries, though requires some initialization to preprocess
the reference licenses.
If there are not license files found:
1. Look for README files.
2. If the file is Markdown or reStructuredText, render to HTML and then convert to plain text. Original HTML files are also converted.
3. Scan for words like "copyright", "license" and "released under". Take the neighborhood.
4. Run Named Entity Recognition (NER) over that surrounding context and extract the possible license name.
5. Match it against the list of license names from SPDX.
## Usage
Command line:
```bash
license-detector /path/to/project
license-detector https://github.com/src-d/go-git
```
Library (for a single license detection):
```go
import (
"gopkg.in/src-d/go-license-detector.v3/licensedb"
"gopkg.in/src-d/go-license-detector.v3/licensedb/filer"
)
func main() {
licenses, err := licensedb.Detect(filer.FromDirectory("/path/to/project"))
}
```
Library (for a convenient data structure that can be formatted as JSON):
```go
import (
"encoding/json"
"fmt"
"gopkg.in/src-d/go-license-detector.v3/licensedb"
)
func main() {
results := licensedb.Analyse("/path/to/project1", "/path/to/project2")
bytes, err := json.MarshalIndent(results, "", "\t")
if err != nil {
fmt.Printf("could not encode result to JSON: %v\n", err)
}
fmt.Println(string(bytes))
}
```
## Quality
On the [dataset](dataset.zip) of ~1000 most starred repositories on GitHub as of early February 2018
([list](dataset.projects.gz)), **99%** of the licenses are detected.
The analysis of detection failures is going in [FAILURES.md](FAILURES.md).
Comparison to other projects on that dataset:
|Detector|Detection rate|Time to scan, sec|
|:-------|:----------------------------------------:|:-----------------------------------------|
|[go-license-detector](https://github.com/src-d/go-license-detector)| 99% (897/902) | 13.5 |
|[benbalter/licensee](https://github.com/benbalter/licensee)| 75% (673/902) | 111 |
|[google/licenseclassifier](https://github.com/google/licenseclassifier)| 76% (682/902) | 907 |
|[boyter/lc](https://github.com/boyter/lc)| 88% (797/902) | 548 |
|[amzn/askalono](https://github.com/amzn/askalono)| 87% (785/902) | 165 |
|[LiD](https://source.codeaurora.org/external/qostg/lid)| 94% (847/902) | 3660 |
<details><summary>How this was measured</summary>
<pre><code>$ cd $(go env GOPATH)/src/gopkg.in/src-d/go-license-detector.v3/licensedb
$ mkdir dataset && cd dataset
$ unzip ../dataset.zip
$ # src-d/go-license-detector
$ time license-detector * \
| grep -Pzo '\n[-0-9a-zA-Z]+\n\tno license' | grep -Pa '\tno ' | wc -l
$ # benbalter/licensee
$ time ls -1 | xargs -n1 -P4 licensee \
| grep -E "^License: Other" | wc -l
$ # google/licenseclassifier
$ time find -type f -print | xargs -n1 -P4 identify_license \
| cut -d/ -f2 | sort | uniq | wc -l
$ # boyter/lc
$ time lc . \
| grep -vE 'NOASSERTION|----|Directory' | cut -d" " -f1 | sort | uniq | wc -l
$ # amzn/askalono
$ echo '#!/bin/sh
result=$(askalono id "$1")
echo "$1
$result"' > ../askalono.wrapper
$ time find -type f -print | xargs -n1 -P4 sh ../askalono.wrapper | grep -Pzo '.*\nLicense: .*\n' askalono.txt | grep -av "License: " | cut -d/ -f 2 | sort | uniq | wc -l
$ # LiD
$ time license-identifier -I dataset -F csv -O lid
$ cat lid_*.csv | cut -d, -f1 | cut -d"'" -f 2 | grep / | cut -d/ -f2 | sort | uniq | wc -l
</code></pre>
</details>
## Regenerate binary data
The SPDX licenses are included into the binary. To update them, run
```
make bindata.go
```
================================================
FILE: appveyor.yml
================================================
version: "{build}"
platform: x64
image: Visual Studio 2017
environment:
GO111MODULE: on
build_script:
- go mod vendor
- go build -v gopkg.in/src-d/go-license-detector.v3/cmd/license-detector
- go test gopkg.in/src-d/go-license-detector.v3/...
- 7z a license-detector.windows_amd64.zip license-detector.exe
artifacts:
- name: license-detector.windows_amd64.zip
path: license-detector.windows_amd64.zip
deploy:
release: $(APPVEYOR_REPO_TAG_NAME)
provider: GitHub
auth_token:
secure: 78zsH4q19DqcpdkwnYHQoe0BakBfv+LGu1W7mXuaBC9mS87+EuAj3+yTzJv4NEfI
artifact: license-detector.windows_amd64.zip
on:
branch: master
appveyor_repo_tag: true
================================================
FILE: cmd/license-detector/main.go
================================================
// license-detector prints the most probable licenses for a repository
// given either its path in the local file system or a URL pointing to
// the repository.
package main
import (
"encoding/json"
"fmt"
"io"
"log"
"os"
"github.com/spf13/pflag"
"gopkg.in/src-d/go-license-detector.v3/licensedb"
)
func main() {
format := pflag.StringP("format", "f", "text", "Output format: json, text")
pflag.Usage = func() {
fmt.Fprintln(os.Stderr, "Usage: license-detector path ...")
pflag.PrintDefaults()
}
pflag.Parse()
if (*format != "json" && *format != "text") || pflag.NArg() == 0 {
pflag.Usage()
os.Exit(1)
}
detect(pflag.Args(), *format, os.Stdout)
}
// detect runs license analysis on each item in `args`` and outputs
// the results in the specified `format` to `writer`.
func detect(args []string, format string, writer io.Writer) {
results := licensedb.Analyse(args...)
switch format {
case "text":
for _, res := range results {
fmt.Fprintln(writer, res.Arg)
if res.ErrStr != "" {
fmt.Fprintf(writer, "\t%v\n", res.ErrStr)
continue
}
for _, m := range res.Matches {
fmt.Fprintf(writer, "\t%1.f%%\t%s\n", 100*m.Confidence, m.License)
}
}
case "json":
b, err := json.MarshalIndent(results, "", "\t")
if err != nil {
log.Fatalf("could not encode result to JSON: %v", err)
}
fmt.Fprintf(writer, "%s\n", b)
}
}
================================================
FILE: cmd/license-detector/main_test.go
================================================
package main
import (
"bytes"
"encoding/json"
"testing"
"github.com/stretchr/testify/assert"
"gopkg.in/src-d/go-license-detector.v3/licensedb"
)
func TestCmdMain(t *testing.T) {
buffer := &bytes.Buffer{}
detect([]string{"../..", "."}, "json", buffer)
var r []licensedb.Result
json.Unmarshal(buffer.Bytes(), &r)
assert.Len(t, r, 2)
assert.Equal(t, "../..", r[0].Arg)
assert.Equal(t, ".", r[1].Arg)
assert.Len(t, r[0].Matches, 4)
assert.Len(t, r[1].Matches, 0)
assert.Equal(t, "", r[0].ErrStr)
assert.Equal(t, "no license file was found", r[1].ErrStr)
assert.Equal(t, "Apache-2.0", r[0].Matches[0].License)
assert.InDelta(t, 0.9877, r[0].Matches[0].Confidence, 0.001)
assert.Equal(t, "ECL-2.0", r[0].Matches[1].License)
assert.InDelta(t, 0.9047, r[0].Matches[1].Confidence, 0.001)
buffer.Reset()
detect([]string{"../..", "."}, "text", buffer)
assert.Equal(t, `../..
99% Apache-2.0
90% ECL-2.0
85% SHL-0.51
85% SHL-0.5
.
no license file was found
`, buffer.String())
}
================================================
FILE: go.mod
================================================
module gopkg.in/src-d/go-license-detector.v3
require (
github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc // indirect
github.com/dgryski/go-minhash v0.0.0-20170608043002-7fe510aff544 // indirect
github.com/dgryski/go-spooky v0.0.0-20170606183049-ed3d087f40e2 // indirect
github.com/ekzhu/minhash-lsh v0.0.0-20171225071031-5c06ee8586a1
github.com/hhatto/gorst v0.0.0-20171128071645-7682c8a25108
github.com/jdkato/prose v1.1.0
github.com/montanaflynn/stats v0.0.0-20151014174947-eeaced052adb // indirect
github.com/neurosnap/sentences v1.0.6 // indirect
github.com/pkg/errors v0.8.1
github.com/russross/blackfriday/v2 v2.0.1
github.com/sergi/go-diff v1.0.0
github.com/shogo82148/go-shuffle v0.0.0-20170808115208-59829097ff3b // indirect
github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95 // indirect
github.com/spf13/pflag v1.0.0
github.com/stretchr/testify v1.3.0
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80
golang.org/x/text v0.3.2
gonum.org/v1/gonum v0.6.1
gopkg.in/neurosnap/sentences.v1 v1.0.6 // indirect
gopkg.in/src-d/go-billy-siva.v4 v4.3.0
gopkg.in/src-d/go-billy.v4 v4.3.2
gopkg.in/src-d/go-git.v4 v4.13.1
gopkg.in/src-d/go-siva.v1 v1.5.0 // indirect
)
replace (
github.com/sergi/go-diff v1.0.0 => github.com/sergi/go-diff v0.0.0-20180205163309-da645544ed44
golang.org/x/text v0.3.2 => golang.org/x/text v0.3.0
)
go 1.13
================================================
FILE: licensedb/analysis.go
================================================
package licensedb
import (
"net/url"
"os"
"sort"
"sync"
"gopkg.in/src-d/go-license-detector.v3/licensedb/filer"
)
// Analyse runs license analysis on each item in `args`
func Analyse(args ...string) []Result {
nargs := len(args)
results := make([]Result, nargs)
var wg sync.WaitGroup
wg.Add(nargs)
for i, arg := range args {
go func(i int, arg string) {
defer wg.Done()
matches, err := process(arg)
res := Result{Arg: arg, Matches: matches}
if err != nil {
res.ErrStr = err.Error()
}
results[i] = res
}(i, arg)
}
wg.Wait()
return results
}
// Result gathers license detection results for a project path
type Result struct {
Arg string `json:"project,omitempty"`
Matches []Match `json:"matches,omitempty"`
ErrStr string `json:"error,omitempty"`
}
// Match describes the level of confidence for the detected License
type Match struct {
License string `json:"license"`
Confidence float32 `json:"confidence"`
}
func process(arg string) ([]Match, error) {
newFiler := filer.FromDirectory
fi, err := os.Stat(arg)
if err != nil {
if _, err := url.Parse(arg); err == nil {
newFiler = filer.FromGitURL
}
} else if !fi.IsDir() {
newFiler = filer.FromSiva
}
resolvedFiler, err := newFiler(arg)
if err != nil {
return nil, err
}
ls, err := Detect(resolvedFiler)
if err != nil {
return nil, err
}
var matches []Match
for k, v := range ls {
matches = append(matches, Match{k, v.Confidence})
}
sort.Slice(matches, func(i, j int) bool { return matches[i].Confidence > matches[j].Confidence })
return matches, nil
}
================================================
FILE: licensedb/api/api.go
================================================
package api
// Match is a detection result of a license with a confidence (0.0 - 1.0)
// and a mapping of files to confidence.
type Match struct {
Files map[string]float32
Confidence float32
}
================================================
FILE: licensedb/dataset_test.go
================================================
package licensedb
import (
"fmt"
"os"
"sync"
"testing"
"gopkg.in/src-d/go-license-detector.v3/licensedb/api"
"gopkg.in/src-d/go-license-detector.v3/licensedb/filer"
"github.com/stretchr/testify/assert"
)
func TestDataset(t *testing.T) {
rootFiler, err := filer.FromZIP("dataset.zip")
assert.Nil(t, err)
defer rootFiler.Close()
projects, err := rootFiler.ReadDir("")
assert.Nil(t, err)
licenses := map[string]map[string]api.Match{}
mutex := sync.Mutex{}
wg := sync.WaitGroup{}
wg.Add(len(projects))
for _, project := range projects {
go func(project filer.File) {
defer wg.Done()
myLicenses, _ := Detect(filer.NestFiler(rootFiler, project.Name))
if len(myLicenses) > 0 {
mutex.Lock()
licenses[project.Name] = myLicenses
mutex.Unlock()
}
}(project)
}
wg.Wait()
assert.True(t, len(licenses) >= 893)
// the rest len(projects) - 902 do not contain any license information
fmt.Printf("%d %d %d%%\n", len(licenses), 902, (100*len(licenses))/902)
if os.Getenv("LICENSE_TEST_DEBUG") != "" {
for _, project := range projects {
if _, exists := licenses[project.Name]; !exists {
println(project.Name)
}
}
}
}
================================================
FILE: licensedb/filer/filer.go
================================================
package filer
import (
"archive/zip"
"bytes"
"io/ioutil"
"os"
xpath "path"
"path/filepath"
"strings"
"github.com/pkg/errors"
sivafs "gopkg.in/src-d/go-billy-siva.v4"
"gopkg.in/src-d/go-billy.v4/memfs"
"gopkg.in/src-d/go-billy.v4/osfs"
git "gopkg.in/src-d/go-git.v4"
"gopkg.in/src-d/go-git.v4/plumbing"
"gopkg.in/src-d/go-git.v4/plumbing/cache"
"gopkg.in/src-d/go-git.v4/plumbing/filemode"
"gopkg.in/src-d/go-git.v4/plumbing/object"
"gopkg.in/src-d/go-git.v4/plumbing/storer"
"gopkg.in/src-d/go-git.v4/storage/filesystem"
"gopkg.in/src-d/go-git.v4/storage/memory"
)
// File represents a file in the virtual file system: every node is either a regular file
// or a directory. Symlinks are dereferenced in the implementations.
type File struct {
Name string
IsDir bool
}
// A Filer provides a list of files.
type Filer interface {
// ReadFile returns the contents of a file given it's path.
ReadFile(path string) (content []byte, err error)
// ReadDir lists a directory.
ReadDir(path string) ([]File, error)
// Close frees all the resources allocated by this Filer.
Close()
// PathsAreAlwaysSlash indicates whether the path separator is platform-independent ("/") or
// OS-specific.
PathsAreAlwaysSlash() bool
}
type localFiler struct {
root string
}
// FromDirectory returns a Filer that allows accessing over all the files contained in a directory.
func FromDirectory(path string) (Filer, error) {
fi, err := os.Stat(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot create Filer from %s", path)
}
if !fi.IsDir() {
return nil, errors.New("not a directory")
}
path, _ = filepath.Abs(path)
return &localFiler{root: path}, nil
}
func (filer *localFiler) resolvePath(path string) (string, error) {
path, err := filepath.Abs(filepath.Join(filer.root, path))
if err != nil {
return "", err
}
if !strings.HasPrefix(path, filer.root) {
return "", errors.New("path is out of scope")
}
return path, nil
}
func (filer *localFiler) ReadFile(path string) ([]byte, error) {
path, err := filer.resolvePath(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot read file %s", path)
}
buffer, err := ioutil.ReadFile(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot read file %s", path)
}
return buffer, nil
}
func (filer *localFiler) ReadDir(path string) ([]File, error) {
path, err := filer.resolvePath(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot read directory %s", path)
}
files, err := ioutil.ReadDir(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot read directory %s", path)
}
result := make([]File, 0, len(files))
for _, file := range files {
result = append(result, File{
Name: file.Name(),
IsDir: file.IsDir(),
})
}
return result, nil
}
func (filer *localFiler) Close() {}
func (filer *localFiler) PathsAreAlwaysSlash() bool {
return false
}
type gitFiler struct {
root *object.Tree
}
// FromGitURL returns a Filer that allows accessing all the files in a Git repository given its URL.
func FromGitURL(url string) (Filer, error) {
repo, err := git.Clone(memory.NewStorage(), nil, &git.CloneOptions{URL: url})
if err != nil {
return nil, errors.Wrapf(err, "could not clone repo from %s", url)
}
return FromGit(repo, "")
}
// FromGit returns a Filer that allows accessing all the files in a Git repository
func FromGit(repo *git.Repository, headRef plumbing.ReferenceName) (Filer, error) {
var head *plumbing.Reference
var err error
if headRef == "" {
head, err = repo.Head()
} else {
head, err = repo.Reference(headRef, true)
}
if err != nil {
return nil, errors.Wrap(err, "could not fetch HEAD from repo")
}
commit, err := repo.CommitObject(head.Hash())
if err != nil {
return nil, errors.Wrap(err, "could not fetch commit for HEAD")
}
tree, err := commit.Tree()
if err != nil {
return nil, errors.Wrap(err, "could not fetch root for HEAD commit")
}
return &gitFiler{root: tree}, nil
}
func (filer gitFiler) ReadFile(path string) ([]byte, error) {
entry, err := filer.root.FindEntry(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot find file %s", path)
}
if entry.Mode == filemode.Symlink {
file, err := filer.root.File(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot find file %s", path)
}
path, err = file.Contents()
if err != nil {
return nil, errors.Wrapf(err, "cannot read file %s", path)
}
}
file, err := filer.root.File(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot read file %s", path)
}
reader, err := file.Reader()
if err != nil {
return nil, errors.Wrapf(err, "cannot read file %s", path)
}
defer func() { err = reader.Close() }()
buf := new(bytes.Buffer)
if _, err = buf.ReadFrom(reader); err != nil {
return nil, errors.Wrapf(err, "cannot read file %s", path)
}
return buf.Bytes(), err
}
func (filer *gitFiler) ReadDir(path string) ([]File, error) {
var tree *object.Tree
if path != "" {
var err error
tree, err = filer.root.Tree(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot read directory %s", path)
}
} else {
tree = filer.root
}
result := make([]File, 0, len(tree.Entries))
for _, entry := range tree.Entries {
switch entry.Mode {
case filemode.Dir:
result = append(result, File{
Name: entry.Name,
IsDir: true,
})
case filemode.Regular, filemode.Executable, filemode.Deprecated, filemode.Symlink:
result = append(result, File{
Name: entry.Name,
IsDir: false,
})
}
}
return result, nil
}
func (filer *gitFiler) Close() {
filer.root = nil
}
func (filer *gitFiler) PathsAreAlwaysSlash() bool {
return true
}
// FromSiva returns a Filer that allows accessing all the files in a Git repository contained in a Siva file.
// See https://github.com/src-d/go-siva and https://github.com/src-d/go-billy-siva
func FromSiva(path string) (Filer, error) {
localFs := osfs.New(filepath.Dir(path))
tmpFs := memfs.New()
basePath := filepath.Base(path)
fs, err := sivafs.NewFilesystem(localFs, basePath, tmpFs)
if err != nil {
return nil, errors.Wrapf(err, "unable to create a Siva filesystem from %s", path)
}
sivaStorage := filesystem.NewStorage(fs, cache.NewObjectLRUDefault())
repo, err := git.Open(sivaStorage, tmpFs)
if err != nil {
return nil, errors.Wrapf(err, "unable to open the Git repository from Siva file %s", path)
}
refs, err := repo.References()
if err != nil {
return nil, errors.Wrapf(err, "unable to list Git references from Siva file %s", path)
}
var head plumbing.ReferenceName
err = refs.ForEach(func(ref *plumbing.Reference) error {
if strings.HasPrefix(ref.Name().String(), "refs/heads/HEAD/") {
head = ref.Name()
return storer.ErrStop
}
return nil
})
if err != nil {
return nil, errors.Wrapf(err, "failed to iterate over references in Siva file %s", path)
}
return FromGit(repo, head)
}
type zipNode struct {
children map[string]*zipNode
file *zip.File
}
type zipFiler struct {
arch *zip.ReadCloser
tree *zipNode
}
// FromZIP returns a Filer that allows accessing all the files in a ZIP archive given its path.
func FromZIP(path string) (Filer, error) {
arch, err := zip.OpenReader(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot read ZIP archive %s", path)
}
root := &zipNode{children: map[string]*zipNode{}}
for _, f := range arch.File {
path := strings.Split(f.Name, "/") // zip always has "/"
node := root
for _, part := range path {
if part == "" {
continue
}
child := node.children[part]
if child == nil {
child = &zipNode{children: map[string]*zipNode{}}
node.children[part] = child
}
node = child
}
node.file = f
}
return &zipFiler{arch: arch, tree: root}, nil
}
func (filer *zipFiler) ReadFile(path string) ([]byte, error) {
parts := strings.Split(path, string("/"))
node := filer.tree
for _, part := range parts {
if part == "" {
continue
}
node = node.children[part]
if node == nil {
return nil, errors.Errorf("does not exist: %s", path)
}
}
reader, err := node.file.Open()
if err != nil {
return nil, errors.Wrapf(err, "cannot open %s", path)
}
defer reader.Close()
buffer, err := ioutil.ReadAll(reader)
if err != nil {
return nil, errors.Wrapf(err, "cannot read %s", path)
}
return buffer, nil
}
func (filer *zipFiler) ReadDir(path string) ([]File, error) {
parts := strings.Split(path, string("/"))
node := filer.tree
for _, part := range parts {
if part == "" {
continue
}
node = node.children[part]
if node == nil {
return nil, errors.Errorf("does not exist: %s", path)
}
}
if path != "" && !node.file.FileInfo().IsDir() {
return nil, errors.Errorf("not a directory: %s", path)
}
result := make([]File, 0, len(node.children))
for name, child := range node.children {
result = append(result, File{
Name: name,
IsDir: child.file.FileInfo().IsDir(),
})
}
return result, nil
}
func (filer *zipFiler) Close() {
filer.arch.Close()
}
func (filer *zipFiler) PathsAreAlwaysSlash() bool {
return true
}
type nestedFiler struct {
origin Filer
offset string
}
// NestFiler wraps an existing Filer. It prepends the specified prefix to every path.
func NestFiler(filer Filer, prefix string) Filer {
return &nestedFiler{origin: filer, offset: prefix}
}
func (filer *nestedFiler) ReadFile(path string) ([]byte, error) {
var fullPath string
if filer.origin.PathsAreAlwaysSlash() {
fullPath = xpath.Join(filer.offset, path)
} else {
fullPath = filepath.Join(filer.offset, path)
}
return filer.origin.ReadFile(fullPath)
}
func (filer *nestedFiler) ReadDir(path string) ([]File, error) {
var fullPath string
if filer.origin.PathsAreAlwaysSlash() {
fullPath = xpath.Join(filer.offset, path)
} else {
fullPath = filepath.Join(filer.offset, path)
}
return filer.origin.ReadDir(fullPath)
}
func (filer *nestedFiler) Close() {
filer.origin.Close()
}
func (filer *nestedFiler) PathsAreAlwaysSlash() bool {
return filer.origin.PathsAreAlwaysSlash()
}
================================================
FILE: licensedb/filer/filer_test.go
================================================
package filer
import (
"os"
"sort"
"testing"
"github.com/stretchr/testify/assert"
)
func testFiler(t *testing.T, filer Filer) {
defer filer.Close()
files, err := filer.ReadDir("")
sort.Slice(files, func(i int, j int) bool {
return files[i].Name < files[j].Name
})
assert.Nil(t, err)
assert.Len(t, files, 2)
assert.Equal(t, "one", files[0].Name)
assert.False(t, files[0].IsDir)
assert.Equal(t, "two", files[1].Name)
assert.True(t, files[1].IsDir)
content, err := filer.ReadFile("one")
assert.Nil(t, err)
assert.Equal(t, "hello\n", string(content))
files, err = filer.ReadDir("two")
assert.Len(t, files, 1)
assert.Equal(t, "three", files[0].Name)
assert.False(t, files[0].IsDir)
content, err = filer.ReadFile("two/three")
assert.Nil(t, err)
assert.Equal(t, "world\n", string(content))
files, err = filer.ReadDir("..")
assert.Nil(t, files)
assert.NotNil(t, err)
files, err = filer.ReadDir("two/three")
assert.Nil(t, files)
assert.NotNil(t, err)
content, err = filer.ReadFile("two/four")
assert.Nil(t, content)
assert.NotNil(t, err)
}
func TestLocalFiler(t *testing.T) {
filer, err := FromDirectory("test_data/local")
assert.Nil(t, err)
testFiler(t, filer)
filer, err = FromDirectory("test_data/local2")
assert.Nil(t, filer)
assert.NotNil(t, err)
filer, err = FromDirectory("test_data/local/one")
assert.Nil(t, filer)
assert.NotNil(t, err)
}
func TestGitFiler(t *testing.T) {
filer, err := FromGitURL("test_data/git")
assert.Nil(t, err)
testFiler(t, filer)
filer, err = FromGitURL("test_data/local2.git")
assert.Nil(t, filer)
assert.NotNil(t, err)
}
func TestSivaFiler(t *testing.T) {
filer, err := FromSiva("test_data/334a82b19a7c893d3807ea52ba35ff2170c296cc.siva")
assert.Nil(t, err)
testFiler(t, filer)
filer, err = FromSiva("test_data/local2.siva")
defer os.Remove("test_data/local2.siva")
assert.Nil(t, filer)
assert.NotNil(t, err)
}
func TestZipFiler(t *testing.T) {
filer, err := FromZIP("test_data/local.zip")
assert.Nil(t, err)
testFiler(t, filer)
filer, err = FromZIP("test_data/local2.zip")
assert.Nil(t, filer)
assert.NotNil(t, err)
}
func TestNestedFiler(t *testing.T) {
filer, err := FromDirectory("test_data/local")
assert.Nil(t, err)
filer2 := NestFiler(filer, "two")
defer filer2.Close()
files, err := filer2.ReadDir("")
assert.Nil(t, err)
assert.Len(t, files, 1)
assert.Equal(t, "three", files[0].Name)
assert.False(t, files[0].IsDir)
content, err := filer2.ReadFile("three")
assert.Nil(t, err)
assert.Equal(t, "world\n", string(content))
}
================================================
FILE: licensedb/filer/test_data/git/COMMIT_EDITMSG
================================================
init
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
# new file: one
# new file: two/three
#
================================================
FILE: licensedb/filer/test_data/git/HEAD
================================================
ref: refs/heads/master
================================================
FILE: licensedb/filer/test_data/git/config
================================================
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
================================================
FILE: licensedb/filer/test_data/git/description
================================================
Unnamed repository; edit this file 'description' to name the repository.
================================================
FILE: licensedb/filer/test_data/git/info/exclude
================================================
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
================================================
FILE: licensedb/filer/test_data/git/logs/HEAD
================================================
0000000000000000000000000000000000000000 334a82b19a7c893d3807ea52ba35ff2170c296cc Vadim Markovtsev <vadim@sourced.tech> 1525166017 +0200 commit (initial): init
================================================
FILE: licensedb/filer/test_data/git/logs/refs/heads/master
================================================
0000000000000000000000000000000000000000 334a82b19a7c893d3807ea52ba35ff2170c296cc Vadim Markovtsev <vadim@sourced.tech> 1525166017 +0200 commit (initial): init
================================================
FILE: licensedb/filer/test_data/git/objects/33/4a82b19a7c893d3807ea52ba35ff2170c296cc
================================================
xM
0@a9Op~LhH9ܾbݶ@~:iӂ(W3rvKi#FsZB ÇSUarѢJ\o@v3&*:
================================================
FILE: licensedb/filer/test_data/git/refs/heads/master
================================================
334a82b19a7c893d3807ea52ba35ff2170c296cc
================================================
FILE: licensedb/filer/test_data/local/one
================================================
hello
================================================
FILE: licensedb/filer/test_data/local/two/three
================================================
world
================================================
FILE: licensedb/internal/assets/bindata.go
================================================
// Code generated by go-bindata.
// sources:
// licenses.tar
// urls.csv
// names.csv
// DO NOT EDIT!
package assets
import (
"bytes"
"compress/gzip"
"fmt"
"io"
"io/ioutil"
"os"
"path/filepath"
"strings"
"time"
)
func bindataRead(data []byte, name string) ([]byte, error) {
gz, err := gzip.NewReader(bytes.NewBuffer(data))
if err != nil {
return nil, fmt.Errorf("Read %q: %v", name, err)
}
var buf bytes.Buffer
_, err = io.Copy(&buf, gz)
clErr := gz.Close()
if err != nil {
return nil, fmt.Errorf("Read %q: %v", name, err)
}
if clErr != nil {
return nil, err
}
return buf.Bytes(), nil
}
type asset struct {
bytes []byte
info os.FileInfo
}
type bindataFileInfo struct {
name string
size int64
mode os.FileMode
modTime time.Time
}
func (fi bindataFileInfo) Name() string {
return fi.name
}
func (fi bindataFileInfo) Size() int64 {
return fi.size
}
func (fi bindataFileInfo) Mode() os.FileMode {
return fi.mode
}
func (fi bindataFileInfo) ModTime() time.Time {
return fi.modTime
}
func (fi bindataFileInfo) IsDir() bool {
return false
}
func (fi bindataFileInfo) Sys() interface{} {
return nil
}
var _licensesTar = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\xeb\x73\xdb\x48\x92\x07\xd8\x9f\xeb\xaf\xa8\x63\xc4\x45\x8b\x11\x10\x2d\xf9\x39\xdd\xbd\x31\x71\xb4\x44\xdb\xbc\x91\x49\x2d\x49\xb5\xc7\xb7\xb1\x1f\x8a\x40\x51\xac\x31\x88\xe2\xa2\x00\xc9\xdc\xbf\xfe\xa2\x32\xb3\x5e\x20\x28\xbb\x67\xa7\x67\x6f\x6f\x5b\x1f\x66\xda\x12\x09\xd4\x23\x2b\x2b\x1f\xbf\xfc\xe5\xe8\xd9\x0f\xbf\xfb\xcf\xc5\xc5\xc5\xc5\x9b\x37\xaf\xec\xff\x5f\xbe\x79\x75\x11\xff\xbf\xfb\xf9\xe1\xf2\xc5\xeb\xe7\x17\x17\x2f\xdf\x5c\xbe\xba\xfc\xe1\xe2\xf2\xf2\xe2\xf5\xcb\x1f\xf8\xab\xdf\x7f\x68\x3f\xfc\xd0\x9a\x46\xd4\x9c\xff\x50\x8a\x4d\xad\xbe\x98\x93\x9f\xfb\xd6\xdf\xff\x87\xfe\x8c\x9e\x2d\x97\x1f\xce\xcd\x56\xd7\xcd\xa8\xf9\xda\xfc\x2e\xef\xb0\x1b\xfc\xfa\xf5\xcb\x93\xfb\xff\xea\xe2\x55\x67\xff\x5f\xbc\xbc\x7c\xf3\x03\xbf\xf8\x5d\x46\xd3\xf9\xf9\x5f\xbe\xff\x63\xc3\x37\xa2\xe6\xc2\xf0\x29\x17\x3b\x9e\xeb\x2a\x97\x75\x25\x8b\x8c\x37\x5b\xc9\x73\x5d\x48\x3e\xe5\x5b\xf1\x20\xf9\x63\xad\x9a\x46\x56\x7c\xa3\x6b\xde\x6c\x95\xe1\x46\x6f\x9a\x47\x51\x4b\x9e\x8b\x8a\xaf\x25\x6b\x8d\x2c\xf8\xa6\x96\xb2\x3c\xc0\x87\x44\x75\xe0\xfb\xb6\xde\x6b\x23\x47\x7c\x5c\x1d\x78\x21\x6b\xf5\x20\x0b\xfe\x20\x6b\xa3\x74\x65\xb8\xde\x74\x9e\xb4\x6b\x4d\x63\x1f\x95\x97\x52\xd4\xe5\x81\xef\x44\xfd\x45\x16\x76\x74\xa6\xcd\xb7\x19\x17\x55\xc1\xd5\x06\x86\xe6\x1e\xf6\xa8\xeb\x2f\x5c\x19\xae\xaa\x5c\xef\xf6\xa2\x51\xeb\x52\xf2\x47\xd5\x6c\xe1\x53\xfb\x5a\x37\x3a\xd7\x25\x2b\xa4\xc9\x6b\xb5\x6f\x94\xae\xb8\xaa\xe0\x6f\x8b\x77\x57\x7c\xa3\x4a\x99\x71\xd5\xb8\x37\xf3\x5c\x94\xa5\x2c\xf8\xfa\xc0\x05\xaf\xc4\x4e\x72\xdd\x6c\xa5\x9d\xb0\xa8\xf8\xc0\x98\xed\x80\xe9\x9a\x0f\x96\x32\x6f\x6b\xc9\x97\x5b\x59\x96\x83\x11\xfb\xef\xde\xc4\xff\xc2\xcf\xe8\xd9\xf8\xfd\xed\xcd\xf9\x8b\xd1\xc5\xb9\xae\xcf\x4b\xd1\xc8\xfa\x1f\xae\x07\x9e\x3c\xff\x97\x17\xcf\x2f\x9f\x77\xcf\xff\xcb\x17\x6f\x9e\xff\x71\xfe\xff\x19\x3f\xef\x67\x77\x7c\xfc\xee\xdd\x64\x31\xe7\xef\x27\xb3\xc9\x62\x7c\xc3\x6f\xef\xde\xde\x4c\xaf\xf8\xcd\xf4\x6a\x32\x5b\x4e\x18\xfb\x15\x8f\x2b\x7f\x91\xf1\xcb\x9f\xf8\x4c\x3f\xc8\xdd\x5a\xd6\xfc\xf9\xc5\xc5\x1b\xc6\xae\xf4\xfe\x50\xab\xfb\x6d\xc3\xcf\xae\x86\xf0\x3b\xfe\xae\x96\x92\x2f\xdd\x91\x7e\xa7\xdb\xaa\x10\xf6\xdc\x65\x7c\x5a\xe5\x23\xfe\x2f\xdb\xa6\xd9\x9b\x9f\x9f\x3d\xdb\x98\xcd\x48\xd7\xf7\xcf\xfe\xcc\xd8\xe4\x41\xd6\x07\x5d\x49\x7b\x90\xf7\xb2\xde\x59\x4d\x53\xf0\x46\xf3\x5c\xef\x0f\x70\xea\x0b\x65\x9a\x5a\xad\xdb\x46\x5a\xf5\xb1\x16\x8d\xb2\xca\x6a\xaf\x64\xd0\x22\xa5\xca\x65\x65\x24\x2b\x74\xde\xee\x64\xd5\x64\x7c\xdd\x36\x3c\xdf\x8a\xea\x5e\x55\xf7\xf6\x90\x2b\xc3\x2b\xdd\x70\x51\x96\xfa\x51\x16\x23\xc6\x6e\x6b\x29\x76\xeb\x52\x32\xb6\xda\x4a\x0e\x6b\xb1\xd9\xc8\x5a\xf3\xf7\xb2\x92\xb5\x28\xf9\x6d\xbb\x2e\x55\xce\x6f\xf0\xd1\xf6\x01\x02\x54\x5c\x06\x23\x2b\xe5\xa6\x71\xaf\x05\x95\xe7\x14\x19\xb3\x43\x46\xcd\xf1\x45\x55\x05\x8c\xd1\x2a\x2a\x93\x71\xb3\x97\xb9\xda\x28\xab\x67\xac\x46\x34\xea\xbe\xc2\xa9\xca\xca\x58\x9d\x92\x6b\xbd\x97\x35\x2c\x18\xa8\x31\x86\x7a\x78\xb7\x6b\x2b\xd5\x1c\x9c\xee\xca\x85\x91\xf6\xa1\x95\x6c\x40\x01\x1a\x59\x3f\xc8\xf0\xfe\x11\x4e\x88\x86\x66\x60\x6c\x3b\x6d\x9a\xa0\x69\xc3\x00\xf7\xb5\xc8\x1b\x3b\x1e\x1c\x21\xb7\x7f\x8d\xc7\xd5\x88\x2f\x92\x89\x47\x71\xe0\x07\xdd\xd6\x30\xfb\x42\xef\xec\x5f\xcc\xd6\x3d\x09\x16\x59\xc2\xc8\xe0\x21\x23\xfe\xf6\x60\xef\x92\xa6\x16\xa6\xc9\xb8\xfd\x1e\xad\x28\x4b\x57\x14\x5f\xa7\xaa\x46\x56\x05\xbe\xee\xbe\x15\xb5\xa8\x1a\x29\xbf\xf9\x3a\x26\xca\x32\xb9\x4b\x84\x55\xf7\xf7\xb5\xd8\x9d\x9f\x37\x9a\xef\xc4\x17\xc9\x61\x49\x55\xc3\x6b\xb9\x13\xaa\x32\xf0\xb8\xb0\x08\x70\x4b\x95\x25\x57\x8d\xb1\xb7\x57\x6d\x46\x8c\x7d\xda\xca\x8a\x3f\x4a\xbb\x4f\xe2\x8b\x7d\x6a\xf2\x95\xcc\xfe\xc9\x7e\xb5\x96\x1b\x59\xd7\x56\xae\x1a\xed\x06\x99\x81\x74\xed\x6b\x95\xcb\x11\x9f\xb7\x35\xeb\x97\xa2\xe3\x25\x0e\x43\x6d\xb6\xa2\xb1\x13\xc7\x2b\xd7\xae\x27\x3d\x9b\x35\x3a\x3e\x03\x41\xf4\xd3\x19\x9d\xd1\xf2\xd4\xf7\x92\x2e\x6a\xb9\xb3\x37\xa6\x7d\xe4\xa3\x32\xdb\x61\x06\xaf\x60\xf6\xdf\xb5\xcc\xa5\x7a\xb0\x5f\x6e\xeb\x9c\xee\x7a\x5d\xc3\x6d\x7e\x2f\x1b\x38\x2f\xf4\x45\x51\xd9\x7f\x66\x61\x74\xf6\x33\xb4\x09\x76\x8c\xfe\xf5\xba\xe6\xad\x91\x7c\xaf\x64\x8e\xa3\xb3\x0f\xa9\x78\x25\x1f\x71\x9c\xb4\x3f\x06\x6f\x72\xff\xb8\x2f\x95\x7e\xb4\xff\xc1\xec\x73\x0b\x6d\x47\x6d\xec\xec\x55\x75\x6f\xb7\xe4\x5a\x3e\xc8\xd2\x9e\x0a\x83\x5f\xb1\xaf\x88\x44\xea\x68\x79\xed\xa5\x2f\xf3\x06\x05\x08\x94\x93\x21\x8b\xe0\x51\x33\xd3\xc8\xbd\xf9\x99\x9f\x5d\x0e\xb9\x30\x46\xd6\x0d\x9c\x64\x54\x61\x1a\x0f\x57\xd8\x6c\x3b\xca\xb3\xe7\x43\xae\xad\x56\x80\xa1\x82\xa6\xa1\x37\xb1\xc7\xad\xca\xb7\xfc\x5e\x3d\x48\x03\x7f\x2c\xe5\xbd\x28\x51\x81\x19\x50\x99\xa4\xc1\xb2\x78\xeb\x44\x55\x3c\x83\xe3\x58\xa8\xcd\x21\x79\xdf\x88\xb1\x31\x37\x32\xd7\x55\x21\xea\x03\x5f\xcb\x4a\x6e\x54\x63\x97\xb1\x90\x1b\x59\x15\x56\xda\xac\xb8\x82\xa8\xfe\xe8\x8f\x86\xa2\x65\x51\xbb\x7d\x6d\x95\xb3\xac\x1a\xc3\x77\xa2\x90\x4c\x55\x5c\x94\x8d\xac\x2b\x81\x6a\x33\xb2\xba\xfc\x5e\x64\x64\x50\x1d\xbc\x3c\x3c\xaa\x42\x9a\x7d\x2d\x45\x61\xdf\x94\xf1\xb5\xcc\xf5\x4e\x32\xf1\x20\x54\x29\xac\x75\x65\x05\x0b\x75\x47\x11\xed\x8c\x06\x13\xac\xde\xeb\x5a\x34\x72\xc4\x3f\x0a\xb0\xf8\xfc\xdf\xbb\xa2\xca\xac\xbc\x6c\xa5\xa8\x1b\x69\x4f\x81\x5d\x69\x59\xe5\xba\xad\xc5\x3d\xda\x5f\x76\x8c\xb5\x34\x6d\xd9\xd8\x79\x47\x6a\x71\xc4\x3f\xe8\x47\xf9\x20\xeb\x8c\xb4\x21\x73\xda\xd0\xcb\x21\x98\xa2\xba\xea\xa8\x47\x93\xe1\xf6\xe1\x53\xf9\x4e\x1c\xf8\x46\xa8\x12\x77\x69\x27\xb9\x58\xeb\xb6\x19\xf9\xab\xe0\xc4\x1d\x80\xf7\x93\x5d\xe1\x2f\xb0\x21\xb8\x93\x2a\xd8\xb5\x30\x97\x52\x36\x76\xdc\x70\x3c\xf6\xf8\x00\x91\xe7\xd2\x18\x7b\x24\xec\x67\x9c\xca\xb6\x82\xa9\xdb\x86\xdb\x09\xf1\x5a\x96\x52\x18\xbc\xad\x4c\x72\x30\x1b\x1d\x3d\x6a\xf4\x1b\xee\x2b\xaf\x67\x92\x8b\x27\xdc\x37\x56\x74\x32\x2b\x29\xd6\xc2\x86\x7b\xc5\xa0\xed\xef\xa7\x15\x0f\x03\x65\xc1\xf0\x20\x0c\x8d\xe6\xc9\x0d\x35\x62\x53\xab\x6e\xff\xa3\x55\xb5\x34\xf0\x27\xdc\x38\x2b\x33\x56\x45\x77\x6e\xac\x46\x5b\x41\x7c\x50\x85\xa4\xa3\x10\xe9\xa2\x0d\x4b\xc6\xe1\x96\xb7\x6e\xab\x0a\x14\xef\x56\xd6\xfe\xfd\x70\x26\x50\xb4\x45\x43\x0f\x1f\xf1\x95\xfd\xc8\x46\xd7\x32\x63\xb4\x09\x2d\x4a\xca\xf1\xae\x65\xb8\x2b\xf8\xb1\xf2\x40\xbb\x05\xde\x04\x3e\x2d\xa3\x83\x6e\x05\x2e\xdd\x51\x1a\x42\x3a\x76\xde\x37\x76\x7b\xc2\x2b\xae\xcb\x42\xd6\xee\x72\xce\x9c\xcb\x61\x3f\xff\xf4\x6e\x5a\xb9\x82\x37\x9b\x2d\x1c\x11\x86\x1f\xcf\xf8\xa3\x30\xc9\x7d\x22\x72\xeb\x0b\xd9\xcf\x71\xa3\x76\xaa\x14\x35\xbf\xd7\xa2\x34\x76\x41\xac\xab\x64\xad\x98\x42\xd9\x2f\xcb\xca\x1b\x30\x19\x03\xdb\xc8\x2f\x33\x4d\xc1\x0d\xe9\xf6\x06\xed\x29\xfa\xf7\x56\x18\x92\x56\x7b\x78\x41\xc3\x87\x2f\xb2\xf4\x8b\x1c\xf5\xa4\x3b\x38\xb5\xc4\x37\xda\x3d\x6c\xab\x42\xd6\x89\xf9\x46\xb2\xbd\xaf\x65\xae\xec\x25\x20\xeb\x9d\xc1\x4b\x5f\x57\x85\x6a\x40\x83\x59\x05\x64\xf5\xaa\xaa\xee\x23\xd5\xea\x8e\x1e\x2e\x7a\x0e\xba\x82\x6d\xb4\x35\xf6\xec\x43\x27\x8b\x8f\x4b\x3e\x9e\x5d\xf3\xab\xf9\xec\x7a\xba\x9a\xce\x67\x4b\xc6\x38\xe7\x17\x23\x7e\x2d\x37\xaa\xc2\x67\x8f\xe0\x77\x83\x55\xa4\xe6\x07\x78\xd9\xc3\x3e\xbb\x39\xbe\x70\xcb\xf3\xcd\x33\x38\x62\x6c\xe0\x8d\xe4\x01\x17\xa5\xd1\x7c\x27\x45\x65\xc2\xbd\x73\x5e\xaa\x2f\x92\x97\xe2\x91\x14\xb9\xd8\xef\xf1\x88\xf6\x5a\x90\x0c\x0e\xaa\x75\x89\xe5\x4e\xd9\x45\x69\x73\x7b\xb8\x76\xc2\x7c\xb1\xa3\x1f\xd8\xd5\xbb\x45\xdd\x1e\x8f\xdc\xaa\x63\xff\x46\x38\xb9\x70\x0c\x69\xd5\x8b\x78\x27\xfc\xc8\x27\x22\xdf\xba\x4f\xa0\xf1\x5b\x14\xb5\x34\x06\x5d\xf2\xc1\x41\xb7\x83\x11\x1f\xd0\xc7\xa5\x19\xc0\xf2\x0f\xec\xce\xed\x95\xbd\x85\x06\xa0\x63\xd7\xd6\xc0\x2b\xd4\x83\x2a\x5a\x51\x1a\xeb\x3f\xeb\xfa\x5e\x54\xea\x3f\x85\x5b\xf1\x95\xe6\x03\xbc\x0f\x07\x5c\xe0\xb8\x70\x89\x9c\x07\xb0\xa9\xf5\xce\x1a\x17\xa2\x10\x7b\xb0\xdf\xed\x3f\xf6\xa2\x6e\xdc\x36\x60\x14\xa0\x62\x82\x6f\x84\xd9\x82\x96\x00\x15\x84\x57\x87\xbb\xdf\xc3\xcd\x9c\xc5\x7e\x3d\x9c\x54\xd4\xe6\x56\x35\x54\x5c\x7e\x15\x79\xc3\xec\xf7\x40\x85\x44\xd7\x90\x8b\x36\xd0\x99\x15\x34\xee\xe8\x88\x0f\xdc\x90\xa4\xa8\x4b\x65\x15\xbc\xae\xbf\xd8\x49\xd3\xc4\x06\x6b\x81\x97\xd3\xe0\xe8\x53\x70\xff\x0f\x72\xfd\x20\x6b\x0a\x6c\x0c\x68\x1d\xa4\xa2\xd1\x4a\xde\x56\xfe\x8d\xb4\xcb\x3c\x3c\xdc\x3d\x1b\x94\x14\xfd\x99\xd6\x77\x5f\xeb\xbd\xb8\x17\x8d\x3c\x5e\xe2\x02\xa4\x03\xcc\x2d\xb4\x93\x54\x83\xd7\x82\xbf\x9c\xa2\x85\x63\x8f\xba\x2d\x0b\x34\x59\xad\xcd\x53\xa8\x5a\xe6\x4d\x79\xb0\xa3\x70\xb6\x8b\x2a\x0f\xbc\x54\xde\x56\x50\xd5\xc6\x6e\x04\x58\x26\x24\x67\x56\xc4\x55\x6e\x3f\xc1\xc2\xf6\x94\xe2\x31\xe3\xf2\x6b\x2e\xf7\x0d\x97\x5f\x65\xde\x36\xe4\xb7\x81\x66\xb6\x2a\xad\x6d\xa4\x95\x1e\x32\x9e\xf0\xfa\xdd\xd7\xea\x41\xa0\x49\x7c\x18\xd9\x49\xc3\x34\x31\xce\x93\x97\x6d\x21\xcd\x09\x5d\x71\x06\x73\xd5\xe1\x0a\x8e\x15\xc7\x30\x63\xee\x82\xef\x5e\x75\xa8\xfc\x29\x18\x55\x71\x63\x4d\x87\x5c\xb7\x55\x53\x83\x49\x0e\x3b\x65\x5d\xaa\x07\xd5\xd8\x5f\x08\xc3\x1e\x65\x59\xd2\x36\xe4\xba\x7a\x90\x5d\x31\xb7\x67\xd3\x9e\x72\x2b\x3a\xfb\x68\x02\xa0\x0d\x64\x65\x5f\xee\x1e\x6c\x85\x5e\x49\xc3\x9c\xd7\xa0\x6b\x6f\xb7\xa1\x4f\x30\xe2\x1f\x25\xb9\x54\xe0\xd8\x91\x1b\xc9\x05\x5c\x91\xbc\xd9\xd6\xba\xbd\xdf\x46\xeb\xc9\xe8\x46\xc6\xdd\xe6\x95\xe6\x4d\x2d\x2a\x63\x0d\x5e\xb8\x28\xd1\x80\x25\xd7\x19\x87\xaf\xaa\x7b\xbc\xc9\xfc\x5b\x1e\xf0\x06\xc6\x5f\x6c\x44\x2e\xed\x52\xef\x4b\x71\x30\x7c\x30\xde\xdb\x39\xd5\xca\x6e\xd2\x0d\x58\xc8\x33\xdd\xa8\xdc\xea\x0b\x5c\x51\x26\xbf\x36\x56\x34\xd0\x8a\x6d\xc2\xbe\x09\x7c\x5f\x65\x95\x09\xde\x7e\xb5\xde\xa9\x4a\x56\x56\xde\x1e\x14\xde\xce\x1b\x29\x1a\x67\xc8\x30\x6b\xd6\xfb\x37\x8b\xca\xca\x99\x7f\x77\x10\xb4\x0a\xde\x1f\xcc\xfb\x46\x96\xa5\xf1\x66\x04\x3e\x09\xad\x0b\x98\x36\x7f\x14\xb5\xf5\x49\x0f\xce\xa5\xc2\xbd\x3b\x23\x51\x25\xb1\x88\x27\x41\x5f\x50\xe8\xeb\x31\xb2\x70\x0a\xf2\xbe\xbc\x4a\x35\xa0\x1f\x71\x4d\xc3\x73\x8f\x35\x31\x8e\x74\xab\x1f\xed\xb6\x3f\x28\xf9\x48\xdb\xe2\x43\x1f\x4e\x63\xf3\x29\xea\x9e\xb0\x0d\xfb\x5a\x1a\x70\x08\x04\x2f\x95\x01\x7d\x09\x73\xb4\xf6\x9a\xa8\x0a\x54\xc7\x10\x16\x35\x19\x77\x37\x8b\xe0\x3b\x59\xb5\x19\x3a\xd4\xb8\xe0\x5c\x35\xd6\x93\x44\x65\x09\x4f\xda\x49\xd9\x18\x7c\x7d\x5e\xab\x46\xd6\x68\xdf\x70\xce\x2f\x47\x7c\x89\xb6\xd0\x95\x2e\xdc\x85\x3e\x88\xcc\xa3\x01\x7a\xde\x89\x1a\xc2\x3b\xdf\x3a\xd5\xb2\xb0\x7f\xde\x25\xaa\x1d\x02\x18\x70\x1e\x59\x7c\x4a\xd1\xed\x68\x46\x7c\x30\x5f\xff\xcd\xba\x7c\xf8\xf4\x70\xaa\x2a\x5d\x9d\xd3\x8b\xdd\x33\x45\xa4\x6b\x97\x8d\xb0\xfa\xaa\xe0\x53\xb7\x60\xe1\xcb\xd1\x22\xe2\x39\x44\x1d\xac\xe0\x6f\x7a\xb3\x51\xb9\x12\x25\x37\xf4\x04\x56\x58\x1b\xc2\x45\x8e\x6b\x99\xeb\xfb\x4a\xfd\xa7\xb5\x9e\xe9\x03\x86\xaf\x75\x71\xc8\xb8\xf6\x6e\x8b\x0f\xe2\xf8\x17\x19\x67\xa4\xcb\x82\xe1\x0a\xc1\x71\xcf\x5b\x6b\xc1\x91\xbf\xb6\xb3\x3a\xa9\x14\xd5\x7d\x2b\xee\xa5\x35\x5a\x69\x78\xca\x80\xe3\x56\x1e\xd0\xf9\x11\x3b\x5d\xdd\x47\xfe\x17\xb3\x93\x06\x75\x4a\x6a\xc5\x3d\xc2\x6d\xcf\xf2\x60\xec\x0e\xdf\xa8\x75\x2d\xac\x22\x1b\xf8\xbb\xd0\x2a\xe2\x60\x30\xd0\xe1\xf4\x37\x46\x7c\x93\x32\xbf\x5f\x20\x44\x8f\x5b\x5d\x4a\x12\xf9\x33\x31\xa4\x28\xbd\xfd\x76\xe1\x96\xa0\xd2\xf5\x4e\x94\x7e\x6f\xf6\x22\xff\x22\xee\xed\x2e\x0b\xfe\x51\xfc\x4d\xd7\xfc\x4a\xef\xf6\xba\xf2\xd1\x3c\xb4\x24\x49\x19\x05\x03\x40\x34\xc7\x1f\x87\xc3\xbd\x1e\x32\xb0\xde\x0d\xd7\x95\x73\x7b\x60\x2e\xe4\x07\xf8\x01\x53\xc6\xa0\xef\x41\x1a\xbc\x14\xb5\xdb\x97\x70\x83\x31\xc1\x8f\xc5\x06\x04\x14\x07\x67\x25\xc7\x7d\x96\xee\xa1\x1e\x7f\x09\x2f\x11\xf0\xbb\x22\xb7\xc1\xae\xc3\x88\x8f\xf9\xa0\x33\x88\x01\xc9\x8c\x3d\x6b\xba\x6a\xe4\xd7\x26\x73\x72\xca\x77\xf0\x51\x6b\x95\x55\x8d\x12\x25\xcb\xdd\x97\xf8\xd9\x17\x59\x57\xb2\xb4\x8a\xbd\x2a\xf4\x23\x37\xb0\xc5\xb8\x32\x46\x73\x5d\x0d\xdd\x12\x38\xdf\x90\x7c\x35\x2b\x27\xf8\x61\x76\xa6\xac\x14\x1c\x86\xf6\x0e\xc6\xf9\xa1\xae\x4b\x85\xa2\x6e\xad\xfa\x00\x89\xb5\xaf\x57\xa5\xac\x51\x0c\xd1\xbd\x2b\xda\x5c\x7a\xd9\xc0\xcf\x55\x5c\x87\x13\x8b\x27\x60\x5f\xcb\x26\xfa\x5e\xdd\x56\xf6\x68\x93\x78\x5e\xe9\xba\x96\x66\xaf\x31\x0a\x82\xea\x25\x51\x23\x2a\x7d\x22\x48\x14\x2d\x51\x59\x46\xfe\x19\x83\x3f\x57\x52\xba\x78\x23\x58\xed\x8d\xb4\x2b\x6c\x1a\x51\x96\x24\x39\x98\xc1\xea\xce\x74\x08\xc3\x02\xaf\x16\x5e\x86\x4f\x83\x60\x96\x8e\x43\x3a\x38\x51\x94\x76\x58\x4d\x48\x3e\x91\x41\x5b\x35\xb5\xb6\x43\xd2\xd6\xa7\xf3\x86\xc2\x88\x85\xb0\x46\xc3\x0b\x2d\x51\xc8\xdd\x79\x73\x4f\xfd\xd1\xf0\xee\x51\x85\x15\xc5\x79\x94\xe7\x94\x71\x63\x8d\xd6\xa5\x89\xfe\x60\x5d\xda\x10\xc1\x89\x83\x71\x4e\x6e\x5d\xdc\x24\xb2\x30\x55\x65\x4d\x3f\xbb\x96\x18\xcb\x48\x47\x1c\x9d\x48\xfb\xe5\xf4\x48\xe2\x68\x47\xfc\x9d\x15\xce\xaf\xc2\x9e\x88\x8c\x27\xbb\xc8\xe8\x92\xf0\xd7\x7d\x64\x3c\x78\x87\x0c\x32\x74\xd6\x88\x32\x3a\xb7\xb7\x78\x81\x27\xd5\xe9\x74\xf8\xe3\x46\xd7\x91\x74\x61\x64\x51\x76\xcf\x15\x86\x8f\x0b\x5e\xba\x55\xc3\xb4\xc2\xa1\x12\x3b\x8a\x89\x94\xaa\xfa\x22\x0b\x66\xda\xb5\x5f\x19\x50\x08\xc1\xbf\x30\xa7\xa3\xf7\x14\xf1\x08\x77\xe8\xfa\xc0\x54\xd5\xa8\x9d\xb5\x3c\x0a\xd1\x08\x17\x21\xc1\x8b\x0b\x02\xad\x24\x08\x9b\x52\x3f\xf2\xb5\x6c\x1e\xa5\xac\x50\x2a\xe0\x16\x8d\xc7\x11\x45\xeb\x45\xdd\x98\x64\x85\xf1\x80\xf4\x9d\x0f\x90\xf2\x44\x88\xbc\x99\xef\xe2\xa8\xb5\x81\x58\x6e\x2d\xdd\x31\x60\xa2\x6d\xf4\x4e\x34\x34\x45\x74\xbc\x8e\xdf\xdc\xf7\x3a\xbc\xfc\x4f\x0e\x26\x3d\xab\x5d\xad\xe7\xa3\x98\x46\xec\xfc\xc4\x38\xe7\xcf\x47\xfc\xad\x30\x2a\xe7\xb7\xde\x05\xb1\x1e\xe3\xb8\x2c\x5d\x64\xf7\x1e\xd2\x05\x7d\x0e\x2c\x48\xa5\xfb\xb3\x33\xdd\x1a\x89\x57\x8d\xb7\x06\x19\x45\x7d\x6f\x5d\x3c\xd4\x2e\x36\x64\x25\xea\x5a\x3e\x68\x70\x52\x5c\x8c\x8a\x24\xab\x01\x41\x8c\x02\x12\x90\xbb\x96\x10\x3b\x8c\x5e\x2f\xbf\x5a\x27\x47\x59\x63\x55\x6c\x36\xaa\xde\x19\x0c\x49\xb7\x55\xa9\x76\xca\x3e\x22\x0d\x15\x3b\xd5\x12\x0e\xa0\xf7\xe1\x60\x59\x75\xdb\xec\xdb\x06\xf7\xc4\x05\xc1\xac\x5c\x05\x7f\x11\x5c\x53\xfa\x37\x84\x50\xa3\x60\x35\x5c\x80\x94\x3c\xc7\x27\x61\x44\xab\x82\x58\x23\x5c\x2b\xf6\xb6\xcb\x75\x65\x1a\xd5\xb4\x0d\xd9\xdf\xe1\xe1\x14\x3d\x72\xcf\x13\xf9\x97\x4a\x3f\x96\xb2\xb8\x97\x26\x09\xb5\xeb\x0d\xdf\x08\x85\x99\x00\x1f\x29\xb6\xc7\xe3\x41\x94\x78\x33\x9b\xb0\x9e\xeb\x28\x2a\xc1\x4a\xf1\x38\x62\xec\xb3\x6e\xc1\x2e\xb6\xfe\x4d\x06\x8b\x42\xa6\x3f\xfa\xaf\xc9\x98\x4c\x48\x22\x14\x3a\xf2\x50\xbc\xeb\xca\xa2\x5d\x32\x9a\x97\xd6\x2a\x12\x34\x5e\x97\xb9\x83\x11\x3e\x2a\x23\x7d\x9a\x48\x01\xcc\x21\x97\x23\xee\x06\x83\x8f\x65\x9d\x77\x53\x88\xc6\x78\xe9\x32\xda\x0a\x0b\xaa\x60\xbb\x10\x5b\xf1\x40\xa1\xca\x1d\xfa\x6b\x89\xf5\xca\xe4\xd7\xbc\x6c\x8d\x7a\x70\x90\x89\x83\x6e\x41\x99\xbb\x90\x28\xa6\x6d\x9a\x2d\xdf\x88\x5c\x95\xa8\x74\xed\xe7\x42\x08\xd4\xbe\x87\xe2\x42\x91\x8c\xba\x34\x8d\xde\xed\xcb\x43\x40\x43\x60\x30\xad\xe3\x34\xd8\xc9\x7a\xb7\x0e\x2e\x4b\xab\xb3\x6a\x6b\x4a\x04\xa3\x26\x5d\x60\x50\x5b\x7e\xdb\xac\x5c\x68\xc8\xd7\xb4\x3e\x2a\x9e\x8c\xd1\x6f\x19\xc3\x65\xa3\x99\x22\xe6\xa2\xd0\x76\x5f\xe2\x85\xd0\x15\x6e\xcf\x5a\x6e\x45\xb9\xc9\xe8\x60\xc3\xaf\x30\xd8\xa0\x74\xc5\x28\x22\x68\x47\x02\x91\x5b\x9c\x1a\xcc\x7c\x5f\xeb\xad\x5a\x43\x0c\x43\xee\xf0\xb4\x38\x57\x1e\x63\x60\x94\x39\x83\x27\xfa\x59\xc8\x82\xb9\x79\xdb\xe3\x61\x28\x22\xad\x20\x28\x8f\xdb\xb5\x55\x7b\x5c\xcb\x83\x6e\x47\x8c\x5d\xf9\x45\xa3\x98\x46\x75\x20\x61\xcf\x55\x9d\xb7\x3b\x6b\xf9\x5b\x9b\x3e\xc9\x69\x5b\x01\xb1\x36\x3a\x29\x2b\x19\x69\x11\x46\x7a\x65\x2d\x4b\xfd\x38\xe2\x4b\xb0\x10\x29\x4e\x9a\x66\xae\x7f\xe1\x06\x97\x81\x5f\x5e\x80\x58\x41\x56\xa1\xad\x2a\x99\x4b\x63\x44\x7d\x40\xdd\xf9\x62\x64\x95\x5a\x63\x3f\x5a\xdd\xf3\x3b\xcc\x1a\xa1\x07\xbe\xc0\xa3\xfa\xce\x2e\xce\xb8\x6a\xd4\xf9\x15\x0c\xf9\xc1\xda\x90\xba\xe2\x37\x70\x10\x67\x3a\x55\x2e\x66\x6b\xa5\x63\x6d\xaf\x67\xb9\xb3\xda\x8b\x2e\x7b\x6b\x26\x6d\x36\x12\xc3\x00\x8d\xcc\xb7\x95\x2e\xf5\x3d\xa4\x94\x77\x52\x98\xb6\x96\x2c\xac\x50\x88\xfc\xf0\x52\x3c\xf2\x4d\x5b\x6e\x54\x59\x82\xcc\xac\x4b\x75\x4f\x6e\x1d\x7d\xde\x3a\x3f\xa5\xe4\x97\x97\xee\xde\xf9\x34\xbd\x9d\x47\x11\xa3\xa6\x96\xa2\x39\x70\x51\xe8\x7d\x83\x81\xaf\xe7\x17\xfc\x5a\xe6\x88\x50\xb8\xfc\xe9\xa7\xd7\x70\x9c\x5c\x10\x1c\x42\xac\x4e\x3c\xac\x05\x02\xd1\x13\xd3\xd4\x0a\x97\x28\x4f\x16\x41\x6f\xf0\x32\xa7\x39\xf8\xe4\x30\x9e\x2c\xf0\xd9\x53\x05\x99\x51\xb6\xd4\x2e\x83\x9d\x2a\xa5\x03\xf5\x23\xe6\x39\x36\xba\x5e\xab\x22\x7d\x09\xb3\xf3\xea\x5b\x31\xd3\x09\x2b\x60\x76\x26\x19\x9f\x32\xb4\xec\x98\x0c\x90\x5f\x65\x9d\x2b\x90\x16\x52\xc4\x3d\x37\x22\x88\xaf\xbd\x9b\xad\xa1\xec\x53\x37\xf1\x14\x44\x55\x30\x8c\xeb\x99\xbc\x14\x6a\x07\x33\x81\x04\x7d\x43\xd7\x14\x5c\x5e\x3c\xa0\x14\x5c\x3c\xce\x9b\x36\xc1\x38\x61\x14\x4c\x10\x98\x76\x94\x95\xd5\xaa\xe0\x34\x8a\x7b\xab\x68\x9b\xd8\xac\x05\x73\x24\xc3\x63\x89\x18\xb3\xba\x70\xf1\xae\x1f\x19\x2e\x26\xcd\xec\xc4\x6a\xf2\x93\xab\x89\x07\xe2\xe5\x88\x87\x43\xfb\xab\x83\x91\x5c\x61\xdc\x2c\x5c\x3c\xb4\xb9\xbd\x38\x13\x6f\x27\xfc\x98\xe6\xe7\xf0\x4e\x71\xb1\x38\xa6\x1a\xf0\xd8\xec\xda\xed\x64\xa1\xda\x5d\xc6\xfb\xd4\x73\x65\xf6\x2a\x6f\x75\x6b\x4a\x44\xb9\x44\xe1\xaa\xf2\xe0\x72\x3d\xd6\x40\x91\xc2\x6e\x3f\x82\x61\x9e\x0c\x6a\xfd\xc2\xbf\x48\xb9\xb7\x1b\x26\x72\x8c\x94\xe3\xef\x0d\x58\x2d\x68\xc5\x83\x4d\x1b\x9b\x49\xf6\xcd\x14\x2c\x71\x16\xc9\x83\x4f\xbd\x14\xe4\xae\x8b\x3c\xd7\xb5\x33\xbf\x49\x0b\xbf\x09\xb9\x0a\x07\x17\x3c\x3d\x00\x5a\x3f\xb1\x36\xb2\xca\x31\x0b\x57\x1d\x7c\x6c\xed\x17\x50\xe9\xf7\x70\x76\xac\x71\xe7\x93\x08\x27\x62\x5d\x5c\xc0\x5d\xee\xef\xb6\x10\xed\xf6\xdb\x88\x30\x08\x80\x21\xd6\x2a\x07\x63\xa4\xd2\xf4\xdf\xf6\x0e\x0a\x8b\x1a\x6f\x09\x58\x0f\x76\x2c\x07\xdd\x32\xfb\x1c\x4c\xfe\x9b\x76\xbf\xd7\x56\xdf\xd5\x21\x1c\x48\x40\x03\x70\x53\xc0\xba\xdd\x48\xb2\x82\x5f\xc5\x92\xf6\xd1\xb9\x53\x64\x09\x13\xa0\xaa\x47\xe4\x7a\xc2\xf8\xc1\x2e\x25\x13\xe3\x28\xfe\xe5\x1c\x6c\x45\xa6\x61\xf2\x25\x8a\xb3\xb8\x00\x4b\x2c\xb2\xe1\x0e\xf2\x76\x81\xdb\xd7\x97\x7d\xe2\x4a\xa9\x2b\x49\x09\x98\x0d\xc1\x34\xc2\x05\xf6\x33\x63\x62\x08\x96\x2a\x06\xf6\xec\xf5\x9e\x8b\xba\x3e\x44\x61\xc4\x8e\x34\x86\xa7\x07\x9f\x13\x63\x37\xec\x5e\x3d\xa0\x81\x5b\xcb\x52\x3e\x88\xaa\xb1\x6e\x94\x5d\xde\xf5\xdf\xf5\x0e\x84\x7f\xf9\x94\x25\x4c\x9e\xf5\x1e\x83\xd8\xae\x07\xe1\xc7\x85\x72\x57\xee\x1b\xb2\x83\xc9\xe3\x83\xa4\x06\x0d\xde\x30\x04\x2d\x84\x3f\x58\x4f\x87\xbe\xf7\xd2\xee\xd5\xe0\xc4\xe1\x18\x8c\x18\xcb\x87\x68\x6d\xda\x29\x39\xd3\x14\x6e\x80\xaa\x51\xb5\xf7\x6e\xa3\xc0\x5a\x8f\x7e\xc7\x44\x9f\xae\x24\x7b\xdc\x22\xaa\x01\xdc\x6a\xcd\xf7\xda\x18\x69\x5c\x62\x17\x8f\x54\x6a\xd0\xf3\x47\x85\x81\x12\xcc\x98\xe3\xc9\xce\xf0\x98\x31\x4c\x21\xa4\xd7\xb7\x5f\x10\xbb\x4c\xb0\x60\xa2\x44\x51\xca\x9c\x42\x80\x81\xc6\x17\x42\x06\xa7\x9c\x30\x57\xe8\x52\x66\xd6\xfb\x14\x75\x51\x4a\x03\x32\xb8\xd5\x8f\x88\x47\xb1\x4e\x15\x06\x04\x65\xd1\x19\x2a\x64\xe2\x99\x3d\xcc\x89\x03\x15\xaf\x9a\x73\x34\x83\x55\xf6\x28\x0e\x18\x44\x4c\xc3\x2b\x0f\xa2\x54\x56\xb2\x30\xaf\x1a\x3d\x90\xd0\x4f\x80\xc4\x32\x72\x2f\x6a\xd4\xca\xa4\xe2\x0b\x0c\x4e\x15\x43\x17\x73\x87\x17\x6e\x85\x79\x22\x29\x62\x32\xd4\x39\x68\xf8\x62\x9a\x82\x47\xe9\x11\x96\xa4\x47\x7e\xb1\x4b\x41\x01\xa1\xe4\xea\x39\x7a\x4b\x14\x40\x06\x59\x2f\x34\xe4\xf2\x7b\xde\x90\x26\x60\xe8\xb2\x85\x91\xfb\x58\x01\xb8\x29\x60\x3a\x83\x69\x0e\x81\x72\x0c\xea\xf9\xeb\xbd\xe3\x74\x62\x1e\x0d\xd6\xd8\xad\x13\x25\xc7\x0a\xb9\x97\x55\x61\x0f\x02\xf9\x28\x69\xb4\x08\x51\x3e\xaa\xe6\x15\xa6\x70\xc0\xd6\x49\x40\x4a\x47\xb6\x49\x88\x37\x31\x74\x46\x76\x6b\x08\xbb\xbb\xbc\xa5\x0b\xbf\xa0\x85\xb0\xe3\x82\x97\xf6\x16\xa8\x23\xb8\x13\x58\x2c\x90\x52\x7c\xd0\x65\xbb\x03\xa0\x89\xe0\xa6\xd1\xb5\xb8\x87\x4b\x22\xc9\x12\xba\xeb\x3b\x4a\xfa\x56\x7c\x20\xee\xef\xad\xd4\x36\x72\xe0\xf6\x26\x5a\x22\x90\x71\x44\x3a\x04\xf8\x92\xbb\xa6\xdd\xdc\x5d\x98\x13\xad\x29\xb8\x18\x11\x4d\xa2\x6b\x1e\xdb\x3a\x4c\x1f\x3d\xdf\xd9\x4a\x7c\x2d\x0f\x1a\x96\x84\xa2\x54\x21\xcd\x4e\x0e\x2a\xfa\x1d\x23\x3e\xad\xc0\xbd\x42\x7b\xb3\x1b\x32\xa8\xc0\xa6\x70\x13\x0a\x47\x23\x17\x2d\xa2\xf0\x52\xf5\x42\x17\x3e\xa8\xba\x9e\xc8\x90\x7f\x10\x5e\x84\xaf\xe3\x8b\x70\xa6\xab\x73\xba\x03\xdf\xe9\x7a\xd7\x7b\x01\x76\xc7\x76\x14\xd4\x3d\x7d\x6d\x19\xf6\x12\x44\xe4\xd5\xc9\xdb\x2b\x4a\xb5\xed\x44\xbe\x55\x95\x3c\xaf\xa5\x28\x40\x9d\xf5\xc6\x26\x7b\x5e\x96\x26\xe6\xec\x08\x2b\x19\x6e\xc3\x47\x71\xa0\x7b\xf0\x2a\xbc\x2b\x0d\x75\xc3\x4d\x2e\x77\x6b\x5d\x60\x88\x15\xf2\x6c\xdb\x83\x01\x83\x15\x2f\xf3\x86\x9f\xf9\xd8\x31\x8b\xfe\xda\x23\x99\xc3\x8c\xe0\x3e\xa2\x52\x01\x38\xd7\x1f\x81\x53\x5f\x65\xc1\x40\xf2\x8b\xb6\xc6\xb8\x96\x7b\x32\x3e\x8c\xe7\xad\x69\xf4\x0e\x33\xf8\x58\xcf\x11\xa1\x9a\x51\xcf\x20\xee\x13\xef\xe1\xff\xb6\x39\x0a\x5f\x8e\x02\xd6\x59\xc6\x41\x8b\x43\x24\x58\x34\xdc\xde\xf1\xf6\x44\xd4\x52\xf2\x83\x14\x35\x06\x50\xfd\x47\xac\x7e\x88\x02\x41\xce\xc0\xdb\xe3\x85\x03\xb2\x5c\xd3\x4a\xc8\x9a\x39\xc3\x0f\x43\x3c\x18\x5f\x80\xe1\xef\x74\x21\x4b\xb8\xea\xee\xc9\xe3\xb3\x92\x60\xef\x5d\xba\x6c\x1d\xfe\x2d\xac\x0c\xa3\x24\x22\xa0\x4f\x23\xb3\xf6\xa9\x90\xa9\xcf\x5e\xf8\x4d\x40\x08\x1a\x8d\xc2\x25\xff\x4e\x84\xfd\x08\xd6\xf6\x1d\xfb\xcd\x9e\xdc\xef\x8c\x2c\x5c\xb4\x9e\x2b\xcd\x77\x1a\x73\xee\x14\xac\xa9\xa5\x30\x1a\x53\x6b\xb9\x36\x8d\xd5\x33\xee\x5d\xd6\x93\xf1\x49\x04\x9f\xc4\x22\x95\xe0\x6d\x52\x90\x98\xb3\xe7\xc3\x08\x54\x47\xa6\xb9\x64\xfd\x8b\x63\x6d\xdd\x23\x3c\xa1\xb0\xe6\x1f\x99\xfe\x68\x53\x91\x8c\x46\xba\x31\xf5\xe7\x62\xc1\x25\xa4\x44\xbc\x31\x24\x67\x0c\x85\xa4\x03\x57\xec\x0d\x83\xa3\xa9\xe2\x80\xb7\x70\x3f\x1b\x17\xb9\x81\x34\x24\xd3\x79\x2e\x0c\xd8\x4b\xe4\xf7\x55\xba\xca\xf5\x6e\x67\x1d\x78\xfb\x3b\xbc\xe9\x5c\xc0\x36\xf2\x2b\x8b\x23\x81\x42\x77\xac\xc5\xbc\x23\x9d\x85\xae\xb3\xd6\xae\x9d\xa9\xf6\x7a\x8d\x26\xcb\x89\x73\xbb\x26\x67\x07\xec\x6e\xdc\x06\x5a\x65\x4c\x75\x40\x78\x6a\x5f\x8a\x5c\xf2\xb3\x7b\xeb\xfd\x03\x7c\x00\x05\x03\x97\x7c\x48\x43\x87\xc5\x0a\x31\xdf\x0e\x52\xb2\x6f\xd9\x18\x79\x2a\x18\xff\x17\x07\x8f\x54\xf1\xbf\xc4\x17\xe3\x06\x6f\xda\x1a\x23\x6d\xb8\xd1\x60\x38\x3b\x0b\x86\x91\x01\x1e\xfb\x90\x91\x34\xf5\x1f\xb5\x8e\x37\x19\x65\xf7\x3c\xa8\x02\xdf\x1f\x3f\x29\xd1\x79\xe6\x48\x18\xb3\xe3\xd7\xb9\x7b\x85\x70\x71\x78\x36\x3d\x12\x93\x64\xf8\x0c\x63\x2b\x78\x98\x41\x41\xd9\x05\x0e\xf1\x90\xc3\x10\x21\x2a\xa4\x99\x4c\xbc\xd0\x04\x75\x8a\x02\xc6\xd1\x65\x08\x7e\x96\xb0\xde\x87\xaa\x38\xd4\xd8\x85\x88\xaa\x61\x95\xfc\xea\x63\x42\xf1\xcc\x8c\x80\x27\x3e\x3a\xb8\xed\x46\x51\x86\xad\x5f\xfa\x17\xde\x9a\xb7\x4a\xe0\x31\xc0\x71\xf9\x56\x9b\xc6\x9c\xfc\x66\x46\x82\x6e\x07\xe8\x62\x81\x71\x65\x0c\x8b\xdc\xb8\x14\x8b\x1e\xa9\xf3\x90\xd7\x35\x56\x3c\x31\x1b\x6b\x12\x9f\xcc\x5a\x1d\xf2\xe4\x11\x68\x21\x80\xb6\x97\xb2\x3e\x6f\xf4\xb9\xfd\x7f\x84\x43\x79\xdc\x60\xb2\x98\xaa\xb2\x6a\x8d\x91\x19\x24\xad\x4d\x46\xcb\xd4\x79\xac\x3d\x14\xbd\x72\x17\x63\x10\xac\x51\xbb\x96\xa8\x15\x37\xa0\xcc\x69\x37\x28\x85\xeb\x81\xe4\x91\x8e\x73\xce\x69\x74\xc6\x0b\xaa\x23\xb0\x96\x38\xe8\x7c\x5d\xc7\x71\xb9\x68\x58\x99\xbd\xad\x4c\x9a\x2a\x55\x06\x83\xf1\x05\x14\x73\xea\x1d\x3b\x7d\x64\xac\xc4\x27\xb9\xe8\x43\x16\xdc\x88\xb5\x4c\xc0\x1e\x5e\xe3\xb3\x23\x9d\xeb\xd1\x38\x77\xd6\x59\xba\xc5\x7b\x6d\x00\x03\x89\x6f\xcb\x41\xae\x2b\xd3\xee\xd0\x94\x87\x8f\x64\xe4\x0c\x04\xb8\x4f\x23\xaa\x7b\xb5\x2e\x25\xdb\xcb\xda\x80\x3f\x6a\x3d\x1f\x59\x37\x87\x18\x39\x52\xef\x40\xf1\xfa\xfb\xce\x7d\x38\xe3\x1b\xb1\x53\x25\x80\x74\xf8\x56\xb7\x46\x6e\x75\x59\x30\x4a\xe7\x98\x70\x43\xb9\x2c\xaa\x4f\x00\xc3\xa5\x59\x16\x84\x76\x74\x55\x10\x88\x41\xb4\x36\x33\x2f\x1e\x25\x04\xb9\x47\x6c\x5a\xf1\x42\x5a\x63\x52\x55\x74\xaa\x10\x30\xe8\xcd\x0a\x45\xb8\xb7\x64\xae\x19\x2f\x74\xbb\x6e\x36\x6d\x89\x10\x7d\x8c\xc5\xb3\x35\x60\x53\x75\xf9\x80\x8b\xbc\x11\x0f\x08\xb3\x07\x63\x40\x58\xc5\xf8\xae\x07\x46\x04\xaf\xf1\x37\x0a\x58\x53\xe1\x03\x50\x08\x95\xf1\x41\xb2\x4c\x09\x90\x98\x37\x87\x3d\xd8\x10\x1a\x61\x64\xba\x0a\x68\x1a\xd1\xf0\xbc\x14\xe8\xc8\xbb\xa1\xb3\xd4\xbf\x77\x19\xd4\x36\x54\xa2\x84\xd1\x81\xbf\x8c\x73\x80\x63\x21\xa0\xe2\xcd\x03\x4f\x58\xf7\xa3\x22\x6f\x5a\x37\x4a\xdc\x20\xf9\x75\x2f\x73\x34\xe1\x40\x94\xf7\x18\x20\x6f\x34\x16\xb3\x50\xe5\x8b\x1d\xd8\x88\x8d\x9f\x5e\xf4\x4e\x60\xc2\x6d\x55\xf4\x08\xf0\xc4\xed\xd9\x6b\x84\x07\xdf\xd0\x2d\x6e\xaf\xe1\xa2\xb5\xa6\x2c\xae\x54\xa5\xab\x73\xff\x02\x1c\x6d\x5b\xc1\xa3\xe1\xf6\xb6\xbf\xe1\xb5\x24\xb8\x1e\xcc\x15\xee\x7f\x2b\x60\x10\xee\xc3\x28\x93\x24\x00\x5f\x54\xc4\x83\x53\x61\x83\x29\xc2\x57\x50\xec\xa6\xa0\x98\xe0\xbf\x1d\x4a\x26\x3e\x5d\xd1\x91\xd9\xc9\x66\xab\x0b\xbc\x25\x72\x59\xb4\xb5\x34\x19\x13\x6d\xb3\xd5\x35\x21\xb4\xf9\x17\x79\xc0\xb5\x45\x3d\xa7\xc2\xb3\x9d\x5e\x2d\xb0\xfc\x07\x06\x80\xa5\x3c\x00\x9b\x09\x05\x10\x2c\xad\xd3\xeb\x3a\x79\x20\x38\xc9\x00\xc9\xee\x38\x2a\xfe\xd0\x1b\x66\x3d\xeb\x53\x86\x97\x4c\x46\x07\x71\x16\xd3\x6e\x36\x0a\x2f\xee\xa8\xe4\x05\x56\x38\xd7\x55\xa3\xaa\xd6\xaa\x81\xb6\x02\xed\x49\x26\x69\x52\xbb\xd1\xb9\xe5\x55\x05\xda\x57\x18\x00\x2c\x3e\xc8\xaa\xb1\x4e\x95\x8b\xf2\xe0\xb4\x10\xa2\x02\x99\xbe\xb5\x44\x3f\x3a\x49\x91\x58\xb1\x59\x4b\x59\x41\x99\xd6\x88\xb1\xe9\x26\xc9\x2a\x55\x47\x0a\x32\x8e\xf5\x39\x45\x4f\x5e\x96\x7d\x19\x66\xb9\x22\x6c\x0a\xa4\x6e\x5b\x23\xc9\xf5\x8a\x97\x36\x20\x64\x22\x2b\x3c\xcf\x5b\xeb\x25\x99\x90\xd3\xc3\x6b\x0f\x11\xc4\x2c\x3e\x83\x9c\x6a\xe5\x36\x71\x4c\xd1\x3e\x32\x12\xcb\x64\x2b\x95\xf1\x88\xe2\x5a\x16\x8c\xee\x34\x6f\x9c\x11\xc8\x68\x2f\x9b\x56\x35\x00\x23\xa7\x58\xba\xf5\x56\x11\xae\x71\xd6\x1b\x21\x64\xd1\x08\xc1\x03\xda\x8a\x5a\xe4\x8d\xac\xd5\x7f\x12\xd4\xf6\xc4\xc5\x85\xf3\x4e\x20\x23\xcc\x2d\xaa\xe3\x01\xe8\xf1\xa9\x4f\x1d\xb0\x11\x7f\xdb\x36\xae\xb2\xcc\x9b\x19\xcc\xc7\x51\x30\x62\xa2\x36\xbc\xa2\xfb\xcc\x6e\x75\x45\x04\x09\x91\x55\xc7\x6b\xd9\x00\xfa\x00\xb3\x24\xd6\x7c\x3b\x44\xe7\x8a\xf5\x0a\x24\x25\x09\x92\x05\x07\xec\x9a\xc7\x5c\x25\xb1\x49\x10\x3a\x7a\xa0\x2c\xec\xbe\x2e\xe6\x1f\x87\x84\x21\x8a\x03\xd7\x91\xa3\x73\x6a\xde\xc7\x18\x35\x91\x2c\x00\x61\xdd\xec\x01\x8b\x1f\xe7\xfc\x69\x6b\x14\x02\x0a\xdb\xa5\x53\x40\x88\xdb\x7d\x21\x1a\x42\x39\x50\x36\x04\x6c\xdd\x70\x62\xfc\x2a\xd4\x61\x22\xa1\x5e\x90\x84\x2a\x73\x72\x74\x2c\x8d\x15\x05\x21\x55\xc3\x9f\x7e\xe8\x88\x8f\xbd\xd7\x12\x4c\x7b\xb2\xdc\x0b\x69\x45\x83\x3d\x6e\x65\x75\x94\x95\xe1\xaa\x31\xb2\xdc\x78\x1c\x85\x4b\xee\x15\x56\x89\x49\x44\x03\xc1\x1d\xd5\xf8\xea\x38\x97\x0a\xde\x4a\xff\x22\x5d\xf3\x07\xa5\x4b\x58\x0d\x98\x5b\x5b\x12\x68\xcd\x91\x5a\xb8\x42\xa8\x18\x57\x26\xf2\x5a\x1b\xcc\x43\xd0\x83\x00\xa9\xf0\xc4\x29\x40\x7d\x70\x72\x93\x9d\xbd\x1b\xb9\x95\x8c\xdc\xa4\x48\x17\xb9\x63\x63\x3f\xc3\xf1\xcb\x3e\x32\xe1\x4b\xea\x5c\x61\xbe\x2c\xb0\x4e\x19\xca\xdb\x8f\xe1\xb2\x27\xb0\xb2\x7d\xa8\x31\x72\x37\xe1\xed\x24\x7a\xac\xd2\xa8\x09\xad\xf1\x27\x8c\x79\xb4\x7e\xb0\xae\xed\x25\x06\xcb\xd5\x56\x7b\x91\x7f\x81\x1c\x74\x2d\x45\x41\x60\x15\x72\x9b\x30\x66\xf9\x66\xc4\xc7\x21\xa3\xb1\x92\x18\xa9\x1c\x44\xbf\x0b\x59\x02\x33\x80\x88\x6e\x04\x3f\xb1\xf2\x5d\xd2\x21\x3a\x15\x37\x64\xeb\x83\xc3\xa4\x60\x11\x01\x96\xb5\x01\xd8\xae\x92\x98\x51\xaf\x11\x1b\x8e\xd8\x2c\x4a\x48\x25\x03\x8b\x06\x81\xbe\x91\xa0\xac\x0d\xe5\x67\x1c\x80\x00\xd3\x47\x2e\x77\xe0\x41\x1c\x80\x9d\xc0\x4a\xae\x66\xeb\x3c\xed\x03\x7b\xc4\xea\x91\x18\xa6\x1d\x47\x93\x7a\x8a\x1d\x7c\xb2\x06\x03\x6c\x47\x05\x3e\xa5\x78\x04\x1f\x5a\xf4\x0e\x9d\xd4\xa3\x83\x67\xc7\x00\x52\x9f\xc4\xc4\xb0\x9b\xa8\x1b\x46\xa7\x0f\x4c\xf7\x28\x27\xe3\x14\xb9\x76\xf5\xb9\xf8\x6c\x4c\xf7\xf4\x2c\x02\xe1\xbc\xd8\xbd\xb5\x43\xaa\xe3\xa8\x99\x2f\x09\xc2\x8b\xc7\xcd\xba\x7f\x06\x27\x70\x21\x18\x42\xea\x43\x88\xd8\x49\x08\x2a\x4f\xc7\xda\x0b\x3b\x20\x8d\x31\x44\x76\x62\x99\x28\xb5\x2b\x1a\x2a\xc8\xb1\xfa\x0d\x6c\xa4\xea\xe0\x17\x4d\x35\x23\x7e\x16\x24\x84\xc5\xdf\xa7\x95\x73\x61\xd3\x00\x59\xa5\x14\x8c\x7e\xa4\x51\x88\x12\xfc\x35\x59\x63\x94\x00\xbc\x0d\xab\xe6\x98\xcf\xd2\x06\x88\xf3\x68\xe8\x01\x72\x14\x9d\xe9\x1f\xbc\xd5\x10\xa4\x0c\x33\x4c\xaa\x32\x0a\x6d\x80\x6e\x4d\x97\x28\x45\x9d\x41\xfa\xcd\xd1\x12\x40\x9c\xb5\x0f\xfd\x10\x4d\x15\x80\x4b\x8d\xdd\x40\x28\xbd\x70\xb8\x2f\x47\x76\xa1\x1f\x54\x28\x6f\x8d\x25\x1b\x4b\x4c\x08\x01\x06\x19\x83\x02\x8c\x95\x53\x3b\x08\xc8\x78\xb2\x93\xc3\x0d\x14\x12\x3d\x5b\x28\xf3\xf5\x35\xc9\x1e\x5d\x36\xfc\x2e\x0d\x41\xa1\x28\xfb\x27\x4c\x27\x5c\x13\x1e\x07\x9c\x46\x07\x40\xd0\x35\xe6\x8f\xa0\x26\x44\x39\x9b\xc1\x07\x94\x1c\x80\x37\x7e\x8b\xb3\x74\x0c\xbf\x7c\x05\xca\xf3\xf2\x75\xf7\xdd\xbf\x70\x5d\x43\x78\x7f\xe1\x6b\x28\xc1\x2f\xa9\x1f\x7c\x06\xd0\xd7\xa9\xc4\x81\x5f\x4c\x5b\x79\xb8\x47\x4d\xcb\xc3\x44\xe3\x03\xfa\xc6\x5b\xfb\x01\x6c\x57\x3b\x90\xc2\xc9\x3c\xa5\xcb\x64\xa2\xd8\x60\x6a\xcb\x9a\x16\x02\x7d\x68\xd5\xe0\x88\xf3\xa1\x3d\xe0\x0e\xdc\xc5\x77\xca\x78\x87\x2a\x41\x26\xe9\x5a\xdd\xab\xca\x3b\xac\x41\x32\x01\x0e\x46\x53\x46\x95\xda\xf5\x3f\x4c\x40\x85\xb9\xf1\xaf\xa5\xa3\xa9\x52\x55\xbc\x1a\x8f\x50\x82\x66\xc2\x6e\x30\xbf\x17\x38\x00\xe1\xd9\x4b\x70\xf8\xc5\x90\xdf\xb8\xcd\x6c\xb0\x16\x0d\xc3\x13\x70\xfd\xd9\x8d\x75\x91\x08\x60\x7e\x11\x3b\xfc\x0f\x4c\x7a\xeb\x3a\x5a\x71\x9f\x34\x74\x83\xc4\x17\xc8\x21\xbf\x96\x79\x89\x8b\xd6\x68\x84\x46\x77\xc0\x62\xb5\x28\xa4\x9d\x0e\x82\xf3\xc8\x89\x80\x20\xfd\x4e\xe2\x5f\xf1\xcd\x19\xf3\x1f\x45\xdf\x90\xcc\x39\x58\x0b\x83\xef\xdb\xc4\x12\xa4\xaa\x42\xee\xaa\x04\x25\x16\x46\x0e\xe6\x11\x0e\xfd\x68\x5b\xf8\xfa\xc0\xa2\xdc\x0a\x6a\x58\x93\x4c\x8f\x9f\x79\x0c\x5a\x67\xab\x54\x33\xc4\x93\x84\x64\x34\x10\x2d\x60\xc2\x98\x76\x47\x77\x2e\x0c\x23\x32\xb6\x3b\x56\xa4\xe3\x31\x8b\x3e\x43\x57\x1e\x22\x5f\x7a\x9f\xe9\x4b\x62\xd5\x0e\x71\xc0\x04\xeb\xef\x9f\x30\xa1\xd9\x51\x3f\x75\x20\x58\x5d\x60\x05\x5c\xb3\xb9\xae\x8c\x2a\x40\x23\x0d\x5c\x1c\xdc\xa3\x18\xad\x45\x02\xf6\x19\x9d\x29\xeb\xe8\xbb\x3c\x8b\xc7\x8c\xfa\x90\xb6\xbb\x0f\x53\xf4\x1a\x62\x70\x70\xe6\x2c\xdc\x2d\x99\x3b\x73\x10\xe9\x86\x93\xd9\x07\xb1\x39\x75\xa7\xb2\x28\xc4\x2e\xd0\xaf\x73\x16\xa2\xe0\x3d\xf3\x08\x9a\x96\x2e\x47\x5c\x79\x59\xef\x46\xd6\x5f\x16\x1e\xed\xe1\xcc\xca\x78\x78\x3d\xcf\x03\x5b\xa0\x87\x83\x80\x61\x29\x46\x02\xe5\x4d\x6f\x06\x7f\x67\x17\xc5\xf1\x7d\x15\x84\xd0\x4d\x9c\xd1\x55\x10\xe9\xf5\x50\xf3\xc9\x03\x3b\x55\x9a\xa3\x06\x94\xd6\xf1\xa8\x83\x1b\x69\xda\xfa\x01\xe8\x7a\xac\xf6\x89\x39\x14\xe2\xf1\x87\x58\x02\x0c\x16\xad\xd2\xa3\x21\x77\x12\x44\xb1\x25\x9f\x05\x64\x36\xdc\xe8\x99\xcb\xcb\x78\x14\x56\x5c\x7a\x93\x71\x81\xd5\x10\xb0\xfe\x0e\x01\xd0\x15\xda\x40\x6a\x80\xce\xbf\x3d\x0a\xf4\x75\xf0\xf2\x48\x96\x54\x55\x80\x72\xe8\xcd\x35\xc4\x76\x2d\x19\xe4\xe3\x23\xd4\x51\x74\x72\x74\xf7\x2c\x65\xce\x02\x22\x94\x75\x04\x8c\x43\x50\x44\x64\x4e\x3a\x23\xc9\x53\x74\x58\xfd\xd6\x38\x6b\x39\x58\xec\xbf\x90\xab\x6e\xa5\x33\xce\x30\x30\xb4\x69\xc9\xdd\x7f\x14\x84\xc7\xfe\xd3\x08\x9c\x09\x55\x61\xd8\x20\x80\x1f\x90\x36\xca\xd5\x37\x04\x72\xa0\xce\xb6\x51\xbd\x31\x0c\xc1\xde\x6b\xa6\x3c\x78\x21\x62\x3d\xfc\x0d\x40\xba\x28\x9a\x46\xee\xf6\x4d\x54\xe4\x80\xbe\xf8\xd1\xcb\xf0\xf4\x3e\x68\x55\x20\x48\x0b\xe0\x60\x69\x35\x50\x43\xa3\x97\x49\xbd\x47\x0f\x0c\x2d\xce\xec\x83\x7d\xda\x44\x44\x23\xc7\x25\x3b\x32\x84\x41\xc4\x7d\x2d\xf6\xdb\x44\x5d\x5d\x0e\x47\x2c\xaa\x8d\xa3\x50\x99\x14\x06\x91\xa2\xe8\x24\xf7\x9a\x74\x0d\x99\xe5\xa1\xd4\x03\x32\x1a\x49\x3c\xbc\x6b\xb0\x21\x4a\x10\x82\x00\xe8\xa8\x0e\x83\xd1\x88\xb9\x59\x0a\xdb\x8a\xca\x2e\x7a\xa3\xca\x5e\xbb\x2f\x29\xfe\xa9\x0a\x2b\xc8\xe9\x12\xa6\x35\x28\xb8\xe4\x67\xeb\x21\xc8\xb0\xc0\x12\xf7\x2c\x60\x8b\x3a\x0f\xdf\x08\x55\xc2\xc1\xb6\x47\x67\x43\x49\x42\xfc\xac\x5f\x0e\xab\x86\xe0\xd6\x8e\x6c\x12\x0c\xfb\xee\x6b\x85\x35\xad\xaf\x2f\x78\x01\x56\xca\xa6\x71\xd5\x08\xd2\x18\x27\x9d\x1f\x75\x2d\x35\xac\xf9\xd1\x12\xf2\xdf\xb2\x84\xd1\x8c\xd8\xa9\x09\xc1\x3c\x94\x34\xbd\x33\xe1\xa7\x66\x92\x21\x80\x53\xa1\x35\xb0\x51\xb5\x69\x78\xa3\x76\x32\x38\x0e\xfe\x46\x23\x1d\xa3\x37\xa7\xe5\x85\x9d\xb9\xdb\x1e\x2b\x3d\x53\x8f\x2b\x1e\xae\xc7\x07\xf3\xbc\xa5\x64\x5f\x78\x2a\xac\xae\x55\x74\x2f\x92\xd5\x25\x94\x44\x2e\xd5\xde\x6b\x4a\x1c\xd4\x88\xb1\x48\x2d\xf8\xca\x94\xe3\xd3\xe5\x4e\x84\xbf\x12\xc2\x79\x6c\x22\xb6\x3f\xc0\x5e\x20\x6c\x1e\x2c\xa6\x74\x21\x1c\xf8\xc1\xbf\x00\xa6\x69\xe7\xd2\xc7\x00\x33\x4d\x07\x03\x8f\x82\x88\x99\x7f\x75\x41\x00\x86\x26\xde\xe7\x68\xfb\x33\xaa\x1d\x02\xb8\xde\x7f\xb4\xa2\x04\xff\x51\x7b\xd6\x8a\x4a\x3e\xa6\x3c\x85\x3e\xdf\xef\x2f\xd6\x14\x7f\x7b\x79\x81\xda\xf4\x27\x8c\xcf\xed\xa1\xca\xc6\x7a\x0a\x64\x6c\x52\x52\xef\x03\x56\x5e\x25\xe0\x7e\x87\xbd\x8b\xb3\x16\x22\x47\x12\x87\x4e\x45\x94\xae\x0b\x84\x7b\xb8\x71\x62\x45\x13\x79\xf6\x2c\x8d\x50\x58\x4d\x9b\xab\xb2\x14\x08\x43\xf6\xfc\x1d\xc7\xb9\x0e\x08\xb4\x83\x3d\x4c\xe9\x01\x61\x18\x26\x9e\xe4\x7f\xb4\x0e\x16\xff\x8d\x1c\x74\x3c\x2a\x0a\x34\x94\xea\x8b\xb4\xba\x3d\x58\x0b\xce\xb9\x17\x7e\x89\x22\xda\xb4\x4a\x63\xfe\x32\xe1\xc0\x89\xe1\xb5\x56\x3f\x1b\x70\xf8\x53\x80\x6d\xef\x25\x05\x90\xe9\xb4\x4c\x50\x52\x9d\x30\x3a\x7c\xc8\xfe\x12\x95\xed\x90\x0e\xa7\x82\xb2\x9e\x1d\x88\x99\xbb\xec\xe9\x0f\x7c\x2f\x58\x1c\x87\x2b\x0c\xb8\xb1\x63\xe7\x9c\xec\x08\xba\xa4\xc2\x02\x1c\xb9\xd8\x48\x7d\x03\x10\x57\xce\xc1\x2c\x1e\xbb\xeb\x8e\x3e\x43\x96\xf3\xb5\x7e\xac\x4c\x53\x4b\xb1\xe3\x0b\x8f\x29\x19\x31\xe4\x47\xf2\x0a\xe7\x44\x4d\x50\x9a\xec\x48\x2f\x54\xda\x46\x2b\x03\x89\x7a\x4d\x9c\x44\xef\x35\x64\x54\x24\x9a\x85\xa5\x8f\xeb\x22\x91\x79\x04\x40\xd6\xa6\xc5\x14\x01\x98\x5b\xf1\xb2\xa6\xa7\xc0\xec\xad\x2b\xe1\x60\x14\xbe\x3a\x07\xeb\x06\x95\x5d\x33\xb4\x65\xa3\x42\x9c\xc8\x62\x0c\x04\x57\xe3\x8a\x0f\x64\xd5\x80\x7b\x14\x72\x32\x03\x34\xed\xe3\x2c\x8d\xcf\x03\xe1\x5b\xb0\x90\x10\x2b\xc8\x62\x4e\xa8\xcc\xda\xe4\x51\x5a\xd5\x9e\x13\x6b\x8c\x18\x23\x11\x68\xaa\x2b\x32\xca\xda\x35\xa0\xba\x30\xc8\x93\x3e\x03\x44\x54\xd6\xf7\x68\xe2\xc7\x84\x53\xd6\xfb\x79\xfa\x98\x22\x70\xd7\xa1\x9f\x2a\x7e\x3c\xb9\x8c\x01\x92\x1b\x13\x37\xb0\xcc\xd6\x86\x8f\xa6\x6a\x35\xaf\xdb\xde\x2e\xa4\x0c\xc0\x1e\xa5\x09\x1f\x60\x8f\x5b\xd1\x00\x03\xa0\x57\x85\x0e\x41\x8f\x19\x10\x4c\x92\x1f\x7e\xb4\x97\xb7\x2c\xa0\xcc\x0f\xe3\x26\x90\x75\x94\xa6\xe1\x5b\x51\xa0\x27\xd0\x96\x50\x3b\x11\x63\x57\xf7\xb5\x7c\x50\xba\x35\xc1\xc0\xca\xf8\xbe\x6c\xed\xb8\xa8\x8e\xae\x5b\x20\x70\x12\xb8\x94\x90\xb2\x38\x51\x3d\x31\x26\x6f\xbf\xc4\x7f\xdf\x0a\xc3\x54\xd3\x21\x1a\xa5\xb2\x34\x7f\xbb\xcb\xcd\x46\xd7\x8d\xe9\x98\xc8\xe4\x4e\x5b\x85\xd3\xe7\xf7\xba\x5c\x18\x15\xc2\xf9\xb1\x12\x8e\xda\x19\x9d\xf6\x8e\x87\x6a\xec\x7e\xd2\xb3\x94\xb0\xe0\xd0\xf3\x7a\xe6\x8f\xaa\x94\x19\xaf\xf5\x41\x94\x94\xbc\xd2\x11\x26\x0d\x8f\x54\x34\x94\xbe\x72\x75\x76\xcc\xf2\x93\xbc\xb1\x52\x0d\x44\xc3\x4a\xd5\x50\x69\x64\x64\x5a\x5b\xa9\xaa\xb5\x31\xe7\x10\x17\x44\x37\xb6\x05\xc4\x26\xd4\xed\x41\x2a\xa6\x14\x8f\xa6\x55\xcd\xd0\x9e\x1f\x79\xef\x3d\xf5\xc8\x28\xa7\x0f\x07\x3d\x5d\x84\xe4\x44\x86\x57\x51\xc6\x0d\xa2\x57\xb2\x00\x0f\x04\x9c\xa8\x28\xf1\x18\xda\x95\xa9\x7d\xdc\x2a\xd0\x92\xa1\xf1\x1f\xe0\x47\x50\x31\x61\x55\xed\xe5\x88\xdf\xc2\xeb\x8d\xe3\x3c\xab\x30\x44\xa8\xeb\x81\xc3\x62\x74\x2c\x44\x7b\x9e\x7c\xb8\x15\x00\xf0\x3d\xbb\xd7\xb9\x97\x23\x66\xb4\x84\xbe\xc4\xfd\x59\x19\x2c\xb5\x1a\x85\x82\x22\x28\x62\x76\xa4\x78\x2c\x80\xfe\x29\x5f\xee\x46\xf9\xa3\x49\x06\xed\xc9\xdf\xa8\x5a\x22\xf9\x9c\xa7\x66\x49\x96\x9c\x12\x47\x56\xaf\x25\xbf\xe6\xfa\x91\x10\x45\xa4\x1f\xcb\x10\x51\x88\x1e\x9c\x05\xe4\x50\x59\x4b\x51\x1c\xb8\xc8\xc9\xa8\xb1\x87\x4c\xd6\x12\xcd\x4e\xf7\xdb\xcc\x5d\x0f\x56\x3d\x40\xa2\x8e\x76\xdb\x1b\xd7\x3b\x51\x55\xd6\x38\x08\xb5\xca\xc7\x50\xe2\x4d\x47\x30\x40\x4f\xa3\x6c\x78\x16\x81\xce\x92\x60\x0e\x86\xae\x7a\x97\x28\xa6\xa9\x86\x21\xf1\xb5\x64\x61\x48\x90\x0c\x12\x0e\x92\x13\x59\x46\xee\xd8\xf7\xd5\x9b\x46\xef\x76\x68\x13\x3c\xcc\x71\xd4\x14\xe6\x13\xd8\x45\x32\xda\x45\x5d\x0e\x02\x0d\x49\xc0\x38\x34\x1a\xb5\x86\xdb\x21\xe3\x4a\xb2\xa1\xaa\x0a\xb8\x77\xec\x9a\x61\x44\xce\xc0\x47\x3c\x82\x34\x8e\x07\xb8\x37\xb3\x70\x65\x4e\xb0\xf6\x30\x2c\x17\xda\x5c\x18\xba\x81\xd0\x85\x2f\x89\xcf\xac\x64\x96\xc5\xa3\x2a\x82\xba\x39\x47\x06\x17\x18\x96\xd7\x47\x49\x51\x79\x24\x81\x27\x04\x30\x73\xd4\xd3\x19\x42\xa3\xec\x46\x66\x84\x73\x0e\xc7\x1b\xcf\x76\x60\x20\x41\x9e\x84\x27\x8c\x10\xe9\xb8\x24\xc0\x11\x39\x21\x15\x23\xc6\xa6\x2e\x00\x53\x96\xfa\x11\x75\x07\xce\x89\xae\x28\x08\x2e\x0d\xd2\xd0\x01\x2a\x87\xea\xe0\x02\x20\x5c\xdc\xd7\x12\xd1\x06\x94\x09\x57\x0d\x06\xd7\xa8\x74\x8a\x17\xb2\xd2\xe4\xa8\x20\x3d\x37\xc0\x80\x80\xdc\x01\x9c\x58\x78\xfa\x99\x27\x3e\xab\xdc\x93\x59\xd7\xf0\x05\x92\xf4\xe8\x3b\xf0\xbe\x07\x59\x09\x2c\x38\x04\xc8\x29\x6f\x29\x62\x8f\x1f\x89\x79\x0f\x87\x23\xa0\xff\x83\x5d\x1e\x10\x60\xbb\x13\x17\xc1\x40\x1d\x5a\x14\x9e\x9b\x91\xa8\xc1\x11\xdf\x7d\x62\xb6\x27\xe7\x15\x17\x59\xc3\x73\x8f\xa1\x46\x1d\x63\xf5\x4b\x05\x7b\x01\xa6\x69\x89\x06\x77\x75\x34\x50\x8f\x20\xea\x07\x16\x24\x94\x9c\x04\x81\x49\xf1\xba\x18\xcd\xf7\xe4\xd8\x56\x96\xad\xac\xf8\x82\xdd\xe2\xdb\x75\x37\x81\xc7\x30\x30\xf6\xba\x97\xb0\x4e\x4d\x80\xbf\x99\x21\xe1\x9f\x72\xfb\x62\x1c\xc1\x47\x8a\x30\xf2\x19\x70\xa7\xcc\x15\x41\x9d\x80\x12\x35\x1a\x42\x8a\x3a\xbc\x3c\xa0\x44\xeb\x1a\x49\xf1\x35\x2f\xe4\xbe\x56\x0f\xd2\x3a\x54\x35\x20\x43\x68\x89\x22\x86\x6f\xdc\xa2\x44\x1c\x7c\xa3\x95\x28\xd4\xe2\x08\xb4\xd8\xd9\x0b\xff\x86\xec\xef\xd2\x45\x7e\x29\x99\x95\x9c\xaf\x8d\xa4\x40\x2b\xe9\x14\x56\xc6\x4e\x92\x77\x7f\x02\xa4\x7e\xc4\x07\x7f\xe9\x0a\x8b\x23\xcf\xf3\xe1\x17\x4a\x8e\x78\xa2\x18\xa2\x15\xb5\x37\x82\x73\xf5\xbb\xa2\x45\xac\x1c\x2e\x1e\xdf\x74\x8a\x00\x81\xd3\x9c\xe8\x36\xd1\xe8\x72\x81\x15\x1c\x17\xd6\xc6\xf5\x95\x0f\xf2\xf4\x9b\x78\x13\xba\x23\x9a\xc0\x2e\x54\x61\xd5\xe5\x06\x09\x4c\x71\x7c\x21\x6f\x49\x0f\xe8\x30\xf5\xa3\xed\xca\x40\x1c\x4a\x25\x1f\x64\x00\x44\xc0\x99\xcb\xec\x2d\x64\x5a\x81\xc8\x2a\x34\x93\x73\x5d\x55\x32\x61\xe8\xb4\x77\x6a\x29\x13\x37\xc2\x1e\x17\xdc\x66\xd0\x6b\x2c\x2e\x52\x8f\x7c\x61\xa8\xdd\xd8\xd7\x3a\x6f\x9d\x6b\xf5\x20\x0f\xe4\xf4\x66\x47\xa7\x1c\x2a\xed\xad\x26\x62\x7d\x3a\x08\xac\x81\x18\x9a\x0b\xc8\x54\xeb\xa8\xf4\x6d\x88\x37\xca\x08\xdb\xbd\xf3\x50\x5b\x3f\x36\x7f\x55\xf8\x4c\x85\x9d\xab\xa3\x9c\x8b\x3d\xa3\x64\x98\xac\x71\xe0\xaa\xce\x18\xed\x1a\xe0\xbd\x6c\x6f\x83\xc4\xa1\x46\x41\xa6\xc8\x4e\x42\x23\xc0\xfa\x44\x02\xe2\xdc\x90\x4e\xf6\x25\xf7\x60\xa3\x8e\xbb\xaf\x54\x86\x0f\x0a\x65\xf2\x5a\xc1\x65\xa2\xeb\x03\x14\x7e\xf6\x11\xb5\x45\xc9\x37\x93\xeb\xbd\x0c\xb7\x20\x62\xb2\x33\xcf\x40\x62\xba\xee\x4a\x46\xa8\x65\x0f\xf8\x09\x2c\x00\x68\x11\xe0\x27\x19\x7a\xc0\x31\x4c\x28\xf8\x39\xdc\x43\x81\x12\xae\xb2\xd3\x2c\x59\xa3\xc4\xc7\x3a\x51\x87\x49\x39\xa5\x5a\xfa\x1b\x0a\x2a\xcd\x63\xd9\x24\x38\x57\x82\x68\x74\x09\x3e\x5a\x8f\xb5\xb5\x1a\x09\xc4\x19\xca\xfc\x20\x18\xe6\x3a\x2e\xe0\xf8\xc0\x54\x47\xc0\x89\xbd\xff\xf6\xe2\xe0\x40\x89\x49\xb2\xa0\x39\xa4\x54\x09\x84\x4a\x72\x11\x54\x62\xaa\xb3\xd2\xc5\x52\x8d\x12\x8e\x41\xf4\xbe\xa3\x67\xa3\x49\x96\x39\xf6\x6c\x5c\x66\x16\x87\x56\xd1\x76\x75\xc1\xb8\x23\xf1\x72\xa1\xd5\x0c\xaa\x7c\x62\xe9\xe9\x9a\x6e\x40\x8f\x79\xac\x12\xd2\x4a\xb5\xe4\xd9\x1e\xc4\x8a\x40\x1a\x76\x86\x28\x36\x25\xb1\xf7\x83\x73\xce\xb5\x71\xc4\xc0\x43\xbc\x99\xd6\x43\xbe\xaf\x15\x95\x78\xe2\x6d\x5c\xa4\xaf\xa6\x9a\x32\x77\x3e\x09\x62\x6e\x08\xee\xef\x8a\x90\x8d\x53\x87\x58\x4d\x74\x74\x7a\x29\x4d\x02\x9b\x28\x21\x20\x50\x60\x31\x04\xc9\x67\xd0\x69\xdc\x17\x56\xa6\x67\xee\x51\x78\x6f\x39\x0b\x51\xf5\xe7\x7f\xe2\x1f\x45\x9d\x6f\xa1\xd7\x10\x62\x7d\xb6\x9e\xd7\x34\x0a\xee\x79\x9c\x1b\x10\x9a\xd5\xad\xcf\xdd\x91\xf3\x1c\x43\x67\x80\xe2\x66\xb7\x2f\x95\x2c\xfc\x8e\x44\x3d\x2e\x36\x3e\x22\x93\x30\x59\x13\x4a\xe1\x10\xd9\xc5\x6b\x19\x59\x21\x8d\x8e\xc2\xea\x51\xfe\xd2\x4d\x13\x38\x96\xac\x37\xfc\x7c\xc4\x67\x9a\x2f\xdb\xba\x96\xf0\x59\xbd\xe1\x73\xa0\x15\xfb\x11\x7a\x29\x15\x7a\x87\x76\x5b\x87\x70\x0e\xe3\x11\x05\xf1\x65\xf1\x33\xe7\x10\x02\xa5\x5a\x0b\x54\x25\x98\xab\x70\x56\xa3\x9f\x93\x1d\xeb\x90\xf9\xfd\xab\x45\xa1\xf2\xc6\x99\xee\xee\x15\x7d\xd9\xb4\x83\x73\xe4\xe4\xd7\xbc\x25\x4d\xec\x8b\x84\x4e\x7f\x17\x22\x6e\xd4\x37\xe6\xb4\x92\xb1\x56\x14\x10\x5b\xbb\xd2\x2d\xa3\x76\x6d\xd9\x88\x4a\x22\x41\x0e\xe2\xe5\x8e\x48\xa2\x7a\x39\x3c\x60\x9a\xd6\x86\x6f\x90\x12\x24\xfa\x1a\x19\x7b\x47\xee\x25\x05\x5e\x18\x8b\x46\xa8\x1a\x2e\x80\xa7\xa3\x13\x16\x72\xfa\xd0\xae\x2c\x68\xa5\x90\xe7\x76\x95\x6b\x70\x28\xc1\xc4\x2d\x4b\x99\x37\x5c\x38\xd7\x0d\x0e\x9d\xaf\x5f\xf4\x6a\x29\x3a\xaf\x8d\xb6\xca\x65\x17\xdb\xe9\x11\x9f\x3b\x46\x94\xc1\x45\xa6\xa6\x4c\x18\xf4\xf3\xcb\xb6\xd6\x60\xf6\xe9\xa4\x7b\x42\xda\xb7\x86\x5c\x6e\xcc\x24\x6c\x6a\x7b\x80\x11\x21\xe9\x10\x63\xa9\xba\x0c\xdc\x3a\x56\x5c\x5f\x8c\xf8\x42\xee\x74\x23\xf9\x8c\xec\xec\x69\x20\x1b\xff\x85\xdf\x99\xa8\xff\xde\xe9\x3e\x2a\x7f\x2f\x4c\x8f\x96\x3e\x02\x22\xba\x75\x01\xf3\xfa\xb8\x62\x04\xb1\x0c\x11\x71\x38\x7a\xb8\xbe\x91\x4e\x60\xd2\x08\xf4\xf7\xac\x86\x09\x96\x87\x1e\xbe\x74\x0f\xd0\x3e\x53\x74\xcf\xb8\x37\xf9\x7a\x4c\xf0\xd7\x22\x06\xf6\x21\x13\x15\xd7\xf0\x47\xec\xe2\x15\x65\x70\x4e\xba\x16\xba\xf3\xf4\xb5\x4b\xf6\x43\xde\xe3\x9b\xf5\xb4\xdf\x51\x1f\xed\xbd\x28\x06\x26\x9f\x63\xaa\x0e\xd5\xef\xa2\x3e\x04\xf2\x2e\xaa\x28\x15\x9e\xcf\xc2\x97\x6f\x53\xf7\x22\xa8\x7b\xee\x77\x09\x51\x19\xc7\x54\xb6\xa7\xeb\xdd\x29\xff\xea\x39\x03\xd7\x87\xfe\xae\x1b\x27\x9a\xa4\x04\x93\xc3\x37\x23\x2a\xbc\xf1\xed\x8a\x4f\x42\xd0\xc1\x87\x1b\xfe\x5e\x79\xf4\x2e\x40\x12\x30\x60\xa5\xaa\xbe\xd0\x8d\xb9\x56\x95\x3c\xca\x92\x39\x93\xbf\xaf\x09\x47\x77\xba\xec\x89\xe9\x52\x7d\x21\x79\x0e\x81\x0e\x25\x50\xe1\xc6\xac\x17\x2c\xed\x64\x81\x71\xcf\x53\xf8\xd3\xb2\x4c\xea\x37\x12\xa6\x2f\x00\x63\xfb\x92\xca\xe3\xcb\xdf\xe1\xae\xc3\x54\x7d\xd1\x05\xd8\xb7\x9e\xb5\x05\x6c\xf4\x9d\x50\x55\x82\xc5\xfe\x0d\x1b\x4e\x4a\xe9\xa5\x55\x4a\x0f\xca\x2e\xe2\xaf\xdd\xf6\xa2\x37\x49\x67\x99\x53\xed\x09\x11\xc5\x8c\x94\x6b\xbc\xa6\x67\x51\xb3\xae\xa8\xbd\x8d\x89\x37\xe5\xe9\x7e\x3d\xa8\xd2\xd5\x0e\xaf\x08\xb5\x93\x23\xbe\xb4\x9a\x21\x79\x9a\x5d\x02\xb6\x96\x9e\xa3\x50\x55\xdc\xec\x55\xad\xbc\xb5\xeb\x4a\x02\x93\x78\xaa\x1d\x2b\x02\x4b\xed\x17\x0a\xd9\x50\x1f\x2b\x6a\xd0\xc2\xec\x2b\xf6\xb5\x5e\x97\x72\x47\x86\x1b\xf4\x75\xf5\x49\x4b\xb7\xc0\xca\x10\x07\x2c\x18\xa8\x56\x30\x5a\x65\xc0\x9e\x72\x9f\xa8\xda\xdd\x5a\xd6\x47\x88\x41\x07\x00\x76\xa5\x07\x1e\x30\x8e\x9f\x4f\x2a\xf6\xfc\x0e\x3e\xbd\x5c\x03\x4a\x18\x40\x13\xd2\xd0\x4e\x05\x2c\x27\x32\xbf\x9a\x2c\x6d\x8e\x47\xe8\x79\xab\x9d\xa2\x30\x22\x89\x34\xeb\x74\x0d\xa2\xa8\x8e\x03\xe4\x1d\x0f\xb4\x76\x9c\x74\xc9\x08\x42\xcb\x25\x17\x86\x3f\x25\x41\x47\x8b\x14\xb0\x7b\xb0\x5a\x87\xd0\x5d\x89\xe1\xdb\xbf\x7b\x71\x42\x26\x2a\xdf\x6a\x97\x04\x73\xcf\x82\x40\x67\xdc\x18\xea\xe9\x51\x82\x2d\xd9\xbb\x97\x64\x9b\x5b\xc9\xf9\x7a\x80\xfc\x5c\x21\x73\x65\x7d\x5a\x38\xbc\x9b\x16\x58\x9a\xa2\x83\xc0\xbe\x6f\x67\xb1\x41\x30\x54\x6d\x64\x9e\x43\xe5\x2b\x64\x33\xf1\x83\x1e\x43\x08\x50\xbc\x24\x63\x1f\x1a\x52\xc5\xf8\x92\x28\x13\x44\x55\x04\xb4\x2e\xf0\x74\xb7\x30\x2e\xc6\x14\xec\x97\x1b\xd8\x59\x67\xe3\xfb\x99\xd8\x85\x85\x9c\x29\x21\x27\x1d\xae\x10\xc8\xa0\x1c\x3b\x43\x5c\xf2\xe1\xb1\x14\xac\xd2\xc9\x17\x22\xf3\xb4\x63\xa3\x03\x7b\x1a\x0c\xdb\x15\x1c\x25\xf9\x2d\x00\x82\x50\x67\x3a\x4f\x4e\x6b\xe7\xe4\x7a\x4c\x82\x80\x43\x4a\x2f\x12\x4e\xd2\x7e\xaf\x46\xbe\x3e\x00\x85\xea\x13\x55\x08\x58\x9d\xf7\x61\xb2\x98\xf0\xe9\x92\xcf\xe6\xfc\xd3\x78\xb1\x18\xcf\x56\x9f\xf9\xbb\xf9\x82\xaf\x3e\x4c\xf8\xed\x62\xfe\x7e\x31\xfe\x98\xf1\xd5\x1c\xfe\x3d\xf9\xeb\x6a\x32\x5b\xf1\xdb\xc9\xe2\xe3\x74\xb5\x9a\x5c\xf3\xb7\x9f\xf9\xf8\xf6\xf6\x66\x7a\x35\x7e\x7b\x33\x61\x37\xe3\x4f\x23\x3e\xf9\xeb\xd5\xe4\x76\xc5\x3f\x7d\x98\xcc\xf8\xdc\x3e\xfd\xd3\x74\x39\xe1\xcb\xd5\xd8\x7e\x7e\x3a\xe3\x9f\x16\xd3\xd5\x74\xf6\x1e\x9e\x77\x35\xbf\xfd\xbc\x98\xbe\xff\xb0\xe2\x1f\xe6\x37\xd7\x93\x05\x74\xe0\x7a\x36\x5f\x30\xf8\x22\xbf\x1d\x2f\x56\xd3\xc9\xd2\x0e\xe3\xd7\xe9\xf5\x24\x1e\x12\x1f\x8c\x97\x7c\xba\x1c\xf0\x4f\xd3\xd5\x87\xf9\xdd\x2a\x8c\x7d\xfe\x8e\x8f\x67\x9f\xf9\x5f\xa6\xb3\xeb\x8c\x4f\xa6\xf6\x41\x6c\xf2\xd7\xdb\xc5\x64\xb9\x9c\x5c\xf3\xf9\x82\x4f\x3f\xde\xde\x4c\x27\xd7\x19\x9f\xce\xae\x6e\xee\xae\xa7\xb3\xf7\x19\x7f\x7b\xb7\xe2\xb3\xf9\x8a\xdf\x4c\x3f\x4e\xed\x38\x57\xf3\x0c\xde\x46\x9f\x75\x4f\x9f\x4e\x96\x6c\xfe\x8e\x7f\x9c\x2c\xae\x3e\x8c\x67\xab\xf1\xdb\xe9\xcd\x74\xf5\x19\xda\x86\xbd\x9b\xae\x66\x93\xe5\x12\x96\x6e\x8c\x23\xbf\xba\xbb\x19\x2f\xf8\xed\xdd\xe2\x76\xbe\x9c\x8c\x70\x01\x67\xab\xe9\x62\xc2\x17\xd3\xe5\x5f\xf8\x78\xc9\x68\x59\xff\xf5\x6e\xec\x9f\x73\x3b\x59\xbc\x9b\x2f\x3e\x8e\x67\x57\x13\x3b\x95\x78\xca\xd3\x25\xcc\x96\x7f\x9e\xdf\x8d\xf8\xf2\xc3\xfc\xee\xe6\x3a\xfe\x3b\xb3\xcb\x34\xe1\xd7\x93\x77\x93\xab\xd5\xf4\xd7\x49\x66\x3f\xc8\xc7\xcb\xe5\xdd\xc7\x09\xad\xf6\x72\x05\xcb\x73\x73\xc3\x67\x93\xab\xc9\x72\x39\x5e\x7c\xe6\xcb\xc9\xe2\xd7\xe9\x15\xac\xc2\x62\x72\x3b\x9e\x2e\xf8\x7c\xc1\xae\xe6\x8b\x85\x7d\xca\x7c\x46\x22\xf4\x7a\x84\xd5\x07\x3e\xa7\x76\xe3\x20\xef\x56\x61\xcc\xac\xf4\x4c\x7e\xb5\xb2\x71\x37\xbb\xb1\xcb\xb0\x98\xfc\xeb\xdd\x74\xd1\x95\x10\x7e\x33\xfe\x64\xb7\x60\xfc\x7e\x31\x81\x55\x8e\x05\xe2\xd3\xf4\xe6\x86\xd9\xad\xeb\x4a\x45\x06\x5f\x99\x7d\xe6\x41\x2a\x3e\xf3\x4f\x1f\xe6\xfc\xe3\xfc\x7a\xfa\xce\x0a\x08\x4a\x0d\xbf\x9a\xcf\x7e\x9d\x7c\x5e\x26\x8b\x32\x5e\x46\xe2\x3a\x7e\x3b\xb7\xeb\xf2\x76\xc2\x6f\xa6\x30\x9e\xd5\x1c\x16\xc9\x6e\xda\xf5\xf8\xe3\xf8\xfd\x64\x19\x89\x05\xbc\x93\xda\x1e\x67\x7c\x79\x3b\xb9\x9a\x8e\x6f\x32\x36\x9d\x5d\x4d\xaf\x27\xb3\xd5\xf8\x86\xe3\x3b\x97\x93\x7f\xbd\xb3\x1b\x3b\xbe\x71\x0f\xe1\xe3\xc5\x74\x69\x9f\x60\x25\x93\x76\xf1\x6e\x39\x01\xe9\x9b\x39\xa9\x59\xcd\x99\xfd\x5d\xbc\xc3\x67\xe1\xdd\xc7\x12\xc9\x6f\xe6\xcb\xa5\x7d\xda\xf5\x78\x35\xe6\x30\xe2\xd5\x98\xbf\x9d\xd8\x4f\x2f\x26\xb3\xeb\xc9\x62\x72\xcd\xa6\xb3\xf1\xd5\xd5\xdd\x62\xbc\x82\x97\xd9\x6f\x4c\x96\x7c\x79\xb7\x5c\x8d\xa7\x33\xdc\x0d\x3b\x5f\x38\xde\xd3\xc5\xb5\x3f\x61\x20\xb4\xef\xc6\xd3\x9b\xbb\x85\x13\x3b\xe6\x06\xb5\x9a\xf3\xf9\xed\x04\x1e\x09\xe2\x17\xed\x04\x7e\x62\x39\xcc\x60\xf3\xf9\xf4\x1d\x5f\xde\x5d\x7d\xa0\x6d\xb3\x0f\x85\xcf\x31\xdc\xb1\x0f\xe3\x25\x7f\x3b\x99\xcc\xf8\xf8\xfa\xd7\x29\x9c\x45\x12\xef\xf9\x72\x39\xa5\x35\x99\xd3\x13\x68\x1d\x49\xf8\xde\x8c\xd0\x87\xdc\xd7\x32\x08\xe0\xf2\xa8\x50\x29\x5c\x5d\x45\xa2\xed\x7c\x3d\x14\x74\xde\x4c\xa4\x38\x14\x6e\x78\xb8\x3d\xe2\xb5\x31\x14\x61\x2d\x2f\x34\x80\x4a\x9d\x8b\x92\x4a\x98\x90\x56\x99\x30\xf2\xa4\x7f\xb1\x4a\x8e\x80\xe6\xd6\x3c\x94\x8f\xe8\x08\xb5\xe0\xf1\x01\x1d\x07\x9a\xc8\xf4\x24\xf1\x48\x11\x22\x6d\x1a\x9e\x97\x1a\x2b\x7f\xf7\xf6\xe6\x83\xae\x10\xd8\x9f\x6a\x6d\x74\xd9\x36\x12\x59\xa3\xd1\x00\xb1\x76\xb7\x7a\x50\x25\x0b\x63\xef\x09\x0d\x26\x05\x92\x0e\x92\x9c\x54\x86\x85\x92\x14\x96\x2c\x44\x28\x6d\xef\x02\x93\x3c\x2e\xa2\xe2\xb5\x6c\xda\x3a\xa6\xb5\xe5\x93\x99\xdd\xd0\x13\x7d\x14\x3f\xe8\x47\xbb\x48\x63\x58\x00\xc4\xff\xad\x5c\xf1\xc1\x67\x7b\x95\xcd\xe4\xa3\x7b\xbc\xf1\x49\x48\x6a\x4f\x44\xfd\x23\xf7\x71\x03\x86\xa8\xef\x30\x25\xd9\x68\x8c\xf7\x50\xb6\x6a\x5d\x7a\x8d\x29\x3c\xd6\x9a\xa3\xd6\x6c\x98\x5c\x33\x0d\x12\x49\x69\x2e\xf2\x2d\x24\x65\x3c\x5c\x98\x12\xab\x40\x99\x1b\x37\xa5\x45\x43\x47\xba\x76\xe4\xd8\x1b\x23\x6d\xde\xeb\x9a\x5d\xfb\x14\xa5\x09\x25\x09\x2b\x42\x14\x66\x5c\x34\x8d\xa0\x90\x72\x30\x4d\x5d\x69\x9c\xb7\xec\x09\x3d\x3a\x05\xaf\xc8\x88\x8d\x1d\xb2\x1d\x2e\x7c\xd9\x67\x53\x1a\x64\x4c\xc1\x3a\x1c\x80\x9d\x45\x35\x18\xd8\x78\xc6\x34\x81\x82\xbd\x3c\xa0\x3d\x45\x21\xf1\x88\xf9\xd1\x73\x2d\x23\x47\x87\x7d\x12\x3c\xc2\x6c\x21\x20\x84\x29\xbb\x40\x9f\x27\xf9\x20\x0f\x9d\x2b\x4b\x74\x63\x0b\x2e\xd8\x5e\x43\x70\x03\x03\x55\x8e\xee\x68\xd3\x7a\x3a\x5b\x3b\x9b\x8d\x35\x38\x47\x8c\xfd\x8b\x5d\x47\xf8\xae\x23\xca\x8b\xa6\xfe\xa3\x81\x6a\x32\x7c\x2c\x5f\xd7\x4a\x6e\xb8\x2a\xa4\xe0\x8e\x39\x8a\x12\x2c\xa3\x3f\x77\x3b\xcd\xff\xcb\x41\x8a\xfa\xcf\xfc\x5f\xe0\xeb\xda\x55\x62\xfe\x99\x61\x07\x8e\x7d\x00\xf8\x24\xfb\xfb\xb3\xef\x5e\x9d\xec\xaa\x6a\x3a\x5d\x99\x55\xe3\xf1\x59\x89\x7f\xfc\x3d\xc6\xae\x30\xfd\xb6\x38\xeb\x6d\x89\x4f\x4e\xc9\x91\xc3\x7b\x13\x95\x9e\x9c\xa5\xc5\xc2\xc3\x63\x2f\x69\x74\x3c\xef\x30\x3d\x5f\xeb\xb2\xd5\x7b\xe9\x2b\xb5\xc0\xf5\x46\xa3\x7c\xd3\x96\xe8\x55\x92\xa9\x05\x77\xb4\x33\xb7\x7e\x89\x3b\x14\xe3\x73\x28\x54\x1e\x29\x9b\xcd\x91\xc5\xa4\x6b\x67\x30\xb1\xd3\x06\xd3\x52\xca\xef\x5c\xd4\x0d\xe5\xba\x18\xba\xba\x0e\x19\x18\x0b\xae\x47\xb8\xa7\x3a\xed\x3b\x36\x2c\x30\x1c\x37\xd1\x22\x82\x37\x57\xe9\x26\xe3\x46\x4a\xfe\x2f\xdb\xa6\xd9\x9b\x9f\x9f\x3d\x7b\x7c\x7c\x1c\xdd\x57\xed\x48\xd7\xf7\xcf\x1c\x18\xe8\xd9\x9f\xa1\x88\xcf\x80\x2b\x90\x30\xd0\xe8\x0a\xd9\x4a\x90\x0a\x43\x60\x53\x72\x2b\x15\xb2\x94\x79\x53\xeb\x4a\xe5\x08\xa0\x11\x7b\x59\xf3\x9d\x50\xa5\x87\x68\x44\x3c\x8c\xb9\x08\xad\x16\x51\xfb\x63\xe4\xf2\x3b\xa2\x94\x98\x31\xa6\x75\x42\x06\xef\xb4\xd9\xbc\x6a\xdc\xcd\x88\xf7\xc7\xc1\x55\x7d\x22\xdb\x13\x02\x34\x1d\xd7\xfd\x88\xf5\x84\xc1\xeb\x58\xec\x04\x7f\x94\x6b\x97\xed\x40\x11\x57\x4d\xdc\xda\x09\x63\xd5\x54\xd0\xcb\x04\x1f\xb8\x5e\x5e\x10\x31\xc3\x52\x39\x29\x0a\x13\x86\x00\x69\xc6\x7c\x0b\x20\x7c\x97\x08\x2b\x1c\x44\x1c\x5b\xef\x88\xea\xc0\xa0\xde\x36\x44\xc3\x89\xd4\x93\xa8\xe5\xa0\xd7\x53\xe0\xd9\xb3\x77\xae\x8f\xbe\xd8\x53\xb0\x96\x4d\x43\xb0\xa7\x50\xaf\xeb\xda\x2f\xfd\x02\x12\xe0\xeb\x0f\x5e\x84\x32\x05\x97\x23\xeb\xd0\xcb\x7d\xee\x2c\xb9\x5d\x44\x58\x28\xb9\xdb\x97\xfa\x20\x6b\x17\x3b\x8e\x9a\xe5\xb9\xf6\x7e\xb2\x1e\x02\xb2\xd9\xfa\x7e\x65\xc6\xb0\xfd\x1a\xe4\x20\x8d\xba\xaf\x90\x07\xcd\x29\xc2\x60\x05\x0d\x02\x9e\x22\x6a\xeb\x1e\xfa\x81\xf0\x77\xba\x66\x08\x6e\x48\xa5\xd3\x4a\xbc\x6f\x2f\x19\xc2\x7c\x50\xb2\x84\x1e\xa7\x3f\x44\xd0\x02\xfa\xbb\xce\xc2\x0f\x7f\xfc\xfc\x4f\xf9\x19\x3d\xbb\x79\x7f\x7b\x73\xfe\x62\x74\x71\xae\xeb\x73\xb8\x54\x46\xcd\xd7\xe6\x1f\xfa\x8e\x8b\x8b\x8b\x8b\xd7\xaf\x5f\xda\xff\xbf\x7c\xf3\xea\x22\xfe\x7f\xfb\x9f\xaf\x5f\x5e\xbc\xf9\xe1\xf2\xc5\xeb\xe7\x17\x17\x2f\xdf\x5c\xbe\xba\xfc\xe1\xe2\xf2\xe5\xcb\xcb\x97\x3f\xf0\x8b\x7f\xe8\x28\x4e\xfc\xb4\xd6\xb2\xe2\xfc\x87\x52\x6c\x6a\xf5\xc5\x9c\xfc\xdc\xb7\xfe\xfe\x3f\xf4\xc7\x9e\x6c\xeb\xcf\x4f\x16\xce\x11\xe6\xb7\x77\x6f\x6f\xa6\x57\xfc\x66\x7a\x35\x99\x2d\x27\x8c\xfd\xea\x6c\x93\x8c\x3f\xff\x89\xff\xdf\x6d\x25\x21\xf7\xde\xb5\xc8\xec\xef\x4e\x06\x1d\x33\x3e\xad\xf2\x51\xd0\x1c\x1b\xb3\x01\xad\xf1\x67\xc6\x26\xce\xd8\x4e\xfa\x24\x39\x9a\x55\x54\xdc\xde\x52\xeb\xed\xc9\x12\x9a\xc7\xb3\x50\x5d\x6d\xed\x19\xb0\xd4\xa9\x87\x74\xda\x41\xc9\x19\x4c\x3d\x41\xea\x1b\x69\x8c\xac\x4f\xe7\x5b\x7c\x5a\xc9\x9c\x0e\x35\xeb\xcd\x6f\x49\x61\x64\x11\x23\x48\x88\x32\x9f\xa0\x52\x29\x95\x09\x4d\xa2\x5c\x03\xfb\xa8\x14\xfa\xa8\x97\x3d\xe7\x9c\xb1\xb1\x41\xce\x1c\x7b\x65\xaa\x2a\xe3\x83\xe6\xb7\x34\xb8\x4f\x97\x84\x75\x47\xef\xf8\xe4\x06\x30\xc5\xdb\x9b\x6f\x3e\x2f\x5d\x06\x96\x64\x72\x60\xb8\xd0\xc4\x9e\x38\x45\x53\xee\xc9\x24\x87\x76\x8a\x6a\x20\xe9\x49\x2b\x2a\x70\x4b\xa3\xc6\x8b\x82\x5f\xb9\x04\xd4\x27\xba\x7f\x7d\xf7\xde\xb0\xac\xb8\x6e\x15\xf4\xaf\x76\xdf\xf6\xf8\x63\x4f\x4c\x46\xed\xb7\x08\x73\x98\x74\x0d\x8e\x7b\xdc\x35\x5b\xc9\x3c\x47\xea\x51\x23\xdb\x08\x40\x12\xc3\x99\xe8\x0b\x23\xda\x53\xa8\xf8\x30\xed\x1a\x08\x36\x89\xc8\x1f\xb8\x36\xa3\xd6\xc3\xd1\xd7\xc0\x09\xc0\x46\x5d\x22\xa2\x8e\xa4\x52\xa9\xe3\x61\xb2\xf4\xeb\xf1\x22\xf0\x41\xb2\x60\x54\xa2\x01\x6b\x40\xcd\x67\xa8\x91\x9f\xfd\x90\x07\xd7\x54\xd4\x73\x2d\x5e\x7e\xe6\x63\x17\x7e\x72\xab\x94\x01\xb4\x73\x22\xdd\x64\xa2\x1c\x22\xa6\x8f\x71\x3c\x0c\x36\xf0\x51\x10\xe8\x09\x88\xb6\x8d\x8e\x8b\x36\x06\x37\xd0\xd6\xd3\x65\x05\x07\xd1\xbc\xa0\xb1\xec\x47\x55\xa9\x9d\x28\x7b\x13\xd2\x8e\x3a\x33\x15\x97\xd0\xb0\xba\xb7\x42\xca\x19\x62\xc9\x97\xb2\x08\x79\x64\xe5\xa7\xdb\x9c\x94\x8a\x64\x7c\x72\x31\x7d\x23\xa2\x66\x23\xde\x0f\x55\x71\x65\xa8\xe0\x38\x03\x13\x38\x11\x9c\x68\xc1\xb1\xb0\x1c\x84\xcc\x09\x55\xbc\x1c\xdd\xd5\x48\x57\x21\x3e\x37\x57\x51\xdf\xee\x53\xeb\xd1\xe9\x89\xfb\x4c\xd7\x47\x13\xed\x0e\x2f\xea\x91\x6b\xd7\x05\x3a\xa5\x02\x2e\xaf\x81\x60\x95\xb7\xc1\x1d\xb3\x33\x74\x3f\x94\x28\x75\x2e\xdb\x97\x0e\xc7\x57\xa5\x25\xaf\x59\xb7\x0d\x0b\x5b\x60\xff\xdc\xed\xa2\x1b\xca\xde\xa2\xa7\xf9\x86\xe6\x13\x47\xfa\x60\xd5\x10\x45\x26\x3b\x4a\xed\xf6\xe6\x9b\xfd\x2c\x92\x4a\x66\xc3\x5f\xc0\x54\x5f\xf6\x72\x3f\xe9\xb6\x21\x32\xe8\xb5\xbd\x45\xa1\x4c\xe7\xf4\x6b\xb1\x53\x6a\x4f\xcb\xa9\xa8\xd7\xd4\x34\x41\xce\xa4\x5e\xb2\xd7\x4d\xa2\x42\xa6\xbf\x08\x4b\x93\x3b\xdc\x94\x70\x18\x90\x03\x8b\x55\xb2\xe3\x4e\x85\x6c\x99\xdd\x3f\x02\xc5\xb7\x7b\x0c\x13\xac\x0f\x1d\x25\xe0\xbb\xcf\x82\xd4\x30\xf7\x50\x7e\x16\xd5\x23\x63\x31\x86\xa8\xef\x91\xda\x65\x2f\x8c\x95\x6f\x4f\xb7\xe8\xbf\x03\x48\x8f\x07\xfd\x45\x16\x43\x02\x0c\x1f\x8e\x77\x20\xcc\xb3\x8b\x0e\x42\x6e\xad\x3e\xd2\x97\xe3\x0e\x22\xe0\x38\x0b\x7e\xaf\x75\xc1\x37\xc2\xea\x23\x2c\x53\xec\x50\x94\xfb\x9e\x5b\xc0\x0d\xdb\x9d\x7a\x44\xe7\x82\x78\x0a\x88\x9c\xa5\x0b\x98\xa5\xcb\x62\x1a\xeb\xa4\x12\x27\x3c\x39\x6b\xd4\x50\xc1\x70\x5f\x38\x1a\x78\x7a\x8c\x6f\x40\xea\x68\xee\x88\x04\x08\xe2\x3c\x44\xed\x15\x0a\x2c\x48\x88\xb0\x63\x2a\xaf\x42\x37\x93\x93\x64\x6e\x1d\xda\x84\x2e\xe5\x20\x11\x26\xf8\x1e\x94\xd4\x9a\xdf\x2a\x10\x6b\x05\x3a\x72\x6c\x2b\xa5\xae\xc2\x1f\xce\xac\x53\xf5\x1f\xa4\xb0\x63\x7b\xa7\x4a\x28\xdc\x5f\x75\xf8\xc2\x7d\x1f\xff\x74\x61\x77\x40\x15\xed\x8d\xb3\xc0\x1e\x40\x38\xa8\x2d\x3c\x95\x61\xc8\xd4\x31\x53\x46\x64\x83\xfe\x3e\xea\x9c\x60\xc0\x72\x25\x0c\xf1\xb8\x72\x60\xf6\x45\x89\x5a\xa0\x32\x4d\x84\xc6\x97\xbf\x26\x50\x24\x3f\x2e\xba\xfb\xa9\x15\x30\x6b\x34\xaf\xda\x9d\xac\xb1\x43\x8a\xa8\xc5\x4e\x36\xd0\x0f\x11\x8e\x94\x69\xea\x36\x87\xec\x7b\x29\x0e\xba\x6d\x88\x41\x2a\xc7\xa2\x5a\x62\xe0\xda\x61\xf3\xd6\xbc\xd6\x26\x63\xaa\x82\xa0\xab\x93\x2d\x42\x01\xca\xdd\x1e\x19\x45\xcf\xa0\x77\x4a\xcd\x37\xf2\x11\x12\xe2\x15\x96\xb4\x95\xb2\xba\x6f\xb6\x43\x47\xda\x00\x58\x42\x87\x9c\xf7\x71\x6c\x3c\x34\xef\xd5\x83\x3c\x6a\xba\x86\x42\x14\x1a\xeb\xf5\xf4\xd8\xf0\x6c\x47\xb4\xe2\x4c\x91\x6d\x6a\x2f\xb5\x86\x8c\xc9\xf4\x23\xdc\x35\x54\x6a\xa9\xa9\xf3\x89\x66\x27\xd8\x94\x66\x4c\xf9\x8d\x63\x72\xff\x9e\xf6\x1e\x24\xfd\x01\x23\xd9\xe5\x69\x8a\x3a\x47\x46\xf7\x42\x6f\xeb\xa2\xf4\x1e\x8a\xe4\x84\xa7\x72\x42\xd2\xd1\x88\x2f\x40\xc4\x78\x0f\xb0\xdd\x8c\xc5\x01\x7c\x82\xd9\xba\xf2\xe6\xde\x82\xc7\x8e\xcd\xe0\x17\x8b\x20\xd9\x48\xef\x7b\x7c\x3f\xda\x99\xd6\x12\xa8\x68\xb9\xb4\xee\x91\x0c\x15\xbd\x85\x5c\xb7\xf7\xe0\x31\x21\xc7\x5d\xa2\xff\x99\x43\xbd\x5a\x0b\xab\xd0\xb8\xcb\xff\x75\xd9\x38\x36\x75\xfe\x89\xd2\x91\xbe\xfc\x37\xc8\x07\x8b\xe4\x23\x1f\x12\xcd\x7e\xcf\x54\x28\xd0\x69\x8e\x1a\x75\x1a\x5e\x60\xad\x0e\x52\xa5\x47\xb6\x90\x24\x34\x75\xfa\x79\x6f\x3d\xf9\x59\xef\x34\x5a\x32\xc6\x11\xc9\x18\x68\x0f\xf8\x28\x81\x2a\x01\xc8\x98\x21\x90\x99\x4b\x46\x5d\x3e\x02\xb1\x60\x1d\x5a\x76\xc6\x15\x06\xdf\x79\x1a\x38\xe7\xc5\x90\x5f\xeb\xa8\xf5\x55\x22\x01\x17\x49\x7b\x8d\xa7\x2c\xec\x6f\x16\xfa\x31\xd1\xdb\x6c\xa4\x6b\x99\x06\xe2\x61\x6e\x5a\xd5\xb8\x52\xc3\xb8\xc6\x03\x35\x36\xa2\x8f\x20\xcc\x90\x25\x8b\x51\x4b\x07\xd5\x04\x0b\x93\xa2\xd1\x89\x15\xe9\xe4\xa3\x4b\x6a\x1f\x0e\x60\x6c\x5a\x47\xad\x39\x63\x22\xfb\x8e\x5b\x40\xdd\x9c\xa8\x78\x2f\xd0\x6a\x46\xe6\xde\xeb\xee\xee\x6c\x12\xc6\xba\x13\xad\xf8\x2f\x87\x80\xc4\x16\x61\x3d\xcc\x56\xd8\x53\x51\x92\xfc\xec\x64\xbe\x15\x95\x32\x3b\x78\x9e\x73\xd7\x8e\xfd\xb3\x31\xf3\x4f\x08\x5f\x51\x06\xf6\x1e\x56\xf3\xcc\x5a\x50\xd6\x98\x13\x0d\xb6\xb0\x57\x3b\xd9\x6f\x5e\x32\x57\xab\xee\x30\x8d\xe4\x93\xd8\x3d\xf8\xd1\x84\xdc\x85\x01\xd3\x1c\x37\xef\x6c\x3d\xc4\x28\x3d\x19\x40\xd4\xd1\xa3\x3c\xb0\xce\x6e\x9c\xf2\x1c\x03\x20\x98\x3c\xde\x73\x50\x00\x0d\x94\x7f\xba\xe9\xb2\x23\xb7\x48\x02\x99\xe8\x93\x04\xe8\xe8\xc9\xc7\x6d\x9a\x10\x58\x9f\xd4\x83\x38\xae\x21\x96\x50\xa0\x03\x3e\x3c\x04\xe2\x53\x86\xa3\xee\x86\x47\xed\xa0\xf0\xd4\xb2\x98\x7e\xf9\xe8\x61\xd6\xb0\x70\x81\xff\x53\x7d\x19\x4e\x0b\x71\xaa\xc3\x62\xf7\xde\x9d\x10\xd7\xdf\x5d\x3a\x99\xe9\x1c\x93\x6f\x6f\x4c\xb2\xd4\xfc\x8c\x1c\x13\x88\xa1\xa0\x8f\xf5\xb2\xb8\x40\x23\xf8\x24\x2d\x39\xa0\xfa\x45\xa2\xcb\x9f\xd4\x33\xa2\x2a\xd8\xd3\x2a\xc4\x17\xa9\x24\xe3\xb8\x8c\x09\x11\x43\xe7\xaf\xd3\x03\x73\xbc\x9b\xbf\xe1\x40\xb3\xef\x38\xd0\xc3\xd0\x56\x98\xf6\xc7\x3b\xae\x91\x29\x82\x24\xcc\xee\x84\x87\x1e\x50\xa1\x28\xb0\xaf\xc3\xb0\x3b\x29\x46\x15\x40\xf8\x03\xbd\xef\x41\xa1\x12\xac\xdc\x3d\xd0\xd9\x2a\x71\xc7\xcf\x27\x5e\x06\x95\x34\xd1\x32\x93\xd1\x4a\xf4\x43\x27\x1b\xd6\x51\x2c\xd5\x1b\xdf\xc2\xe3\xc5\x99\x7b\xd9\x69\xdb\x2a\x8b\xc8\xa5\xa0\x10\xa6\xdf\x40\x49\xad\x00\x8f\x47\x2f\xe3\x68\x53\xaa\xc2\xb0\x2f\x59\x77\xed\x42\x50\xaf\xad\xd2\x5e\xa4\xa1\x78\xe0\x78\x85\xb2\xe3\x16\x14\x92\xf5\xde\x7f\x68\xb3\x3c\x61\x4e\xf5\x0e\xdf\xf3\xa5\xa3\x43\x18\xc2\x75\xac\x6f\xdf\x33\xd2\x0c\xfb\x52\xf8\x9e\x44\x5d\xf6\x4d\xb7\x5c\x48\x91\xea\xf7\xc3\xf9\x62\xc9\x02\xf9\xc6\x9f\xfd\x80\xfc\xef\x88\xb2\xff\x0e\x48\xfd\xa7\xa3\xfa\xff\x7f\x44\xea\x7b\x3b\x11\xb2\xe2\x2c\xe2\xf6\x3d\x06\x7c\x7f\x0f\x78\xff\xc9\x24\x00\x1f\x38\xa2\xe4\xbf\x03\xbc\xcf\x7a\xc0\xfb\xfc\x69\xf0\x7e\x40\xd8\x24\xe8\xfd\x63\x64\xcc\x6f\xc0\xc5\x77\x16\x8e\x1d\x93\x22\x3f\x01\xe8\xe7\xc7\x80\xfe\x6f\x64\x4d\x4e\x03\xfa\xbf\x79\x4e\x5c\xc6\x84\xff\xbd\xc8\xff\x54\x36\xf8\x93\xb2\xd1\x53\x0c\x00\x97\x00\x3b\x2e\x07\xf8\xce\x1c\x1a\x56\x83\x51\x7f\x71\xe0\xc6\x3f\x55\x0e\xc0\x8f\xcb\x01\xa2\x65\xa2\x84\x21\xd4\x04\xf0\xa4\x65\x15\xdc\xa8\xa7\x0b\x03\xba\xbe\xd4\xff\x62\xc4\xc2\xe8\xd9\xaf\xf3\xe5\x6a\x31\xff\xf8\x0f\xcf\xfa\x87\x9f\xa7\xf3\xff\x17\xaf\xde\xbc\xbe\xec\xe4\xff\x5f\x5c\x5c\xbc\xf9\x23\xff\xff\xcf\xf8\xa1\xdd\xef\xc3\xdb\xcd\xf7\xb2\x72\xe6\x73\x94\xea\xcf\x29\xd5\xef\xbe\xf9\x41\x97\xd6\x50\x35\x19\x9b\x56\xb9\xcb\xab\x1f\xfd\x11\xf3\xff\x67\xf4\x7b\x68\x67\x11\xba\x3c\x9f\xf9\x1e\x99\x2e\xce\x20\x10\xe8\xa8\x28\xaf\x77\xd4\x12\x48\xdb\xb1\xf9\xdc\x12\x34\x40\x6a\x88\x32\xcc\xe9\x10\xea\x47\xb0\x3e\xb8\xc1\x8c\xd8\x15\x61\xf0\xdc\xe8\x02\x2d\xfb\xff\xf5\xa0\x4d\x53\xeb\xdd\x28\xd7\x3b\xea\xe2\x98\xc0\xa4\x9c\x25\xe7\x38\xe3\x23\xfe\x02\xc3\xcf\xe4\xe8\x7e\xc4\x43\xc7\x35\x8e\x6d\x2c\x64\x03\x2a\x36\xb2\x7f\x87\x23\xc6\xee\x42\xae\xa1\x0c\x95\xf5\xca\xa4\x2b\x42\x5c\xe5\xde\x85\x72\x51\x90\x6e\xe7\x08\x08\x8f\x1c\x77\x3e\xa0\xaf\x43\x70\xa7\xc8\x62\x2c\x68\x16\xb5\x63\x72\x4d\x35\xe2\x8c\x82\x2c\x58\x0f\x2f\xbd\xbf\x9f\x3b\x14\x04\x3b\xd9\xfc\xcc\xd8\xe5\x28\xe4\x9b\xfc\x10\xec\x9f\x63\x0c\x2a\xf5\xc4\x0b\xd9\xc0\xa3\xed\x06\x1f\x0d\x3e\x16\x95\xd2\x6e\x1c\x67\x81\x21\x5e\x19\xaa\xa4\xed\x7d\x80\xa7\x40\x00\x02\x5f\x5c\x29\xd6\xd7\x1a\x62\xc8\xc5\x31\x0b\x79\xd8\x91\x5f\x18\x7b\x3e\xb2\x8e\x84\xfb\x22\x86\x8a\xa2\xd1\x67\xe9\x9b\x33\xd7\x00\x0f\x48\x82\xcf\xc1\x92\x94\x25\x91\xc1\x13\x12\xd0\xee\x47\x29\x45\x5d\x5a\x0b\x65\x2d\xa9\x6b\x99\xf5\xd8\x5c\x4a\x9e\x68\x87\xd0\x8a\xa0\x26\x25\x81\x9a\x0c\x90\xd2\x19\x43\x4e\xc8\x32\xe2\x9b\x6c\xc4\xfd\x30\xa2\xf0\x4e\x0d\x92\x5f\x18\x7b\x31\x42\x2c\x65\xe6\xa6\x03\x59\x05\xb7\x35\x90\x3d\xf0\xec\x6e\x10\x84\x41\x3a\x8d\x0e\x27\x68\x8d\xd8\x01\x88\x4d\x26\xa2\x1a\xad\x35\x8f\xd7\x1a\x7c\x03\xcf\xed\xeb\x5b\x30\xd5\xca\x00\xe2\xa2\xd1\x0c\x83\xd8\xee\x15\xc4\x42\x17\xc9\x62\x20\xed\x4d\x5f\xf9\x0b\x63\x2f\x47\xae\x91\xb8\xd3\x4b\x3b\x51\x09\x22\xe6\x88\xcf\xee\x59\x68\x66\x1e\x96\x17\xba\xc1\x27\x85\x98\xd9\x71\xbc\x15\x6b\x49\x40\x1e\x86\x81\x4d\x04\x7b\xf4\x61\x3c\x1a\xd8\xe7\x3b\xc5\x90\x9d\x71\xbe\x1a\x79\x65\x63\xcf\x24\xa4\x10\x93\xa8\xba\x53\x68\xc9\x92\x06\x0a\x9f\x98\x03\x97\x39\xc7\x03\x10\xff\x3d\xcd\x4e\xba\xcf\xa1\xe6\x68\xf4\xde\x84\xe5\x0f\x89\xd7\xc2\xf9\x3c\x56\x0b\xc9\x4e\xf4\xa5\x03\x42\xe6\x9e\x51\x2b\xb3\xe3\x0f\x45\x8a\x3b\x3a\x65\x5e\x72\x1d\x66\x34\xf3\x19\xef\x50\x3f\x89\x21\x26\xcf\xee\xfa\x0b\x63\xaf\x47\x9d\x87\xab\x24\x99\x88\xc7\xb2\x74\x51\x91\xcc\x79\x84\xa9\x8a\x20\x66\x64\xe6\x38\x7d\xd0\xab\x88\x6e\x13\x17\xf1\x76\x1a\x58\x14\x11\xc2\x29\x2d\x9f\xa7\xcf\xb0\x58\xcd\xf5\xc4\xb3\x31\x83\xd8\xf3\x0a\xb5\x09\x4c\xe4\x6b\xf4\xda\x59\xcf\xe7\x1c\x83\x26\x12\x25\x61\x30\x14\xa0\x6c\x58\xa5\x74\x74\x79\x10\xfa\x89\xa5\x8b\x05\xf7\xe8\xb1\xaa\x0b\x47\xb6\xe7\x83\xb8\x3a\x24\xc0\x2c\x74\x1c\x89\x6f\xbf\x5f\x18\x7b\x33\xe2\x95\x8e\x95\xb6\x0a\xca\xb5\xd1\xdf\x90\x32\xdf\xe0\xa8\x3c\x38\x69\x63\xdf\x3e\x21\x38\x48\xe4\x49\x8f\x2e\x5b\x97\x5c\x75\xe4\x44\xbe\xc6\xab\x96\xa5\x14\x94\x46\x32\x1e\xa7\xb3\x13\x54\xe7\xd1\xc7\x5d\x13\xee\x82\x3f\x8d\x60\x00\xae\xd4\x24\x3e\xd0\xd4\xe9\xda\x65\xa8\xa0\xc5\x63\xa3\x5c\x5b\x96\xa8\x73\x13\x3a\xd8\xa0\x40\x75\x3a\x15\x17\x3e\x71\x7a\xca\x95\x5b\x38\x70\x39\x71\x1f\xf9\xa6\x24\x49\xa7\x33\x30\xb6\x82\x8a\x3b\x32\x97\x06\xc2\x70\x65\x06\x20\xc1\x8c\xb9\x91\x5f\x4f\x97\x57\x37\xe3\xe9\xc7\x25\x54\x8a\x86\xd2\xd7\x8c\x53\x1d\x6d\x52\x45\x0b\x35\x81\x8b\xc9\xfb\xf1\xe2\x1a\xcb\x84\xa7\x4b\xb6\x9c\xbf\x5b\x7d\x1a\x2f\x26\x71\x31\xa5\x2b\xd4\x85\x82\xc6\xf1\x6a\x3a\x9f\xc1\xe3\x8f\x2b\x6c\xf9\x71\x85\x2d\xfb\x9e\x0a\xdb\x0c\xca\xce\xe2\x5a\xd4\xe5\x07\xfb\x06\x37\x2d\x5f\xf5\x89\x25\x27\xb3\xcf\xbe\xa4\x93\x4f\x67\xd7\xd3\xc5\xe4\x6a\x75\xba\xa0\x93\xbe\xe1\xfe\xf9\xe9\xc3\x78\xb5\x9c\x4f\x7e\x9d\x2c\xd8\x62\xb2\xbc\xbb\x81\x02\xd6\x77\xf6\x2d\xae\x48\xf3\xce\x0e\xc8\x55\x6a\xde\x2e\xe6\xef\xa6\xab\x65\xc6\x3f\x7d\x98\x40\xe5\xe4\x74\xc6\xc7\x33\x3e\x86\x0a\x5b\xfb\xe9\xab\xf9\x6c\xb5\x18\x5f\xad\x32\xb6\x9a\x2f\x56\x71\x1d\xe8\x6c\xf2\xfe\x66\xfa\x7e\x32\xbb\x9a\x0c\xed\x93\x96\xab\xc5\xf4\x6a\x05\x13\x81\x95\xc9\xba\xa5\xa6\x50\x62\x6a\x9f\x37\xc3\xfa\x5d\x06\xfb\x13\x15\xa0\x1e\x15\x18\x4f\x97\xdc\xed\xd7\x91\xa7\x3b\x7a\xb6\xfc\x70\x73\x7e\x31\x7a\x75\xf9\xfb\x39\x80\x4f\xfb\x7f\xcf\x5f\xbf\x78\xfe\xb2\xe3\xff\x3d\x7f\xfd\xf2\xc5\x1f\xfe\xdf\x3f\xe3\x67\x09\x95\xbc\xb7\xe3\x6b\xfe\x61\xbc\xb8\xb6\x22\xe2\x80\xdf\xde\x90\xb4\xc2\x41\x9a\x26\xa2\x43\xc4\x48\xb2\xab\x6b\xf5\xc0\x43\x91\x87\xe2\x35\x9f\x09\x7d\x3e\xba\xc0\x4b\x0c\x31\x2f\x0c\xaa\x60\x1f\x90\xaa\x5a\x56\x85\xae\x4d\x08\x5e\xd1\x23\xe2\xb8\xdc\x38\x09\xc4\x57\xba\x3a\xf7\xc9\xab\xce\x0b\x9f\x8f\x2e\x1c\xd9\x04\xd4\x1f\x5a\x0f\x6f\xdb\x34\x7b\xaa\x55\x11\xf0\xe9\xb4\x5c\x85\x66\x7b\xfe\x7c\x74\x31\x02\x9c\x74\xd3\x99\x28\xe4\x2a\x80\x9b\xad\x29\x0f\x7c\xbe\x9c\x42\x6d\xdb\xf2\x1d\x77\xb3\xc8\x78\x28\xd8\xb3\x4a\x1f\x5b\x8c\x41\x28\xf2\x53\x0f\xbb\x4f\x27\xd9\xd1\xa4\xb1\xd0\xe8\x59\x12\xdb\xad\xae\x25\x8b\x5a\xb5\x1e\x3d\xec\xa9\x45\xb7\x0e\x11\xc1\x8c\x8d\xf6\xe3\x1d\xba\x7b\xe3\x26\x4c\xb2\xe7\xb1\xfd\xb4\x40\xc4\x16\x18\x00\xbb\x2c\x2f\x81\x22\xf7\x0d\x62\xa7\xf9\x59\x2f\x11\x85\x92\xd6\xe7\xa2\x60\x30\x94\x17\x53\xea\x0c\x02\xc3\x00\xdd\x18\xf5\x96\x16\xc3\x65\x00\xaa\x76\x31\xb9\x5d\xcc\xaf\xef\x40\xe7\xe1\x4d\x70\x3d\xb5\xca\xf2\xed\x1d\x68\x41\xc2\x69\xf6\xc3\xdf\x07\x1e\xe9\x8e\x86\xfc\x4e\x8a\xea\x74\xac\x99\x3c\xf9\xcc\x03\x4d\x83\x31\x5d\x44\x37\x37\x13\x09\xf4\x3a\x94\xab\xfb\x72\xbc\x9f\x02\xe5\x78\x17\x3f\xe1\xc7\xa4\xeb\xa3\x41\x2d\x90\xc8\x53\x3f\x56\x48\x5e\x4c\xdd\x27\x8e\x9b\x8d\xe2\x07\x19\x7e\xd0\xe5\xb9\xc1\xf2\x72\xb1\xf4\x1e\x68\x3d\x76\xd6\x9c\xc0\x33\x8f\x5e\xdd\x56\x91\x18\x12\x27\x9a\x7b\xbd\x3d\x4e\xbe\x51\x21\xfc\xd2\xd3\xff\x10\x89\x7a\xe6\xfa\x13\x12\x6f\x3d\x5f\xa3\x81\x67\x7f\xeb\xec\xac\xdd\x4e\x57\xbe\xf5\x07\xa5\xb0\x44\x43\x2f\xc1\xfa\x42\xf0\x0b\xbf\x8f\xb4\x1d\xb1\xc7\x67\x6a\x48\x88\xa8\x47\xeb\xca\x21\xda\x05\x7b\xf2\xe3\x7f\xc3\x41\x0a\x54\xce\x04\x87\x41\x27\x23\x72\x1c\x9d\xb1\x8e\x83\xf1\x14\xfb\x6c\x7d\xf0\xbd\x1e\x13\x0e\x45\xac\xce\x55\x6a\x88\x7b\x65\xb6\x6a\x0f\x5c\x44\x6a\x83\x26\x5f\x0e\xe4\xe2\xaf\x2e\xfe\xcf\xa1\xe3\x6a\x75\x58\x3a\xdd\x36\x9e\x66\x0c\x70\x19\xc6\x3d\x4b\x0d\x89\x16\x1a\x3a\x58\x27\xcf\x8d\xc6\x16\x6f\xe8\x67\xdd\x0e\xa0\x03\xa6\xfd\xaf\x7a\x30\x8c\xf7\x14\x90\xfe\xd0\x22\xa5\x45\xf7\x3c\xde\x7d\x47\x3d\x8b\xdd\x86\x42\x33\x69\x67\xbb\x1f\xe3\xa7\xfc\x3b\x51\xf2\xdc\xfa\x07\xdf\xd9\xf1\x2f\x3a\x57\x95\xfa\xfd\x78\x8c\x77\x21\xa1\x8a\x91\x42\x89\x6e\x7d\x6b\x79\xaf\x0c\x52\x84\x42\x87\xee\xf0\xef\xa1\x75\x58\x77\xca\x1e\xce\x36\x6f\xa0\x6b\xd9\x5e\x03\x5f\xdb\x81\x9f\xed\x84\xf9\x32\x74\xb4\xb7\x70\x3a\x45\x23\xec\xbd\xc4\xe8\x77\x67\xf6\xce\x09\xa8\x6f\x6a\x39\x01\x1f\x5d\xf9\xee\xa5\xc3\x78\x5e\x11\xee\x7f\xd7\x3d\x1b\x7b\xc0\x53\xd5\x2e\xb4\x81\xfd\x82\xc1\xf1\x3d\xe9\x18\xdb\xf7\x47\x20\x4f\x64\x57\x8e\x82\x48\x95\x6c\xa0\xa0\xc7\x64\x7c\xad\x45\x5d\x38\x74\x67\xc6\xaf\xc6\xd7\xae\x47\x62\xe2\xc0\xb2\xb8\xa2\x35\xd7\xd5\x46\xdd\xb7\xd8\x3f\x1e\x3f\x1e\x4f\x06\x81\xb7\xc7\x93\x81\x06\x2a\xf6\x77\xc1\x9d\x85\x04\x28\xc1\x7b\x72\x51\x52\xa3\x1e\x17\x45\xb1\x47\x09\x7e\x53\x46\x0d\x73\x42\xb9\xc3\x2e\x46\xf1\xf7\x4c\x19\x59\x63\xed\xe6\x86\xfa\x80\x8c\xdf\x43\x72\xc8\x7e\xa4\x13\x4a\x43\xc8\x2c\xc5\x3d\xc2\xfb\xb6\xa2\x2e\xc0\xcb\x21\x19\xb2\x1e\x0d\xa4\xd1\x29\x00\xd2\x68\x52\x4d\x3b\x59\x28\xc1\x9b\xc3\x5e\xc6\x7b\x81\xf8\x1f\xf8\x5b\x83\xa3\x26\x9e\x46\x61\xf8\xfa\xd0\x48\x3b\x28\x93\xb1\x77\xb7\xef\xc7\x7c\xad\x1a\xe4\x3b\x37\x56\xa3\x35\x9e\x2a\xfa\x84\x28\xda\x3b\x0d\x84\x11\xb9\xa4\x13\x81\xc2\x7a\x99\x8e\x24\x61\x47\x12\x47\x5a\x60\x8f\x77\x68\xe7\xa1\xaa\x78\x65\xbd\xba\x61\x84\xa2\xc6\xe5\xee\x78\x79\xe1\xd2\x0e\x76\x85\xf1\x7d\xb0\x10\x81\xef\x6e\x15\x8c\x6e\xb1\x88\x26\xd1\x77\x7a\xb7\x9a\x1a\x98\x27\x64\x91\xb4\x1f\x3a\x83\xb6\x08\x50\xf3\xcd\xb1\x3e\x1e\xe3\xc3\x84\x5d\x1b\xef\xf7\xb2\x2a\xd4\x57\x34\x00\x92\xd9\x5f\xcb\x5a\x3d\x88\x46\x3d\x48\x44\xcd\x0e\xba\x62\x88\x6c\x81\xc7\x73\xd7\x35\x8f\x27\xec\x87\xeb\xf1\x0b\x67\x80\x56\xad\x21\x6b\x69\x85\x17\x2f\x00\x0f\x70\x0d\x3d\xc4\x21\xf4\x58\xa8\x46\x03\xe8\x1a\xd0\x02\x88\x66\x85\xd8\x80\x3b\xb2\xb2\x14\x6b\x5d\xbb\x7f\xf9\x00\x55\x1a\x88\xf0\xdd\xa4\x33\x0c\xc8\x3e\x6e\x75\x09\x27\x91\xf9\x00\xe8\xf1\xce\x22\x73\x6c\xef\x95\xe6\x37\x2b\x2c\x13\xd4\x33\x11\x9d\x4c\xca\x2a\x0e\xbf\x87\x65\x40\x54\x3f\xf5\x2b\x05\xa0\x63\xad\x77\xae\xdd\x95\x35\xc6\x01\xbb\x78\xa6\x6b\xb6\x56\x58\x38\x52\x89\x9d\x84\x2b\x68\xbf\x3d\x18\x22\x04\x27\x3e\x19\x4f\x47\xdf\xc8\xda\x21\xec\x3c\xb0\xc4\x43\xe6\x0c\xd3\x9b\x2c\x5d\xe1\xee\xd6\xda\xbf\xd6\x52\x6f\xe2\xed\xbf\x72\x8d\x3f\x00\x0b\xd0\xd9\x7a\x3a\xc6\xba\xee\x3d\x0e\xe1\xdc\x5a\x11\xeb\xa6\x3d\x9c\x85\xe2\x47\x63\x1f\x98\x6e\x96\x15\xe6\xc2\x59\x74\xae\x2e\xc1\x7e\xde\x2a\xb3\x53\x83\xcf\x12\xb4\x60\xd5\x50\xcf\x4f\x6e\xda\x75\xa8\x4b\xf5\x96\xfe\x46\xd7\x0c\xc6\x69\x22\xe0\x17\x0c\x29\xb1\xcf\x82\x21\x87\x95\x30\xa7\x2f\x64\x16\x99\x78\xf6\xaa\x80\xb7\x5a\x69\x5f\xcb\xad\x08\x6d\x23\xe2\xc7\x9e\x16\x2f\x96\x58\x4c\x7e\x06\xee\xce\xf6\x97\x80\xde\x44\x64\x14\x19\x56\xd8\x62\x7a\xc1\x45\x9c\x28\xc1\x46\xe8\x3e\x13\x31\xb1\xfb\xa5\xb0\x22\xd4\x44\x27\x04\xd6\xd6\x3c\x7d\x2f\xb0\xe4\xb9\x76\x9a\x11\x29\xc6\x4e\xa8\x12\xbb\xda\xc3\xed\x18\x27\x8e\x9c\xf1\x88\x28\x51\x0c\xf4\x32\x65\x4c\x0b\x9d\x13\x72\x0c\x45\xe3\xdf\x42\x24\x1d\xad\x3c\x6f\x91\xc6\x6b\x9a\xfa\x6f\x9e\x34\xd0\x15\xd1\x20\x57\x7d\xde\x1a\x2a\x9d\x2c\xb8\xda\x81\x0a\x24\x13\xfb\x93\x27\x3c\x0d\x96\x46\xba\x62\x4e\xa6\x72\x5d\x99\xbd\xca\x5b\xa4\xb3\xa6\xa6\xf1\xb1\x3d\x49\x67\xc2\xf5\x27\xb6\xeb\x0f\x4b\xd7\x63\xed\x0b\xc3\x07\x33\xdd\x00\xe8\x3c\x1c\xb2\xd1\xa0\xef\xf4\x75\x5c\x0c\xbf\x69\xee\xe0\x3c\x61\x21\xfa\x75\x02\xfa\xa0\x2d\x54\xd2\xc4\x2f\xe4\x5b\x7b\x7d\x4a\x59\x05\x0c\xc9\xfa\x90\xbe\xc1\xb4\x6b\xe4\xd8\x86\x8e\xe8\x51\x29\x4c\xdc\xa6\x9c\x6a\xed\x9e\x8f\xf8\x7b\x68\xec\x00\xfc\x73\xc4\x1d\xbe\x8c\x9b\x19\x9e\x70\xd9\x8e\x60\xe3\x50\x66\x10\xad\x00\x54\x3e\xaf\x1d\xa7\x3f\xd1\x52\x71\x61\xed\xde\xbd\x6c\x5a\x2b\xf1\x51\x97\xa5\xb4\xff\x12\xab\xf4\xb9\x63\x4c\x8e\xfb\x2f\x65\x5c\xd5\xb5\x7c\xd0\x58\xfb\x74\xdc\x85\x89\xce\x29\x80\xcb\x09\x48\x9b\xb1\x7d\x6d\xf5\xb6\x3c\x56\x41\x7a\xd3\x17\x1e\xef\xc6\xc6\xb3\xa8\x09\x15\x82\xe3\xa3\xea\xf8\x44\x25\x82\x71\x73\xf4\x96\x53\x57\x2c\x3e\x0a\x92\x22\x9e\x4f\x3f\x76\xd2\xc3\xa3\x8d\x2b\x6b\xa2\xe9\x15\xaa\x20\x4a\x78\x65\xac\x7f\xfb\x22\xda\x43\xb4\xb8\xff\xc7\x6d\xe5\x59\xe8\xb4\x1d\x77\x0b\x0f\x2d\x78\x87\xdd\xfe\x0d\xbe\x93\x16\xa0\xdb\x30\x69\xd4\x62\xcb\xb4\x0d\xd6\x17\x40\xde\x8d\xfe\x17\x7b\x6a\x65\x69\x53\x2d\xe6\x9a\x63\x46\x5a\x05\x91\x98\xb0\x93\xee\x4d\x2e\x88\x12\xe0\xe0\x56\x49\x25\x8d\xbd\x68\x54\x30\x95\x35\x81\x68\xe3\xf5\xf3\x4a\xd1\xc1\xc4\x15\x9c\xcc\xa8\x21\x1c\x92\xdd\xc5\x07\xfd\xcc\x0c\xa1\x81\xbf\xa4\x7b\x0c\x21\xa0\x71\x3d\xd2\xf1\x17\x82\x21\x81\xf5\x30\x9a\x4c\x32\x3b\x20\x76\xf4\x59\xbb\xd8\xee\x92\x02\x2c\xde\x67\xe8\xe5\x6a\x1a\xd5\x58\xd9\xf6\xcd\x21\x7c\x27\x44\xea\x6e\x05\x81\x36\x8a\x51\x9c\x6a\x8e\xc8\xbf\xaf\x39\x22\xf3\x88\x07\x18\x30\xd5\xf4\x54\x71\xae\x3b\xaa\xe4\xeb\xa8\x2f\x6c\x34\x01\x83\x35\x51\x08\x22\x6a\x7e\x76\xe8\x6b\x0c\xe6\xda\x11\x3c\xd1\x26\x1d\x25\xbc\xa7\xc3\x3b\xe1\xd8\xc8\xb0\x21\x1d\x1f\x9a\x42\x0b\x9f\x15\x2e\xec\x3f\x49\x8c\xdc\xfa\x31\x65\xc0\x65\x2c\x46\x90\x4e\x5f\xc8\x38\xb6\x15\xca\x20\xbd\xea\xea\x52\x71\xa4\x95\x43\xb4\x60\xec\x94\x65\x05\x2b\x6e\x8d\x34\x59\xa8\x76\x47\xc5\xa6\xba\xf6\xd9\xae\x6e\xa9\x71\x05\xd5\x6b\xfd\xde\x40\xa7\x36\x17\x46\x2a\xe5\x69\xa8\x0a\x42\x54\x3e\x3b\x18\x3f\x90\xd0\x85\xe4\x6f\x68\x11\xd4\x99\xcb\xb1\xf2\x8c\x9b\x3f\x87\x5d\xf8\x05\x93\x6b\xcf\xa3\x57\x60\xa8\x29\x18\xa5\xd6\x49\xb1\xde\x39\x86\xa1\x6a\x6c\x13\x9d\xa0\xb9\x51\xd3\xb8\x06\x9d\x00\xe8\x47\x9e\x41\x4c\x3c\xc3\xb7\xe9\x45\x2f\xa2\x17\x21\x1c\xc1\x97\x1c\x27\x9e\x23\x82\x25\x7b\x36\x84\xd6\x2c\xca\xcb\x32\x20\x9d\x74\x51\x9c\x8c\x24\x31\xb3\xf6\x14\x46\x49\x50\x57\x89\x26\x1c\x05\x37\x6c\x5f\x6e\x8f\xef\x4e\x20\xe1\x5d\xe6\x03\xd4\x55\x9e\x05\x11\xea\xe3\xb4\xeb\x1d\x8e\x6d\x64\x34\x9d\x84\xba\x71\xa1\xb2\xee\x04\x68\x15\x5e\x7a\xbc\xee\x27\x6c\xee\x45\xdd\x1b\x05\x1f\xcc\xe6\xab\xe9\xd5\x64\xc0\x1b\xf9\xb5\x41\x82\x43\x61\x92\xfa\xe8\x58\xd2\xa9\x6a\xfc\x7b\x97\x0a\x97\xdd\x79\x65\x02\x5a\xca\x81\xa2\x8d\xdb\x82\xf7\xad\x93\xaf\xca\x74\x7a\x03\x8e\x23\x0e\x15\x06\x79\xb4\x50\xec\x3b\x17\x8a\x9f\x58\x28\xec\x0b\x47\x74\x8e\xac\xaf\x54\x0f\xeb\x45\xcc\xcf\x6e\x48\xc2\x8d\x27\xac\x5c\x8c\x6d\xa0\x55\x3c\xbd\x31\x91\x46\xec\xc4\x30\x3a\x21\x1e\xb5\x09\xb4\x23\x40\xbf\x17\xae\x8a\xe3\xa7\x42\xb3\x53\x37\x40\x32\x8c\xa2\xe8\x11\x59\xc7\x5d\x1f\x1a\x5e\x02\xfd\xbd\xac\x02\x7a\x90\x35\x2e\x38\xf4\x77\x3a\xc7\xfe\x4e\x6e\x7d\x2b\x5d\xef\xb0\xc9\xf4\x7e\x2f\x45\x8d\x94\x24\x71\x13\x4b\xfb\xfc\x68\xa7\xe0\xee\xec\x80\x04\x45\x19\x39\x60\x15\x31\xa8\xd1\x9e\x85\x5e\x25\x2c\x69\xc4\x6d\xd5\xab\x28\x0a\x24\x48\xd5\x8f\x55\xaf\xdc\xd0\xcc\xbb\xcb\xc2\xfa\x8e\x31\x52\x19\x42\xf9\x0e\xf0\xbf\x02\x85\x42\x51\xc8\xaa\x68\x3d\x91\x68\xb2\xc3\x74\x76\x19\x1e\xd4\x54\xad\x62\x70\x2c\x50\x00\xf4\x0a\x35\xf6\xf3\x89\xbb\x2c\x31\x61\xa2\x76\xed\x71\x0e\xa2\x7f\xce\x21\x76\x1c\x50\xdf\x44\x1a\xdb\xc1\x81\x38\x30\x93\x2b\xc3\x3a\xc5\xd3\xee\x6d\xb2\x1e\xeb\x92\x9d\xc8\xed\xc0\x03\x52\x50\xc6\xe7\x1e\x06\x0c\x74\xfa\x31\xc2\x6d\x8d\x98\xe3\x1b\x22\x8a\x0b\xf9\xe5\x84\x27\x7d\x4f\x42\x29\xb9\x7f\xbc\x53\x88\xdd\xd8\x43\xeb\xf5\xa4\xd3\x52\xc7\x3e\x0d\xa1\xfa\x57\x60\x6d\x3b\x44\x8e\xde\x24\x86\x8c\x19\xf1\x3b\xa4\x0c\xb6\x7b\x22\xbf\xee\x01\xa6\xe2\x89\x63\xa3\x04\x87\xa8\x0e\xac\x63\x02\xf5\x07\x46\xf0\x3c\x9c\x08\x86\x7c\x46\x28\x7e\x38\x01\xba\x0e\x90\xba\x6e\xca\xf1\x1b\xfe\x80\xc7\x8a\x01\xa1\x7e\x90\x01\xca\x57\xc6\x58\x9e\x11\xef\xb6\x74\x01\xed\xbc\xd6\x0f\xe0\x18\xa0\xa3\x83\x94\x58\x0c\x87\x63\xda\xbd\xac\x8d\x2c\x02\x2e\xea\x90\x26\x43\x61\xeb\x21\xf2\xd6\x04\x97\x2f\x74\xd8\x3a\xe8\x96\x59\x19\x05\x37\x80\x8a\x2d\x09\xfb\xea\x27\x5e\xcb\x7b\x81\xb4\xd2\xa9\x65\x4e\x39\xcb\xd7\xa3\x28\x39\x81\x4d\x75\xbc\xbd\xe7\xeb\x4f\xa8\x2d\x71\xd2\xa3\xd6\x65\xb7\xe0\xd2\x86\x98\x9f\xc9\x98\xbf\xc1\x4d\xe6\x21\xd1\xf4\x4f\x6c\x1f\x69\xa5\x11\x3f\x9c\x66\x9f\xad\xd6\x0d\x6e\x90\xaf\x62\x45\xfe\x1d\xdf\xa8\x1d\xf6\xca\xf7\x0a\x22\xf8\x73\x21\x4d\x5e\xab\xb5\x5b\x6f\x42\xb2\x76\x42\x76\xac\xcb\xe2\x43\x0a\x97\x1f\xeb\xdb\x11\x40\xcc\x4e\x34\x38\x70\x82\x1c\x23\xe9\x22\x46\x92\x52\x3c\x82\x2e\xb4\x3b\x04\x41\xa7\x10\x57\xc9\xa2\x9c\xbd\x63\x40\xf5\x23\x3c\xf3\x0c\xc9\xb1\xe7\xe4\x3f\xa7\x1a\x93\x1c\x0b\x33\xc4\x16\x0f\xbe\x6b\xc1\xdb\xf1\x72\xba\xcc\xba\xcd\x0b\x88\x89\x3d\x4a\x6f\x63\x33\x03\x86\xcd\x0c\xa8\xc8\xc9\x35\x37\xc6\xce\xea\x25\xe0\x8f\xbd\x63\xe3\xe5\x3f\x22\x3a\xcf\x30\x96\xee\x53\xed\x4c\x77\x11\x6d\xab\xe9\xea\x66\x92\xf1\xd9\x7c\x76\x3e\x9d\xbd\x5b\x4c\x67\xef\x27\x1f\x27\xb3\x55\xd6\xc5\x61\x65\x11\x71\x2f\x7f\x37\x5f\xb0\x7e\xe2\xde\xcf\xd4\x0c\xd2\xe8\x52\x42\xfb\x57\xb3\xd7\x15\x36\xd4\x45\x1a\x09\x74\x42\xfc\x89\xdb\x23\x48\xcf\x5a\x95\x12\xb9\xcb\x5a\xe3\xcb\x88\x93\x4e\x90\x69\x54\xd7\x98\x76\x87\x76\x74\xad\x0c\xa8\x57\xa3\x73\xe5\xbd\x2f\xbc\x25\xe2\x26\xfb\x31\x4f\x4d\x5f\xab\x4b\xf6\xa7\xd3\x6d\x0e\xf8\xd4\x5e\x6c\x9e\xb6\xc7\x61\x21\x2a\x4d\xac\xf0\xcd\x56\xea\x3a\xca\x0a\x83\x15\x56\x37\xb1\xd3\x59\xc9\xfb\x52\xdd\xcb\x2a\x97\xc3\xcc\xa7\x8c\xb3\x4e\xce\xb8\x3d\x12\x58\xd6\x11\x58\x0f\xfa\x2e\x64\xa9\xd6\x18\x94\xc7\x9e\xad\xda\x98\xf2\xe0\x5f\xd3\x70\x91\x37\x66\x78\x5a\xc0\xa9\xd2\xaa\x3a\x24\x52\xbc\x96\xc0\x06\x8f\xd5\x14\x76\x2b\x61\xcf\xc4\x4e\xdc\x27\x21\x5b\x50\xb0\x2e\x7f\x1e\x32\xe9\x80\x4b\x14\x25\x7c\x10\x30\xd5\x14\x2d\xf6\xbd\xf4\xa0\xd3\x38\x3d\x8e\x54\x26\xcb\xb7\xc2\x2e\x85\xac\xb9\xa8\x31\xe1\x4c\x0c\x15\xae\xdf\x49\xe2\xd6\xda\xf5\x6a\xbd\x26\x68\xf1\x37\xaa\xa2\x8d\x62\x91\xae\xc3\xb3\xfa\x64\xf6\xd1\x8d\x04\x58\x0e\x34\x36\x1f\xbd\xd7\xba\x78\x54\x65\x99\x31\xec\x8d\xd6\xe8\xfd\x1e\x5a\xb3\x7a\x0a\x82\x8d\x50\x65\x5b\xe3\x35\x20\x4a\xc7\xa2\x83\x68\x86\xaa\x0b\x86\xc8\xf5\x6e\x67\x65\x50\x94\xcc\xcf\x1b\x5f\x06\x6d\x37\x81\x38\x5b\x6d\x8e\x03\x31\x3e\x78\x2a\x0a\x2c\x62\xf5\xcc\x2e\xc6\x28\x9a\xac\xcb\xfb\xd3\x83\x47\x8c\xfd\x34\xe2\x63\x80\xd5\xdb\x09\x7f\x8a\x08\xff\x23\x16\xc8\x48\xaa\x3f\x6d\xad\xc9\x7a\xe2\x98\x3d\x9d\x0c\xf9\x9c\x96\x28\x36\x1a\xc3\x59\x99\xa3\xc1\x87\x6e\xdd\x7c\x23\x91\x6b\x83\xa5\x95\x7a\xd4\x0d\x2f\xf3\x34\xe1\x20\x44\x72\x57\x01\xb4\x22\xc2\x80\xbb\xbe\x04\x51\xef\x1c\x46\xd8\x6d\xca\xe3\x1f\xf7\xb4\x8e\x7b\x4b\xba\x56\x3c\xe0\xee\xf8\x85\x21\xde\xa6\xd0\xf6\xd1\x17\xc9\x03\x8a\xa3\x42\xd0\x9a\x37\x43\x29\x1b\x80\x44\x0b\xf8\x6b\xab\xdc\x82\x6a\x83\x31\x66\xc4\xa4\xc7\x42\x42\x26\x04\x12\xa2\x9d\x8d\x18\x1b\x14\x06\xb2\x7c\xab\x48\x5a\x83\xcd\x21\xc3\xce\xa2\x05\x46\x71\xb7\xba\xec\xb9\x6f\xb6\xa2\xde\x81\xb2\x70\x56\x67\xdc\x12\x02\x40\x69\x3e\xa3\x41\xa1\x3f\x61\x8c\xac\xc1\x59\xc3\xe8\x58\x76\x2c\x75\x40\xe5\x60\x6f\x70\x1e\x1a\xe5\xba\x55\x73\x96\xad\xdf\x34\x16\xe5\xd1\x44\x19\xde\xef\xfa\x41\xf0\xfe\x7e\x10\xe3\xdb\xdb\xc9\xec\x7a\xfa\xd7\x9f\xf9\x87\x98\x56\x3a\xc1\xd6\x61\x7f\x54\x4c\xff\x41\xeb\x84\x6f\x7c\xe6\x44\x53\x85\xb5\x56\xa5\xac\x81\xd6\x8a\xfc\x92\x2c\xb0\x4c\x6e\x94\x2c\x0b\xc3\x65\x05\x40\x45\x30\x0e\xd6\xb5\xc8\xbf\xc8\xc6\xf0\xc1\xbf\xfd\xfb\xc0\x5a\xe4\xd6\x07\xa6\xfb\xe4\xe0\xc4\x81\x8a\x45\xac\x0f\xc3\x22\x2f\x6f\xc4\xcf\xae\x75\xf5\x63\x93\xb4\x32\x74\x0f\xfc\x3f\x86\xd4\x4e\xef\x6b\xc3\x43\xcd\x8f\x7f\xb5\xaa\x58\xe7\x2e\x44\xbd\x51\x35\xdc\x1c\xaa\x46\x7c\xf5\x55\xa9\xe0\x63\xe2\x3b\x47\xfc\x93\x44\xc2\x25\x60\xdf\xd8\x49\xe2\x3f\x62\x02\x3f\x85\x1b\x6f\xa2\x36\x0a\x68\x7c\x79\x38\xa1\xcb\x62\xad\x65\x48\xf5\x13\x58\x13\x0a\xf6\x07\xfb\x5a\x01\xeb\xac\xd5\x7f\x03\x28\xcc\x39\x45\x3e\x24\x85\x51\xb2\xf6\x75\x34\x11\x27\x0e\x7a\x1f\xce\xaf\x66\xc4\xd6\x6e\x75\x55\xa8\x1b\xfc\xb7\xc3\xe1\x70\xf8\x77\xfe\x6f\x0e\x45\x1f\x5e\x01\x09\xad\x7f\x8f\x4a\x0c\x91\xa1\xaa\x84\x6b\xde\xa1\x7b\x6a\xc9\x7a\x30\x8a\x4b\xe8\x9d\xb5\x17\x05\xff\xe0\xd0\x21\xde\x4d\xf8\x35\x82\xaf\xf2\xb3\x06\xa9\x40\x11\x05\x38\xfc\x85\x1d\xa2\x9e\xd7\x78\x99\x50\x38\xd4\x19\xbd\xd0\x72\xc5\x5a\x5f\xa0\xcf\x22\x5a\x9c\x8e\x33\xab\xd7\x8d\x50\x15\xeb\xf2\xdd\x90\x63\xe0\xe1\xa7\xc6\x8d\x34\x45\x9f\x7a\xf0\x75\xd7\x8c\x65\x4f\x9b\xb1\x3c\xb9\xe5\x7d\xf7\x6c\x8f\x91\x41\x5f\x99\x8a\x21\x7a\x0b\x54\x52\xfc\x67\xfc\x89\xa7\x0c\x59\xf6\x0d\x43\x96\x7f\xc3\x90\x0d\x3d\x1f\x1c\x7b\xe0\x11\x97\x7e\x29\xaa\xfb\x56\xdc\x4b\x62\xf7\xed\x80\xd3\x3a\x2d\x7e\x4c\x44\xa0\xe1\x8d\xbc\xff\x6e\x4c\xf5\xff\xa4\x9f\xd1\xb3\xab\xeb\x9b\xf1\xf9\x2d\xad\xf0\x83\x3c\xbf\x1c\x5d\xfc\x83\x4b\x01\xbe\x81\xff\x7f\x79\xf9\xfa\x55\x97\xff\xfd\xcd\xeb\x8b\x3f\xf0\xff\xff\x8c\x9f\x2b\x5f\x3c\x7d\x2d\x1a\xe1\x55\xc2\xd8\x47\x34\xce\x79\x90\x0d\x7e\xee\xb5\xea\xe5\xe8\x82\x50\xe4\xca\x71\x21\xff\x86\x07\x65\xf1\x73\xf8\xd9\xc0\x7f\x6a\x30\x1c\x31\xf8\x7e\x8c\x33\x23\x2f\x25\xd2\x5c\xe1\xa9\xeb\x43\xc2\x43\x08\xdf\x25\xde\xae\xda\x8c\x18\x18\x72\xb1\x83\x18\x1a\xf9\xc7\xc0\xd1\x58\xc1\x78\xf4\x2b\xc0\xd9\xa3\xa4\x1e\x3e\x2c\x32\x72\xc1\x09\xf0\x23\x41\xd6\x5b\x4f\xd6\xfb\xad\x78\x16\xf3\x73\x20\xb6\x1b\x44\xfd\x36\x14\xee\x87\x49\x25\xb3\x71\x08\x0b\x4a\xb9\x10\xf4\x14\x3e\x12\x90\x80\xa2\x2a\x42\x64\xd8\xb5\x98\x86\xcf\xc3\x07\x13\xb0\xc9\x51\x03\xab\xee\x48\xb1\xa9\xd9\x5a\x3a\x1a\x71\xd3\x6e\x36\x2a\x57\x90\x68\x26\x2e\x6a\x42\x9e\x3a\xc3\x25\x94\xcc\x6f\x3a\x1b\x05\x3e\x0b\x76\x53\x2b\x0f\x19\x4b\x66\x76\x66\x86\xf0\x6a\x3b\x66\xbc\xa8\x6f\x45\xdd\x28\x69\x06\x43\xb2\x9b\x85\x21\x83\xcf\xfc\x0c\x00\x17\x47\xc0\x9c\x02\xfe\x19\xbb\x1c\x5d\xf2\xc1\xb8\xf0\x20\x27\x00\x51\x39\x6a\x7d\x5c\x02\x1f\x37\x00\x3b\x0f\x18\xaa\x77\x52\x57\x92\xcb\xd2\xc8\x1f\x0d\x7c\x28\x0b\xc8\x58\xeb\x4e\xc3\xa7\x07\xce\xbb\x32\xa3\x81\xf7\xb4\x8c\x0b\xf1\x3b\x7b\x70\x01\xdf\xb3\x96\xcf\xe5\xe8\x39\xd0\xa6\xef\xdb\xc6\x25\x08\xee\x8c\x74\x03\x43\x51\xaa\x44\x79\x30\xca\xd8\x49\x63\xc1\x80\x77\x77\x37\xe4\x89\xd2\x57\x59\x21\x1f\x20\xe0\x9e\x74\xf0\x0f\x4e\x94\x3a\x6a\x9e\x67\xa7\x31\xe2\x6f\xb1\x47\xbc\xde\x78\xfc\xa6\x15\x10\xef\x20\x53\xf0\xa8\x6f\x98\x3e\x9f\x46\x36\x6b\x19\x91\x8f\x62\x05\x7e\x3c\x3c\x98\x49\x83\xc8\x61\x99\x6f\x2b\xf5\x1f\xad\xcc\xba\x28\xaa\xa4\x5d\xb4\x9f\xbb\x4b\x53\xc2\xa1\xaf\x58\xa1\xee\x55\x23\x4a\x4c\x1c\x41\xff\x21\xcc\xf3\x24\x45\xdd\x62\xad\x5b\xda\x4e\x17\x29\xd9\x8b\xa6\x91\x35\x74\xf7\xaf\x65\x55\x98\x8c\xe5\xba\x76\x00\x16\x88\x6a\x10\x17\x26\xfc\xb7\x09\x47\xdf\xa5\x35\x24\x6e\xda\x0b\x3e\xb0\xcf\x1d\x44\xac\xe6\x49\x39\x79\x08\x35\x78\x03\x16\x0e\x9e\x8a\x69\x01\x21\x37\x20\x0c\x57\x3e\x16\x60\x9d\x02\x08\x09\x95\xa5\xe7\x78\xa5\xfa\x04\x44\x5e\x95\x21\xb0\xc4\x73\x2a\xf7\xd1\x35\xbf\x17\xe0\x8c\xa3\x39\xd8\xd1\x07\xe0\x12\x3a\xa0\x16\xd5\x6a\xe8\x0a\x12\x9c\xe8\x9e\x66\x01\x72\x11\x99\xd1\x3d\xb4\x07\xb1\x2a\xba\x1c\xbd\xc4\x25\xf0\x2f\x8a\x11\x83\x93\x63\x9c\x45\x75\x70\x6d\x8d\x24\x77\x78\x07\x91\x37\xba\xf6\xa1\x8b\xc9\x51\xfd\x4a\xa3\x91\x70\xc4\x90\x8e\x4b\x20\x8e\xd1\x77\x86\xa8\x0c\xe9\xb3\xd2\xa0\xde\xe8\xbd\x08\xb0\x48\xd6\xb5\x1b\x5c\x80\xea\xc3\xd6\x1f\x30\xa9\x57\x7c\x30\xa9\xb6\x56\x6d\x17\xbc\xbb\xc1\x80\x50\x6b\xdc\xa9\x09\x59\x5f\x37\x44\x4f\x3a\xab\x0c\xb3\x72\xaf\x29\x54\x73\x26\x86\xf8\xb6\xa0\x0e\x28\x6e\x71\xb6\x1e\x12\x25\x46\x54\xc4\x0c\x0f\xff\xec\x18\xb0\x1c\x5e\x8e\x9d\xdc\x87\xd7\x76\xc8\x58\xa5\x13\x36\xa0\x12\x4d\x5b\x23\x21\xb7\x21\xd6\xab\xfa\x5e\x54\xc4\x7b\x44\x77\xc7\x57\x65\x9a\xd8\x32\x2e\xc5\xa3\x8f\xee\xff\xad\xad\x95\x29\xb0\xa8\x1e\xbc\x88\xa8\x2f\x3b\x3d\x0a\x4a\xda\x12\xaa\x3f\x1f\xea\x62\xae\xee\x87\xff\x97\xeb\x7e\x58\x5c\xf7\x73\x1a\x24\xfd\x64\xdd\x8f\x00\xd8\x37\x4b\xea\x7e\xc2\xc9\xc2\x7f\xfd\xb6\xda\x1f\xd6\xa9\xfd\xe1\xa7\x6b\x7f\xec\x26\x43\x7e\x23\xae\xd1\x81\x1e\x5b\xc0\x60\x0f\x55\x40\xac\x53\x05\x74\xaa\xfa\x07\x2e\x22\x99\xb7\x35\xf1\x03\x9e\xe5\xf8\xec\x50\x0a\xc4\x4e\x95\x02\x41\x7e\xfc\xac\x18\x52\x6e\x0b\xa3\x43\x18\x71\xd1\xaa\x6a\x92\x99\x78\x6b\x85\xb9\xe0\x1a\x6a\xe9\x9d\xf8\x9b\xae\x15\x76\xf2\xc3\x05\xd2\x35\xa9\x66\x3a\x89\x20\x91\x6f\xf8\x00\xa4\xfa\x10\xdd\xaf\x85\x2c\x65\x23\x33\x2e\x6b\x61\x20\x80\x5a\xdb\xaf\x63\x64\xff\x9c\x88\x02\xfa\x2e\xd5\x41\x72\x3e\x46\x83\xce\x79\x79\xe2\x5e\xfd\x13\x1f\xd0\xc9\x8c\x86\x81\xe4\xfc\x65\x89\xa0\xad\xce\x89\x8e\xd4\x15\x9c\x57\xa7\x09\x40\x9d\x0c\x23\xf3\xc9\x81\x94\x90\xbc\x93\x9a\x81\x42\xa6\x0b\x52\x3e\xf6\x6a\x4c\x30\xcd\x2e\x19\x0d\xd1\x72\x8a\x00\x54\x1e\x65\x4f\x95\x28\xb0\x14\x3b\xdd\x48\xe2\x6b\x47\x61\x8f\xf1\xd7\x13\x92\x39\xa7\x64\xdc\x7c\xbc\x45\x9b\xf0\x1f\x75\x20\xbb\x8f\x5b\xed\xca\x54\x49\x0f\x7b\x36\x09\x07\x2b\x87\x1a\xc2\x7b\xc0\x3f\x0b\x44\x31\x39\x1d\x8d\x41\x05\x32\x5f\x1d\xd9\x07\xe2\xf1\xab\xf8\x11\x3f\xba\x3b\x65\xc4\xc6\xb4\xfc\xae\x23\x8e\xce\xf3\xb6\x36\x68\xb0\x02\xf1\x4d\xac\x3a\xc1\x0c\xb1\x9b\xf6\x13\x1f\xa0\x4e\x96\x03\xfb\x4e\xf7\x0f\x13\x6d\x21\xa8\x45\x08\x87\x13\xd1\x21\xac\x96\xd3\x9c\x19\xf6\xd5\x2d\x61\x36\xae\xf1\x21\x3c\xfa\xf2\xc2\x3e\x0e\xe4\x23\xd6\xea\xba\x6d\x72\xbd\x23\x9b\xa9\x6d\xf6\x6d\x13\x01\x7a\x30\x6a\x83\x96\x31\x88\x44\x62\x02\xb1\x3b\xb4\x58\xd0\x88\xa2\x67\xf7\x14\x65\x84\xc3\x2e\xb8\xfd\xa7\xaa\xd4\xce\x3a\x2e\x48\xcc\xee\xe8\x27\xdd\x0d\x97\x74\xaf\x49\xed\x2d\x5f\xda\x82\x13\xba\xe4\x83\x65\xab\x90\x3e\x4f\xa1\x49\x6a\xff\xca\xd3\xaa\x3b\xbc\xd3\xe3\x5e\x47\x31\x84\x2b\x1c\x36\x34\xff\x51\xed\x3d\x48\xfe\xd3\xeb\x67\x3f\x3d\x9b\x5c\x39\x5d\x34\x69\x6b\xbd\x97\xa2\xe2\xb7\xa2\x2e\x95\xd8\xb9\xe4\x97\xa7\x03\x6e\xab\x5c\x95\xf6\x9f\x97\x97\xec\xa3\xa8\xf3\x2d\xbf\xfc\xe9\xa7\xd7\x2e\x88\x88\xa9\xb1\x7d\xad\x1b\xa7\x55\x37\xbe\x0c\x0f\xf9\xc8\xed\x23\x8b\x40\xd0\x69\xda\x3c\x87\x56\x2e\x19\x8b\xc8\xca\xa9\xa8\xf4\x3f\x5a\xf5\x20\x4a\x3b\x04\xef\x9c\x1d\x10\x03\xab\x7c\xe5\x54\x49\x8b\xf4\x9c\x0f\x22\x83\x1a\xf3\x89\xdd\xd3\x8e\x22\x04\x41\x32\xbb\x34\x18\x2d\x6b\xda\x02\xff\xcb\x77\x71\xce\x98\x28\xc4\x1e\x83\x69\x60\x98\xfe\x27\xfc\xa7\x7c\x10\x65\x2b\xf0\xd7\xa1\xd8\xef\x78\xf3\x00\x55\x36\x74\x51\x2f\x6b\xaa\xed\x44\xbe\x85\x96\x0a\xba\xe6\xdb\x76\x27\x08\x3b\x22\xba\xb0\xd9\xb5\x6e\xb6\x38\x9b\x17\x1c\xeb\x38\x7d\x19\xe7\xb1\xd1\x05\xc2\xeb\xce\x0d\x3f\x69\x09\x8d\x12\x0f\xe9\xf9\x08\xa5\x06\xf6\xf4\x26\x44\xd5\xef\xa8\x96\x3b\x58\x62\x8c\x3d\x1f\x5d\x76\x11\xda\xb1\x37\x28\x01\x7e\xd9\x6c\x01\x43\x9e\xb6\xa2\x89\xdf\x9f\xc1\xd0\x58\xec\xdc\xc5\x80\x6d\xfb\x6f\x0f\xd9\x3e\x89\xd3\x8e\xe1\xd8\x2c\x82\x63\xc7\xb5\x67\x6e\x0c\xaf\xa8\x06\x94\x37\xfa\x67\x30\x09\xec\xdc\xec\x18\x7e\xf1\x04\xe2\x6e\x8a\xa4\x8e\x9e\x8f\x9e\xf3\x15\x4e\x30\x66\xd2\xf6\xea\x96\x6c\x91\x5c\x83\xc3\xea\x8c\x7a\xa8\x4e\x71\x2d\xc4\x02\x03\x0e\x73\xb7\x0c\x86\x2c\xec\x39\x40\xdb\x9d\xfe\x11\x55\xe8\x45\xc7\xb3\xef\x7c\xb3\x85\x3b\xd1\x3e\x39\x26\x1e\x33\x7e\xe4\x2b\x6f\xda\x1a\xfe\x0a\xb7\x39\xac\xa7\xc7\x6b\xd1\xf0\xd9\xf7\x0d\xdd\x0e\x99\xf6\xc6\x07\xd7\xdd\xde\xa0\x6c\x88\xea\xa0\x2b\xc9\xac\x6f\x0c\x17\xcd\xb7\xc5\x0f\x82\x01\x4e\xba\xa2\x8b\x22\x8b\xa9\x97\xfe\x4e\xd1\x82\xad\x7b\x41\xbd\x98\x5c\xd4\xc1\x24\x91\x1c\x0f\x9e\xa6\xd8\x73\x79\x70\x01\x1d\x2b\x62\x91\xbb\x0c\x8e\x58\x2b\x4a\x86\x7c\xf2\xcd\x21\xf2\x91\x7c\x0c\x08\x60\x4a\x2e\x93\xe3\x42\xd8\xc9\xf9\x7a\x01\x5d\x97\x7c\x6c\xa7\x72\x55\x11\xef\xf1\x09\xae\x1c\xe7\xc5\xe8\xd2\x41\xda\x13\xc7\xc7\xfe\x82\xd6\xd4\xbe\x2c\x71\x51\x7e\x66\x8c\x3c\x0c\x24\x11\xd6\xdc\x68\x5a\x72\x11\xe8\x9b\x08\xa8\x46\x9d\x45\x8e\x91\xd1\x0e\xed\x6c\xb7\x31\xd9\x41\x2f\xed\xee\x12\xa4\x90\xd5\xd7\xa6\xef\x4c\x37\x11\x01\x52\x1a\xbe\x72\x8a\x5d\xf0\xed\x61\x2f\x6b\x28\x3e\x0c\x05\x94\xb2\xd9\xea\x22\x20\x86\xac\xa0\x7d\x91\x58\xb9\x40\x63\xed\xa4\x4e\xfa\x07\x40\xa0\x5f\x7b\x96\x7b\x40\xd6\x38\x0d\x00\x58\x13\xcc\xd6\x2a\xea\x64\x31\x7b\x90\xd7\x29\xbe\xd6\x3b\x66\x01\x76\xad\x4d\x0a\xbc\xb6\x46\xf9\x37\x36\x31\x0b\xc3\x83\x4a\xb8\xfa\x01\xad\xd2\xbc\x96\x85\x6a\xa8\xc2\xd6\xe3\xfd\x1c\xb3\x55\xe7\x80\x13\xf9\xb4\xa7\x9a\xeb\xfd\x72\x84\x78\xae\x0e\x47\x2d\x7a\x9c\xfe\xf6\xea\x4d\x1e\xd0\x2d\xb4\x27\x0c\x4d\x4a\x13\xa6\xbc\x08\xfc\xbf\x3f\x33\xbc\xd1\xdd\xda\x40\x55\x69\x23\x0a\x50\xa7\x9d\xd4\x5f\x5f\xcc\xf5\xcc\x0c\x7f\x81\x5b\xcf\xc9\x02\x58\xb3\x6e\x07\xa2\x21\xa1\xc7\xb9\xb7\x66\x28\xc6\x8d\xa8\x75\x3e\x54\x10\x3d\xf7\x52\xff\x5f\x01\x7b\x42\x81\xe6\xf7\x81\x3d\xc9\xd4\x8d\x04\x26\x01\x7b\x46\xd7\xb6\x57\xf7\xf6\x5d\xa9\x88\xf5\x82\x3f\x9d\x70\xf5\x2a\x45\xe6\x5e\xed\x29\xdc\x51\x81\xff\x3d\xd8\xcf\xa8\x8d\xe6\x8b\xd1\x0b\xaf\xc4\x7b\x02\xc9\x84\x45\x38\x9a\x72\x64\xe1\x12\xa2\x17\xdb\x0d\x32\xe1\x4b\x74\xff\x66\x5d\xca\xa8\x50\xd7\x7a\x1a\x0f\xaa\x6e\x5a\xe9\xb0\xf5\x3e\xe6\x66\xff\xea\xb6\xde\xdd\x2e\xbd\xc1\x0e\xac\x56\xf3\xaf\xa6\x0c\xa8\xcb\x21\x42\xc0\x3e\x62\x05\x04\x42\x68\xdd\x02\xc5\x09\xc3\xe2\x65\x5a\x16\xe3\x08\xa3\x9d\x46\x70\x13\x86\x15\x79\x89\x48\xca\xf0\x56\xb5\xc3\x40\x83\xbd\x15\x02\x4c\xa4\x43\x3b\x68\x3c\x1a\xe4\x0e\x51\x48\x9d\xcd\x0b\x7e\x69\x74\x27\xbc\x1c\x1d\x9d\x89\x1f\xf9\x22\x2a\x8d\x85\x58\xf5\xcb\xd1\x25\x9f\xf4\x45\xf9\xe9\x73\xa6\x63\x94\xf8\x4f\x6c\x85\xf1\x29\x8d\x48\xb5\x4a\x96\x43\x0e\xd8\xde\xda\xc6\xf7\x77\xff\xd9\x05\x49\xc8\x46\x89\x82\x69\x50\x72\x15\xc7\x1a\x23\x48\x3d\x43\x7d\x63\x3f\x81\xae\x12\x95\xd9\x3b\x96\x50\x2f\x8e\xce\xf2\xf2\x1a\xd1\xbf\x2a\x6c\x35\x4b\xd5\x78\xb0\xc8\x82\x1e\x09\xc6\x8b\x87\xb8\x3e\x28\x5d\x22\xf0\xcd\x6a\x01\xf5\x20\xf2\x03\x5a\x36\xd5\x06\xf5\x90\xe8\xa0\x86\xf0\x8d\xd8\x55\xcb\x15\x05\x74\xc4\x20\xda\xa4\x57\x23\xbe\xa2\x4a\x29\xbb\x97\xec\xd5\xe8\x92\x8f\xcb\xd2\x5f\xa8\x64\x0d\xf4\x0a\x2c\x50\x30\xfa\x3a\xab\xcc\x25\x2f\xe8\x4b\x56\x2a\xfd\x75\x10\x8b\x4d\xbc\x3a\xae\xf1\xbc\xb5\x72\xa9\x0c\xd8\x97\x0a\x11\x64\xc8\xe5\xef\xcb\x03\xdb\x50\xd3\x00\x50\x07\x87\xb0\xfa\x4f\x02\xa6\xd3\x03\x06\xa5\x02\x9a\x11\x9b\x15\x55\x83\x39\x94\x1b\x94\x56\x44\xb0\xde\xbd\xac\x95\x46\x1f\x10\x9a\xf9\x00\xb9\xec\x5a\x12\x37\xac\x78\x14\xc8\x64\x03\xcf\xa8\x74\x15\x80\x12\xae\x70\xef\xe9\xf5\x8b\x96\xee\xb3\x6e\x99\xc7\x46\xe5\x12\xbc\x5c\xbb\x76\xfb\x26\xeb\x53\x98\xc1\x2b\xf7\xa8\x2f\xcc\xe5\xa4\xd8\x31\x82\x8c\x3e\x9d\xdf\x3b\x9c\xce\x2a\xa2\x12\x23\xb2\xc6\xbe\x98\xb0\x2c\x42\xc0\x19\xeb\x4a\x82\x2c\xe1\xde\x5a\x43\x44\x55\xad\xa4\x5a\xdc\xfa\x41\x3d\x20\x2c\xff\xf9\x71\x6d\xe3\x71\x51\x63\x7f\xb0\xff\xe0\xf2\x54\xf6\x96\x61\xc7\x96\xdc\xc9\xf2\xc7\xb4\xdc\x31\x69\x02\x02\x77\x1d\x8b\x3b\x6f\x22\x94\x8c\x23\x92\x0c\xc2\x5c\x75\x48\xb1\x1e\x59\x85\x55\xbc\xd6\x7b\xeb\x52\x43\x79\x3b\x4b\x8b\x17\x79\xf7\x4c\xf8\x7d\x75\x46\xd4\xc9\x83\xc6\xbe\xb7\xa0\x91\x47\x05\x8d\xd1\x41\x7f\x7d\x02\x3a\xae\xa4\x21\xa7\xb8\x17\x0e\xcc\xd8\x6b\xab\xa0\xff\x7a\x35\xb9\x5d\xf1\xf1\xd2\x31\x63\xde\x7c\xe6\xcb\xc9\x8a\xbf\x9b\x2f\x56\x1f\xf8\x74\x86\xec\x8a\xe3\xf7\x8b\x09\xe1\xa9\x57\x1f\x26\x48\x0a\x19\x31\x3c\x4e\x66\x1f\xc6\xb3\xab\xc9\x35\xb3\x7f\x18\xf2\xe9\x92\xdf\x2e\xe6\xbf\x4e\xaf\x27\xd7\x7c\x0e\x34\x91\xbf\x1d\x34\xce\x02\xd6\x66\x32\x05\xc2\xc9\x63\xe6\xce\x40\xcd\x99\xf5\x70\x73\x66\x00\xd7\x09\xaf\x60\x47\x70\x9e\xef\xc5\x8c\xdb\x57\x26\xd4\x9d\xac\x07\x32\x6e\x97\xf3\x39\x9f\xd1\x60\x3f\xcf\xef\xf8\xcc\x33\x6e\xae\xc6\x6e\x41\x16\x4b\xa2\xf4\xfc\x30\xfe\x75\x02\x7f\xf5\x3c\x98\xdc\x71\x7a\x22\x91\x67\xc6\x1c\xa5\x27\x50\x90\x4e\xaf\x27\xb3\xd5\xf8\x26\x0b\x8c\x9f\x93\xbf\x4e\x3e\xde\xde\x8c\x17\x9f\xb3\xd3\x9c\x9f\x61\x8f\x58\x0f\x79\xe9\xcd\x7c\xb9\x72\xc4\x9e\xc3\x8c\x7f\x98\x7f\x9a\xfc\x3a\x59\xf0\xab\xf1\xdd\x72\x72\x0d\x88\x47\xd8\xbd\xcf\x76\xcf\xe7\x8b\xcf\x76\xc9\x02\x6b\x27\x8b\x88\x40\x3d\xf7\x67\x0f\xb9\xe7\x7c\xc1\x4f\x13\x82\xda\xbf\xce\xed\x53\x3e\x4d\x97\x93\x21\x73\x44\xa0\xd3\x19\xed\xdd\x67\xc7\x09\x1a\xb1\x7f\xc6\xa4\x78\xee\x4f\x8e\xa5\xd4\xfe\xf7\xe4\xaf\x93\xc5\xd5\x74\x39\x61\x04\xd8\x5a\x4c\xdf\x7f\x58\x2d\xf9\x7b\x2b\x06\x93\x6b\xfe\x61\xb2\x98\xdc\xcd\xae\x27\x8b\x0c\x28\x56\xf9\xf4\x1d\x1f\x5f\xff\x3a\xb5\x33\xa6\x87\xdd\xce\x97\xcb\xa9\xdb\xf9\x77\x7c\x79\x77\xf5\x81\xd1\x82\xa6\x07\xef\xcd\x88\x7f\x54\x26\x97\x65\x29\x2a\xa9\x5b\xc3\xd8\x9b\xd1\x65\x0c\x86\x85\x68\x77\x83\xec\x84\x50\x47\x80\x17\x47\x82\xb8\xed\xde\x7a\xae\x73\x08\xe2\xe2\x30\xb3\x05\x7f\xc0\xaa\x1a\x9f\x00\x3c\x36\xd7\xdc\xd5\xd1\x6d\x39\x1d\x3d\x8d\xcc\x0c\xea\xb9\x1a\x82\x9a\x99\xcb\xcd\x1c\x5c\xab\x24\x5d\x37\xa0\x4f\x47\x29\xb8\xd7\x1a\x1f\xb1\x45\x66\x1a\xb9\x37\x64\x91\xa9\x1e\xad\xbe\x69\xcb\x8d\x2a\x81\xe8\x24\x99\x36\xb5\xcc\x89\x26\xde\x29\x11\x38\x9a\xf4\xe9\xf9\x06\xef\x6e\x2b\x6b\x09\x6a\x16\x0a\x6a\x9e\x7b\x17\xa1\x6b\xac\x76\xf2\xd4\x48\xf9\x98\x24\xaa\x05\x06\x15\xac\xdf\x4f\xb7\xb7\xb5\x2b\x70\x9e\xb2\x46\xba\xbd\xc8\xd7\x43\x4a\x4c\xba\x74\x21\xa6\x85\xa5\xd1\xb5\x28\xdd\xcd\x61\xed\x00\x34\xe5\x0f\x88\x85\x26\x3f\x15\x86\xfa\xa2\x6b\xbb\x5b\x23\xd0\x9a\xa1\x95\x76\xdf\xc7\xa4\x80\x2c\xec\xca\xb5\x7b\x4d\x05\xf5\x3e\x49\x2a\x29\x11\x12\xae\x39\x3b\x3c\x82\x99\x38\x7a\x6f\x85\xc2\x47\x71\x72\xfb\x6f\x93\x51\x11\x17\xb0\xe4\x43\xe8\x1a\xfa\xed\x42\x3c\xc0\xee\xe9\x3d\x94\x6c\xbd\x01\xef\xe2\xd8\x13\xe6\x2e\x04\xe0\xc6\x09\x43\xf9\x6a\xdf\xe0\xb7\x28\x91\x39\x16\x07\xd2\x6b\xde\xb5\x75\x29\x3d\x15\x2c\x12\x58\x2e\x77\x8d\xf6\x07\x83\xc9\xd8\x08\x10\xfe\x6f\xde\xba\x18\xc3\x20\x06\xbf\xd2\x05\x9e\x40\x08\xed\x3c\x60\x4a\x9e\xa2\xbd\x33\x9b\xc8\x16\x08\x73\xeb\x99\x0a\xb6\xa6\x15\x4d\xd8\xe3\x57\xb0\x82\xdf\x44\x91\x59\x47\xf4\xbe\xd6\xed\x9e\x86\xbe\xc2\x86\x82\xed\xd7\x88\x31\x96\x11\xc6\xc4\x34\xf2\xd1\x1e\x8f\x63\x83\xf8\x6c\xb0\xc4\xbf\x0d\x86\x23\x3e\xa3\x3e\xa6\xa9\x6c\xd0\x07\xd8\x96\x20\xd1\xde\xd1\xa1\xaa\x40\xed\x1b\x2f\xf5\xf4\x1c\x4b\x91\x4f\x71\x1f\x2f\xe6\x0c\xff\xef\x6c\xe6\xe5\xe2\x20\x7d\x36\x13\x3b\x3e\xd9\xfd\xfc\xad\xb2\xcb\x9b\x15\x56\x02\x3f\x0f\xa9\x29\x28\x90\x70\x4c\x5b\xe5\x21\xe8\x0d\x6f\x26\x22\x3b\xe3\xd1\x0b\xb0\x68\xc0\xb1\xfc\xf8\x99\x1e\xf5\xa5\xa2\x25\xfd\x03\xa0\xfb\xff\xa1\x9f\xd1\xb3\xab\x76\x2d\x7f\xc7\xe6\x4f\xdf\xee\xff\xf4\xfc\xe2\xe5\x11\xff\xf7\xab\x8b\x3f\xf8\xbf\xff\x29\x3f\x76\xf7\xf9\xbd\xd8\xb9\x5e\xe0\x29\x3f\xe9\xf3\x0b\x5e\xc8\x9c\x3f\xbf\xb8\x78\xe1\x5a\x28\x8c\xe2\x5e\x50\x57\xd0\x0b\xea\xf2\xdc\x7e\x80\x7d\xd2\x50\x39\xf7\x20\x2a\x3e\xd7\x75\xb3\x93\xb5\x31\xb2\xb7\x49\x81\x0f\x8e\xfe\x28\xcc\xb9\x32\x3f\x86\x9a\x56\x40\x93\x1d\x55\x0d\xf8\x6a\xa4\x11\x8b\x6b\x34\x31\x0c\xb3\x95\x2e\x1e\x69\xd5\xea\x56\x96\x85\xab\x6e\x74\xd1\x5b\x57\x93\xe7\x4a\x0f\x3d\xed\x01\x41\x2d\x9b\x78\x7c\x23\xc6\x6e\x4f\x75\xb2\x20\x0f\xdc\xd7\x1f\xc6\xd3\x72\x2f\x23\x00\x53\x5c\x47\x19\xca\x03\x93\x6e\x50\x99\x4f\xb2\x95\x76\xdd\x94\x2b\x7c\x89\xc8\x46\x54\xc3\x37\xb5\x94\xd6\xe6\xea\x64\xcf\x42\xa4\x3f\x8e\x56\x22\xd3\xcd\xaa\x53\x74\x1d\x0f\x13\x52\x13\x14\xe1\xdd\x29\xe3\xa3\x8d\xb2\xf8\x25\x34\xba\x85\x20\x91\x75\x98\x11\xa3\x05\x9d\x8d\xad\x61\x12\x95\x73\x8b\x32\xac\x58\xdc\x38\x37\x7d\x1b\xc4\x1d\x28\xf4\x9e\x31\x51\x71\x91\x7f\xa9\xf4\x63\x29\x8b\x7b\xea\xd4\x83\xa0\x2f\x2a\x43\x4f\x5b\xb5\x3c\xba\xc4\x9b\xd8\xef\x6b\x49\x65\xbf\xc8\x22\xcf\xa2\x40\x71\x81\xbc\x71\xe3\x12\x09\x84\x49\x7e\x43\x2b\x2c\x3b\xa1\xb5\xe4\xd0\xdd\x34\xd0\xee\x09\x64\x7f\xa5\x16\x39\x61\x51\x58\xba\x28\xc0\x0e\x2b\xd3\x4a\xf6\x78\xea\xe0\xf0\xbc\xa0\x2a\x7d\xaa\x95\x8a\xfa\x82\xd4\x72\xe7\x78\xee\x05\x8d\x0f\x84\x0f\x6e\x4c\x1c\x68\xc2\xba\xc4\x58\x94\xe7\x20\x62\x75\x5f\x18\xd3\x68\x6e\x4f\xeb\xcf\xc0\x7d\xb3\xec\x4e\x33\xbc\x74\x50\x4b\x17\x6f\x1f\xf8\x7c\xe1\x71\xc6\xc4\xd1\x28\xec\x0e\x31\x01\x44\x5f\x97\x91\xff\x6e\x1d\xf5\xc7\xcf\xef\xf7\x33\x7a\x36\xae\x1b\x6b\x82\xe6\xbf\x43\xe1\x0f\xfd\x3c\x7d\xff\x5f\x5e\xbe\xb8\x78\xd3\xed\xff\xf8\xe6\xe2\xd5\x1f\xf7\xff\x3f\xe3\xc7\xde\x15\x4e\x02\x7c\x4d\x1e\xbb\xad\xa5\xd8\xad\x4b\x89\x95\x29\x2a\x22\xe6\x88\x7a\x19\x00\x94\x5f\x13\x65\x4c\x27\x35\x19\xb9\x15\x5c\xf0\x5b\x91\x7f\x11\xf7\x92\x75\xda\x12\x12\x21\x13\x25\xb9\x82\x59\xf1\x01\x6a\x25\xf9\x4e\x28\xc8\xe5\x1b\x28\xd1\xe0\x46\xee\xd6\x25\x15\x97\x33\xe1\x86\xec\x10\xc5\xfa\x81\xbc\x92\x42\x3e\xc8\x52\xef\x77\x11\x95\xc8\x1e\x5f\x9f\xd9\xf1\x94\xe0\x79\x39\x85\x0e\x7d\xf1\x58\xfa\xb1\xd4\xdb\x6b\xcd\x11\xf1\x1d\x46\x0e\xf0\xb3\x70\xc1\xed\x74\x2d\xcf\x75\x7d\x5e\x4a\x63\x58\x60\x43\xd9\x08\xb3\x85\xe0\xd1\xbe\x6c\xbb\x3e\x64\x1a\x27\x4a\x69\x86\x46\x8c\x45\x45\x2d\x3f\x33\x36\xa0\xb7\x0d\x38\x30\xd0\x9b\x00\xce\x2a\xcb\x80\xba\x43\xfc\x43\x5c\xc8\x49\x6e\x57\x77\x61\x89\x36\xd4\x57\xfd\x1b\x1e\xb2\xd0\xc7\x0f\x74\x09\x42\x5f\xa2\x22\xbf\x36\xad\x28\x93\x21\x8f\x18\x1b\x2c\x1b\x51\x15\xd6\xdb\xfe\xd5\xf5\x7e\x0e\x83\xa5\x36\xee\x7e\xd1\xa0\x29\xb9\x75\xac\xf1\xc6\x92\x55\xd4\x68\x51\xd7\xcc\xd3\x22\x84\x8c\x18\xa0\x41\x75\x5d\xa4\xc5\xb8\x8f\x98\xc7\xf4\x50\xc5\x74\x9e\x23\xe0\xc0\x4d\x7f\x37\xb0\x42\xfb\xb8\xd5\x40\x08\xa6\xb0\x6c\xda\x11\x99\xc7\x25\xc9\x11\x56\x0b\x61\x04\x91\x80\x8c\x5c\xcf\x05\x05\xdd\x93\x5d\xc7\xf9\x1f\x21\xe3\xaa\x2a\x00\x09\x62\x85\x0a\x61\x0e\x53\xc0\x01\x88\x9e\x32\x6e\x35\xec\xd3\x16\x41\x12\xdc\x57\x36\x52\xd2\x58\x45\x03\x83\xb5\x06\x56\x2e\x2a\xfe\xb7\xd6\x34\x10\x7f\xc0\x31\xaf\x05\x15\xd1\x00\xd6\x98\xe5\xda\x34\x19\x2f\xda\x50\xaf\x83\x34\x0d\x26\xc3\x4c\x1e\x50\xa4\x68\x20\x72\xaf\x1e\x74\x09\xdd\x6b\x20\x41\xa5\x39\x54\xb7\x7f\xb6\xa6\x1e\x35\x98\xc3\xbe\x69\x44\x52\xd2\x68\xff\xe6\xd0\xf0\xfc\x48\xb2\xc0\x3c\x0b\xcc\xa4\x92\xca\x84\x9c\x11\x4c\x5d\x5a\x1b\x5e\x22\x75\x84\xb1\x87\xc7\xda\x63\x04\xc0\x23\x5b\x4d\x50\x35\x99\x94\xa3\x21\x63\x83\x77\x60\x01\xf3\xb1\xc3\x40\x07\x90\xaf\xb0\x56\x1b\xf0\x4f\x28\x43\x13\x2d\x7c\x31\x9a\x6a\xe4\x8e\xab\xc6\x48\x28\x84\xd9\x5a\xe1\x65\x50\x4c\xe3\x5a\xfb\x6d\x24\xf4\xa2\xc1\x65\xb0\x32\xb0\x15\x55\x51\x3a\xd5\x60\xbf\x3e\xe2\xd3\x06\xab\xef\xa3\x37\x06\xbe\x48\xa7\x38\xe0\x4d\xc8\x95\x99\xda\xee\x21\x56\x02\xb5\xf6\x91\x7e\x84\xc0\x5d\xd4\x76\x7b\x14\x28\x2a\x5d\x9b\x48\x20\x7c\x81\x38\xeb\xa3\x38\x20\x2d\x77\xa3\x76\x1d\xda\x4d\x93\x12\x3e\x62\x94\x05\x0f\x22\xfb\x35\x8e\xf9\x04\x81\xf3\xbe\x56\xe4\x38\x74\xf1\x2a\x56\xd8\x9c\x10\x01\x80\xc9\xf7\x2d\x71\x16\x70\x97\x21\xc0\x38\xc2\x1e\xc7\xcf\x53\xf8\x9c\x9b\x19\x05\x72\x4c\x71\x20\x96\x87\x75\x7b\xcf\x37\xea\xab\x15\xcc\xbd\xae\x1b\x57\xb7\x00\xbf\x0a\xbc\xb8\x1d\x4e\x77\x22\xfc\x67\x9e\x73\x92\xba\x16\x5f\x6b\x60\xc4\xd7\x75\x60\xa3\x3c\x52\x06\x7c\xec\x17\x20\x52\x2b\x8c\x54\x93\x5d\x62\x62\x00\x6b\x28\x40\x17\xf0\x2f\xc9\xb2\x3a\xfd\x36\x0a\x44\x9c\xe2\x10\x21\x76\x28\x3c\x08\x4c\x12\x01\xd7\x16\x2d\x3f\x05\x71\x1f\x81\xdd\xd9\x91\x20\xfa\x55\x57\x95\x91\x35\xb5\x5d\x4f\x08\x42\xed\xf7\x20\x0d\xeb\xf0\x69\x40\x56\xe0\x48\x43\xb7\xfa\xd1\x91\x1d\x56\xc0\x6d\x10\x50\x6c\xa2\x21\x7a\x49\x48\x84\x1f\x6f\xb3\xf6\x1c\x91\x7c\x3e\x9b\x1c\x71\x44\xfe\xcc\x98\x18\x22\x51\x24\x4e\xaa\xdb\x83\xb3\x7f\x23\xa2\x05\xa1\x4a\x86\x1d\xc7\x83\xcc\xfc\x41\xce\xa2\x06\x1c\x7c\xaf\x0d\xf2\xb6\x08\x55\x1c\xb7\x48\xbd\x33\xb2\x92\x0d\x95\xbc\x05\x98\x38\x73\x74\xb2\xba\xf6\x9d\x74\xa1\x9e\x25\x6d\x05\x00\x97\xb4\xf8\x1b\x80\x5f\x81\x9a\x82\x1b\xe5\xf2\xc7\xc2\xf0\x4d\xb3\x1f\xb5\xed\xa8\x92\x4d\xc6\x88\xa5\xdf\xc3\xe8\xfa\x0c\x13\xa0\x5f\xc0\x0a\x80\xd3\x2b\xd2\x7f\x0c\x65\xa4\xf6\x11\x19\xba\x1e\x7a\x32\x23\x2f\x97\x4e\x54\x40\x93\x12\xc1\x06\x09\x14\xf5\x3b\x3d\x2e\xfd\x1a\x31\x96\x0f\x79\x2d\x89\x08\xe4\x00\x80\x6a\xe3\x84\x16\xb3\x18\x58\xc8\x62\xb4\x47\x73\xfa\x3a\x9b\x5c\x57\x9b\x52\xe5\xc4\xaf\xe3\xbe\xc6\xa2\xaf\x65\x64\xcd\x81\x8e\x06\x9d\xb8\x0e\x70\xd3\x44\xb8\xb8\x08\x0c\x79\x3b\x51\x59\x63\x61\x6f\xad\x3f\xe4\x10\x41\xc4\x48\xdf\xc8\xc8\x06\xa1\x1e\xc9\xce\xca\x34\x20\xdb\xaa\x21\x0f\x16\xab\x9f\xd9\x89\x13\x89\x4b\x5a\x0c\x51\xe8\x50\x85\x24\x50\xbf\xa4\x6f\xb7\xb7\x23\x7a\x2c\x87\x97\xe1\x6c\x77\x4c\xbf\x7d\xad\xef\x6b\x11\xb5\x46\x8b\x0e\x36\x36\xb8\xc1\x36\x05\x90\x1c\x71\x73\x63\x7d\xc4\xc5\xdf\x7f\xfc\xa2\x21\x88\xa3\x79\xbb\xef\xc4\x7b\x8c\x50\xe8\x75\x0d\x76\x28\xb6\x11\x72\x15\x7d\x48\x8e\xa3\x80\xae\x93\x30\x6e\x67\x24\xb3\xd1\x6e\xc1\xf0\xfd\x39\x1b\x62\xfd\x8a\xbd\x3c\xa1\x26\xb7\xe9\x15\xf1\x11\x63\xeb\x21\x18\x6a\xbb\xbd\x95\x40\x2c\xb7\x8b\x56\xdf\x2f\x38\xd5\x47\x9c\x7b\xf6\x5c\xba\xc7\xd2\x33\xc2\x02\x27\x4f\xd7\x40\xce\xe3\xf7\x3c\x29\xed\xee\x9d\xaa\xc6\xda\x34\xb3\xd7\x58\x78\x77\x74\x40\x13\x61\x8f\x9c\x84\x93\x8f\x4e\xfe\x40\x7c\x8b\x80\xc5\xea\x88\xb0\x7b\x90\x8b\xc1\xe4\xd8\x03\x2f\x5a\x6d\x03\xfd\x6c\xa2\xf5\x7e\x72\xbb\x9e\xda\x8b\xdf\xe5\x30\xbc\x1a\x45\x54\x60\xc4\xfa\x55\xf7\xda\xac\x21\xe6\x7a\x04\xb0\x8d\x4d\xde\xee\xd3\xaa\x03\x7c\xf9\x10\x12\x95\x1b\x28\x15\x02\x06\xb1\xa3\xaf\xfb\xc1\x58\x23\xb5\x4b\x43\xd6\x39\x93\x60\xff\x45\x68\xb1\x43\xdf\xa1\x0e\x5f\x60\xf6\x76\xbe\xbf\xaf\xe5\xbd\x6f\x84\x83\x0b\x77\x86\x9c\x6c\xd0\x38\xc7\x45\x73\x87\x41\x17\x44\x04\xd3\x02\xad\xdb\x9a\xf5\x7f\xc5\xc7\x46\x93\x15\xea\x55\x0c\xd0\xe4\x99\x3a\x0a\x4b\x96\xcc\x0b\x4c\x67\x17\x36\x75\x34\x5e\xfa\xb1\x22\xfe\x50\x6b\x19\x02\x0b\x54\x8f\x26\x40\x46\x04\x85\xb1\x4d\x55\xed\x5b\xd7\x03\x88\x78\xde\xe1\xf7\x58\x30\x17\x0c\xad\x93\x4a\xcf\x0d\xb3\xb5\x4e\x6f\x43\xbd\x85\x36\xd6\x90\x0a\xc6\xaf\xb7\x15\x59\xe7\xdb\xe8\x2f\xac\x25\x30\x40\x43\xad\xba\xde\x81\xb3\x13\xa0\xa8\xd6\x70\x08\x7d\xcc\xd7\x40\x39\x59\x44\x0b\x5a\x1e\xf0\xcc\xd1\x5f\xfd\xde\x15\x11\x53\x5c\xb8\x72\xdf\x8c\xf8\x15\xc7\x1e\x9d\x25\x37\xed\xba\xd6\xd6\x39\x89\xd7\x64\x0d\xa6\x1b\xad\x5a\xf5\x05\x8c\x44\xf0\x65\xa2\x39\x23\x2f\xc6\x11\x4c\x3a\x22\xe3\x4e\x5e\xfa\x27\xdc\x90\x50\x3d\xd1\x1b\xeb\x48\x7b\x49\x37\xda\x35\x46\xa5\x9d\xd9\xe9\x46\x32\xda\x70\x93\x74\xbe\xea\x84\xdc\xbb\xed\xa3\x9f\xea\x1e\xfd\xd3\x08\xf1\x6b\xb7\xe3\xab\xbf\x8c\xdf\x4f\x12\x64\x9a\xc3\xa4\x8d\x67\xd7\x1e\x3d\x36\x9e\x7d\xee\xc3\x99\x45\x0d\xa4\xd9\x37\x30\x67\xab\x0f\x93\x6f\x34\x84\x76\xd0\xa2\xf1\xec\x9a\x7d\xab\x21\x34\x2e\xec\xa4\x2a\xfe\x08\x51\xff\xbd\x3f\xa3\x67\x6f\x97\xd7\xe7\x2f\xce\xaf\x20\xd9\x70\x3e\xdf\xcb\xea\xfc\xe3\xed\xf4\x1f\x1a\x08\xfe\x46\xfe\xf7\xc5\xcb\xcb\x6e\xfc\xf7\xd5\xe5\x8b\xd7\x7f\xc4\x7f\xff\x19\x3f\x69\xdb\x0f\xa4\xbd\x45\x16\x67\x32\xc9\xec\x6f\xd6\xaa\x82\xeb\x43\xd7\x3b\xf3\x74\xeb\x8e\x8c\x59\x1d\x14\xf0\x5e\xe9\xbd\xd6\x9c\x68\xd0\x81\x1d\xba\x64\xf3\x33\x63\xe7\x9d\x46\x24\x70\xe3\xc4\xdd\xbf\xa2\xb6\x17\xc4\x78\xa0\x1f\x8e\x09\x0b\x33\x2c\x3c\x28\x95\x69\x90\x4c\xa7\x8a\x18\x3a\x3a\xe3\x08\x91\x8a\x51\xdf\xfb\x55\x15\xcf\xdf\xbd\xdf\x35\x45\x79\x62\x08\x8c\x98\x2c\x7f\xd3\x10\xe0\xf3\x11\xa1\x3b\x65\xeb\x18\xcd\x36\xcd\x90\x52\xe5\x1d\x85\x4a\x1c\xdd\x5f\x58\x74\x6f\xd3\x75\x92\x8c\xe7\x7c\x46\xd5\x35\x4d\xe7\x62\x0a\x93\xd8\xc2\xc5\x04\xcd\x11\x22\x77\x91\x8a\x7c\xa2\xa6\x36\xc6\x45\xf5\x4f\xdf\x5b\xfc\x37\xdc\x5b\xec\x7b\xee\xad\x55\xef\x48\x9d\xfb\x09\x20\x35\x28\x81\x11\x95\x2f\xef\x8b\x82\x65\x20\x46\x3e\xf2\xe2\xeb\x4d\x5c\x53\x9e\xa8\x15\x4f\x16\x57\xec\x92\x61\x7b\x5c\x41\xca\x5d\x05\x29\x0b\xc8\x37\xa0\xc3\xc4\x2e\xd9\xd2\xb8\x86\x12\xdd\x01\xbb\x5d\xef\x30\xbb\x22\xd0\x80\xf9\x38\x23\x58\xb5\x48\xef\xca\xd7\x10\x84\x6f\x7c\x99\x40\xf8\xd0\x1a\xfd\xa0\xf0\xe2\x83\x6b\x51\xe1\x5b\x0d\xf9\x6a\x33\x1a\x57\xff\x2c\x08\xbf\x67\x97\xd9\xda\x06\xcb\xf9\xbb\x15\xb4\x85\x8f\x8d\x83\xb7\x00\x7a\xe6\x57\xf3\xdb\xcf\x80\x1f\xe6\x1f\xa0\x8d\xbc\xe7\x81\x45\x04\xf2\x7c\xb1\x74\x66\x04\xb3\x7f\xf8\xb6\xf9\x10\x43\xd6\xdf\xde\xad\xf8\x6c\x4e\xe6\xc3\xe4\x9a\xaf\xe6\x60\x3e\xb0\xa7\xcd\x87\x71\x30\x1f\xf8\xb7\xcc\x07\x66\xa7\x75\x3d\x5d\x5e\xdd\x8c\xa7\x1f\x27\xd7\x23\x3e\x9d\xf1\xd9\x1c\x70\xcf\x2b\xc2\xa1\xa7\xb3\x9c\x7f\x9a\x4d\x16\x04\x27\x0f\x53\x7c\x3b\x01\x40\xf7\xcd\x84\x75\x20\xea\xfc\xef\x87\xa8\xb3\x63\x88\x7a\xff\x8a\xdc\x2e\xe6\x57\x77\x0b\x00\xe6\x23\x1a\xfb\xed\x72\x35\x5d\xdd\xad\x26\xfc\xfd\x7c\x7e\x6d\xd7\x99\x2d\x27\x8b\x5f\xa7\x57\x93\xe5\x2f\xfc\x66\xbe\x84\xc5\x82\x7e\xea\xd7\xe3\xd5\x18\x5e\x4c\x10\xf7\x5f\xec\x7f\xbf\xbd\x5b\x4e\x61\xcd\xa6\xb3\xd5\x64\xb1\xb8\xbb\xb5\x66\xdb\xd0\x61\xdf\xd9\xf7\x61\xdf\xf9\xf7\x61\xdf\xd9\x6f\xc0\xbe\xf3\x27\xb1\xef\x0c\xb0\xef\xef\x78\x22\xb0\xbf\x05\xc0\x4e\x15\x01\xff\x0b\xa1\x0e\xa3\x67\x57\x57\xe7\x6f\x3f\x9f\xcf\xae\xce\x97\xe3\xf3\xe7\xbf\x0b\x04\xe0\x69\xfb\xef\xc5\xab\x17\x2f\x2e\xbb\xf9\xff\x57\xcf\xff\xc0\xff\xfd\x53\x7e\xae\x6a\x89\xd4\xef\x57\xc0\xd0\x65\xf8\x38\x94\x98\x9f\xcf\x74\x75\xe5\x3d\xed\xf3\xe5\x56\xd4\x72\x5c\xaa\x2f\x92\x3f\x1f\x5d\xf0\xab\xc5\x64\xbc\x9a\xfe\x6a\xf5\xe3\xc7\x8f\xf3\xd9\x92\x5d\xcd\x17\xb7\xf3\x05\xd6\xce\x4c\x97\xa0\xa9\xc6\xfc\x66\xfc\x89\xbf\x9b\x2e\x3e\x82\xce\xb8\x9e\x4f\xf0\xf7\x74\x91\xf0\x9b\xc9\xfb\xf1\x0d\x77\x0a\x6a\x94\x14\xaf\x30\x77\xa0\x6f\xa6\x57\x93\xd9\x72\x12\xbe\x0d\x6f\x9e\xf0\xf1\x8c\x8f\x57\xab\xf9\x62\x36\xf9\x7c\x7e\x75\x33\xb5\x1a\x70\x31\xb9\x81\xf7\x2f\x3f\x4c\x6f\x47\x7e\x84\x8c\x46\xe8\x5e\xbb\xc4\xe7\x4e\x67\xef\xe6\x8b\x8f\x38\x5e\x5f\x87\x75\xee\xeb\xb0\x46\x47\x33\xe4\x1f\xc7\x7f\x99\x2c\xd9\x6c\x1e\xdf\x3d\x8b\xc9\xfb\xf1\x02\x74\x17\xf8\xb6\xd1\x33\xdd\x6d\x99\xe1\xdc\xe9\x9e\x59\x06\x0d\x08\xf7\x85\x53\xf4\x8b\xc9\xf2\xee\x66\x65\x9f\xf3\x6e\x31\xff\xc8\xa7\xab\xa5\x55\xd3\x23\xc6\x3c\x28\xc3\x3e\xff\xd3\x7c\xf1\x17\x7e\x36\x5e\xf2\xeb\xc9\xbb\xe9\xcc\xde\xc4\x93\x9b\xf9\xa7\xb4\xa6\x0c\xca\x77\x60\x34\xc8\xcd\xee\xd6\xf1\x68\xc3\x6e\xef\xde\xde\x4c\xaf\xfc\xfa\x9e\x0d\xae\xae\x6e\x6f\x06\x56\xf1\x0e\xe8\x77\x83\xe1\x88\xfb\xd7\xe2\x3b\x56\x93\xab\x15\x5a\x00\xe1\x5e\x1c\xcf\xae\x9f\xcd\x17\x0c\xd4\x35\x1f\xdf\xde\xde\x4c\xaf\xec\x7d\x68\x37\x7f\x04\xea\xda\xeb\x67\x7a\x14\x7e\x72\xf5\xc1\x6e\xe1\x92\x8f\xef\x56\x1f\xe6\x8b\xe9\xff\x13\x8d\x7d\xba\x64\x6e\x58\x70\x35\xba\x37\x59\x71\xc2\x71\x7c\x98\xbe\xb5\x97\xe0\x88\xb1\xb7\x9f\x5d\x51\x93\x5d\xbd\xa8\xa6\x69\x35\x0f\x6f\xf4\xab\xf3\x61\x62\xaf\x86\xcf\xf3\x3b\x3e\xbe\xc2\xda\x3e\x6b\x99\xbc\x5f\x4c\x26\x7c\x35\x67\x6f\x27\xfc\xed\xfc\x6e\xe6\x2d\x9c\x74\x05\x69\x48\xb8\x26\xf8\x8f\xf9\x02\x4b\xa7\x96\xf0\x48\xfb\x7b\x7c\x39\xb3\x17\xdf\x18\xb6\xc8\xbe\x91\xae\xc2\xe5\xf4\x7a\x42\x27\x64\xfe\xce\x7e\x63\x41\xa3\x18\xc3\x8d\x47\x97\x51\x1f\xa5\x3e\xc6\x73\xbb\x7c\xa7\x62\xc4\x07\x57\xbe\x56\x87\x63\xb3\x79\x22\x0e\x22\xce\x7c\x97\xe4\x12\x54\xd4\x0b\x64\x0b\xd0\x2d\x39\xe3\xa2\x6a\xb6\xba\xd4\xf7\x50\x58\x2d\xab\xfc\x90\x97\x7a\x2f\x0b\x05\x35\x52\x11\x5f\x15\x75\xd8\x03\xd3\x5f\x56\x8d\xaa\x25\x16\xa3\xb4\x55\x68\x6f\x08\xf9\x0d\xe8\x3f\x86\x11\x6b\x41\x25\x0c\xd6\x1a\x76\x5d\x32\xa2\x7e\x39\x59\x60\xd6\x85\xac\x9f\x4b\x18\x51\xb1\x91\xdc\xcb\xaa\xb0\x26\xeb\xa3\xeb\x5a\xdb\x6c\xe5\xce\xc8\x12\xba\x4a\x03\xc3\xb9\x01\x40\x90\x0b\xd0\x89\xa8\x66\x09\x39\x18\x46\x7c\x8c\xb4\x05\x8e\xa9\xd0\xf3\xf8\x0a\xde\x59\x33\x0f\x79\xe8\x04\xf4\x44\xb7\x37\x06\x3f\x13\xc4\x48\xe8\x08\x82\x87\xdd\x7e\xd1\x47\x0d\xab\x46\x8c\xad\x47\xbc\xdb\x0a\x3f\xdd\x26\x2a\xc9\x85\xc2\xa5\x26\xea\x40\x99\xfe\x42\x54\x05\x55\x30\xed\x6b\x79\x0e\x74\x1e\x76\xed\x1e\xb1\xdd\x5d\xd8\x68\x68\x24\x5b\x12\xeb\xce\xae\x45\x2e\xba\x28\xd8\x9f\xf1\xa2\x16\x3b\xd1\x50\xe6\x30\x63\x1b\x44\x01\x88\xd2\xfd\x86\xef\x34\x86\xa5\x55\xde\xb4\xb5\x87\x99\x42\x1f\x6e\xc0\x28\x13\x95\xaf\xdd\x8a\x26\x65\xd7\x60\x62\x5d\x2b\x84\xf7\xc2\x1e\x17\xb2\x32\xe2\xff\x65\xef\x5d\x96\xdb\x48\xd2\x74\xc1\xbd\x3f\x85\x0f\x36\x22\xcd\x82\x48\x51\x79\xab\x94\xda\xda\x1a\x22\x41\x09\x75\x28\x82\x0d\x90\xa9\xd2\x1c\x3b\x66\xed\x40\x38\x80\x48\x05\xc2\x91\x71\x21\x12\xf9\x04\x53\xdb\x99\x17\xa8\xdd\xb4\x7a\xcc\xce\x6a\x36\x63\xb3\x2b\xda\x79\xaf\x31\xff\x2f\x7e\x89\x08\x52\x54\x56\x57\xf5\xb1\x9e\xca\x45\x15\x45\x02\x11\x7e\xf9\xfd\xf7\xff\xfa\x7d\x75\xc8\x9d\x82\x53\x00\x67\xba\x2b\x65\xe4\x4c\x96\x7a\xa9\xaa\x1a\xe8\xab\x8a\xca\x7e\x14\x4b\x83\x24\xe0\x74\xd9\x9f\x09\x12\x0a\xa9\x6c\xfb\xf7\x59\x86\xfb\x2c\xbe\x6c\x9f\x7b\x48\xc0\xe3\x3d\x65\xbc\x4a\x75\x67\xb2\x94\x29\x4f\x52\xd3\x2c\x6a\x66\xed\xf5\x07\x07\xca\x5c\x68\x1b\x10\x3f\x34\xe3\x0c\x2e\xac\xa7\x08\xd6\x13\xfc\xd4\x43\xb1\xdc\x94\xc6\x81\x7a\x9a\x88\xe7\x12\x0a\x79\xd2\x13\x47\xce\x4c\xa7\x6d\x0b\x8c\xe4\x02\x20\x67\xe5\xd1\x00\x9e\x91\x15\xeb\xc1\xb1\x83\x1a\xf8\xc2\x09\x8b\x96\x10\x2f\x87\x4c\xa0\x60\xca\x18\x1e\x37\x64\x0f\xd7\x01\x56\x99\xc1\x84\xad\x1b\xbb\x07\x24\x0d\x7a\x93\xa2\x77\x50\xca\x6a\x28\x07\x53\x2e\x34\x19\x41\x6d\xff\x67\x5f\xb8\xdf\x98\xa0\x54\xcd\x11\x8a\xeb\xa1\x1c\x84\xc7\x2d\x8a\x71\x40\xf2\x8a\x91\x4d\x02\x4c\x13\x18\x77\xc4\x33\x01\xe3\x6d\xf3\xbe\x0e\x85\x58\x0d\x09\xb6\x8d\xc1\xda\xfa\x07\x47\x68\x1d\x50\xad\xdf\x81\x45\xe0\xfb\xdd\xce\x80\x6b\xe2\x7c\x1f\x3d\xc3\x60\xa4\xed\x9e\xae\x80\xbf\x81\x5a\x41\xa1\x73\x51\xd6\x46\xd4\x8e\x7a\xd5\x94\x92\x1f\xeb\x8a\x8d\xb8\xbd\x22\x20\x8f\x73\x69\x1e\x47\x88\x56\x1b\x07\x31\x22\x1e\x1c\xb2\x4c\x75\xb5\xcb\x20\x27\xcd\x03\xa6\xe1\x62\x98\x66\xed\x24\x46\xcb\x31\x62\x70\x47\x08\x8d\x3e\xfe\xb5\xc9\xd6\x9b\x93\x5c\xdf\xe9\xdc\x73\xea\x39\x5c\x66\xa9\x2a\x81\x08\x66\x3d\xec\xf2\x76\xbd\x97\x1e\x06\x47\xcb\x3a\xab\xf3\xce\x79\x7d\x19\x9a\xb5\x89\xb8\x02\xc8\x0a\xb2\x6b\x13\xe9\x0d\x5b\xac\x54\xba\x50\x19\x36\x10\x23\x96\x17\xb0\x08\x32\x27\x7a\xc4\x4e\x93\x61\x08\xa5\x20\x90\xfa\x52\x03\xc5\x3b\x62\x6b\x27\x22\x40\x92\x89\xf0\x28\xc2\x2e\x94\x95\x7d\x15\x40\x14\xad\xb2\xb2\xaa\x65\xa5\x90\xd4\x85\xb9\x91\x1c\xcf\x85\xa0\x8b\xc0\x41\xe4\xc9\x30\xd8\xa4\xdb\x74\x2a\x6d\xc0\x39\x26\x10\x41\x10\xdf\x56\x2f\x31\x96\x32\xf1\x4e\x01\x72\xd9\x6f\xa3\x6a\x77\x5b\x23\x62\x8a\xf6\x0e\xd8\x5f\x4c\xbd\xde\x82\xfe\x73\x3c\xee\xf2\x88\x2b\x2f\xd3\xa6\x8c\x54\x61\x30\x01\x37\xc5\xe3\x90\x34\xc8\x41\xfe\xd7\x1e\xe8\x9f\x08\x78\x98\xc5\x9e\xd0\x93\xe0\x16\x7f\x09\xa6\x54\x48\xd4\x2f\xfd\x21\xc2\x72\x1f\xe6\xfd\x0e\x55\x71\x4d\x9d\xa3\x25\x22\x81\xb6\x6e\x1b\xdf\xe0\xd3\x7d\x2a\xe6\x5e\x03\x32\x71\x92\xde\x96\x61\x52\xbd\x72\x65\x42\x30\x3c\xd4\x70\xd4\x27\xc4\xcf\xec\x30\xe6\x82\xae\xae\x4d\x1f\x59\x77\x29\x77\x1b\x53\x18\xbc\x70\xec\x06\x26\x8e\x51\x17\xda\x35\x97\xf9\x21\x71\x38\xb0\xee\x37\x82\x30\x54\xa2\xdf\xda\xa3\x88\x67\x19\x92\xde\x0c\xdc\xae\x9a\x34\x33\x68\x82\x38\x6e\xca\x98\xa4\x19\xc0\x72\xbb\xd3\xef\x99\x7a\xfa\x3f\xd5\x34\x7a\xd6\xf9\xc6\x45\xff\x49\xc6\xc8\x7c\xf1\xf0\x4c\x59\x01\x90\x05\x88\x04\x6c\xdf\x8f\x30\xf1\x95\x43\x65\x2e\xcc\x5e\x7e\x2c\xcc\xbe\xb0\xfa\xc2\x1e\x1b\x04\xdb\x49\x35\x30\xc2\x61\xe8\x38\x7a\x45\x48\x3d\x15\x17\x94\x83\x05\x18\x55\xca\xd8\x75\xb6\xc6\x32\x82\xf2\x63\x72\x9e\x49\xff\x0f\x0f\x9f\x13\x07\xde\xd7\x1a\xf4\x50\x8c\x72\xd7\xb1\x0f\x80\xc3\x6d\x90\xc5\x58\x3f\x97\x9a\xe1\x25\xa9\x11\x3e\x24\xb2\x14\x3d\x5c\x7d\xc1\x28\xfa\x30\x21\x2b\xf9\xcd\x91\x46\xae\x88\x6f\x8e\x56\xc7\x4c\x5c\xef\xfb\xdf\x70\xb9\x58\x0f\xf0\x98\x22\x50\x49\x5c\xcb\x2c\x04\x88\xdc\xaa\x54\x8b\xca\xeb\x3b\x47\x31\xe4\x6b\xe8\x1f\x6c\xb7\x53\x7d\x75\x62\x89\x97\x2e\x12\xcb\xe0\x37\x24\x80\x89\xeb\x20\xc7\x8f\x81\xd8\xe5\x00\x18\x8e\xdc\x07\xce\x0d\x28\xf2\x43\x7f\x5b\x77\xa8\x79\x19\xe2\x29\xa4\x27\xf7\xc8\x8a\x09\xc3\xa4\xdd\x16\x19\x3c\x7d\xa6\x29\x19\x32\x21\x48\x3f\xb4\xc8\x93\x1e\xc3\x42\xdf\xe9\xf2\x20\xf0\x41\xd1\xb9\x8b\xec\xd2\x36\x13\xf5\xc3\x0b\x20\x1e\x5f\x00\x5e\x9f\xa8\xca\x07\x4d\x32\xea\x08\x35\x84\xfa\x48\x46\x59\xa0\x5f\xd0\x1b\x80\x6e\xca\xf0\xf2\x7d\xd8\x72\xa2\x55\xf1\x25\xdd\xcf\x22\x36\xd1\x40\x1c\x59\x96\x3c\x86\x46\x34\xbe\x0a\xe6\x81\xb7\x8f\xb3\x3e\xdd\x7e\x7c\xd4\x7a\x67\xaf\x0b\x65\x2d\x81\x3c\x8f\x19\xf0\xa1\x4d\x42\x72\x8d\x89\x63\x0e\x2b\xdc\x81\xf0\xc9\x41\x6b\x81\x7a\x96\xd7\x78\x04\x5f\x28\x7d\xe2\xd1\xc5\xf7\x4b\x8a\xde\x05\xac\xf6\x72\x53\x98\xdc\xac\x09\xd9\x5c\x55\x4d\x49\x53\x10\xdc\x84\x43\x88\xdd\x48\xb1\xdd\x76\x5b\x14\xc3\xaa\x5b\xc5\xdf\xe6\x73\x7c\xc0\xc4\x0e\x51\x14\xbc\x22\x84\xdb\x5f\xbb\x36\x98\x07\xee\xd3\xae\x9b\x8f\xe5\x46\xd4\xc3\x44\x59\x3f\x46\x1b\xec\xb9\x7c\xa5\x82\x82\x1e\x57\x6f\x8a\x13\x81\x82\x32\x22\xfb\xb1\x8a\x43\x56\x7d\x86\x52\xdb\x55\x60\xcc\x2f\xbc\xc0\xfb\x86\x06\xae\x3e\xb3\xed\x71\x8f\xa8\x53\xa5\x2c\x4a\x1d\x64\x15\xc2\xcf\x5c\xe4\x3a\x11\xd8\x6d\x1a\xd6\xc0\xb7\xe6\x63\x8d\x50\x4d\x25\x88\xae\x2f\xc7\xbd\x83\x0e\x03\x7b\x5e\x02\x3d\xaf\x84\xe9\x9f\x75\x55\xdb\xfb\x28\x9a\x48\xd7\x91\xec\x9f\x88\xf8\xa2\x89\xc8\xf6\x44\x5a\xef\x10\x5f\x36\x11\xd9\x3b\x11\x88\xca\xfc\x75\x54\x77\xd7\xbb\x7e\xa2\x0e\x97\xd6\xd3\x2b\x1d\x80\x46\xaf\x9f\xe7\xba\x49\xda\x9e\x15\x72\x37\x86\xcf\x03\x50\x5e\x0e\xf0\x0b\x0e\xf0\x67\xfc\x83\x57\x58\xc4\xe4\x01\xbd\x76\x4f\x7e\xbe\x38\xd2\xc3\xf5\xf0\xe9\xf9\x82\xdf\xab\x9d\x2a\x8e\x87\x9d\x5b\x4a\x2a\xf1\x97\xdd\x52\x81\xbb\x84\x03\xa3\x12\x02\x6f\x55\x3b\xef\x14\x9a\xba\x5d\x0b\x19\xdc\x6c\xf2\x81\x9b\x4d\xab\x2e\xbf\xff\x17\xdc\x72\xbd\xb2\x22\x7e\xeb\x2d\xe7\xc0\xfa\xdc\x78\x04\x53\xf5\xfe\xed\x6e\xbc\x96\x91\xf1\xc0\xa5\x26\xbe\xf4\x52\x93\x0f\x5f\x6a\xe2\xdf\xe5\x5c\xf2\x9f\x45\x8f\x2a\x79\xd2\xfd\x26\x3b\xf7\x9b\xf8\x8d\xf7\x5b\x67\x3b\x02\xa0\xa6\x07\xef\xb7\xf6\x90\x7b\x7c\xa7\xee\x7d\x22\x7e\xeb\x55\xd7\xab\x70\x7f\xe3\xad\x07\x8e\x68\x28\xe0\x4e\xd4\xba\x34\x7c\x2d\xbc\xc8\xae\xcd\x2e\x62\x72\x16\xe2\x4a\x91\xbb\x32\xdb\xaa\x32\xcb\x0f\x3e\x14\xb3\xc2\x3b\x00\x89\x6c\xe0\x91\x00\x03\x15\xb0\x74\xab\xf4\x4e\x15\x35\xb5\x39\x00\x4a\x55\xad\xe5\xd6\x14\xba\x56\x25\x72\x9b\x71\xd4\x1a\xed\x0e\xfd\x0b\xf6\x53\x45\x7b\xbe\x72\xf1\x14\x17\x83\xd0\x29\x46\xe3\x23\xa7\xd2\x51\x9a\x65\xb9\x3e\xa9\x36\xaa\xa4\x96\x50\xdf\x22\xe5\xc0\x8f\x45\xab\xef\xcc\x20\x6f\xef\x53\xe7\x25\xc3\x79\x89\x47\xe7\x15\xf5\xa2\x68\x84\x65\x29\x8c\xdc\xa9\xc3\x36\x80\x51\xe6\xaf\x8a\xf0\xab\x48\x8d\x5b\x14\xb4\x3d\x4e\xc2\xc3\x45\xea\xac\xc8\x10\xbc\x79\x02\x0a\xf9\x6b\x79\x4a\x98\x5f\xe8\xf0\x99\x9b\xb2\x13\x5c\x48\x62\x3d\x26\x02\x3d\xd6\xed\x6c\xe4\xd8\x38\x27\x61\xb0\x2d\xb3\xc7\xc4\x20\xa4\x76\x11\xf4\x46\xd0\xf9\xc0\x3e\x35\x44\x53\x27\xfe\x3f\x64\xc7\xaa\xb3\x3c\xfb\x95\xb8\x84\x96\xa6\xb8\xd3\x07\xd7\x76\xa2\xb6\x5a\x1c\xd9\xa9\x57\xba\x49\x4d\x71\xd8\xca\x6c\x15\x44\xbe\x1c\x9b\x54\x7b\x10\xd9\xca\x95\xb3\xbf\xf2\x21\x51\x11\xa9\xab\xe8\x23\x91\x21\x16\x40\xf5\x47\x36\x59\x70\x2f\x8b\x9e\x7b\x19\xba\xa0\x55\xc1\x24\x46\xce\x16\xe3\xbb\xb8\x22\x61\x0e\x3a\x44\x89\x04\xcc\xd9\x8d\x48\x80\x0c\xa6\xdc\xed\x6c\x12\xea\x2d\x77\x97\xf4\x30\x53\x1b\xbe\xf7\x5b\x54\xdd\xd1\xae\xbd\xa2\x58\x31\x3e\x42\x11\x15\x68\xd7\x76\x55\x8c\xb5\x1f\xf2\x7f\xd7\x9e\x94\x31\x4a\xc3\xf4\xa8\x66\x30\x89\x12\x39\xb8\xb0\x96\xe9\x26\x4c\xc4\x31\x19\x10\x7c\x6c\x71\xe8\x18\xa7\xc8\xfc\x32\x5f\x96\x5a\x17\x10\xc7\x72\x20\xbd\xae\xe5\xb6\xfd\x55\x32\xd0\x07\xcc\x17\x40\x43\xa7\x10\x54\xb6\x25\xda\x4b\xba\x21\x8a\x43\x04\x38\x00\x4a\xf4\x95\x6f\xe0\x13\x1b\xee\x90\x41\xc5\xfa\x99\xa5\xea\x39\x53\x89\x84\x54\x1c\x90\x20\x35\x5b\x6c\xac\xa5\x21\x41\x06\x4a\xed\x76\x5a\x95\x94\x1c\xf3\x79\x40\x68\xe2\x2a\x91\xbc\xd4\xa7\x60\xe8\x8b\xf8\x1d\x84\x74\x0e\xaf\x58\xd7\x32\x87\x94\x30\xd4\x28\x4b\x98\x3e\x8f\x3d\x58\xe0\x83\x5d\xaa\x49\x7b\xe6\xb9\xbf\x20\x93\xf7\x52\x88\x6c\x28\xaf\x51\x1f\xc1\x23\x66\x10\xe0\xb6\x62\x7f\x0b\x56\xff\xeb\x5c\x15\x1f\x35\x9f\x0b\x6b\xe6\xb8\x13\x42\xa1\xb1\x2a\x0e\xef\x0b\x17\xda\xa3\xbc\xb6\xe7\x71\x0b\xb1\x38\xed\x3e\xdc\x65\x0a\xb3\xfb\xee\xed\x1c\x42\x33\xcb\x4c\xd7\x07\x36\xd4\xe7\x67\xa3\xeb\x44\xbe\x7e\x37\x49\xe4\x7c\x3c\x1f\x9d\x1d\x73\x1c\x3e\x0b\x74\x1c\xea\xd9\xe8\x69\x4e\xfb\xb2\xee\x15\xe1\x5f\xf1\xe1\x7b\xbd\x58\xaa\xaa\x3e\x96\x2d\x2d\x83\xe5\xa6\xc1\xc7\x7b\x6f\x6c\xf1\x65\x37\xdb\x67\x6e\x6c\x21\xb2\x6c\x28\xdf\x69\x7b\x1b\xc1\x4e\xcd\x3c\x10\xf8\xbc\x56\x75\x53\x9b\xf2\xe0\x77\xe8\xdf\x7f\x2b\x40\x42\x5c\xba\x67\xad\x0b\x84\xc0\x4c\x75\x95\xad\x0b\xab\xfa\x04\x52\xae\xe1\xd2\xbd\x05\x56\x92\x0b\xf3\x8b\x1c\xc1\x47\x3b\xdb\x02\xf5\xc8\x81\x73\x12\xb8\xdf\x71\x6c\xe2\x68\xb0\x04\x18\x14\xf2\x1f\x07\xc7\x2d\xe4\x92\xa4\x6d\xb5\x01\x3a\x43\x5e\xd9\xe5\x60\xdf\x89\x73\xa8\x8b\x83\x3c\xfd\x5e\xde\xce\xcf\x3c\xd7\xee\xe9\xb7\xbc\xbb\xb7\xf3\xa0\x83\x69\xb4\xac\xa1\x7b\x11\xd6\xcc\x13\x78\x65\x05\xd5\x2a\x84\x84\x93\xd5\x71\x42\xe8\xf6\x5d\x0a\x0e\x54\x18\xe1\x04\x22\x61\x11\xbf\xd1\x0c\xfa\xac\xb0\xac\x86\xf2\x3d\x4a\xaf\xbd\x79\x3f\x27\x2b\x8f\x68\x0b\xd1\xa7\x2d\x3a\x05\x13\x9f\x11\x36\x4f\x21\xf0\xe5\xe7\xfe\x24\x3e\xf7\x28\x5f\x62\x6e\x47\x30\x26\xdb\xec\xb1\x33\xcf\x76\xea\xc3\xa7\x3b\xb4\x21\x9e\x20\x4c\xf2\x31\x61\xfa\x46\x7c\x91\x30\xc9\x47\x85\x49\x3c\x32\x85\xbf\x81\x8f\x00\xb7\xc9\xb7\xc3\x36\xc7\x47\xd2\x86\x9a\xf7\x38\xf4\x42\xdc\x5e\x5d\x42\x1d\x3c\x97\x38\xcb\x77\xb7\x37\xb7\xa3\xcb\xcb\x0f\x58\x8c\x76\x2e\x6f\xa6\x5c\x84\x06\x95\xeb\xe3\xb9\x9c\x5c\xc9\xf7\xb3\xc9\x0d\xd4\x82\xbb\xea\xb3\xe9\xc5\xc5\x78\x36\xf7\xc5\x81\x50\xc2\x08\xc5\x63\x50\xad\x28\xaf\xa6\x72\x36\xbe\x9e\x8d\xe7\xe3\x2b\x6c\xc2\x83\xda\xfb\xb8\x78\x9e\xc1\xe4\xe5\xd9\xf4\xea\x6c\x3c\xbb\x9a\x5c\xbd\x71\x0f\x4c\xb8\x64\x3f\xe1\x82\xfd\x44\xce\x6f\x46\x37\xb7\x37\x50\xf7\x1d\x14\x69\x27\x9f\x01\x9c\x17\xf1\x4b\x09\x5e\xbe\xd5\xf7\x97\x7c\xb6\x6a\x1f\x10\xe9\x23\x40\x7a\x41\xd0\xe6\xa3\xd7\xf3\x31\xd5\xd1\x5d\x8e\x6e\xa0\x22\x9e\x86\x27\xcf\xc7\x17\xe3\xb3\x9b\x79\x22\x47\x67\x67\xb7\xb3\xd1\x19\x21\xaf\xdb\xc5\x85\xa5\xc1\x6f\xd1\x03\xc4\xf4\x42\x8e\x67\xb3\xe9\x6c\xee\x4b\xd9\xa7\x33\x28\x3d\x3d\x9f\xcc\xcf\xa6\x3f\x8e\x67\xa3\xd7\x97\xe3\xa1\x9c\x4f\xdf\x8d\xe5\xef\x6f\x67\x93\xf9\xf9\xe4\x0c\xd7\xf6\x7c\x8a\x85\xaf\x97\x97\xd3\xf7\x50\x9a\x3e\xfe\xc3\xd9\xe5\xed\x9c\x2a\xfe\xfa\x5a\x1e\xe6\x53\xac\xfa\xf3\x1f\x7c\x37\xfa\x80\x0f\xb9\xbe\xbe\xfc\x60\xe5\xe0\xc3\xf4\x16\x1b\x7b\x43\xae\x82\xc2\x73\x15\x0c\x99\xa7\x80\x2a\x1e\xc7\x7f\xb8\xc1\x6a\xd8\x7f\xbe\x9d\xcc\xb0\x58\x33\xae\xca\x4c\x44\xd8\xea\xf0\x7e\x72\x79\xe9\x05\xca\xb5\x33\xd0\x9b\xb9\xd2\x1f\x6b\x75\xa9\xde\x9f\x3b\x1d\xb8\x97\x41\x84\x0d\x0e\x51\x27\x43\x22\xaf\x6f\xaf\x26\x50\x77\x3a\x9d\xf9\x96\x07\x57\xf7\xca\x85\xfd\xae\x9a\x3f\x2e\xfd\x74\xc8\xf6\xbe\x7a\xd4\x17\xf6\xbb\x31\xbf\x1d\xcd\xe5\xeb\xf1\xf8\xea\x91\x52\x7f\x11\x97\xfa\x53\x41\xe5\xf7\x2d\x16\x18\x45\x50\x8e\x51\xc4\xea\x91\x98\x58\x8b\x0a\x26\xee\x83\x16\x0e\x88\x9c\x18\x34\x88\x72\xc4\x31\x9d\xf5\x67\x0a\x9c\x9a\xaf\x5c\x09\x51\xa6\x2b\xaa\x0f\x0a\x98\xa3\x9f\xe4\xe8\x7a\x76\xb7\x80\x8f\xc7\x45\x88\x9d\xd1\xef\x0a\xe3\xe0\x0d\x08\x97\xe0\xa8\xf4\xdc\xf4\x82\x7e\x3e\xb8\xad\xfd\x8d\x54\x89\x60\xa8\xb2\xd4\x00\x03\x93\x15\x72\xd5\xe4\xb9\xf4\xf4\x30\x1c\x2c\x30\x95\xcb\xd2\x56\x43\x9f\xdd\x3d\x4d\xe4\x8b\x44\x7c\x9b\xc8\xef\x12\xf9\x3d\x86\x1b\x7f\x87\x43\x23\x02\x15\x17\x11\x0d\x38\x34\xbb\xb5\x96\xad\xd2\x15\x0c\xaa\xf5\x15\xb0\xa0\x57\xdb\x4e\x17\x53\x38\x44\xc4\x75\x28\xf2\xa9\x75\x28\xec\x3b\xd9\xe5\x07\x74\xf1\xda\x4e\x9a\xf9\x9e\x85\x1b\xd1\x43\xa6\x80\xb3\x36\x09\x70\xb7\x5d\x3f\xe7\x90\x3c\x45\xcc\x7d\x46\x64\x34\xb5\xd9\xb5\xc1\xc6\x38\x72\x81\x65\x48\x75\xb6\xd5\x81\xe3\xc7\x32\x80\x71\x5b\x84\xf2\x5e\x6e\xa4\x63\x8c\x74\x92\x81\x48\xf6\x35\x22\xc1\xa7\xa5\xda\xc7\x91\xcc\xa3\xb0\xba\x53\x44\xb9\x05\xc6\x73\x83\x40\x4e\x56\x45\xa0\x62\x0b\x9d\xc8\x36\x23\x7d\xeb\x68\xb0\xb8\x1e\x53\x3d\x4d\x9c\x12\x09\xa9\x76\x58\xe0\x56\x86\x3b\x57\xf5\x6a\x65\x25\x81\x62\x0b\x5e\x90\x85\x2f\x00\x82\xcd\x40\x6d\xf0\xbb\x0e\x63\x85\x22\xf4\x76\x47\x6c\x1c\x14\xa3\x3c\x31\x83\x8a\x59\x98\xb8\x34\x28\x89\xab\xed\xb8\x50\xd2\xc4\xb1\xf9\x80\xe6\x31\x4c\x75\x52\x2e\xa0\x52\x5b\x2e\xa4\x6c\x95\x65\x11\x62\x7d\x5b\xae\x29\xb2\xda\xad\xe3\xc3\x53\xf3\x1b\xe7\xd9\x8d\xa2\x88\x2f\x9f\x57\x1c\xe3\xf8\x6b\x4c\x70\x09\xc1\x47\xe4\x12\x33\x77\x59\xd5\xa3\x3c\xb0\x9c\xef\x4e\xe5\x59\x8a\x40\xf7\xba\x00\x41\x0a\x08\x5c\x63\xe6\x91\x44\x66\x75\x40\x5c\xa7\x50\xd6\xec\xc8\xe0\x21\xc8\xcd\x2e\xdd\x53\xb0\xbb\x93\xa3\xde\xa0\x22\x81\xd9\x69\x25\x3e\x53\xd7\xc1\x8d\xd6\x8e\xf7\x15\x4f\x26\x95\xa6\x70\x33\x27\x25\x5b\x84\xf2\x3c\x0e\x70\x92\xfd\x7c\x71\xa8\x50\x5d\x8d\x25\xd5\x2e\x3a\x89\x31\x1b\x0e\x01\xba\x0a\x21\x11\x55\x16\xf9\x07\xe1\x1a\xc1\xf9\xf2\x4b\x84\x11\xde\x2b\x03\x33\xa1\xee\xdf\x07\x16\xda\x0d\x24\xb5\x23\x4d\x91\x4f\x04\x1f\x58\x18\xba\x2c\x05\x31\xfa\xe1\x28\xc3\xe0\x20\x7c\xba\x24\x52\x09\x20\xfd\x73\xcf\xcb\x0a\x68\x18\x46\x6a\x97\x54\x5a\x7f\x5b\xa7\x22\x58\xa8\x03\x85\x21\x19\x2c\x10\xe1\xae\x7a\x9f\x8a\xd5\xc3\x91\x35\x10\x16\x97\x83\x87\x02\xbd\x10\x9e\x55\x5f\x2e\x74\xbd\xd7\xba\x88\xf6\x05\xc2\x9c\xbe\x3a\xd7\x9f\x63\x47\xb9\x6b\x2f\x1c\xc8\x33\xd8\x67\x95\xd0\xc0\x0c\xe2\xc6\x77\x46\x95\xf8\x57\x54\x58\x56\x1a\xf9\x19\xed\x02\x60\xff\x0a\xd0\xdb\x2e\x1b\x8a\xef\xf1\xa1\xd9\x10\xc6\x64\x01\x7e\x2a\x35\x11\x07\x20\xd4\x6e\x13\x29\x15\x46\x08\x7e\x5a\x95\x1c\x55\x24\x60\x47\xe2\x44\x64\x73\xa3\xb5\x72\x01\xbe\x89\x6b\x19\x61\xb1\x06\x09\x6c\xe0\xa2\xe5\x6e\x6f\x37\x5d\x76\x12\xa3\x9a\x5f\xfb\x78\x21\x3a\x9d\x6b\x44\x82\xaf\xfc\x46\x77\x8f\x92\x95\x66\x48\x74\x30\xa2\x3c\x00\x6c\x56\x80\x07\x2a\x1e\xc8\x6b\x40\x31\x8f\xec\xbc\x2e\xec\x25\x20\xc0\x79\x52\x40\xa6\x14\xd8\x43\x6e\x87\x41\x16\x20\xb2\xaa\xd6\x1b\x6d\x10\x48\x20\x02\xa6\xf7\x63\x08\xc9\x89\xb8\x23\xde\x57\x01\xc3\x97\x10\x1b\x27\x4f\x70\x63\xed\x0f\x59\xb1\x84\x78\x35\xd6\x9c\x83\xf8\x02\x13\x47\xa6\xf2\x36\xf6\x7d\x6b\x8e\xbc\x46\x39\x1b\x9f\x2d\x6b\x85\x6a\xdf\x4a\xbd\x36\xf0\xaf\xbd\x91\x47\x2f\x8e\x5d\x1a\xbd\x4a\x44\xb6\xea\xae\x0c\x12\x54\x72\x75\x1d\x93\xc6\x02\xce\x25\xa4\x11\x49\x7d\xbb\x3d\xf5\x19\x66\xe1\x14\x2a\xd8\xa1\xca\x57\x1b\x02\x24\x64\x48\xd3\xb9\x72\xdf\x1f\x0a\x11\x33\x42\xbb\xe2\xbd\xa0\x7b\x83\xea\xc4\x03\x6a\x5c\x0a\x19\x38\x74\x00\x8a\xd9\x08\x77\x2c\xbd\x39\x72\x76\x76\x7d\x99\xc8\x82\x30\x13\x70\x5f\x61\xfb\x19\xb9\xaf\x2e\x55\xaa\xb7\xaa\xfc\x28\x07\xed\xd5\x18\x08\xda\x6c\x68\xd8\xb0\xda\xcc\x7d\xd6\x94\x32\x37\x6b\x63\x87\xd7\x23\x5d\xfe\x70\x44\x48\x08\x22\x60\x3a\x6d\x7f\x6b\x28\x47\xc8\x7a\x44\xe8\x1b\x0d\x5b\x48\xa8\x1a\x5b\x76\x78\xe7\x04\x3d\xb3\x6f\x2b\x4e\x96\x4d\x09\x40\xf1\x7e\xa0\x4d\xa5\xd6\x5a\xae\x9b\x2c\xd5\x79\x56\x10\xaf\x3f\xe5\x19\x1c\xcb\x8b\x30\xd8\x20\xb6\xd7\x0b\x40\x57\x6c\x81\x40\xa6\x5a\x2a\x06\x7e\xc4\x1a\x21\xaa\xc5\xa1\xac\xb3\x35\x3c\xec\xce\x64\x5b\xdd\x77\xb8\x1d\x74\x34\x24\xea\xec\x65\x51\xcb\x4d\x5d\xef\x5e\x7e\xf5\xd5\x92\x3e\xbb\xa4\x45\x30\xe5\xfa\xab\xff\x1f\x76\x72\xff\xb6\xff\x86\x5f\x5d\xbe\xb9\xbe\x3c\x79\x31\x3c\x3d\x31\x45\x7e\xf8\xab\x00\xc0\x3f\xde\xff\xfd\xdd\x8b\x6f\xbe\xeb\xe0\xbf\x7f\xf7\xed\xf7\x7f\xef\xff\xfe\x5b\xfc\xf7\xe6\xea\x56\x5e\x8e\xe7\xf3\xf1\x4c\xbe\x19\x5f\x8d\x67\xa3\x4b\x19\xb7\x05\x0b\x87\x8f\xf8\x62\x78\x9a\xc8\x0b\xbd\x28\x1b\x55\x1e\xe4\xe9\x0f\x3f\xfc\x20\x44\xcc\x05\x73\xfa\xc3\x0f\xa7\x09\xfc\x05\xb0\x5e\xe5\x9c\xc1\x5d\x3c\x37\x57\x22\x27\xc5\x72\x28\xc4\xb7\xa7\xf2\xa2\x54\xc5\xc7\x3c\x2b\xe4\xbc\x2e\xb5\xae\x13\x79\x91\xad\xea\x8d\xbc\xc8\x8d\x29\x13\xf9\xda\x54\xb5\xfd\xf8\xbb\x91\x7c\xfe\xe2\xf4\xf4\xf9\xc9\xe9\xd7\xcf\x4f\xe5\xed\x7c\x24\xc4\xf8\x4e\x97\x40\xc4\x92\x55\x81\xb2\x83\x90\xf9\xee\xd0\x46\x6b\xef\x05\x4e\x0e\x80\x75\x18\x51\x07\x8b\x43\x21\x4a\x0e\xad\x3e\xb5\xb3\x27\xf2\xdc\xec\xa1\x60\xf0\xbf\x82\x49\x43\xe4\x62\xd8\xaf\x43\x3e\x7a\xda\x26\xd8\xba\xd4\x55\xa5\x4b\xf9\xe6\xfa\xd2\x63\x48\x03\x6b\x35\x3b\x2f\xc2\x91\xc9\xf1\x57\x60\x27\x08\xa8\x8f\xe0\x74\x9d\xe9\xc2\x4f\x7f\x91\xc8\x0d\xd6\x3c\x7a\x4e\x2f\x41\x7d\xb6\x2f\x86\xa7\xc3\xff\xd6\x86\xee\x77\x31\x9c\x15\x34\xa9\x54\xb5\x07\xdc\x01\x0c\x42\x8d\x26\xb2\xe3\x2e\x04\xac\x69\x00\x13\x5c\x95\x5a\xa7\x56\x31\x1b\x7b\x23\x97\x1a\x91\x2d\xb1\xc0\x23\xab\x87\xf2\xf5\x01\xcb\xa2\x54\x85\x3c\xb0\x30\xfe\x37\x68\x9b\xb4\xc6\x8f\x3d\x08\x41\xa7\x94\x58\x37\x0a\x7c\x36\xdd\xff\x2e\x19\xbc\xcb\xfe\xcd\x0d\xfa\xe4\xc4\x7b\x24\x98\x6a\x11\x21\xaf\x10\x7c\x16\x8c\xab\x3c\x87\xbb\x08\xf0\xfd\x99\x81\x28\xe7\xd5\x0c\x37\xa8\x77\xc0\x49\x58\x82\x85\xe4\x03\x68\x6b\xe5\x07\xe1\xb3\x78\x7e\x29\x09\x18\xbe\x3a\x39\xa9\x0f\x3b\x6a\xb3\x40\xcc\xc5\xcc\xfe\x92\x36\xf8\xa1\x23\x21\x3c\xdc\x35\x13\x19\xed\x37\x46\xa6\xda\x5a\x75\xcc\x41\x60\x97\xfc\x03\x41\xc0\xe3\xbf\x65\x6d\x0c\x0a\xed\xde\x2e\xc7\x7a\xad\xab\x1a\xa0\x9f\x51\x32\x01\x8a\x5e\x2e\x55\xa9\x57\x8d\x1d\x0f\x22\xd2\x73\x2e\x29\x6a\x63\x23\xab\x09\x32\x54\x56\xfa\x68\x51\x44\xbc\x28\x2c\xf8\x0b\x5d\xd7\xba\x94\x55\x5d\xaa\x5a\xaf\x0f\x6e\x80\x44\xb9\x68\xbd\x9e\x65\x93\xab\x12\x8a\x07\x12\xac\x63\xf0\xdd\x6b\xbb\x5c\x15\x64\xc2\x41\xe7\xd5\x50\x88\xf7\x1b\x5d\xc0\x1c\x76\x5a\x41\x2b\x66\xb4\xe5\x89\xfd\x93\x5d\x30\x28\x03\x29\xc9\x80\x63\x89\x31\x2b\xec\x9e\xc3\xa6\xc9\x6c\xa9\x87\x62\xda\x3c\xb4\xad\x55\x47\xe6\x43\x51\x22\xdc\x4d\x0e\x80\xf2\x2b\x44\x7f\x07\x52\x6b\x94\xf2\x88\x44\xb6\x5c\x07\x28\xa4\x95\x2e\xef\x00\xba\x1b\xca\x9e\xc4\x3e\xab\x36\xc7\xaf\xfc\xab\x28\x90\x1b\xe1\x52\x59\x03\x5e\x15\x00\xeb\x6a\x55\x10\xd6\x4b\xed\x55\x61\xff\xe9\xbf\x2a\xec\x67\xe8\x80\x40\xa8\xc4\x1d\x6a\xc2\x6f\xdb\x65\xd6\x87\x47\xb8\x2e\xbb\x35\x85\xde\xe3\x80\x19\xc8\xf3\x15\xc5\xd2\x14\xca\x0c\x1e\x50\x8e\x0a\xf0\x00\xed\x5b\x52\xb0\x96\x91\xd9\xa9\x58\xc3\x61\x32\x4c\x8d\x8a\xa7\x17\x2d\x74\xd8\xa7\x42\x07\xeb\x1a\xd1\xe8\x23\x0e\xb9\x29\x17\x59\xa0\x9d\x4d\x59\xc1\xf2\xea\x02\x51\x37\xf1\x45\x9e\xd1\x13\x08\x45\x3f\xe2\x9f\x8c\xdd\xa7\x52\xb3\x4d\xee\x3e\x07\x8e\x73\x15\xbf\x4d\x70\xe1\x0d\xb1\x8a\x97\x80\x16\xd7\x61\x58\xb5\xfb\x04\x98\xeb\xed\xaa\x34\xbf\xcb\x02\xdd\x09\xd4\xca\x58\x5b\x05\x08\xb2\x08\xf2\x0e\x85\x24\x17\x00\xf4\xac\xb6\xbb\x5c\x27\x8f\x3d\x4a\x06\x8f\xf2\x49\xdd\x75\xa9\xea\x0c\x26\xbb\xb2\x6e\xa3\x5c\x69\x9d\x78\x22\x2e\x57\x68\xe6\xeb\x75\x41\xb7\x05\x29\x09\x58\xd8\xbd\x96\x6b\x2b\xb7\x07\xeb\x78\x73\x65\x9b\x68\x49\x77\xbd\xd1\x87\x04\xb5\x06\x4b\x5e\x20\x6d\x75\x0c\x90\xe6\x6a\xf5\xf2\xac\xf8\x28\xb8\xa2\x26\x0d\x8a\xd0\xdd\x54\xdc\x68\x19\x80\x0d\xfc\x0c\x6d\x5d\x00\x8c\xc3\x23\xec\x2c\xba\x5d\x1e\xd6\xac\x4a\x10\x89\x9c\x69\x4c\xed\x40\x4a\xeb\x5f\x7c\x94\x80\x16\xdf\x7e\x11\xb1\xd0\x6f\x15\x10\x6c\xa0\xf0\x57\x4c\x87\xe6\x3e\x43\xc9\xf6\xed\x2e\xcb\xf1\x1a\xb7\x3e\x51\xea\xc7\x58\x6d\xcc\x1e\x9f\x4f\x52\x0d\x61\x37\x84\x44\x3f\x88\x8f\x05\xfe\x35\x2b\x3d\x0a\xda\x7b\xdd\x27\xee\xdc\x76\x5f\xef\xcd\x49\x55\xeb\x9d\xdc\xea\x7a\x63\xd2\x97\xf2\xe8\xf4\xd8\x6e\x87\x4f\x07\x84\x6b\x05\xaa\xde\x7a\xd0\x7b\x4d\xc5\xde\x28\xf6\xe1\xed\x84\x80\x08\x6b\x20\x66\x81\x0d\x80\xc8\x41\xd0\xad\x4d\x86\x4e\x22\x42\x54\x70\x44\x02\x24\xb9\x0c\x5e\x19\x9f\x57\xc8\x42\x05\xc7\x0f\x0e\x2d\x68\x17\x3e\xb4\x19\xf0\x77\x1e\x10\xc3\xda\xed\x0e\xd7\x87\x0a\x17\x36\x61\x57\x1b\x94\x0a\xbf\x4b\x8e\xf2\xca\x24\x58\xf7\xe3\xf7\x24\xab\x7c\xcc\x67\x71\x80\xfb\xd4\x14\x5a\x00\x8f\x3d\x74\x64\xaa\x0a\x4b\xdd\x92\xb6\xa8\x57\x1b\xa0\x80\xa3\x5d\xb1\x72\xee\xa4\x05\xd4\x34\x5a\x68\x22\x8a\x20\x07\x50\x15\xde\xb7\x77\x7f\xc5\x0b\xf6\x59\x25\x4b\xbd\x6b\x6a\x15\x67\x38\x16\x5a\x60\x0c\x17\x07\xba\x2b\xcd\x22\xd7\x5b\x0e\x7c\xc1\x66\x62\x39\x2e\x03\x25\x2f\x28\xdd\x61\xc5\xe4\x02\x59\x53\x93\xd0\x2a\xa8\x61\x16\x58\xca\x8f\xc1\x43\x58\xea\x8d\x75\x58\x7d\xd9\x25\x54\x8a\x63\x21\x09\x00\x61\x97\x1a\x90\x7e\xad\x9a\x1e\xca\xf7\xc8\x72\xd3\x73\x59\x29\xc9\xf8\xe7\x4b\x55\x40\x71\x35\x8c\x1d\x39\x9b\xc3\x4e\x00\x01\x56\x10\x96\xf1\x85\x77\x00\x0c\x7f\x61\x55\x23\xc4\x4b\xbd\x06\xbd\xf3\xa1\x75\x6c\xe0\xa1\xa9\x10\x70\x21\x94\xaa\x43\x08\x19\x2f\xe7\x0c\x8a\xdd\xa5\xcb\x1f\xd1\x87\x9d\x75\x01\xaf\xa0\x92\x0b\xd5\x32\x94\x05\x0b\x09\xd3\xf4\xf5\x95\xce\x63\x4e\x27\xba\xf1\x65\xab\xc7\xc3\xc7\x6d\x86\x42\xbc\xb3\x76\xae\x35\x47\xbd\x0d\xe1\xa3\x6a\x60\xce\x39\xe3\x2c\x01\xe6\x18\x73\x07\xe5\xd6\x14\x27\xf6\x76\xd0\xd5\xad\xe8\xb7\x24\x28\xba\x19\x59\x94\x60\xbf\x3f\x6a\x55\x8a\xc0\xaa\xe4\x4b\x29\x30\x27\x83\x41\x41\xbd\x63\x25\x7f\x6e\xb2\x5a\x07\xd4\x7d\xae\x3e\x9f\x87\xf8\xe0\xf0\xde\x6b\xcf\xc6\xe8\xf6\xd2\x6a\x7b\x7a\xad\x7b\x17\x94\xd6\x94\xa9\x2e\xad\x26\x45\x67\x0a\x54\x3e\x06\xff\x30\x4f\xeb\x3f\x5a\x1b\x68\xd6\x8f\x2c\x09\xb6\xe0\x94\x93\x2b\x78\x27\x60\x67\x93\x92\xec\xdc\x7a\x40\x5b\xb2\xe4\x42\xa6\xa6\x42\x01\x04\xdb\x3f\x15\xee\xd3\x54\x55\xb4\x88\x92\xbd\x1a\xa2\x90\xf6\x15\x56\x2f\xe6\x07\x34\x1b\xf1\x01\xf8\x61\x2a\x39\x4f\xa4\x12\x9e\xe4\x4a\xb6\x09\x6c\x9c\xce\xba\xe9\x31\x7d\x5b\xeb\x89\x2a\xd0\x0a\xbc\xc0\x25\xa2\x4c\x04\x2f\x14\xb4\x77\x91\xd6\xa3\x9c\x40\x38\xee\x95\xfd\x02\xc0\xa6\x96\x19\x60\xb4\xb2\xf9\x98\x9a\x2d\xf6\x7d\x3c\x2a\x37\x92\xdf\x09\x20\x03\xb9\xfa\xc5\x3f\x67\x05\xd5\xcf\x34\x08\x6a\x45\xe8\xb9\xa3\xf1\x16\x5b\xa2\xe5\x90\x85\x9d\x5f\x5a\x0e\xf0\xdd\x83\x87\x5e\xbe\xd0\x4b\x45\x0e\x07\x54\x64\xdb\x8f\x83\xac\xd0\x95\x42\xd5\xd1\x56\xa7\x3a\x37\x8e\x39\xb4\x3f\xb3\xac\xd6\x35\x16\xe0\x1a\x93\xe5\x50\x31\x36\x50\x64\x5a\x13\xa3\x9b\xd5\x61\x97\xd0\x7e\x63\xf5\x64\x58\xe3\x77\x47\xd5\xbe\x1a\x88\xa6\xba\x02\x4a\x16\x62\x9a\x55\xee\x4b\xd4\x16\xbf\x61\x16\x36\xab\xc7\x38\x98\xfb\x99\xc3\x85\xae\x34\x42\xb6\xd2\xc9\x08\xf8\x05\x02\xdf\x92\x57\x99\x27\x27\x82\xb7\x67\x85\x3b\x8a\xe4\x5a\xca\x65\x56\x2e\x9b\xad\xbd\x22\x96\xba\x6a\xdb\x95\xa6\x90\xa5\x1d\xb1\x59\x2e\x55\xe5\x4a\x17\x3c\x97\x95\x72\x8f\x61\x13\x5c\x17\x4b\xd3\x94\xc4\x67\x27\xf6\x76\x00\xb5\x24\x46\x02\x57\xcf\xae\x5a\x0a\xe1\xe0\xaf\xcd\xcc\xaa\xe3\xa5\xd9\x02\x8e\x52\xaa\x4f\x56\x6a\x89\x64\x7f\x40\x33\x31\xb4\x56\x85\x5a\x6e\x32\x7d\x87\x5a\x26\xe9\x2a\x06\xa7\xd3\x29\x82\xe2\x79\x73\x43\x8b\x01\xa4\x5a\xac\x4a\x22\x0f\x87\x8a\xf3\x8c\x1b\xdb\x22\xf3\x02\xe5\x8f\x33\xc3\xf2\x27\xb3\x90\xca\xda\x61\xa9\xbd\xf0\x00\x7d\x98\x87\x20\x82\x9d\x99\x10\x66\x0b\x7a\xa3\xce\x96\xc9\xb3\xba\xc6\x8c\xcd\xda\x4e\x7f\x71\xc0\xa4\x81\xcb\x79\x04\xef\x15\xe4\x6f\x7a\x89\xb4\xe7\x1d\x56\x2a\x90\x9a\x47\x8f\xf0\x50\x88\x09\x97\x30\xda\x81\x54\x49\xcb\xa0\x03\x9a\xc1\xd0\x79\x76\xc6\x53\xd1\x5d\x58\xa1\x0b\x62\x79\x91\x6b\xa8\xb0\x2c\x03\xac\x35\xa2\x77\x73\xcf\x44\xaa\xb5\x85\x49\x0f\x1d\xa7\x15\xaa\x59\x85\x93\xb1\xee\x88\xf8\x5a\x3b\x73\x81\xa9\xbe\xe1\x48\x1a\x8e\xd8\x62\xcb\x10\x00\x80\x87\x83\xb0\x8f\x01\x48\x36\x78\x98\x3d\xc9\x98\x88\xa9\x0e\x55\x0d\xec\x0e\x95\xdc\xeb\x3c\x87\xc6\xb6\xba\x92\x77\xaa\xcc\x54\x51\x27\x82\x5e\xff\x15\xf2\xfb\xb7\xbf\x37\x14\x62\x94\x23\xaf\xdb\xe7\x37\xc0\x6e\x39\x28\x0f\x52\x5b\xc1\x8d\x00\xd6\xd1\x33\x41\xca\x2b\x71\x8a\x4e\x17\x91\xeb\x04\x9f\xc3\x33\xc3\xf7\x1c\xb7\xa0\x85\x97\x9d\x3d\x6c\xbc\x58\x1b\x4a\x74\xb1\x5e\xe4\x62\x32\xa8\x13\xb6\x9f\x56\x39\xd4\xf9\x34\x05\xd5\xc9\xd3\x73\xf9\x3e\x64\xab\x59\xb4\x83\x8b\xde\xb4\xc7\xe6\x56\x44\xf0\xe8\xab\x94\x58\x11\x93\x21\x94\x1e\x77\x90\xde\x43\xac\x10\x81\x10\x17\x43\x79\xad\xac\xf5\x6f\x10\x82\xc9\xde\x66\x9c\x27\x0c\x09\x6c\x5c\xa6\x5b\xc9\x41\x00\x60\x87\x61\x1e\xbe\xc1\x07\xc8\x09\x47\x9f\x80\x29\x36\x95\xae\x42\x05\x30\xc0\xfb\x17\x02\x0f\xa5\x6f\x42\x86\x5b\xac\xc3\xf6\x16\x9a\x11\x56\x6d\xe3\x2f\x15\x84\xa3\xbc\xfd\xc8\x26\x40\xdb\x7d\xcc\x0a\x01\x86\x0e\x2d\xb9\x5d\xbd\x1e\x9c\x45\xa8\x6c\x3c\x9b\x5e\x7f\x80\x2a\xd6\x10\x8f\x14\x6b\x6a\xa7\xe7\x93\x8b\xc9\x19\x14\xb4\x0a\xf1\xbc\x95\xe5\x76\xdd\x9c\x61\xfc\x10\xb9\x9e\x49\x73\x04\xa1\x04\x46\xf2\x83\x3d\x17\xe8\xf5\xb9\x05\x50\xdc\xde\x04\xc4\x6b\xce\x34\x6d\x63\x88\xfb\xe7\xa0\x63\x93\xfd\xaa\x53\x81\xf9\xc9\x4a\x1d\x28\x8e\x4d\x57\x44\xc8\x0c\xfa\x60\x2b\x7a\x74\x86\xda\x01\xc0\x23\x0c\x63\xab\x3c\xd7\xa9\x1c\x84\xc9\xf5\xc1\x31\xd5\x0f\xd1\x9d\x07\xe7\x4d\xa5\x69\xa9\xc1\xb5\x53\x95\x18\x1c\x4c\x33\xb0\x47\x56\x0e\x9c\x74\x30\x02\x62\x4c\x3b\xea\x19\xd5\x9b\x62\xe9\x00\xf3\xad\x77\x9b\xaa\x1a\x90\xc6\x76\x60\x26\x56\x06\x42\xe9\x86\xbc\x86\x3b\x5d\x58\xa7\x11\x22\xaf\x81\xed\xe9\xf9\xd6\xbd\xbe\x3a\xc2\xc5\x06\x37\xc2\x6c\xa9\x33\x0e\x48\x87\xc2\x37\xc2\xeb\x8e\x21\xd8\x68\xca\x6d\x48\xfc\x44\x07\x6f\x40\xe7\x70\x90\x60\x28\x33\x09\x18\x4f\x5d\x1d\x5d\xdf\xce\xc3\x71\xc0\x31\x6c\x54\x25\x80\xea\xb4\x77\x77\xf8\x54\xdb\x6b\xb2\x7b\xcc\x58\x0f\xf0\x42\x62\x7a\x5a\x04\x7f\xe1\x8e\xc8\xc0\x0c\xde\xfb\x42\xc2\x08\x1c\xec\xa5\xd3\x66\xf6\x96\x57\x07\x6b\x3d\xc3\x67\x49\x24\xf9\x62\x0c\x9f\x0c\xcc\x8d\xb4\x6b\x59\x9d\xd0\x00\x7c\xc6\x85\x38\x22\xda\x90\x44\xb8\x99\x2e\x44\x97\x42\x28\xd9\x8e\x63\x65\xca\xbd\x2a\x53\x2c\xd3\xb7\x6b\x48\x6d\xfd\xaa\x58\x37\xc0\xfb\x74\xf4\x56\x97\x3a\x2b\x20\x10\x94\x84\xdd\x75\x22\x73\xb8\x48\xbe\xae\x24\xa8\x9b\x60\x6c\x38\x5d\x6e\xe5\x20\x1c\xce\x00\x18\x46\xe7\x3e\xee\x35\x20\x37\x15\xe6\xee\xa1\xea\x76\x18\x7d\x26\xa0\x53\x56\xc4\x7b\x6e\x03\xa6\xa0\x54\x3c\xd1\xda\x40\xf8\xe9\x02\x9e\xe7\x74\x97\x0b\x8e\x45\xa4\x16\x78\x12\x28\xb2\x17\xfe\x85\xb2\x19\x62\x6b\xd2\xc6\x5e\xf9\x99\x87\x6a\x20\x62\x61\x28\xd8\xf1\x5d\x95\x59\x51\xeb\x72\xa5\x96\x1a\x71\x4a\x33\xf2\x40\x80\xd4\xcc\x7e\x1e\xe4\x83\xc9\xa1\x98\xb3\x81\x1b\xdc\x31\x70\xe6\xc8\x25\x80\x76\x4c\xe5\x51\x07\x63\xe0\x53\x8c\xec\x3d\x8a\xa1\x54\x43\x59\x05\x55\x3c\xf1\xba\xa1\x42\xa7\x9a\x9d\x6f\x2c\xd2\xf2\x1a\xe5\x15\x86\x79\xc0\xda\x6a\xea\x2a\x4b\x81\xcb\x4b\x56\x4b\xb3\xd3\x84\x05\x83\xcc\x57\x65\x53\x50\xfc\x82\x55\x29\x5e\x9f\xa1\xb0\x66\xdc\x48\x8a\x01\x0e\xe6\x2b\x44\x92\x2b\xf4\xaa\x89\x07\x34\x70\x61\x79\x60\xec\xdc\x31\xef\x05\xc4\x74\x7c\x25\x58\x8c\xe0\x1a\x9f\x4c\x79\x14\x40\xd9\x72\x34\x39\x68\x25\x0d\xac\x2a\x25\x6b\x63\xa0\x72\xd5\x55\xb0\x65\xf5\xf1\x50\xbe\x77\x09\x1b\x3a\x9d\x65\x63\x77\xd6\x3e\x13\xb0\x8f\x38\x22\xe6\x9e\x05\xb6\x0b\x52\x81\x2a\x2e\x1f\x09\xcc\x15\x77\x01\x87\x9f\x8f\xd9\x67\x9f\x9c\x45\x75\x0f\x79\x56\xb5\xc5\x1a\xfd\x50\x55\x45\x79\x0e\xab\x23\xb8\x89\x9f\x78\x3b\xbb\xbc\x67\x76\x65\x77\xd9\xb2\x41\xf4\x4b\x55\xa4\x42\xed\x76\xa5\xd9\x95\x56\xbc\xf3\x03\xd7\x9b\xd8\x95\x46\x3a\x54\x1c\xad\x0c\x3e\xd5\x6d\x12\xa6\xd9\x74\x61\x94\x0e\xaf\x3a\x38\x16\x35\x50\xfe\x3d\x11\xa0\x89\xca\xb9\xab\x30\x80\xe7\x1f\xdd\x5a\x44\x15\x13\xc2\xba\x27\x01\xfd\x99\xeb\x86\xf6\xd6\x5d\x87\x73\xcf\x53\xdc\x69\xb9\xdb\x1c\x08\xd8\x17\xcf\x01\x22\xe5\x52\x86\x0c\xdf\x84\x52\x7e\x30\x0d\x50\xb4\x28\x8a\x5f\x9b\x1d\x9d\x66\x3b\x2b\x17\xcf\x65\xbb\x18\x95\xa5\x6b\xe5\x47\x65\xb8\xd2\x3a\xe6\xf0\xed\x92\xdc\x96\xfd\x92\xc1\x37\x50\x7c\x53\x88\x7a\xd3\x80\x6d\xba\xc5\xc1\x3e\x78\x80\x12\xb2\x67\xbb\x02\xd9\x83\x75\xc7\x37\x6b\x8f\x71\xe3\xda\xce\xb8\xf4\xbe\x2b\x77\x44\xf3\xac\xeb\x80\xee\xb8\x0a\x39\x9b\x5f\x72\xcf\xb0\x3a\x06\xfd\xe3\xeb\x18\xe1\xaa\x00\x44\x1b\xac\x6f\x43\x7f\xbc\x75\xf1\x23\x39\xa6\x43\x1d\xc0\xa0\x0a\x16\x12\x58\xbd\xee\x9e\x66\xb5\x31\x74\x84\xb6\x09\x80\x2b\x47\xf6\xeb\xb2\x76\x9e\xe4\x97\x1f\xc3\x2e\x46\x6a\x8f\x01\xc9\x23\x7e\x0a\x49\x33\x7b\xde\x8f\x9e\x59\x78\xa3\xa1\x4d\xe5\xea\xe0\x90\x65\x9b\x84\xd0\xde\xcb\x79\x2e\x22\x7e\x9b\xcf\x21\x1b\x0d\x85\x48\x8f\xa1\xfc\x5a\xae\xd4\x12\xcb\xa0\x99\x71\x94\xa7\xcd\xf2\x12\x98\x50\xce\x1c\x43\x63\x03\xe1\x7a\xcd\x4a\x80\x19\x88\x63\x0c\x69\xfb\x50\x07\xb4\xad\xbd\x96\xd6\xe3\xf7\x27\x14\x2e\x83\x1b\x4b\x01\x72\xaf\x2a\xd7\x50\x08\xc2\xf9\x88\xfd\x86\x0a\x79\xfd\x98\x91\x2e\xfc\xa3\xbd\x3f\x6a\xfb\x57\x97\x55\xda\xaa\x8f\x5a\x28\xb9\x36\x26\x95\x2b\x05\xd8\x42\xab\x95\x29\x6b\x0c\xc4\x38\x3f\x32\xe1\x69\xeb\x3b\x70\x12\xe2\x11\x3b\xc0\x03\x98\xd5\x01\x3b\xe8\xc3\x35\xa8\x3d\x12\x83\x1b\x13\xd2\x55\xa3\x6f\xcc\x91\x63\x2a\xcd\xf7\xe4\xf1\x82\x99\x09\xed\x1d\xc6\x45\x91\x58\x81\x5e\x81\xed\x91\x15\xeb\x55\x93\x0f\x85\x38\x8a\xa2\x4e\xc1\x16\xc0\x15\xc5\x36\x2c\x58\x0c\xdb\x1d\x9c\xc3\x9f\x1b\x48\xce\x1b\x53\x63\xe1\xa7\xe2\x17\x08\xbe\xb2\x30\x22\x9a\x1f\xc0\xc9\x3f\x61\xf4\xf4\xf8\x66\x84\x49\x05\x8b\x41\xe5\xd0\x98\x63\x98\x37\x8b\x0a\x0f\xb0\x78\x91\x72\xf7\x48\xe5\x13\x0e\xc1\xf7\x4e\x9c\x44\x74\x16\x0e\x8d\x1d\x36\x33\xf8\xcf\x82\x1d\x47\x54\x8b\x2a\x7f\xc9\x81\xdc\x47\xb6\x06\x6e\x32\xb0\xa3\xfc\xec\x5b\x4f\xc4\x7d\xe9\x5b\x25\x6b\x71\x72\xca\x1a\x66\x42\xe8\x5a\xf0\x60\x2e\xc8\x8f\x74\x0b\xac\x2a\x61\xda\x4f\x56\xae\xa0\x16\xda\x10\x2a\xee\x9d\x62\x6e\x27\xfc\x06\x19\x57\x2d\xbe\xad\xb6\x5e\x55\x05\x76\x03\x30\xe2\x87\x08\xb0\x67\xc2\xfd\x81\x5a\x7a\x46\xe8\xef\x45\xe4\xaf\xf1\xb0\x04\xe5\xd6\x88\xd9\x50\x63\xd3\x4d\x95\x38\xa2\x50\x3f\x4d\x2b\x84\x6e\xf8\x7b\x3e\x4f\x31\xdb\xf2\x16\xc1\x9f\xc3\x57\x0f\xe5\x6b\x2c\x64\xe9\xfb\x3c\x86\x06\xdd\x53\x23\x5a\x56\x58\x41\x72\xb4\xb3\xea\xf1\x6b\xa7\x6e\x53\x17\xb3\x7e\x04\x65\x49\x32\xc3\x55\x2d\x0f\xb4\x6e\xec\x61\x86\x3e\xaa\x56\x79\xc4\x20\xe7\x27\x57\xd8\x73\x91\x72\x1e\x9b\xb2\x07\xf0\x1a\x6e\x77\x6a\x40\x1d\x82\xb1\x03\x2d\x17\x90\x9f\xdd\x21\xf0\xfe\xda\xfa\x4b\x14\x14\xdf\x6f\x8c\xdc\xdb\x6b\x5c\x40\x5d\xc2\xcd\xa6\xa9\x92\xa0\x8e\xad\xde\x50\x0d\x96\xe7\x28\xad\x7c\x19\x38\x12\x91\xf9\xd2\x0b\xb0\x74\x2b\x34\x19\x18\x01\xbc\x36\xe4\xba\x52\x95\xbe\x3b\xd8\x48\x9a\xfa\x4a\x96\xca\x4e\x2e\x09\x5f\x85\x0e\xa5\xc3\x12\xaf\xc3\x06\x37\xf6\x3a\xfa\x16\x3b\xcc\xdc\x94\x11\xb7\x03\xe2\x2b\x85\x55\x45\xde\x62\x9a\x14\xae\x77\x21\x91\x5b\xe8\xa7\x20\x42\x58\x7a\x2c\xfb\x94\x7b\xee\x8e\xe8\x35\xdb\xdb\xb6\x18\x34\xb7\x51\x2e\xeb\x41\xa1\x39\x46\x9e\xf9\x3b\x93\x37\x5b\x0a\xae\x57\xb5\x29\xd5\x5a\x0b\xd3\x42\x3b\x20\x34\x20\xa7\x55\x16\x25\x7b\x2c\xc1\xe8\xfc\xa5\x0a\x4e\x4f\xbb\x1b\x0e\x41\xbb\xd9\x20\x33\x3b\x44\xae\xc5\xd3\x15\xcb\x64\x9c\xd1\x7c\x20\x40\x2a\xac\xab\xa7\x55\xda\xb1\x4e\xe1\x26\x5e\x67\x77\xba\x08\xac\x57\xbf\xe6\xf2\xc6\x60\x89\x50\x56\xf9\x4a\x10\x81\x88\x74\x4f\xb7\xa6\x5b\xa5\x20\x21\xe2\x8f\x78\xc2\xe0\xa3\x02\xc9\x70\x22\xa6\x65\x87\x1c\x81\x11\x52\xe8\x7d\x00\x32\x01\x26\x80\xfb\xfe\x97\x2c\x19\x5c\x77\xd0\x0b\x13\x59\x04\x56\xad\x62\x7a\x9a\x78\x10\x1c\x9c\x05\x8d\x8c\xab\xba\xb2\x6a\x33\x3c\x96\xe7\xa0\x18\xb1\x58\x27\x80\xc5\xa1\x4a\xcb\x82\xec\x50\x5a\xc3\xa1\x10\x53\xac\xff\xb4\x1e\x2a\x7d\xa6\xc2\xf2\x7a\xb8\xa2\xfd\x4e\xf1\xd9\xcf\xca\x52\xc3\x08\xec\x1d\x88\xde\x03\x40\xda\xed\x0e\x89\xa8\xcc\x53\x27\x1b\x45\x34\xa1\x21\x77\x51\x71\xca\x06\x0c\x7f\xd0\xf7\xad\x40\x13\x0d\x8c\x6e\x1f\x7a\x2b\x97\x63\x92\x1f\x92\x41\x14\x62\xd5\xe4\x5e\xa5\x73\xc1\x03\xc8\x9b\x27\x55\xe6\x0a\xb9\x48\x00\x05\xb1\xbf\xb4\x63\xf2\xd8\x09\xe4\x6d\xef\x6f\x1e\xf7\x6f\xdb\x87\x3d\x88\x6d\x95\x91\x2e\x5a\x09\x7b\xf7\xe3\xd9\x64\xaf\xe2\xc5\xf1\xa3\xdc\x
gitextract_7ctmwgwc/
├── .github/
│ └── dco.yml
├── .gitignore
├── .travis.yml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── DCO
├── FAILURES.md
├── LICENSE.md
├── Makefile
├── README.md
├── appveyor.yml
├── cmd/
│ └── license-detector/
│ ├── main.go
│ └── main_test.go
├── go.mod
└── licensedb/
├── analysis.go
├── api/
│ └── api.go
├── dataset_test.go
├── filer/
│ ├── filer.go
│ ├── filer_test.go
│ └── test_data/
│ ├── 334a82b19a7c893d3807ea52ba35ff2170c296cc.siva
│ ├── git/
│ │ ├── COMMIT_EDITMSG
│ │ ├── HEAD
│ │ ├── config
│ │ ├── description
│ │ ├── info/
│ │ │ └── exclude
│ │ ├── logs/
│ │ │ ├── HEAD
│ │ │ └── refs/
│ │ │ └── heads/
│ │ │ └── master
│ │ ├── objects/
│ │ │ ├── 33/
│ │ │ │ └── 4a82b19a7c893d3807ea52ba35ff2170c296cc
│ │ │ ├── 8a/
│ │ │ │ └── 9b00e3e4f0af606178510c19f40c5a77adb881
│ │ │ ├── cc/
│ │ │ │ └── 628ccd10742baea8241c5924df992b5c019f71
│ │ │ ├── ce/
│ │ │ │ └── 013625030ba8dba906f756967f9e9ca394464a
│ │ │ └── f7/
│ │ │ └── 922e986704f99de62ca715d4794324a32e9af2
│ │ └── refs/
│ │ └── heads/
│ │ └── master
│ └── local/
│ ├── one
│ └── two/
│ └── three
├── internal/
│ ├── assets/
│ │ ├── bindata.go
│ │ ├── extract_names.go
│ │ └── extract_urls.go
│ ├── db.go
│ ├── fastlog/
│ │ ├── fastlog.go
│ │ └── fastlog_test.go
│ ├── investigation.go
│ ├── nlp.go
│ ├── nlp_test.go
│ ├── normalize/
│ │ ├── normalize.go
│ │ └── normalize_test.go
│ ├── processors/
│ │ ├── html2text.go
│ │ ├── html2text_test.go
│ │ └── markup.go
│ └── wmh/
│ ├── wmh.go
│ └── wmh_test.go
└── licensedb.go
SYMBOL INDEX (125 symbols across 24 files)
FILE: cmd/license-detector/main.go
function main (line 17) | func main() {
function detect (line 33) | func detect(args []string, format string, writer io.Writer) {
FILE: cmd/license-detector/main_test.go
function TestCmdMain (line 12) | func TestCmdMain(t *testing.T) {
FILE: licensedb/analysis.go
function Analyse (line 13) | func Analyse(args ...string) []Result {
type Result (line 35) | type Result struct
type Match (line 42) | type Match struct
function process (line 47) | func process(arg string) ([]Match, error) {
FILE: licensedb/api/api.go
type Match (line 5) | type Match struct
FILE: licensedb/dataset_test.go
function TestDataset (line 15) | func TestDataset(t *testing.T) {
FILE: licensedb/filer/filer.go
type File (line 28) | type File struct
type Filer (line 34) | type Filer interface
type localFiler (line 46) | type localFiler struct
method resolvePath (line 63) | func (filer *localFiler) resolvePath(path string) (string, error) {
method ReadFile (line 74) | func (filer *localFiler) ReadFile(path string) ([]byte, error) {
method ReadDir (line 86) | func (filer *localFiler) ReadDir(path string) ([]File, error) {
method Close (line 105) | func (filer *localFiler) Close() {}
method PathsAreAlwaysSlash (line 107) | func (filer *localFiler) PathsAreAlwaysSlash() bool {
function FromDirectory (line 51) | func FromDirectory(path string) (Filer, error) {
type gitFiler (line 111) | type gitFiler struct
method ReadFile (line 147) | func (filer gitFiler) ReadFile(path string) ([]byte, error) {
method ReadDir (line 179) | func (filer *gitFiler) ReadDir(path string) ([]File, error) {
method Close (line 208) | func (filer *gitFiler) Close() {
method PathsAreAlwaysSlash (line 212) | func (filer *gitFiler) PathsAreAlwaysSlash() bool {
function FromGitURL (line 116) | func FromGitURL(url string) (Filer, error) {
function FromGit (line 125) | func FromGit(repo *git.Repository, headRef plumbing.ReferenceName) (File...
function FromSiva (line 218) | func FromSiva(path string) (Filer, error) {
type zipNode (line 249) | type zipNode struct
type zipFiler (line 254) | type zipFiler struct
method ReadFile (line 285) | func (filer *zipFiler) ReadFile(path string) ([]byte, error) {
method ReadDir (line 309) | func (filer *zipFiler) ReadDir(path string) ([]File, error) {
method Close (line 334) | func (filer *zipFiler) Close() {
method PathsAreAlwaysSlash (line 338) | func (filer *zipFiler) PathsAreAlwaysSlash() bool {
function FromZIP (line 260) | func FromZIP(path string) (Filer, error) {
type nestedFiler (line 342) | type nestedFiler struct
method ReadFile (line 352) | func (filer *nestedFiler) ReadFile(path string) ([]byte, error) {
method ReadDir (line 362) | func (filer *nestedFiler) ReadDir(path string) ([]File, error) {
method Close (line 372) | func (filer *nestedFiler) Close() {
method PathsAreAlwaysSlash (line 376) | func (filer *nestedFiler) PathsAreAlwaysSlash() bool {
function NestFiler (line 348) | func NestFiler(filer Filer, prefix string) Filer {
FILE: licensedb/filer/filer_test.go
function testFiler (line 11) | func testFiler(t *testing.T, filer Filer) {
function TestLocalFiler (line 47) | func TestLocalFiler(t *testing.T) {
function TestGitFiler (line 59) | func TestGitFiler(t *testing.T) {
function TestSivaFiler (line 68) | func TestSivaFiler(t *testing.T) {
function TestZipFiler (line 78) | func TestZipFiler(t *testing.T) {
function TestNestedFiler (line 87) | func TestNestedFiler(t *testing.T) {
FILE: licensedb/internal/assets/bindata.go
function bindataRead (line 22) | func bindataRead(data []byte, name string) ([]byte, error) {
type asset (line 42) | type asset struct
type bindataFileInfo (line 47) | type bindataFileInfo struct
method Name (line 54) | func (fi bindataFileInfo) Name() string {
method Size (line 57) | func (fi bindataFileInfo) Size() int64 {
method Mode (line 60) | func (fi bindataFileInfo) Mode() os.FileMode {
method ModTime (line 63) | func (fi bindataFileInfo) ModTime() time.Time {
method IsDir (line 66) | func (fi bindataFileInfo) IsDir() bool {
method Sys (line 69) | func (fi bindataFileInfo) Sys() interface{} {
function licensesTarBytes (line 75) | func licensesTarBytes() ([]byte, error) {
function licensesTar (line 82) | func licensesTar() (*asset, error) {
function urlsCsvBytes (line 95) | func urlsCsvBytes() ([]byte, error) {
function urlsCsv (line 102) | func urlsCsv() (*asset, error) {
function namesCsvBytes (line 115) | func namesCsvBytes() ([]byte, error) {
function namesCsv (line 122) | func namesCsv() (*asset, error) {
function Asset (line 136) | func Asset(name string) ([]byte, error) {
function MustAsset (line 150) | func MustAsset(name string) []byte {
function AssetInfo (line 162) | func AssetInfo(name string) (os.FileInfo, error) {
function AssetNames (line 175) | func AssetNames() []string {
function AssetDir (line 203) | func AssetDir(name string) ([]string, error) {
type bintree (line 225) | type bintree struct
function RestoreAsset (line 236) | func RestoreAsset(dir, name string) error {
function RestoreAssets (line 261) | func RestoreAssets(dir, name string) error {
function _filePath (line 277) | func _filePath(dir, name string) string {
FILE: licensedb/internal/assets/extract_names.go
function main (line 14) | func main() {
FILE: licensedb/internal/assets/extract_urls.go
function main (line 15) | func main() {
FILE: licensedb/internal/db.go
type database (line 35) | type database struct
method Length (line 77) | func (db database) Length() int {
method VocabularySize (line 82) | func (db database) VocabularySize() int {
method QueryLicenseText (line 251) | func (db *database) QueryLicenseText(text string) map[string]float32 {
method queryLicenseAbstract (line 264) | func (db *database) queryLicenseAbstract(text string) map[string]float...
method addURLMatches (line 308) | func (db *database) addURLMatches(candidates map[string]float32, text ...
method queryLicenseAbstractNormalized (line 323) | func (db *database) queryLicenseAbstractNormalized(normalizedModerate ...
method scanForURLs (line 410) | func (db *database) scanForURLs(text string) map[string]bool {
method QueryReadmeText (line 423) | func (db *database) QueryReadmeText(text string, fs filer.Filer) map[s...
type substring (line 66) | type substring struct
constant numHashes (line 72) | numHashes = 154
constant similarityThreshold (line 73) | similarityThreshold = 0.75
function loadUrls (line 86) | func loadUrls(db *database) {
function loadNames (line 108) | func loadNames(db *database) {
function registerNameSubstrings (line 125) | func registerNameSubstrings(
function loadLicenses (line 145) | func loadLicenses() *database {
function tfidf (line 455) | func tfidf(freq int, docfreq int, ndocs int) float32 {
FILE: licensedb/internal/fastlog/fastlog.go
function Log2 (line 9) | func Log2(x float32) float32 {
function Log (line 17) | func Log(x float32) float32 {
FILE: licensedb/internal/fastlog/fastlog_test.go
function TestFastlog (line 10) | func TestFastlog(t *testing.T) {
FILE: licensedb/internal/investigation.go
function investigateCandidates (line 68) | func investigateCandidates(candidates map[string][]byte, f func(text []b...
function ExtractLicenseFiles (line 90) | func ExtractLicenseFiles(files []string, fs filer.Filer) map[string][]by...
function InvestigateLicenseTexts (line 117) | func InvestigateLicenseTexts(candidates map[string][]byte) map[string]ap...
function InvestigateLicenseText (line 123) | func InvestigateLicenseText(text []byte) map[string]float32 {
function ExtractReadmeFiles (line 129) | func ExtractReadmeFiles(files []string, fs filer.Filer) map[string][]byte {
function InvestigateReadmeTexts (line 147) | func InvestigateReadmeTexts(candidtes map[string][]byte, fs filer.Filer)...
function InvestigateReadmeText (line 155) | func InvestigateReadmeText(text []byte, fs filer.Filer) map[string]float...
function IsLicenseDirectory (line 160) | func IsLicenseDirectory(fileName string) bool {
FILE: licensedb/internal/nlp.go
function investigateReadmeFile (line 28) | func investigateReadmeFile(
function splitLicenseName (line 116) | func splitLicenseName(name string) []substring {
FILE: licensedb/internal/nlp_test.go
function TestSplitLicenseName (line 9) | func TestSplitLicenseName(t *testing.T) {
FILE: licensedb/internal/normalize/normalize.go
type Strictness (line 93) | type Strictness
constant Enforced (line 97) | Enforced Strictness = 0
constant Moderate (line 99) | Moderate Strictness = 1
constant Relaxed (line 101) | Relaxed Strictness = 2
function LicenseText (line 107) | func LicenseText(text string, strictness Strictness) string {
function Relax (line 172) | func Relax(text string) string {
function Split (line 186) | func Split(text string) []string {
FILE: licensedb/internal/normalize/normalize_test.go
function TestNormalizeLines (line 9) | func TestNormalizeLines(t *testing.T) {
FILE: licensedb/internal/processors/html2text.go
function parseHTMLEntity (line 19) | func parseHTMLEntity(entName []byte) []byte {
function HTML (line 103) | func HTML(htmlSource []byte) []byte {
FILE: licensedb/internal/processors/html2text_test.go
function TestHTML (line 9) | func TestHTML(t *testing.T) {
FILE: licensedb/internal/processors/markup.go
function Markdown (line 11) | func Markdown(text []byte) []byte {
function RestructuredText (line 19) | func RestructuredText(text []byte) []byte {
FILE: licensedb/internal/wmh/wmh.go
constant maxUint16 (line 16) | maxUint16 = 65535
type WeightedMinHasher (line 20) | type WeightedMinHasher struct
method MarshalBinary (line 68) | func (wmh *WeightedMinHasher) MarshalBinary() (data []byte, err error) {
method UnmarshalBinary (line 100) | func (wmh *WeightedMinHasher) UnmarshalBinary(data []byte) error {
method Hash (line 149) | func (wmh *WeightedMinHasher) Hash(values []float32, indices []int) []...
function NewWeightedMinHasher (line 35) | func NewWeightedMinHasher(dim int, sampleSize int, seed int64) *Weighted...
FILE: licensedb/internal/wmh/wmh_test.go
function TestWMHSerialize (line 9) | func TestWMHSerialize(t *testing.T) {
function TestWMHHash (line 24) | func TestWMHHash(t *testing.T) {
function TestWMHTrash (line 101) | func TestWMHTrash(t *testing.T) {
FILE: licensedb/licensedb.go
function Detect (line 19) | func Detect(fs filer.Filer) (map[string]api.Match, error) {
Condensed preview — 52 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,542K chars).
[
{
"path": ".github/dco.yml",
"chars": 25,
"preview": "require:\n members: false"
},
{
"path": ".gitignore",
"chars": 296,
"preview": ".idea\n.vscode\n# Binaries for programs and plugins\n*.exe\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.tes"
},
{
"path": ".travis.yml",
"chars": 1465,
"preview": "dist: trusty\n\nlanguage: go\n\ngo_import_path: gopkg.in/src-d/go-license-detector.v3\ngo:\n - 1.11.x\n - 1.12.x\n - 1.13.x\n\n"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3227,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
},
{
"path": "CONTRIBUTING.md",
"chars": 2549,
"preview": "# Contributing Guidelines\n\ngo-license-detector project is [Apache licensed](LICENSE.md) and accepts\ncontributions via Gi"
},
{
"path": "DCO",
"chars": 1420,
"preview": "Developer Certificate of Origin\nVersion 1.1\n\nCopyright (C) 2004, 2006 The Linux Foundation and its contributors.\n1 Lette"
},
{
"path": "FAILURES.md",
"chars": 16390,
"preview": "# License detection failures\n\nThis is a list of known license detection failures. Once there appear common patterns, go-"
},
{
"path": "LICENSE.md",
"chars": 10426,
"preview": "Apache License\n==============\n\n_Version 2.0, January 2004_ \n_<<http://www.apache.org/licenses/>>_\n\n### Terms and "
},
{
"path": "Makefile",
"chars": 1366,
"preview": "GOPATH ?= $(shell go env GOPATH)\nSPDX_DATA_VERSION ?= 3.8\n\nlicensedb/internal/assets/bindata.go: licenses.tar urls.csv n"
},
{
"path": "README.md",
"chars": 6733,
"preview": "## WE CONTINUE THE DEVELOPMENT AT [go-enry/go-license-detector](https://github.com/go-enry/go-license-detector). This re"
},
{
"path": "appveyor.yml",
"chars": 676,
"preview": "version: \"{build}\"\nplatform: x64\nimage: Visual Studio 2017\n\nenvironment:\n GO111MODULE: on\n\nbuild_script:\n - go mod ven"
},
{
"path": "cmd/license-detector/main.go",
"chars": 1379,
"preview": "// license-detector prints the most probable licenses for a repository\n// given either its path in the local file system"
},
{
"path": "cmd/license-detector/main_test.go",
"chars": 997,
"preview": "package main\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"gopkg.in/src-d/go-l"
},
{
"path": "go.mod",
"chars": 1457,
"preview": "module gopkg.in/src-d/go-license-detector.v3\n\nrequire (\n\tgithub.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc "
},
{
"path": "licensedb/analysis.go",
"chars": 1595,
"preview": "package licensedb\n\nimport (\n\t\"net/url\"\n\t\"os\"\n\t\"sort\"\n\t\"sync\"\n\n\t\"gopkg.in/src-d/go-license-detector.v3/licensedb/filer\"\n)"
},
{
"path": "licensedb/api/api.go",
"chars": 201,
"preview": "package api\n\n// Match is a detection result of a license with a confidence (0.0 - 1.0)\n// and a mapping of files to conf"
},
{
"path": "licensedb/dataset_test.go",
"chars": 1167,
"preview": "package licensedb\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"sync\"\n\t\"testing\"\n\n\t\"gopkg.in/src-d/go-license-detector.v3/licensedb/api\"\n\t\"go"
},
{
"path": "licensedb/filer/filer.go",
"chars": 10021,
"preview": "package filer\n\nimport (\n\t\"archive/zip\"\n\t\"bytes\"\n\t\"io/ioutil\"\n\t\"os\"\n\txpath \"path\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.c"
},
{
"path": "licensedb/filer/filer_test.go",
"chars": 2541,
"preview": "package filer\n\nimport (\n\t\"os\"\n\t\"sort\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc testFiler(t *testing.T, "
},
{
"path": "licensedb/filer/test_data/git/COMMIT_EDITMSG",
"chars": 253,
"preview": "init\n# Please enter the commit message for your changes. Lines starting\n# with '#' will be ignored, and an empty message"
},
{
"path": "licensedb/filer/test_data/git/HEAD",
"chars": 23,
"preview": "ref: refs/heads/master\n"
},
{
"path": "licensedb/filer/test_data/git/config",
"chars": 92,
"preview": "[core]\n\trepositoryformatversion = 0\n\tfilemode = true\n\tbare = false\n\tlogallrefupdates = true\n"
},
{
"path": "licensedb/filer/test_data/git/description",
"chars": 73,
"preview": "Unnamed repository; edit this file 'description' to name the repository.\n"
},
{
"path": "licensedb/filer/test_data/git/info/exclude",
"chars": 240,
"preview": "# git ls-files --others --exclude-from=.git/info/exclude\n# Lines that start with '#' are comments.\n# For a project mostl"
},
{
"path": "licensedb/filer/test_data/git/logs/HEAD",
"chars": 160,
"preview": "0000000000000000000000000000000000000000 334a82b19a7c893d3807ea52ba35ff2170c296cc Vadim Markovtsev <vadim@sourced.tech> "
},
{
"path": "licensedb/filer/test_data/git/logs/refs/heads/master",
"chars": 160,
"preview": "0000000000000000000000000000000000000000 334a82b19a7c893d3807ea52ba35ff2170c296cc Vadim Markovtsev <vadim@sourced.tech> "
},
{
"path": "licensedb/filer/test_data/git/objects/33/4a82b19a7c893d3807ea52ba35ff2170c296cc",
"chars": 66,
"preview": "x\u0001M\n0\u0010@a9\u0005O\u0017p~Lh\u001aH9\u0011ܾbݶ@~:i\u0013ӂ(W\u00193rv\u0007K\u0018i#FsZB ÇSUarѢJ\\o@v\u001c3\u000e&*\u0003\u000f\b:"
},
{
"path": "licensedb/filer/test_data/git/refs/heads/master",
"chars": 41,
"preview": "334a82b19a7c893d3807ea52ba35ff2170c296cc\n"
},
{
"path": "licensedb/filer/test_data/local/one",
"chars": 6,
"preview": "hello\n"
},
{
"path": "licensedb/filer/test_data/local/two/three",
"chars": 6,
"preview": "world\n"
},
{
"path": "licensedb/internal/assets/bindata.go",
"chars": 4334943,
"preview": "// Code generated by go-bindata.\n// sources:\n// licenses.tar\n// urls.csv\n// names.csv\n// DO NOT EDIT!\n\npackage assets\n\ni"
},
{
"path": "licensedb/internal/assets/extract_names.go",
"chars": 639,
"preview": "// +build make\n\npackage main\n\nimport (\n\t\"encoding/csv\"\n\t\"encoding/json\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"os\"\n\t\"path\"\n)\n\nfunc main()"
},
{
"path": "licensedb/internal/assets/extract_urls.go",
"chars": 1026,
"preview": "// +build make\n\npackage main\n\nimport (\n\t\"encoding/csv\"\n\t\"encoding/json\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"os\"\n\t\"path\"\n\t\"strings\"\n)\n\n"
},
{
"path": "licensedb/internal/db.go",
"chars": 13268,
"preview": "package internal\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"encoding/csv\"\n\t\"fmt\"\n\t\"index/suffixarray\"\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\tpaths"
},
{
"path": "licensedb/internal/fastlog/fastlog.go",
"chars": 578,
"preview": "package fastlog\n\nimport \"math\"\n\n// The following two functions were copied from fastapprox (BSD license).\n// They do not"
},
{
"path": "licensedb/internal/fastlog/fastlog_test.go",
"chars": 441,
"preview": "package fastlog\n\nimport (\n\t\"math\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestFastlog(t *testing.T) {\n"
},
{
"path": "licensedb/internal/investigation.go",
"chars": 4957,
"preview": "package internal\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\tpaths \"path\"\n\t\"regexp\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"gopkg.in/src-d/go-license-detec"
},
{
"path": "licensedb/internal/nlp.go",
"chars": 4235,
"preview": "package internal\n\nimport (\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/jdkato/prose/chunk\"\n\t\"github.com/jdkato/prose/tag\""
},
{
"path": "licensedb/internal/nlp_test.go",
"chars": 601,
"preview": "package internal\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestSplitLicenseName(t *testing.T) "
},
{
"path": "licensedb/internal/normalize/normalize.go",
"chars": 6436,
"preview": "package normalize\n\nimport (\n\t\"bytes\"\n\t\"regexp\"\n\t\"strings\"\n\t\"unicode\"\n\n\t\"golang.org/x/text/runes\"\n\t\"golang.org/x/text/tra"
},
{
"path": "licensedb/internal/normalize/normalize_test.go",
"chars": 889,
"preview": "package normalize\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestNormalizeLines(t *testing.T) {"
},
{
"path": "licensedb/internal/processors/html2text.go",
"chars": 3271,
"preview": "package processors\n\nimport (\n\t\"bytes\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"golang.org/x/net/html\"\n)\n\nvar (\n\tskipHTMLRe ="
},
{
"path": "licensedb/internal/processors/html2text_test.go",
"chars": 1350,
"preview": "package processors\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestHTML(t *testing.T) {\n\ttext :="
},
{
"path": "licensedb/internal/processors/markup.go",
"chars": 685,
"preview": "package processors\n\nimport (\n\t\"bytes\"\n\n\trst \"github.com/hhatto/gorst\"\n\t\"github.com/russross/blackfriday/v2\"\n)\n\n// Markdo"
},
{
"path": "licensedb/internal/wmh/wmh.go",
"chars": 5999,
"preview": "package wmh\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"log\"\n\t\"math\"\n\t\"reflect\"\n\t\"unsafe\"\n\n\t\"golang.org/x/exp/rand\"\n\t\"gonum"
},
{
"path": "licensedb/internal/wmh/wmh_test.go",
"chars": 2492,
"preview": "package wmh\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestWMHSerialize(t *testing.T) {\n\thasher"
},
{
"path": "licensedb/licensedb.go",
"chars": 1605,
"preview": "package licensedb\n\nimport (\n\t\"errors\"\n\tpaths \"path\"\n\n\t\"gopkg.in/src-d/go-license-detector.v3/licensedb/api\"\n\t\"gopkg.in/s"
}
]
// ... and 5 more files (download for full content)
About this extraction
This page contains the full source code of the src-d/go-license-detector GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 52 files (4.2 MB), approximately 1.1M tokens, and a symbol index with 125 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.