on master help sign in
34 files changed+1247−185
since splitsnapshots
unifiedsplit
.github/workflows/data-update.yml+1−1 .github/workflows/integration.yml+32−3 .gitignore+2 .pylintrc+1−1 Dockerfile+5−4 docs/dev/engine_overview.rst+1−1 manage+4−4 requirements-dev.txt+13−12 requirements.txt+5−5 searx/autocomplete.py+24−7 searx/data/ahmia_blacklist.txt+557 searx/data/useragents.json+4−3 searx/engines/__init__.py+1−1 searx/engines/command.py+1−1 searx/engines/gigablast.py+24−13 searx/engines/google.py+20−11 searx/engines/mysql_server.py+2 searx/engines/prowlarr.py+80 searx/engines/startpage.py+100−20 searx/engines/tineye.py+86 searx/engines/xpath_flex.py+121 searx/engines/yggtorrent.py+2−2 searx/network/__init__.py+26−27 searx/network/client.py+14−23 searx/network/network.py+8 searx/results.py+8−2 searx/search/checker/impl.py+1−1 searx/search/processors/online.py+4−3 searx/settings.yml+43−12 searx/templates/oscar/result_templates/products.html+2−1 searx/utils.py+12−6 searx/webapp.py+42−14 tests/unit/test_external_bangs.py−6 utils/searx.sh+1−1
.github/workflows/data-update.yml+1−1
@@ -29,7 +29,7 @@ jobs:
2929 - name: Set up Python
3030 uses: actions/setup-python@v2
3131 with:
32− python-version: '3.9'
32+ python-version: '3.10'
3333 architecture: 'x64'
3434
3535 - name: Install Python dependencies
.github/workflows/integration.yml+32−3
@@ -13,7 +13,7 @@ jobs:
1313 strategy:
1414 matrix:
1515 os: [ubuntu-20.04]
16− python-version: [3.6, 3.7, 3.8, 3.9]
16+ python-version: [3.7, 3.8, 3.9, "3.10"]
1717 steps:
1818 - name: Checkout
1919 uses: actions/checkout@v2
@@ -56,6 +56,17 @@ jobs:
5656 uses: actions/checkout@v2
5757 - name: Install Ubuntu packages
5858 run: sudo ./utils/searx.sh install packages
59+ - name: Set up Python
60+ uses: actions/setup-python@v2
61+ with:
62+ python-version: '3.9'
63+ architecture: 'x64'
64+ - name: Cache Python dependencies
65+ id: cache-python
66+ uses: actions/cache@v2
67+ with:
68+ path: ./local
69+ key: python-ubuntu-20.04-3.9-${{ hashFiles('requirements*.txt', 'setup.py') }}
5970 - name: Install node dependencies
6071 run: make V=1 node.env
6172 - name: Build themes
@@ -68,14 +79,21 @@ jobs:
6879 - name: Checkout
6980 uses: actions/checkout@v2
7081 with:
82+ fetch-depth: '0'
7183 persist-credentials: false
7284 - name: Install Ubuntu packages
7385 run: sudo ./utils/searx.sh install buildhost
7486 - name: Set up Python
7587 uses: actions/setup-python@v2
7688 with:
77− python-version: '3.9'
89+ python-version: '3.10'
7890 architecture: 'x64'
91+ - name: Cache Python dependencies
92+ id: cache-python
93+ uses: actions/cache@v2
94+ with:
95+ path: ./local
96+ key: python-ubuntu-20.04-3.9-${{ hashFiles('requirements*.txt', 'setup.py') }}
7997 - name: Build documentation
8098 run: |
8199 make V=1 docs.clean docs.html
@@ -97,7 +115,7 @@ jobs:
97115 - documentation
98116 env:
99117 DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
100− runs-on: ubuntu-18.04
118+ runs-on: ubuntu-20.04
101119 steps:
102120 - name: Checkout
103121 if: env.DOCKERHUB_USERNAME != null
@@ -105,6 +123,17 @@ jobs:
105123 with:
106124 # make sure "make docker.push" can get the git history
107125 fetch-depth: '0'
126+ - name: Set up Python
127+ uses: actions/setup-python@v2
128+ with:
129+ python-version: '3.9'
130+ architecture: 'x64'
131+ - name: Cache Python dependencies
132+ id: cache-python
133+ uses: actions/cache@v2
134+ with:
135+ path: ./local
136+ key: python-ubuntu-20.04-3.9-${{ hashFiles('requirements*.txt', 'setup.py') }}
108137 - name: Set up QEMU
109138 if: env.DOCKERHUB_USERNAME != null
110139 uses: docker/setup-qemu-action@v1
.gitignore+2
@@ -26,3 +26,5 @@ dist/
2626local/
2727gh-pages/
2828searx.egg-info/
29+.env
30+geckodriver.log
.pylintrc+1−1
@@ -59,7 +59,7 @@ confidence=
5959# --enable=similarities". If you want to run only the classes checker, but have
6060# no Warning level messages displayed, use"--disable=all --enable=classes
6161# --disable=W"
62−disable=bad-whitespace, duplicate-code
62+disable=bad-whitespace, duplicate-code, consider-using-f-string
6363
6464# Enable the message, report, category or checker with the given id(s). You can
6565# either give multiple identifier separated by comma (,) or put this option
Dockerfile+5−4
@@ -1,4 +1,4 @@
1−FROM alpine:3.12
1+FROM alpine:3.15
22ENTRYPOINT ["/sbin/tini","--","/usr/local/searx/dockerfiles/docker-entrypoint.sh"]
33EXPOSE 8080
44VOLUME /etc/searx
@@ -46,18 +46,19 @@ RUN apk upgrade --no-cache \
4646 uwsgi \
4747 uwsgi-python3 \
4848 brotli \
49− && pip3 install --upgrade pip \
49+ && pip3 install --upgrade pip wheel setuptools \
5050 && pip3 install --no-cache -r requirements.txt \
5151 && apk del build-dependencies \
5252 && rm -rf /root/.cache
5353
54−COPY --chown=searx:searx . .
54+COPY searx ./searx
55+COPY dockerfiles ./dockerfiles
5556
5657ARG TIMESTAMP_SETTINGS=0
5758ARG TIMESTAMP_UWSGI=0
5859ARG VERSION_GITCOMMIT=unknown
5960
60−RUN su searx -c "/usr/bin/python3 -m compileall -q searx"; \
61+RUN /usr/bin/python3 -m compileall -q searx; \
6162 touch -c --date=@${TIMESTAMP_SETTINGS} searx/settings.yml; \
6263 touch -c --date=@${TIMESTAMP_UWSGI} dockerfiles/uwsgi.ini; \
6364 if [ ! -z $VERSION_GITCOMMIT ]; then\
docs/dev/engine_overview.rst+1−1
@@ -171,7 +171,7 @@ headers set HTTP header information
171171data set HTTP data information
172172cookies set HTTP cookies
173173verify bool Performing SSL-Validity check
174−allow_redirects bool Follow redirects
174+follow_redirects bool Follow redirects
175175max_redirects int maximum redirects, hard limit
176176soft_max_redirects int maximum redirects, soft limit. Record an error but don't stop the engine
177177raise_for_httperror bool True by default: raise an exception if the HTTP code of response is >= 300
manage+4−4
@@ -13,7 +13,7 @@ source_dot_config
1313
1414PY_SETUP_EXTRAS='[test]'
1515NPM_PACKAGES="less@2.7 less-plugin-clean-css grunt-cli"
16−GECKODRIVER_VERSION="v0.28.0"
16+GECKODRIVER_VERSION="v0.30.0"
1717# SPHINXOPTS=
1818
1919# These py files are linted by test.pylint(), all other files are linted by
@@ -224,7 +224,7 @@ docker.build() {
224224
225225 # build Docker image
226226 build_msg DOCKER "Building image ${SEARX_IMAGE_NAME}:${SEARX_GIT_VERSION}"
227− sudo docker build \
227+ docker build \
228228 --build-arg GIT_URL="${GIT_URL}" \
229229 --build-arg SEARX_GIT_VERSION="${SEARX_GIT_VERSION}" \
230230 --build-arg VERSION_GITCOMMIT="${VERSION_GITCOMMIT}" \
@@ -236,8 +236,8 @@ docker.build() {
236236 -t "${SEARX_IMAGE_NAME}:latest" -t "${SEARX_IMAGE_NAME}:${SEARX_GIT_VERSION}" .
237237
238238 if [ "$1" = "push" ]; then
239− sudo docker push "${SEARX_IMAGE_NAME}:latest"
240− sudo docker push "${SEARX_IMAGE_NAME}:${SEARX_GIT_VERSION}"
239+ docker push "${SEARX_IMAGE_NAME}:latest"
240+ docker push "${SEARX_IMAGE_NAME}:${SEARX_GIT_VERSION}"
241241 fi
242242 )
243243 dump_return $?
requirements-dev.txt+13−12
@@ -1,19 +1,20 @@
11mock==4.0.3
22nose2[coverage_plugin]==0.10.0
33cov-core==1.15.0
4−pycodestyle==2.7.0
5−pylint==2.10.2
6−splinter==0.15.0
7−transifex-client==0.14.3
8−selenium==3.141.0
9−twine==3.4.2
10−Pallets-Sphinx-Themes==2.0.1
4+pycodestyle==2.8.0
5+pylint==2.12.2
6+splinter==0.17.0
7+transifex-client==0.14.3; python_version < '3.10'
8+transifex-client==0.12.1; python_version == '3.10'
9+selenium==4.1.0
10+twine==3.7.1
11+Pallets-Sphinx-Themes==2.0.2
1112docutils==0.16
12−Sphinx==4.2.0
13−sphinx-issues==1.2.0
14−sphinx-jinja==1.1.1
13+Sphinx==4.4.0
14+sphinx-issues==3.0.1
15+sphinx-jinja==1.4.0
1516sphinx-tabs==3.2.0
1617sphinxcontrib-programoutput==0.17
1718sphinx-autobuild==2021.3.14
18−linuxdoc==20210324
19−aiounittest==1.4.0
19+linuxdoc==20211220
20+aiounittest==1.4.1
requirements.txt+5−5
@@ -1,16 +1,16 @@
11certifi==2021.10.8
22babel==2.9.1
33flask-babel==2.0.0
4−flask==1.1.2
5−jinja2==3.0.2
6−lxml==4.6.3
4+flask==2.0.2
5+jinja2==3.0.3
6+lxml==4.7.1
77pygments==2.8.0
88python-dateutil==2.8.2
99pyyaml==6.0
10−httpx[http2]==0.19.0
10+httpx[http2]==0.21.3
1111Brotli==1.0.9
1212uvloop==0.16.0; python_version >= '3.7'
1313uvloop==0.14.0; python_version < '3.7'
14−httpx-socks[asyncio]==0.4.1
14+httpx-socks[asyncio]==0.7.2
1515langdetect==1.0.9
1616setproctitle==1.2.2
searx/autocomplete.py+24−7
@@ -24,6 +24,7 @@ from httpx import HTTPError
2424
2525
2626from searx import settings
27+from searx.data import ENGINES_LANGUAGES
2728from searx.network import get as http_get
2829from searx.exceptions import SearxEngineResponseException
2930
@@ -35,6 +36,22 @@ def get(*args, **kwargs):
3536 return http_get(*args, **kwargs)
3637
3738
39+def brave(query, lang):
40+ # brave search autocompleter
41+ url = 'https://search.brave.com/api/suggest?{query}'
42+
43+ resp = get(url.format(query=urlencode({'q': query})))
44+
45+ results = []
46+
47+ if resp.ok:
48+ data = loads(resp.text)
49+ for suggestion in data[1]:
50+ results.append(suggestion)
51+
52+ return results
53+
54+
3855def dbpedia(query, lang):
3956 # dbpedia autocompleter, no HTTPS
4057 autocomplete_url = 'https://lookup.dbpedia.org/api/search.asmx/KeywordSearch?'
@@ -77,12 +94,11 @@ def google(query, lang):
7794
7895def startpage(query, lang):
7996 # startpage autocompleter
80− url = 'https://startpage.com/do/suggest?{query}'
81−
82− resp = get(url.format(query=urlencode({'query': query}))).text.split('\n')
83− if len(resp) > 1:
84− return resp
85− return []
97+ lui = ENGINES_LANGUAGES['startpage'].get(lang, 'english')
98+ url = 'https://startpage.com/suggestions?{query}'
99+ resp = get(url.format(query=urlencode({'q': query, 'segment': 'startpage.udog', 'lui': lui})))
100+ data = resp.json()
101+ return [e['text'] for e in data.get('suggestions', []) if 'text' in e]
86102
87103
88104def swisscows(query, lang):
@@ -120,7 +136,8 @@ def wikipedia(query, lang):
120136 return []
121137
122138
123−backends = {'dbpedia': dbpedia,
139+backends = {'brave': brave,
140+ 'dbpedia': dbpedia,
124141 'duckduckgo': duckduckgo,
125142 'google': google,
126143 'startpage': startpage,
searx/data/ahmia_blacklist.txt+557
@@ -21,6 +21,7 @@
21210026fafbe1b7235b3a4d8eb854060517
222200290607695b936f1b9adad601928150
2323002ab3c58ec26372ca8a16fa04097fad
24+002b46dff2ce4613c330b92d4d71d0f0
2425002c81d45bb05fbbd77dd5eea0be3eae
2526002ca30d3c48fbabec4748d1ad8af561
2627002f82d895d220051c5c490f07bd2f06
@@ -54,6 +55,7 @@
5455005aa0ccff6de439ab4e4e628b0552af
5556005b01428e5ee8cc417a644bca40a5c2
5657005b7acb3c2804853e576aa65663bdce
58+0061c1bf5df10a523c4ab5576958a4b4
57590061c5b5415192023f7739d4ee9a5af5
586000622d07e1cdb94e1aa141662a0a62fd
59610064f431d0ddfdc3f6dfdccdeee12848
@@ -83,6 +85,7 @@
838500929b53c605e9e50cc818f382be038f
848600998ecf41af4b2a4fd0af9b905ed429
8587009a9d8c06a484906cbb5ddf6cdcc548
88+009dc638a21ee6eac7d6bb201916cac1
8689009e6a6fea5f7e294bf52a1b9b9fbec4
879000a150cf57d2a0f73f4467c40d15dc6f
889100a2d9e07f21e3cb1c9035e60393f552
@@ -150,9 +153,11 @@
150153010d9ec5dc9f06a8e9f96cdcec57f50d
151154010ea7123ee29776e390dba449cf9c5c
15215501110c139c92706867ecf10a66fff2b7
156+01112c8bd286e8f54f4a6960bc5f1ebf
1531570111f597eb58bcf715807b568b2a1d86
1541580112d1ebc8e2bddd8e1b2ee800dd15e6
15515901137cb5055be9e9e8f28231390439aa
160+011385fc99a8a4338d417d787c469303
1561610116d303c7f51659900e56455e80ddd9
15716201177c79cc4dae823970094c4822b6fb
158163011b5d530cece0a3fed2f1bee9a12256
@@ -312,6 +317,7 @@
31231702274c10044d60a4660b04aee89d38d5
31331802282271f3bc4c150f2ec1db5af6bfca
314319022d50338ff9502a3dfe34c4928b0762
320+022e619b0f3bd39d5996f8c01524e98b
31532102308eb942978927cc047c9dc98ca821
31632202338f61dcfc26b78eab670857683d91
317323023434be07b0f20b4c0633a67e3f68cd
@@ -326,6 +332,7 @@
32633202437a3d51e6c1b33bb2e3fe8be5e472
3273330245236428a5f036063fa6e2aa1564ef
32833402458a0d337e7dd8364f4bdf61a088ec
335+02464024db78d48112dd43c9b4ba6d17
3293360248a47ab75b938498a34463c56d1973
3303370248b116ecd91230882a25a65f7faeef
331338024b09b9bcdad171018d70220d049c4b
@@ -449,6 +456,7 @@
449456032b5f6cac2dfdf8b8839f3db71629a4
450457032db122dc5dbc4cffbd0e3b627130b8
45145803335b010c7d458cc1008c4649162849
459+0333fe7404cd8ec3503514a45ef899b7
452460033ab26e48d62c0251b1df6c407bf8c1
453461033bbca1d0b12eba0382a832869d595c
454462033e1cf13d22f08baf70113e58087714
@@ -756,6 +764,7 @@
75676405600a454c17ac66045de113dbcaaa0b
75776505608b4aa4af64fccff5c391070b7a95
7587660560a2aa066a84e1cd0cea4c9b3669cb
767+0560fc95bf1960ad3465c8f8346f4ac3
75976805629a329849675dbc855ddb2f30a030
7607690564aa25224fcde6f7ce48804b026826
76177005666f10162b8efc1aed3b9cc4640da0
@@ -888,6 +897,7 @@
88889706685edd26e0c9c00916bc0f7d18b9bd
8898980668a64fb9a6bd03e52a14f9ab7d0de3
890899066984aa7c1c764863bf7ef463f21d88
900+066a5962210d9e19c3cb13ba53897692
891901066bb32fc53b81636c16f0efe3ed4b7f
892902066bc0e33c79a70a523de34fa4663f9c
893903066bc6225f916973c337c85d11c71a13
@@ -907,6 +917,7 @@
90791706868ec175f1a7f63bcbcd75cd52021e
90891806870453f12b6634fb80cd34c2970fdb
90991906890d464ffdc2c0de3eb4bc716579c7
920+06894cd5ad4f95db3bdcb3d5239699a6
91092106897affbd01a6504d1dfd0ff6d64248
911922068dbe4d537dad2482594cc8c95af736
912923068dfeca71ed47d4783d078911f6f68e
@@ -921,6 +932,7 @@
9219320699a4c7c7ca258b8288eb762fe2d0f4
922933069bf1b5ece5331f43f294d12a015596
923934069d3997ddc5b2cf8a9d5ce552e77e80
935+069f973b036df806798862670b6d8bb6
92493606a2e096a6643cefa67dc90b198f7330
92593706a5c79201fae7f0bf7d3b0db3344f16
92693806a7408d6b96066373f9ad6ac3d8405d
@@ -997,6 +1009,7 @@
9971009071b7a890f5676749972e54979ce85cc
9981010071c4dde6d6625617de34d13634d9b91
9991011071e441f2b19555fa57e4071b82ad0fb
1012+071edaf1028d8b1618a2794471eea91d
10001013071f640ac3f78426db21b336b11c6cc4
10011014071fbe1ce5de68186033afa21258e162
100210150722443c456f887e45e19a6fe634201b
@@ -1114,6 +1127,7 @@
1114112707da155f5b679c64db6b08b0b88770d3
1115112807db784b509078fb0b00c5080afd2b95
1116112907dd3c18632efda46f7e37992997cc13
1130+07e05a07d7d189564382fa393a44b294
1117113107e46b8473c79acc80d9ea1bb37a1108
1118113207e629fc2615045100772d76afd37f46
1119113307e62e3d91e347884d791fc99ca8df16
@@ -1135,6 +1149,7 @@
1135114908048520d1143931ddc40214ab0fa949
113611500806ca6d476fd125103bf9acf94e93ff
113711510809e36b243d61464f89b21406dc059f
1152+080e852d3663838b1b4328b6b6b6c7ec
11381153081106d528ddbda7a3640f1eeb6f0e31
1139115408113f3ab8c4e3372205b5dfbf63c4e3
1140115508127862575c94ea7b935e832355570f
@@ -1187,6 +1202,7 @@
11871202086765ebf69c91c379f4c90aa3de176b
1188120308681f6e87d4897bc6b1096a0e737178
118912040868c84d232af450c2f7e7cece468141
1205+08691060fac3686183386b01064ea056
119012060869d08f8e7c01a99bc1c2ef5caf8542
11911207086a13be9f1cb2697537579bcc68c4f8
11921208086c23f66e6a00ac43387eac58297d8e
@@ -1236,6 +1252,7 @@
1236125208b7e8f6e0e65008e439d2a098f42b88
1237125308b8d16bdb34c0781de8335ad523c5e7
1238125408b9316ccb75723da6f5c99b5e20a0e0
1255+08bc42d3b93f705f88240b13f517c786
1239125608bc72ff8e9f3476c6f18c73efed3b3d
1240125708c15b037637db9a12d6ed64546f6bcf
1241125808c3f9013740af63e014e326ee0ebd1c
@@ -1428,6 +1445,7 @@
142814450a1cf347976b37c7169f2caf49202b96
142914460a1d7c682eccbf088c8953d77c1ba199
143014470a21bae70a0f4407b4c997f24b3458e5
1448+0a21d8b4aab7cae46c22024058ff4e48
143114490a246ad92b21a5f4562b39761c3e0bff
143214500a24b9acace735db35badb7c363c8b67
143314510a25bcd7ec874651b629df44483a2965
@@ -1474,11 +1492,13 @@
147414920a7b0ca4f197bced3fb77e3a10e5fe4d
147514930a7bed806fa74c05cd03adddb8b46def
147614940a7de060adf4be59403efa8a2c2b5fc9
1495+0a7fde9632b84114c2b27b5184d49f9d
147714960a8131ceceb4e34ed068c8889b9eca5e
147814970a82fc8bc070b11f9f3a647a2023f865
147914980a83f507727aa91b964140b30822786f
148014990a869a5ee6bba473166cc015f487d5eb
148115000a86d7cee84b1c74c6836b5435d4d184
1501+0a8b65b4f31263e9796bdba9bfe60364
148215020a8c3a73bf669ab7a319c2935de39c0a
148315030a8d4a78c16206937dc1543764e663a3
148415040a8f9e9a42d50771a6d02f262326e58c
@@ -1512,6 +1532,7 @@
151215320ac7546d43ce1d0ae7f50ef52f44fe8e
151315330ac7bfb6d3d3c11cd667655aa5bdcf19
151415340ac8020d4b6feafadc1d05ac1c230b18
1535+0ac8b2956b547d52fe8a6fba0627800a
151515360acba25d4448954630fcadfe86b19788
151615370ace573f0bdb40e0f5eae31307f04148
151715380acebed21123b9b3ab6f74b94653e54e
@@ -1556,6 +1577,8 @@
155615770b1e04e79e7fcf88906b256e159c1165
155715780b2161e4271374ea76a5a42e08aedbd4
155815790b21c031c7505e2e5564cf415700360d
1580+0b23d5cb7da9d57e894befaea1a1dbe9
1581+0b23fd90296356b4c2f02f73b13bcea2
155915820b24de38c8ddc8a94901840571bb9225
156015830b2ab129e154df85e1ef572ae6972d62
156115840b2be164b8795610b012c3a62f98a5ec
@@ -1579,6 +1602,7 @@
157916020b50054176eb76dbd0db47469a2c674a
158016030b506f8508bfdcd2a94a1cdbb6a86abf
158116040b51036353765cb7d620fe9535f3f84f
1605+0b516c083269fe9c5f2952d798e40658
158216060b52d83733c975490471610d585ff239
158316070b53bc66e3016620ee4b3af927d44637
158416080b55ffedb2eb824fbadb9b7d73cd9373
@@ -1640,6 +1664,7 @@
164016640bb515f4d60aefb9dcc77ccea6cceb38
164116650bb56d105bba424b8ecf75ac962e34f8
164216660bb978f51cf0d2ff421bd1731d076495
1667+0bbd73e5598225d04fcd64d101ac0b7e
164316680bbd9882fa33feea5af3694820bbe122
164416690bbfb01b2aa4ff123c3c34d16edd8327
164516700bc1f9f26f2adbf7627a468598d64ff4
@@ -1793,6 +1818,7 @@
179318180cc78daeac83e97e557d2015f8b3b97c
179418190cc7a3cfafc8373282977127bcd6b67f
179518200cc87829681460790e2c90d8c2582bba
1821+0cca0ff030356b8184164364342b01ab
179618220ccabb436f87e1cca31553dde65c12e9
179718230ccb730d9f4d2ee3aff4bd828581caee
179818240ccc0625f04f77b5ba39c441ba039f17
@@ -1839,6 +1865,7 @@
183918650d0c136f274ff16dbcf5565ca73b4f8b
184018660d0c27351b2c8da3fe3a85f05c18c623
184118670d0c6f0ee7f217b87cda6b34778541ff
1868+0d0f4f4e0a493ac6aa9de96389a94bb1
184218690d16397862d7ce918e02c9c638c7c372
184318700d1701d38fe96bb0f99a08a303c30cb9
184418710d171af6ab000d376e5a3f8941e91430
@@ -1855,6 +1882,7 @@
185518820d2ed1676e5b87dd52ce8a018f5d750d
185618830d31748dd012bfd45f543f6e25a7dbe7
185718840d325484f4c13489acae6d3b7d762c61
1885+0d37065f3c8d19f107b1b24540bbc659
185818860d37767ce986889d6641fa06293854c2
185918870d380e7e0790f512a4066014af8ac82c
186018880d3e2ec94521b5bdfbcedfcb7fb69092
@@ -2022,6 +2050,7 @@
202220500e72caa15ab2ea628abd0257fa15f468
202320510e736a09e9986ffc6e70b1a1751b4b44
202420520e75bec2ef3a0939a2990901eb667610
2053+0e75fe2072d580009f94ec4e53079815
202520540e78348146c815da304ba1ac4cea89e6
202620550e7846da88f00f8d1f181f06c97468c9
202720560e797f413e0a82f0e140121afb1a5b59
@@ -2090,6 +2119,7 @@
209021190ef10b927be418c643023890c2451e4c
209121200ef27063129ee230e92180aa0992a1fe
209221210ef32cdcc2a9bb9cfb1c8f645f3e6abd
2122+0ef4e6740b094d8fa2284d960bf09e03
209321230ef6282ec935b95a8d828206d36125d4
209421240ef824e995d84d472b82161c95c92540
209521250ef83cfa7eedf7387c9cb82cc73ce77b
@@ -2242,6 +2272,7 @@
224222720ffb26d29a23cb71cf0ed64cb53698d4
224322730ffbed1cdda7c40e39acf2fa5fc68c3b
224422740ffceb8ae6d1aeb996120d1de514db3e
2275+0ffe080d4b68079c405bbb7c45bf283c
224522760ffe4ed3b775c60f318791b4b23ffb09
224622771001305fc0cabacaa99cab32ecbb57c4
224722781003d8f11899378ea986f4e84cc98dd5
@@ -2327,6 +2358,7 @@
2327235810bfddd341c38bdfdda7019954993c22
2328235910c505971da74b2184a5483a5123d6b8
2329236010c644ebcac7b7a9af3693d483a6c7ab
2361+10c6bd12aa0afe2d89d6a3d90d1bb700
2330236210ca37900ef4ca41d54bc2a01b1e114c
2331236310ce92a25225610d91949d73d86ee95c
2332236410cf4ab5a4aeb7542fb26c176c0fe66b
@@ -2351,6 +2383,7 @@
2351238310fc5488af8bfbd440f04af11f1bccca
2352238410fd1043393f347d937844e4f7e0b296
2353238510fe79503b2d6008bc65b545bec4feae
2386+10ff864496e9548318aae7523fa67677
2354238711009862226b73c427ee4110f52208bf
235523881105607e7107615b03976eb3af09c8be
2356238911056a7a40fea6844e4551b87c8dd989
@@ -2374,6 +2407,7 @@
237424071124c4345681d53b3cc51bd9dea25a48
237524081124d4df22a7afc18595ce9a938d54f7
23762409112607c3124d29a51cc71d3d16eb4777
2410+1128ebed370cc8c5555856cbc2384374
23772411112dd50057613a5881277f75917e4805
23782412112de4585c243a58e98c749744c53acf
23792413112dfe847f7f6d80d8aea2f2c456b3d3
@@ -2399,6 +2433,7 @@
239924331145886091b199a2837bbb67cb3c9225
240024341146d2e9235992a099ab55371d1e5398
24012435114842e8ea39a081cce29167c5d5e353
2436+1149ee21885bfcb913177637c23fbdb4
24022437114b3c2879a08d9a4b8faf68122c805d
24032438114f9ee4cd90535daacb64cb5a1fc96f
2404243911517d554441e7e5281e55602406bcdd
@@ -2455,6 +2490,7 @@
2455249011b76eae548ed79cede3592c6bd50c30
2456249111b7782c8868c715771357bd87dc8422
2457249211ba2115d14f0451c999e8d63e29a294
2493+11baf91b20b0040b426fd4ed5845355b
2458249411bdd976861834ac9025e5f7681bff6e
2459249511be0d0ce8a1ca91041f8a7ff991022f
2460249611bfaa40f390a20c5b1d0b2a08a95726
@@ -2477,6 +2513,7 @@
2477251311d9af9fc714fd12988975a4a21f92ad
2478251411db55c2f325813feea16af3e6a433ea
2479251511db6ae6137ed18f695cd6a9a333b2b3
2516+11dc9f9743bfb9eae07f69b953b26426
2480251711deac2627b0bf1e7c81c4f026464dea
2481251811df5de877a48379b0f11611dc571e42
2482251911e3e1dad8585993f1360c6fea29326c
@@ -2628,6 +2665,7 @@
26282665131881688c24aeb84662f1bf4ffa6f34
26292666131dcbc5e15cfb747d829d1479af166c
2630266713201c16878e3ef9a97eea2e859e05f1
2668+13224811a83811db420021b1bec7b59e
263126691322c8e97f4a68d957c3513d5d57769e
26322670132368fd5de0bdfa83950b5726018c98
263326711323ada56bb235fdb3043c8bebcc4d9a
@@ -2668,6 +2706,7 @@
266827061361723797c7c0b1b468709f71efb4b7
26692707136416f89dc644c844558dda59162007
2670270813644c342bf91c00ffb7b6150b9e4ea1
2709+136508e272d0826799191dadda8bea61
2671271013671d538df10681fb4a6bd3f196fa3a
2672271113683fa48647fd8377f0e961a3121651
267327121368b418d08d979fd0ad4bf82ffbe2ff
@@ -2715,11 +2754,13 @@
2715275413c6dcc3911fd9e80b78cc118ad6a855
2716275513c714d1fc978d58ea56357d1d5219cd
2717275613c73da60d64b4b3b4a841e11290aed6
2757+13c81d82802fb195d1375a168dba834f
2718275813ca32082fbd23791283ebc0eecc0966
2719275913ca63f638ffbeda82970d4c2895fc70
2720276013cc674232435e22462275038cd55362
2721276113cc6e999717e8c0e5fc8def220bec54
2722276213cdb5dbdf77a501e116107603c03b8a
2763+13d18aec3e3a4020f6173d34bcde925d
2723276413d18d9635ffb0ca0d63fb618a2348af
2724276513d26abbcd4c895bf2f7b4a2e4be4389
2725276613d3a35f256205e9ecb9792a9431844a
@@ -2800,6 +2841,7 @@
280028411451986e8680aac14c0bf38330395d7a
280128421455a351ba9405fe99814a0bc38358b2
2802284314579e025738e15dcc87bc1a0837bda9
2844+145a01c3ca940dab1b16b2c214695dc6
28032845145a8aa1cb6e9fe8a28d158f818b2473
28042846145c2c96cb11b838fedbb7dc66d0dcbd
28052847145c89a0f78673b8c4653358fb80fc32
@@ -2814,6 +2856,7 @@
281428561475a2e5cd012ae4fb8b921202bb4da3
28152857147a65ba555cc0e49b13e63b53cba034
28162858147b92a414e32e270678eacd58bc4754
2859+147c1018686542faee057649a462d6f2
28172860147c9d7a91b0258a01258488e1862d33
28182861147d4ec7297d635475449cf6219ee315
28192862147f437dded2dbc2dc458cfa5e17b21c
@@ -2893,6 +2936,7 @@
28932936150203325a5b7df77628d1fee5bca833
289429371502d21cd4cb3e89f8b5d36ed9aea939
289529381507644a1f768138471019a124d38819
2939+15085cfc265776cb48b0e0e00fb644c7
2896294015087594c3b0e52c8d54f5304cc7ec3f
28972941150daba20b4b365421fd13b12a8134f3
28982942150dc1dd4904097b43b686d3d2b394c4
@@ -2902,6 +2946,7 @@
29022946151666e67158116410a7c9440fc4cfc4
29032947151810620f57e96fd73b48c529a3b6b1
290429481519b36be935a03c82aeedac12ec598f
2949+151b4da7790e808721ce7248956ce94c
29052950151f4bb9fddc5f83514540d429de7dbf
290629511520b243771693574535def2cb4438d4
290729521521398711c66ed4a4f4ff4e8f4c4d34
@@ -2940,6 +2985,7 @@
29402985155b055dc44952f5502674905dadb8ab
29412986155cbd90ab7cb71aac798370c8fc8af9
294229871560b3940ccff4d7ae0559e22e8d2200
2988+1561b174d9d2ab3ccd458b4fb79153f0
29432989156370c58c2d8bce4f3f9046001f3442
29442990156457e770c85542cdaefd61733999ca
29452991156c3bd24791cd2d981e93147ace1623
@@ -3050,6 +3096,7 @@
30503096163f05a5bdcc2e5c88aa16e907c0980a
305130971643fbb1a639083bc707616da062fd49
30523098164401c43ca6f0e04f4b5d6b75675bd3
3099+16488988593d30a9b7ed454d913521e9
30533100164b90dc96bfa01e3e62c05ecc957896
30543101164d19eef54fc4ebe43c13dcef481eb9
305531021650c4fd9b6a5ac59b2b08305c0bc477
@@ -3063,6 +3110,7 @@
30633110165b32d5b028d1259951ca9a1b54497b
30643111165fcdb4c6a6832a2294f7c0aef7bc48
306531121663d8d90d70b44d9e30189ed6fe2e44
3113+16667769f0a138209045de056569ab79
30663114166aa5450f896a45ac8af246c3694bea
30673115166b9fb4135668f87b88e7a628d72afd
30683116166cc6b96992f86fbce5b08d3f49c704
@@ -3191,6 +3239,7 @@
31913239174c92c4d8498e94a783c8f2af82cb1a
31923240174e509cb743282aa21a5716f669aca6
31933241175093561bae9ab19a1832ac7a1b9570
3242+17551ca0d9614256f95eaa13c49a11d5
319432431756a11210a20af3e3d0664e7a0d6da6
31953244175a953f1369420bf35b2f1ecf4c95cb
31963245175a9e8c09a4c972122e934d9ed96ec8
@@ -3234,6 +3283,7 @@
3234328317a58ab7b63773abbdab28db45a27244
3235328417a63ce5addd37f85c9a40dc4ccdfabf
3236328517a8d978474fda69b1e4ea99029cefbc
3286+17ab06b6322e5c270663c48ba2b189fd
3237328717ac9c171d92848138b92eab39721394
3238328817adf710d7c0dd712057b2c5cc32227a
3239328917ae1457d0a54bd1ebd74b786bd74581
@@ -3281,6 +3331,7 @@
328133311805599f3644e85eb61f5088cb5bde64
328233321805dbeb723c2e4ba646ab7c51827b86
3283333318080e5fdb9567981f9a500974d1a012
3334+180c9c75b95869f46f4788b0173917cd
32843335180da230860d49513f134adb28fa88de
32853336180dbc03b80475589ac6581181e082bd
32863337180dcfda05a3982f933d7094e5726e6f
@@ -3289,6 +3340,7 @@
32893340180f76be348bb84760a5b0e8b68a4b1e
3290334118106a7102d0891150702c7dff9c5431
3291334218106e6b409230e127b99873f5773461
3343+18128017b2ddf61f47bc959c9e508269
3292334418156fdc4bee4c39bd4b9897a8c52be7
329333451818929d1623769a7cd6282ba078dea5
329433461819764739508b13143f145caec68b54
@@ -3314,6 +3366,7 @@
33143366183af19306f11248d5611c4502819c5f
33153367183b584c4366fbae04e264227db8d57e
33163368183c7038e446c0d8194912eca901952e
3369+1840907695c20322767937deeaeac1c9
33173370184166c21cd997a8bac69a9b787a833c
331833711841b25ac280953702d8577ffcb64d35
331933721843a99fba6a1b10ceec76dd5d16e6f7
@@ -3333,6 +3386,7 @@
33333386185969942425a17cb0b2ecaf46f29dc9
33343387185ebc9f05dc1e452349634ce67bbf0a
33353388185f96bc26dd88494593800856f946fe
3389+18603854eae3fa163a517dba0a4c3cb1
33363390186092b63126e09ba178fa04cb9adfb5
333733911861aacab14559d0918ca809e2dfe677
3338339218654af399631eacea5b75d0de20683b
@@ -3348,6 +3402,7 @@
334834021880c62f9e0fd1713b72c9159a8d9a0a
3349340318816d625e5ca8913ec24bcb2928f983
3350340418858b1108a05c894dc7fbb27c0610dd
3405+1887b8c7cf8d764d00500e07f1ac50b7
33513406188c59a02e4e8ca7408594fecccfd10d
33523407188eac381b1f991dc890164ccea7eb02
33533408188f55a962f00c36990481ac706ae83e
@@ -3366,6 +3421,7 @@
3366342118b03fd564fcbc5e1daeb30864d170ca
3367342218b0ac3f3049ea8351698781d5755895
3368342318b0f492b7aba321fc2c6c9646701675
3424+18b3d41c188642bf5f6fa717c9a6c2cb
3369342518b53e160ac6674a0bf556f10d62b3de
3370342618b5c004fcd043009b98fbf7887321da
3371342718bcf3fcc4052418de7c334c43b17ab3
@@ -3380,6 +3436,7 @@
3380343618c5b1418410fa1211704271fc70ee71
3381343718c5c1ad2cb0ec25154852f0868b4ed8
3382343818c63ad2c9700cd068c2417e80ad9cb0
3439+18c7404ba713d8d68fd3e54b51ad4ebd
3383344018cb8cbd24b6f13cdc235b29aad97921
3384344118cbd58832f45edd02aeb8927ab3a842
3385344218ce1eb58f8c3c8c1082f8bbb5a27f87
@@ -3456,6 +3513,7 @@
34563513194cf236c5fa6c6d71346ba98ef2b797
34573514194e41e4f4f4d64e8a8719c636a0a20e
345835151951a0272b53ae142554fb86dfa66ff0
3516+19549cc2a14e437d48222abacd54d757
345935171954aae4382191b5783956f7cd4cda71
3460351819551600413286933a9dd7e2485d59e7
346135191955b59f64ffa9c32ff702a8638fc0a2
@@ -3523,6 +3581,7 @@
3523358119ca1c62d3a005d5dd4591e7906f329b
3524358219ca46dde9ba5371d98c5548f88905b8
3525358319caf2332c229daf71260d7c41696cc7
3584+19d2d4a44604eb362372dd82f175b530
3526358519d9ba29ab67d5bae320ba050a79f91c
3527358619dbba622257a15b1b6c16a241396acc
3528358719dc1b838e70c81d8f02eca72b1ac0ed
@@ -3553,6 +3612,7 @@
355336121a044a9f10165a4ab603e6d37475f736
355436131a04504397a00be448af862342db6305
355536141a04ad64f5adb8836e69f1753c1e1491
3615+1a087b98be38d22e468030d9174afcbf
355636161a09a986eb810e0bf55a2b4561033121
355736171a0c0c367e4460c92fe1313c535d3f2e
355836181a0d9da72186bdb933ff0bc02d0a3ea2
@@ -3569,6 +3629,7 @@
356936291a297f2fa67c45d4401545471e094993
357036301a29ebc949cac3b8d02519c2d0fc1937
357136311a2cf37cabb44379dccb3f84a4adf420
3632+1a30fb767120f3ab972d960483ebe0b3
357236331a3231b6dfcb5c1bce168c5e98840a1d
357336341a33adbe4d1725536f6d1e3ba35ace83
357436351a35c500e1b805a87c360492b806a52b
@@ -3582,6 +3643,7 @@
358236431a42c1dd9008d676d963463471d047e4
358336441a4336a08a9d5f185f9c13b90960fdeb
358436451a47ab0ac3256b384127af5d0908c34c
3646+1a4b63d6445a32acacae93e24df06425
358536471a4bf95bfe29428fea1708869a40cf8f
358636481a4e0bde9db01bab99f9e2d60cc2b661
358736491a4e2113fd1a1c6271e0f55a9ec5c8f0
@@ -3611,6 +3673,7 @@
361136731a8b47743279550b69b40befce6d7030
361236741a8e142797b1db0fec748f72a2f8b977
361336751a8fd7b48761255c188154f2b6e1be5c
3676+1a9183248a8a7482e4d2f530ff45f641
361436771a93555c8e388c117e10c3c06865c5b7
361536781a93b10736f4156dc4fdcb530600e7b1
361636791a947f1808ecd8ea19c7e1969b9aca18
@@ -3661,6 +3724,7 @@
366137241ae2c3770561dfb0fbd71ad95e06a744
366237251ae4fd14d6c7783fd3399a8eb96b4a5b
366337261ae6d97b6e389d50a48612ec6c5552f0
3727+1ae752f67bcbe8f3ea04e0b5654fe3a5
366437281ae91064c5c9feb1c60959215f718fe5
366537291aebf0dc84306c61c1ca853cd3e5bf4e
366637301aec334259366b484628612bec1e561d
@@ -3939,6 +4003,7 @@
393940031cf633948316db9c050900edbb44ea97
394040041cf6e1a8e5997504b32f5ad49e216d9b
394140051cf72a5afd59ae568f567357a2c86b9d
4006+1cfa750cbc3b139b5cab805ce4f0deeb
394240071cffad53194bd4abfb7e5132e5771b35
394340081cfff3025eb455c9d28875ce4878272e
394440091d03362dee7f9c248d13a60c238d9be2
@@ -4108,6 +4173,8 @@
410841731e2d473d061b25cbacadc8e81b2a737d
410941741e2debbf7325a740ffc65ec5b98058a9
411041751e2f742244245e5871bf0ace38fcfb56
4176+1e31dd6fcba2342d1a8fab6b1b6cf809
4177+1e32ab9f89e19ffb3c7ba2be326def2c
411141781e368b09502a2873202703637faf4589
411241791e3742b2b5b20008e07594c897b991b0
411341801e37fdbc54533cf9caefb4f92d701ba0
@@ -4207,6 +4274,7 @@
420742741f0046b6cd5422acfd33770207d233d7
420842751f03f58d9c5fb2b2bd8aa7967687df26
420942761f049d139efaa17026f6f8904036d6b2
4277+1f060079c0275d6f679a71e32b38eff3
421042781f0cd802a6a3eebc4441d53aff8b794c
421142791f0d66b723edc83d56ebf38444c7c8e6
421242801f1100bf4e86aa6af9dca73aaa190813
@@ -4292,6 +4360,7 @@
429243601fa4d9e192fbb1f457731596d69aa1d4
429343611fa8eca458771e4511bf2790d4cb6c07
429443621faac104ab4f131de20c572e2d02b2c5
4363+1fad6a5e098a087629e0e856d487b8a9
429543641fafe839449f3170c50e74bdd2decf97
429643651fafecbe6340890b1441b90ce823246d
429743661fb00f15838330e31d54c46575fa927d
@@ -4515,6 +4584,7 @@
4515458421287a3dda3971fad56f4cb8ac3ab843
45164585212955c95f5366584176ff1320998748
45174586212f68898a926e495429ae787c5453c8
4587+213306be668d6f53f76f6075776d22a3
45184588213452839e907e0c7241288beb139f60
451945892134e86794d48e03fb7d65da6722a03d
452045902136d97d95fba530a8fb4911a007d5bc
@@ -4530,6 +4600,8 @@
45304600214dee30e7f6cc4b78a40dc82759686d
45314601215378aedc529e3c4af22303e4820821
45324602215623634aa18fbe210143d40f46d7e5
4603+215aec7c704d32ebfdbcbeea31c3429c
4604+2162b518c3e8b0a8058db4f591423221
45334605216581cea881b54ca9411cfa37eac543
4534460621659e8733725d1d857397b30f18ca71
4535460721678afa4d522c95b2272df06daf7af8
@@ -4572,6 +4644,7 @@
4572464421a12ec3d136d01b945fa752d1e20dce
4573464521a24667db6483b7f39c133250eed55f
4574464621a49dbd01826abf1c14a25c2d452922
4647+21a8274289f7a1c2a89746551e69204b
4575464821aaa995601b5430fff898241729a97b
4576464921ab6d5e0748dfc516c080badb186309
4577465021ac935c1e90efe82e29d4713f4258db
@@ -4695,6 +4768,8 @@
469547682268e395bef9d1170245f4f33a026e24
469647692269332a1325b2938133feb36ea57eae
46974770226988a630cc03dd52a2a49337b5b6e7
4771+226bf0be16f85e376ab89de0f877407e
4772+226c126a435482dd1469e1faa8542b11
46984773226dd61c2c190902634d9f7bf65c245c
46994774226ffe618db53256a7b8c0fc34f8a05c
4700477522700379ae5b2ad074f26fbc9dd1fad2
@@ -4747,6 +4822,7 @@
4747482222b796888ca66a235782c3e50ef3f2ea
4748482322b9f4998ff006e4a9db3d06df7f2dcf
4749482422baa8398201f13e019f1853ed79844a
4825+22be43714c91b02db0252c6fec2dc30c
4750482622bec97dc2c9a956320fe329d029ed2c
4751482722c043412e17968cf365926632449f6d
4752482822c093cadfbe1d3694a9d2317e6d320d
@@ -4949,6 +5025,7 @@
49495025242bf4402908111e68ee5d905f24ff6d
495050262431eb57d26e209e308a7ab8b03e726a
495150272433fb0553e870759061fb786bf2a539
5028+24354f493442fc58de2e26cc16d33c3d
495250292436c5893c9a61fa5cdf345e13683f79
4953503024393b61ee2a476a9e6df818bcc1ac3e
49545031243b55026041008fc711d7a85d682005
@@ -5057,6 +5134,7 @@
5057513424f31f613a711b37cdd48a25b231274e
5058513524f35bd3c67b5b2db6236d4bb2721439
5059513624f632d6e088aaab2ac702e1456828a9
5137+24f6da399f10167f1e6fa9369d92c40f
5060513824f916e65f03be6d23d9e0a78bc657aa
5061513924fb5287ecdb049660f92c3b2d547ff9
5062514024fc3aafdae08e01eba590cf1fd9793a
@@ -5077,6 +5155,7 @@
507751552532d339f2535553abee7e8a555214fb
50785156253365494ad8f402bf5537d557d48621
507951572534c7bc69a0851bf34e341c6d74999c
5158+253927a3ecbdde3f452695d139ce0218
50805159253a19855e60b8881d4179d0c94d8750
50815160253a1d66ad90844143dd5e0fb9c26bce
50825161253a525a91ccf1585d4e5c63e7e74a7a
@@ -5186,6 +5265,7 @@
5186526525f67ea6e3eb53a0b3ff6eaf4a7ea342
5187526625f7833461a5550f1167cd66a0fccc4d
5188526725f8be8b380f07fd7c0bb7fd47e4b2e8
5268+25f9217cc916e3b885967daee31b8ca7
5189526925fc114c7c21dca54a0b09ed6f1cd622
5190527025fd6d2aa38e1f9ac959e318d6336d06
519152712601c012ba82f65dd222671165d25595
@@ -5213,6 +5293,7 @@
521352932634a66eeb804768338e773ccce76f4e
5214529426364d9a7cfdf3a55d2cee8d791af0b1
52155295263837da4269c4e9b0d83c10d8d55db8
5296+263ba85e59306fd571712007a75346f6
52165297264001400ec2643cd03cbf138444da04
521752982641fc189a422f187cfd2a6aa19343b2
52185299264456c4c0ba9846f54e044dac221b46
@@ -5347,6 +5428,7 @@
53475428273bc07a65dcd3a2d0576670513371e6
53485429273d8b47e2d57417e706e7989e63a9e8
5349543027411bb34d1c7c0a84f14954340fae54
5431+27449c06d0ab895bee1475a611791667
535054322746e8ca8572542a23edc81127346252
535154332746f2e565e5de8f06272a4b8194a818
535254342748ea5059a311850f97a201ed3ddb3d
@@ -5492,6 +5574,7 @@
54925574285b148ac5f5c66ebda9631dd476fa47
54935575285bded72eeace977ca77c0cf878a437
54945576285c16ccdb48dcf9aae9f766a8434610
5577+285e03b0f5ea523912118b1e70bb6913
54955578285e417317dddece917b2a3690c86d8c
54965579285e7f89c2653bf230bdc02696d0e77f
54975580286047d4fe2783dbc244da5b35a3b5ea
@@ -5531,6 +5614,7 @@
5531561428944ce2047e683d4d7a2d6fc0af0244
553256152897f6a64d1213373105272033ddb983
55335616289824f009550e2c9c03e3221272cc96
5617+2898a02c848cd185bc8276d862ab4b89
55345618289aa06e004fedcd32bd313da295b4b6
55355619289b591ccdb085a5953285590cd31dcb
55365620289f18321d8ba6f54b82d0edcfbcbe6d
@@ -5539,6 +5623,7 @@
5539562328a8529cad3a28c26ec20f9d8acbf2f9
5540562428abbc21728deb8961fd71513984ae65
5541562528ac76f15fcd088d60a5b81e70f2f6ba
5626+28b2afe82205c9a2a2706a10f0906483
5542562728b7314e966befb05355023e12d6462c
5543562828b7736f0d226cc40aa3dca2d1b10cbd
5544562928b9a17827dd56ff2bce79d79fcb1ded
@@ -5643,16 +5728,19 @@
564357282974512f4a86dd69d60577e3587bfe99
56445729297590bebd958de5eb46cb7898a0f4ec
5645573029766efc5a9d8bd7582b88529aa687d1
5731+29789655993975404b0423af495917fe
5646573229797223ba337cc0a19160135531c7c5
56475733297a5cd892836e02e02e75973e63ba0b
56485734297c2cc9c83b182a3425978f43b395a8
56495735297e2e3d25789a03e48f4914dabf1578
565057362981b24a8ed5ccad8e5b77aba148a65f
5737+29826a980808e2a6ac992f6e3ed8a0ce
56515738298333bf0802fdbcff07cece94ff7ad4
565257392984d2d255a5e3a23ebe3755f77b7427
5653574029870d8763c0c19b3a7325a69d873021
565457412988619b9d43c03abb41d1a01bccc800
56555742298ea4504b783283b8e3e53c50b6e7fc
5743+298ffd88851e55cc0b475de1648d204e
565657442990a982f0cf642fefa482c42ef27e95
565757452991949b2a31c16b203a167be1c860fe
565857462992f639ca33b74fa7b1704a8baf4e8c
@@ -5710,6 +5798,7 @@
5710579829f20b2b6e598bcb329bc9056455fffe
5711579929f3d979123e4d496a0c4c46cf21e8dc
5712580029f50143a51769f224e9edb7c601a696
5801+29f71bfa78001c4c1b76cb4a2baa7e0d
5713580229f7f5fccb153f75762d30157d7b2b6e
5714580329fd6639ca9813cd680da5b6a9ed009f
5715580429fea0396096069a878fcab69b5005f4
@@ -5765,6 +5854,7 @@
576558542a58debbaeeca30a29885337a72dd458
576658552a59d1a99d9359790e57347354450f47
576758562a5c7b67d4872369c6da3b0895fc9333
5857+2a5f524da2cd3307f485b3d94706de67
576858582a619d84c777b4f786c7e72e4b0f9179
576958592a6305ac3a1de42a011e7b166257d8c8
577058602a6537113ebcce5bfecdf87172a17b70
@@ -5802,6 +5892,7 @@
580258922aac8d6f8d78a800efa51ec3490847d6
580358932aad92bd5bd3fc88b69da5283ec30d04
580458942ab265789b612b05301904721ca3616b
5895+2ab3b924d87b91a23c168fdcbc9a6740
580558962ab45d0c004fecf600fe653be8f360a0
580658972ab4804b8fbfc49d79ec3204184a7b71
580758982ab491ab71d0a3c7f9420c2cd9cce454
@@ -5846,6 +5937,7 @@
584659372af211b896f11e40fd40afbc52181c64
584759382af25a39e19edf54a4f97b548482b0fc
584859392af95e7e4d3aa60852212eb5d583a4be
5940+2afd4980027d11e42750e5ba7ca3f547
584959412afea65f6046085b40e2b7c3101bb21a
585059422aff5f5053d631642eafcbdb4e3dd6a8
585159432b0239f5ef9afee27dc7f8c63cf559c1
@@ -5911,6 +6003,7 @@
591160032b88507336a9ca4466114668fb891f53
591260042b88ac7996befebabeafe55af1b21516
591360052b89a01c4582d5b5245cb55641cc36bb
6006+2b8d8b8e74f5244fa8783de41b7a1749
591460072b8ebf15afed3d851f5298b60311c77f
591560082b8eeb41c39213c12f9247f21ca078f1
591660092b904936313175bd9d503595e259ecb4
@@ -6050,6 +6143,7 @@
605061432c83cebfde8dfd8ea697cf8ae72ada88
605161442c86880e44117c4bf68e20e95036ef1f
605261452c879d499efc567a8edb6f07c1f0c02c
6146+2c88b9be2f85cf2e3e060954ff819ae7
605361472c8903ed2fe58a658231cbce5d62c20c
605461482c8cad393ce07164bddc60f107576838
605561492c8d3c1fc449f3315e9d36d35daa4b19
@@ -6091,8 +6185,10 @@
609161852cc997cf408b5c0b494cdf3d86241e9a
609261862ccc5113095de4f946b900598a75d13b
609361872ccc625da3e05524d8ac0cd049b8e3f9
6188+2cccfd7ff8fb69a4f33764c40660d52d
609461892ccdcdb65f4802127012b617ded4fd62
609561902cd3487e80f8f54abb96a51be0332809
6191+2cd62046e12872ca3f19cf0c171a173e
609661922cd732100172620a6a04ed5eaab0890a
609761932cdb89c9a6a1bb55a08f32bdf102dd71
609861942cde5616952432b872e37d2080590366
@@ -6164,6 +6260,7 @@
616462602d5aac648425e8ca3c4616db390fb688
616562612d6084a62210662ec4514727e15d3e09
616662622d60e746bb32e362cf1733d8ba5d8d3b
6263+2d62252373677c6347199244caa89bcd
616762642d655e367aa5ff058752ebea0a499956
616862652d67f376ea09f482f50036b99a4a01e7
616962662d6b82ff18ed6f3c0246d15dd0fa4655
@@ -6181,6 +6278,7 @@
618162782d7fb7b0b7f12c9157a31fc2c2a57a7c
618262792d808561c772b205b05ed0b63f4f859c
618362802d81e6af689d2472e807638b4e78222f
6281+2d824cdef741ed2d60a1bbb5e1b2a47a
618462822d8406f55696a3aa49356fc0c6918229
618562832d853ab8e6aaa8e0c0857a82c5e81e1d
618662842d85f842594ae43bfb592cdc87f85fc2
@@ -6502,6 +6600,7 @@
650266002faddb1bbfecefba6f0262bce5043e07
650366012faf4bb58c5dd99179ccf87402a7800a
650466022fb0137e0e4292b071b680df14ba2f41
6603+2fb11b18a422c1d2bfa65b73ea230a05
650566042fb1396f807dccfc1a956086a493c69a
650666052fb17be1c29bfbc1983de49c960a2e70
650766062fb5705a7a569cffd71f955c4fbc9390
@@ -6552,6 +6651,7 @@
655266513001932eefa787f4ecd815fe8a52172c
655366523004c5eb89349a380142629ccd8478b5
655466533005a4c73404e10750ef3b1c8d2626cd
6654+300649194653ada18d01255f317abfcf
655566553006dd57a40dddedc3649f4669aeda39
65566656300b4259321b33a685d0fe2cfdab25f6
65576657300b50cc132194c6c0f0b6e021a5324e
@@ -6567,6 +6667,7 @@
656766673021e3c9a45b98b797f8909f2e4bd15d
6568666830242a916a57fba0c186e2327760b649
6569666930251f9959069cd9ac2f756a73f640cc
6670+30270ad2233aed3f38a6e1b6036f260e
65706671302c5e3f52ea1796ff5c4b4ee473c604
65716672302cb8dced187ee9b257778c8d642aec
65726673303122b30d511b6146151f9ce8dd1f09
@@ -6646,6 +6747,7 @@
6646674730c28c08b133c649a8819a4b43c70501
6647674830c54d8aad47bc9797fe59c8c2512dec
6648674930c6f86305f56c4ab36d3cd1705fb5f7
6750+30c7c15de55a187001cff4945b4dfce4
6649675130cd3a88a4cf921f52382336d9de8eef
6650675230ce367403ecd5840dbe2f1ffae89a27
6651675330cff0fd93ab9b1db965256ca040e2a9
@@ -6675,6 +6777,7 @@
6675677730fdac64aa82107151cd0a46fb8de584
6676677830fde556c5421ef247ccb5784f833690
667767793103884b11c754dd558d3cd5993070e2
6780+310759d678f74df9ef710507750f8b1d
66786781310893f74259659ad834c78d5398f087
66796782310b3ad10ed500e5be6e2c7349c480bf
66806783310d7e9922ccae1da7839f1fd48b26e0
@@ -6723,6 +6826,7 @@
6723682631515a3dc546b0a8fce705f6f0b4f37d
672468273151af28c457f9dc33e618e2c371f991
6725682831558a2f8bc976d2618f0bd5c96b46c7
6829+3157b33f5f72f8380afe8833f0c63b5c
672668303157b68fd0e9a50481a9ef1451a86526
672768313157dc736dfc5361029f67b6c144e30b
67286832315afc8b3cce5749ab1d72ec3270f761
@@ -6770,6 +6874,7 @@
6770687431a7ae2f3b29cbfca442ffef4ed681c9
6771687531a9f40046ec980081eef67583f44b85
6772687631aa58c1f0c5adb3e9e2a28b7ae1a77e
6877+31ac3e45cb41678a47d64c54d7900813
6773687831ac6f448e01ef25d8b79161c42b7d1a
6774687931afa2c778113995c775893005e989e2
6775688031b05c1a598a97b4bcd62b535741ba6e
@@ -6873,6 +6978,7 @@
6873697832563766ed07f305221ff3e59dc23cb0
687469793256bfc839f1964541fc4efdaa5bd3ad
687569803258b3a03136974c68261caa407bb2f8
6981+32593c50cbdc319f30eb0791b7e9f19c
68766982325987ac81737ff165c5b8efa460c6cc
68776983325a857b8b7d2de316a61ca5b56ca585
68786984325e03478bde90548687155468e45869
@@ -7054,6 +7160,7 @@
7054716033ba312306f0e2f7440857459a7fba44
7055716133ba588e0ee353c74d3daed1d31d402a
7056716233be7e2cc276948d9dc19e88bc8fafa5
7163+33bfe5edfcbd6871650cae3c8e91004a
7057716433c07caecdac9d80cac5b60669a34053
7058716533c4453fdb220e70eebfc0522e825ded
7059716633c8ee82a06de02be208af2591608394
@@ -7070,6 +7177,7 @@
7070717733d744b9d0b31b63468e11e2678235b0
7071717833d81e10e3c786f80a6b9efd7732e026
7072717933d9e797cda39e5439e01a5f7ba6a6dd
7180+33da3b6e840adda6d8edfd771edf3d53
7073718133da795134e303e65f253c90ab8c6077
7074718233dc0200fbd64a13c21fac2b6dc787ff
7075718333dc0ac7f76d87d702321b48f24c74ee
@@ -7123,6 +7231,7 @@
712372313439b9d5b235fb6effa861de46789935
71247232343c520361903f4ba4b29fd0339769bd
71257233343cf6d64d66efcb58e8b8d13efde47a
7234+343df1de866e832a86ff3de65f8b4b06
71267235344132abc716ccb3ad96b1a8f9a49078
712772363442f8577f4e65a15d3ef32192620ed8
7128723734442ef4a4461ef9443c24e12b9a00ac
@@ -7142,6 +7251,8 @@
71427251345d2208636c9123d13b43d321f65c56
71437252345f2be55a7ca13739b97e8b941287c7
7144725334604f1518f24740d8a8eb86ca2b6f9c
7254+3466347dbe7d28aee259e216a8eecd4d
7255+346818e4ac465671b29506d7a7549fe9
7145725634698005315685081d59745abd592a51
71467257346b8b348c6e8878ea8aaba58cbecc97
71477258346cc320ad855b4a6e78062810c0e9fc
@@ -7166,6 +7277,7 @@
71667277349d53a52fac283c213a46b1d3a1a7fd
71677278349d6215c9ff95a961e8ae6455bccd55
7168727934a094deff5bb18f10793fece596eb0d
7280+34a59e66de747a74f5923c1a9a132c27
7169728134a71ff634ea0327c375f0cb0a020dd5
7170728234a7278efb4a488d19549b6a3452c075
7171728334ac137d39f2d3c4f1aacd9942814508
@@ -7238,7 +7350,9 @@
72387350351863e88351b91ffaf9d6cfaa1d5b89
72397351351da229e46656801ade3868ab68033e
72407352351e2efc0863f8bd430425c80ab97286
7353+351ff1520666cafcfad55543a3dddb10
7241735435262d96680866967722a810dff20941
7355+352719b67f6fb944c3de565c13cb7ae4
72427356352b646633b78805162ad783a6d7d403
724373573531e183e4f880842762edcc2b649f59
7244735835332e0307dad58bad0650270f458671
@@ -7300,6 +7414,7 @@
7300741435966765929789cb2b737f85550735d2
730174153596d8cbb6383688d394e225f01db680
73027416359802288e0eb5a906f22fa283d66c31
7417+359e97b8ea9ec5fc427af5b0d2e28c75
7303741835a399f6528fc280d3ab7423365a14eb
7304741935a50e7b3c35ceeaa432394862dbffa5
7305742035a6db5f924f9578edb20721729c88da
@@ -7397,7 +7512,9 @@
73977512365b61584d9d77dcbf95d2b4b41db6f1
73987513365c89cd8624b9483e2bce59fc7a31ed
73997514365d58e60cb52be513b10c4adf0bee87
7515+365e5864d7aad8f03310d5fa053b551d
74007516365f157e4aa5354e10b1b4fee0d3effe
7517+36611e6eb7cb764af2ccf7b2ff873910
740175183662045b2ad79b7d42da2026e8f30bf4
740275193664268ffbbf27ea844c6b67d9777bf4
74037520366436ad1c512681f3ea02535411955c
@@ -7460,6 +7577,7 @@
7460757736dd6e94818c316ff0e4230c6a7a35b5
7461757836e0a354eef5a98baac58f3d0194dfdb
7462757936e31d8ec0cf3b1c0827b44ed200f76f
7580+36e44838e5528980c594b36ab8182156
7463758136e4de122f8e2ff30105f0c65648a52f
7464758236e7cb473444dfe65619f45694341293
7465758336ea8c610df7b5ad550b1772e9c0a73f
@@ -7581,6 +7699,7 @@
7581769937cde8321b0b09adb056b9b174e8c3b6
7582770037ce9de96e85700e3a2ef9048b19fa1a
7583770137ced5ae39492dc5b6ab467e6498055f
7702+37cf55cb6ee015613d9212fdd0f238e3
7584770337d03f7f5a83e21f819d7f423da43f70
7585770437d29d64da02cd3a68ba1db46eba0a0b
7586770537d32057469f849e99c6c00a1999587c
@@ -7705,12 +7824,14 @@
7705782438ad99be123c02d3b8742c9a1fa5f6c2
7706782538adeba05c1d947b0b1ddf67566630dd
7707782638ae23dcf1f3bb044c03e0b26d420a67
7827+38af6cf167feac9e7de86d187e6ae04e
7708782838b098c2039e285728f50087156ab78d
7709782938b1bb9fce45c2e2ba62c50b08385a3d
7710783038b1ddd70edb991ca1cf962228ce8e39
7711783138b27d84f38c7087ec56afe8228774d0
7712783238b2fb181fa626e3721446c8af80f4b7
7713783338b3885a733062966147f8e7e7234ed0
7834+38b50ddb06b770b568d29d37b554e798
7714783538b9005a721bcc3816954f506b1ba273
7715783638b93b08f69477e98c2eed1444ce435c
7716783738b9db80c1c948cd1cef93331d6f56f1
@@ -7908,6 +8029,7 @@
790880293a27bf17e85342a7133da5e8ee042e4d
790980303a2a28171d1af1d24eb31e46b3106d73
791080313a2f047e790de8f536864d4f10152b24
8032+3a2f0d6418f2e4e6c20f1b2d19eb1ed9
791180333a3084a9dc688ccc919b36694533e1b2
791280343a31425c4afbc90ea28f9fe971b84ecb
791380353a31a6ee30d322f75496d81698567eab
@@ -7942,6 +8064,7 @@
794280643a73dc9f458b9994355d79b275fdff6c
794380653a73ec18a174bac2a1d580ea86ccd6e7
794480663a78a5125cee5cba31500ae5ac3566e8
8067+3a790bc8fc99ff9f1b8db831b20a84e6
794580683a7e77c29949062a778665e75d821f3f
794680693a80f4e044a01c70b0bc4e6027a6975f
794780703a8346fa0f3d6c5d2a890a4d8e12be09
@@ -7979,6 +8102,7 @@
797981023abd9069a548fe930d80c241d0db2e58
798081033abf727f6a140e9fbd0d93e4bd9141f6
798181043ac1de1233080588dbd0b515ebb547e3
8105+3ac4e8646ef0385d31dacef549c54050
798281063ac52710c55999bb0958d054792919a7
798381073ac667af4b31c6580f390d02404d5e57
798481083ac91a8cfaa9047d04845b167c87b04b
@@ -8045,6 +8169,7 @@
804581693b393672fd00026d1caef171c8e575c3
804681703b3a38d4a683aa9e0292aff1609bb26a
804781713b3d06c6060ccd370a0ed8edbfd025f4
8172+3b43c8f4c97188bcdebdc7953c021e0e
804881733b47db796b8d1ed64610fe7c919d57f7
804981743b4863a3af62b57aeee0ef91e052e41e
805081753b489d1d8d85f7aaee9a5259d2d57af3
@@ -8074,6 +8199,7 @@
807481993b8dba4b8bd0cc6a155187959b9f9917
807582003b8f9728a76fd52599aa6799af1dcf96
807682013b905a970cbe626caf135bca4fcef131
8202+3b92b8d0d597ee47622c1ea61a787fb6
807782033b92eee6edebfdc56483d87d98c465e5
807882043b946cd74121cc34a9c0b3c2f8ed4251
807982053b96abf0fcb55c771453e00d38000d12
@@ -8119,6 +8245,7 @@
811982453bcda9752cf77c2341105215eee48d4f
812082463bd016a11100db8a4928ade809a1e56f
812182473bd4778c7b81b92271a8de5eca1dd7b6
8248+3bd4fb3afa03383df338a1d7796a7ae5
812282493bd52ed6915295790c0401bb95f7dd41
812382503bd6ca9ae6bdd9c4578c7530109d7b6c
812482513bd7eefe0a96e242e42a2f2637c02e85
@@ -8189,6 +8316,7 @@
818983163c407cd5d8383d8f78d285424872e75a
819083173c40a4126da908ff82b8398fdb7826b5
819183183c410aafe6a2a08faaa388810dda0f65
8319+3c44229d9b1f99a8cf9e2a1ef775d50d
819283203c44a80e992c79802741a886a9d34d07
819383213c459f47452968a1d4058050a007d94d
819483223c4753a919e7d091343e4d49b131b1e7
@@ -8209,6 +8337,7 @@
820983373c63398d8e2809a61f6c78b736964f49
821083383c645d9d08e4ab7e9dc2f61cb658884a
821183393c66a9dcfdebed9469bfc22ba2000228
8340+3c6a894a73e5561d53e97ad33d1a40f2
821283413c6c441bc6092df71e6cf4b147a43661
821383423c6cdc2609d1a30f67f0d132fb0ef69f
821483433c6f77de8570f80f5e56f16666b05340
@@ -8291,6 +8420,7 @@
829184203cf4a6c9027cd027d6f05675235c9864
829284213cf57f562f2d63808b983b9cb8f441b4
829384223cf653df8e4fcbc2609ff610feed467a
8423+3cf7f85fc7932876af46649d02e6041b
829484243cfddfd6feee50a9db8974354c92a981
829584253d00e670d35898f37365a5d7d0a8f3e0
829684263d03575dd2a9df47b64996425dddf422
@@ -8408,6 +8538,7 @@
840885383e0449d4ecba8f08c1181abe85ef31b3
840985393e0661eaa42caed02203d7efc8f51ac1
841085403e096a04d58f48729a36cf90164c60b9
8541+3e0b3c27136438192e190e0260fb7dd8
841185423e13b7e5515e5b7dac5a637a44e5f0f1
841285433e144846ebcd905bc28a6f1df46c7d51
841385443e16986abaf0ec6cbfe7276a82327668
@@ -8495,6 +8626,7 @@
849586263eb58b28537f15ccfa7a4950869aa210
849686273eb768776f5d7b0f08bfd2b1d67b3f7d
849786283eb7cf74f371b87a5ba5f019c89e71ca
8629+3eb83a31305eb11966d8f9424fd33beb
849886303eb996c364e2f02fc3b02acccaf48654
849986313ebf274d825d273cffac4d8e2470da10
850086323ec0af76f81d9833e8b619df98721d99
@@ -8584,6 +8716,7 @@
858487163f4d019d9b5336585ce811e6ee1add12
858587173f4dd722b7fca4705fbe18c517c87d1c
858687183f4f823db877508d4bccb1af55d87503
8719+3f506f96b7c775dd21a289dc2e5a2468
858787203f527028088e0f42ca97e13b0e1a7332
858887213f57621afe706440c8ae50f9e7efd5f7
858987223f60460f508d4144db5837a919264521
@@ -8696,6 +8829,7 @@
86968829402af7d5286137b9808eadd561326116
86978830402b61835ba8ab20423e00d454cceee5
86988831402f5ebbfbf10caebb07b86baf175a03
8832+40300bdda75103a7053c3cad84d0d094
8699883340316774044047317de2fe43276f1a4a
87008834403459402a1d190b58cac86e5e8d7c1a
87018835403603c30f8caa5759ff75ab6dfa08b5
@@ -8748,6 +8882,7 @@
87488882407fce46cc2d26e8c02158dd51f45d25
874988834080dd3ff8719d3b6dc18e899cd59eb8
8750888440848201168e32e05b9ae7ce56692a45
8885+4085e1b3e76ce3a4157f32ef256167e3
8751888640883682171e1d81aa5bb66b794548e5
875288874088edc46187219368a685c6e3cd3103
87538888408a376a00135bc714032ccb9506dc2e
@@ -8825,6 +8960,7 @@
8825896041064f90416c4896489d911f3222f73f
882689614108dda267c497d29de2f3a46c266e82
88278962410a51df65d48f2329322da2e215e1fe
8963+410dbc60c0bd6a4a9141f194983fd52b
88288964410e2bfabd0675e88a6b03acb04b5326
882989654111678fb1cb84b979119d0fc8a2669f
883089664112c57bf460e2410192fe358d81e67d
@@ -8951,6 +9087,7 @@
8951908742018da1bfb5054cd6cf1027adc46124
89529088420354c617ba6a59fc64c0b340bf337c
8953908942042ff4d73237771cf05a81b590721e
9090+4204ec473840d4751e452f129abb24b6
895490914205e410995898e524e7b79bf1da4983
895590924206e8107dff32ab153335877c6176c9
89569093420a5e412a047427a4a947670cee7bdc
@@ -8972,6 +9109,7 @@
897291094223691d860b3cd478e86bdd8e679012
897391104224e1f7cdede3b4d0cc83cc63da4c3b
89749111422555ce8189220b02fe1bcf1719edd7
9112+42266cbb29168b6f3b60b96a2b70c41a
897591134227ceccecb91a82e67c59df7df59f14
89769114422821d8d2ad6ffc1a387259ad3aacbe
897791154228ad1f0d19d1ed2f5dd22604aec26f
@@ -9199,6 +9337,7 @@
9199933743c3808a1c96f07c94daa14d5832f858
9200933843c3a898f8be2d3079916bdac660d5a7
9201933943c3ca858f9f35ea701c88ab1e03998b
9340+43c3cb5cd64da06adf27886b4d5d0a04
9202934143c49b03ce3dabbc004bdab35c5810a7
9203934243c4bb45838e56fc48f1fe1d5e9f719f
9204934343c67d7098b7c0c172363d8efc598ca9
@@ -9236,6 +9375,7 @@
92369375440c917d2bd17fada341ab09771286a4
92379376440e465410205695776dabe27ea2f74d
92389377440ed9cff2a5a18bc36479465e172b44
9378+440f40c4fc6f6013a799f8d8d0ce5053
92399379441204002d5b67030ab89cbdb2fbb898
924093804413510ffc9d96b21f748ac82cd74d23
9241938144135a0ee35d6bc613e4f5b293aa9ede
@@ -9268,6 +9408,7 @@
926894084444e1cd1439170be9f59e808f366387
92699409444845b21866042c5ef6028e5225750a
92709410444a927884777a8b39d441fe3c89b8f2
9411+444daf575c25615cf5adb9eac5cb9950
92719412444fe0202e5698467228fe332e11aed2
927294134450e51a64adb6b6b20562744874a370
9273941444574bf104cd206dde9a39a527425974
@@ -9280,6 +9421,7 @@
9280942144610fa000a8419f62c7af19b8054830
928194224463576db582b91bfcfd798c37646b3e
9282942344638cabaeb0ff2dd03b3e596e0df515
9424+4464254aa50708f31386fd639c81f1b4
928394254469084ed10c817a215c6521f06d34fe
92849426446ad7900eb8c58b1aeae50d0a8b51f1
92859427446c26767b10dc9e510662bbf217801f
@@ -9334,13 +9476,16 @@
9334947644cf390b70b376ff8c3dfba6c40f558a
9335947744cf50fdd8a06f4e5381ba0d7c324793
9336947844d0cd9ce7413eb3a1472e94014cbd82
9479+44d177514560dcf6ed37c67db9d85cad
9337948044d25c626e92c0ce998c134d30367ca9
9338948144d4232b99207587ecb426993407ed1f
9339948244d4f0f6808a22ad71275890fa0b4838
9340948344d65013c96e605af4f986f3ffab5d38
9341948444db457435cd0c8a95ec022bed430d0a
9485+44e0100588a048769208803229c67354
9342948644e044a5820c3d29ab5be5c13ecfe943
9343948744e5bf503c43d1c1b2c0f849e62ca521
9488+44e9a43565593e4e73869a5d43f9c606
9344948944eb4e53cded2adbf129967ddc569538
9345949044eb5476928c0aa716b0727375e98086
9346949144ec00115933efd9c66b18b57e486262
@@ -9349,8 +9494,10 @@
9349949444ef03f54a60366f14e50c32617f3cf0
9350949544f2acfb09ecdb6c44971398c0cee70c
9351949644f335d4b815f06c86811be7ad241333
9497+44f3d49cb46188360ede2c926831a9c6
9352949844f3ddc04b39e4e9d365b1c753b4747a
9353949944f5397671eddbbdc626cb99bf9de924
9500+44f8617073f5a0bb44dade9677eae4dc
9354950144fa568781df1d125120ecec9224eabb
9355950244fa60c30f3240e6be272fcfac574a30
9356950344fad5229781ea15f7a97e5d9896d77c
@@ -9368,6 +9515,7 @@
93689515450d1f5343489b9dcbe9dbf6d45cea34
936995164510601d673ff508535219115c57e071
93709517451181f39cdc91708566fe4073b7f174
9518+451216c650d384a96b7617749ec08b6e
9371951945172f36b0e4a0333f7a8b53fd600e2e
9372952045179d9f9d2568d614aa317459db6dee
937395214518aff2908d63acb7b75a0616f3f0f5
@@ -9398,6 +9546,7 @@
93989546454be8cdc27968096eee0e7f90acffcc
93999547454ce30a8392666e072e9dda5ce7db17
94009548454e74777761111b10d605bf77d91d4c
9549+4550e62e0258660cbafa88eaec12fefb
940195504551130561cc77e416f086c4688eec31
940295514557e835d62267fc8f037ae5079f4650
940395524558c641343fe2127f6a9bafd1e6e156
@@ -9409,6 +9558,7 @@
940995584563ff689b0b986846c4fc79bbef7dea
9410955945677e37346d859c18e61f024497fd4f
941195604567bd9a2388ce4e274922b547597a28
9561+4569b45bb9295f3810bd0b00daa0bea0
94129562456b28e609d2f3f127887bc2e55e5692
94139563456f11823d95b967c25c9af33c2c4968
9414956445713d40feebf7e487c5007ce529f156
@@ -9525,6 +9675,7 @@
95259675464948eff059a094c27cf540e6afe526
95269676464ab430aa003cb46cd22902cbdb2f2f
95279677464bb77f33ff7e1a38e7ee1f0a8269c9
9678+464d13695e6d540f32ed54cee2bbecb1
95289679464e69973404f7c123efe3956b46a8ac
95299680464fe9cee3b77c84519ac4b8c1650aab
95309681465129cf6b1de2f3c681504c90f10721
@@ -9563,6 +9714,7 @@
95639714468c2ee2f11e29bdec9f1f6ee09de1de
95649715468c6b41d5706d0934bb4af48225890d
95659716468e729086d947d3c81647c064720a09
9717+468ea3412ed89e434a929293d4f1eade
95669718468ec3a5fa92d7b373076122fa1b7abc
95679719468f62df06db6d227a7928994a752444
95689720468fae7ceb6c9f3b44bcd908c52cd06e
@@ -9640,6 +9792,7 @@
964097924719c6897161adaf112cdcc5d21b69ac
96419793471a0562ae4fda1174921273aec5fcf3
96429794471b52494fcf020f42f5c7bee7c2a9f9
9795+471d5623034d60487a3980a676c1e02c
96439796471e1087358b5aee93736c3a4521d682
96449797472229e6288a08cdfe861b166a3e9d94
964597984729e6616dfe0db8113202337628daa6
@@ -9675,6 +9828,7 @@
96759828475ca0f147f65ccf9f4f1d6a311e5beb
96769829475d921ff6eb9d0795a2a87ee06ee720
96779830475d94075a513bb0a25256b48334ca87
9831+475ed87f627026c0e40da3fea32d7169
96789832475f3e17a11d8ca1b4212802eb665cb7
96799833475fcd63b1ef20c79b2cd5ded67b37fa
968098344760e0349237ab1566b2ccaf1cb41cfa
@@ -9855,7 +10009,9 @@
9855100094876a4c1483ad3a5f6c876d56082213e
985610010487812b8d6587351d270b776cb8db108
9857100114878478b9a9ffc6ca2d20a583aafd850
10012+487af350a3f94efdbd53e049ca2331eb
985810013487c8cb44f801c091c7863119e49b9ec
10014+487d29a015e37acf6bbcecb45792187f
985910015487eb10308a207eff26d12ac554398a1
986010016487f2ab3caa1201d07d34381719e6b9c
9861100174880c91c0b2c010acb527fe72f06ba81
@@ -9882,6 +10038,7 @@
9882100384898d5a2cb226176c86bcde91928b489
988310039489d8f72be3bc48935b79ca2497636ba
98841004048a14f2b4eaca93355233c58a171651f
10041+48a3306d96a427cc67a7951be7e962ee
98851004248a49febec488f4cdea8fe850be7d4d7
98861004348a8dca670bf9ffda2dad7abd29ca201
98871004448a985037b9870335d2e31d1b5649443
@@ -9897,6 +10054,7 @@
98971005448b299db5a7866ace5f450017fcd8d32
98981005548b3603400e4e58638ea46897cc5fb93
98991005648b3a3c94411a0b8fb91f36b63f24720
10057+48b51e939a643ff13e2db3928d1a28cc
99001005848b7dcd1cc5d7050843e668105cce111
99011005948b9933597dc8a007c46027b7c998604
99021006048bc551873f8272167e299041a7b3460
@@ -9929,6 +10087,7 @@
99291008748e0a23a0c744b40e81e696a9265f6d5
99301008848e3c5b42315c6c319a16b1d59da4d7a
99311008948e5909d423170d23fe07cadffe69638
10090+48e67e2504eb27d7b63a74656d91c4e9
99321009148e7657aa76ba5783c2ee3c962af9c5e
99331009248ea1d9e1d4ba19d4e497125450e3b75
99341009348eb54aebe304885f83e69359100132c
@@ -9988,6 +10147,7 @@
998810147495e1323f3d9d01d96f40f9fb6852ab3
998910148495e5e822712a4c7461be7cfafa72409
999010149495e733742a32bb34a87972af139f4f6
10150+495ed26870ecdfa96ead1aab0ffaeb7d
99911015149604d62d0156bb291560423c540b8aa
999210152496241816c686f1ba89992d76e4fc20c
9993101534965a2feb86ffa7128d82aaf97646597
@@ -10155,6 +10315,7 @@
10155103154a91174f04bd407a69d79995b155e4a7
10156103164a91eeda9d3798360cee46df6a3902f2
10157103174a99aa7495b8c641ccc1513404c2819f
10318+4a9bf8eb3bb68163c3015414a6b21b3a
10158103194a9d77a4c039b1eb0359772c6da59022
10159103204a9d77f1c1227b7d231dd2cf3819ad38
10160103214a9ebaf200dd40a563b81309304e989f
@@ -10230,13 +10391,16 @@
10230103914b0ff12412c983416596dff191b20a44
10231103924b1045ed7a4d0b03d4b08596d66aa228
10232103934b12290d14c112841d6518defd153995
10394+4b14582a1f6dec4ac546070b786b6489
10233103954b1486b466f1052b9e0c346e573fae63
10234103964b1542804d209e432d3fe9dae7c21518
10397+4b16eb1e4f3d43db1f83c5cd49887546
10235103984b183a4d59d92871d144fa232da2e134
10236103994b18d0c2212de60d91e9aea3b7db12c4
10237104004b1e09861757e894a3b9073b3a8820c1
10238104014b1e1ee607b3da4749b93218a4c4763a
10239104024b20b031d4adbb9a9199339013fc5db7
10403+4b22a1f7c35cb1e295e6f3199c875608
10240104044b22acadc20da8a37ca49668d161a147
10241104054b27f013d1404f1c11f0c1647bbb1979
10242104064b28a8dfa9d96dcab1954732fb8c0221
@@ -10418,6 +10582,7 @@
10418105824c671c616e156001bc0c9b29c181b2ac
10419105834c6d28a2ff5e474e78e309ac5c852051
10420105844c716d1ca1c3e8af085a627e5f8b9a2c
10585+4c73af02fcb5688e0280780363dee85f
10421105864c7574bd6149ae5df29f15c3403ce2ad
10422105874c7624709bb2ee45ea657939300bbd81
10423105884c7d63833799fe6df5e7883fa2e1362c
@@ -10517,6 +10682,7 @@
10517106824d37c0e6fbbb0d5b5acc1d8c5fae8341
10518106834d3845b3f9afd9a8dd93cb776fedeb32
10519106844d3cdbcc57698524bd2fbc945b41d6f2
10685+4d3ead26c008263d640c1e811f8c678a
10520106864d400997728d4ce237247560088ffbcc
10521106874d400a1480a62fbde8fec434bf4dd8e8
10522106884d411d0e1daafbc50cb470cb9809610c
@@ -10548,6 +10714,7 @@
10548107144d72b8dcf98cb15e221142264b80afd1
10549107154d733611301749e6ddf2c85356675a9a
10550107164d7661527fbd40d156f07cdfbc72bec1
10717+4d77df19a3597da8f60c52905be30cac
10551107184d7a35462f946235e96c8836629c51ba
10552107194d7aa570b3272f1a4d672ff0eee67420
10553107204d7b199468a09b7500cee06565e8c80f
@@ -10556,6 +10723,7 @@
10556107234d8426a8e3b81818fc6d452e2d11ae4a
10557107244d85d451d8560b2df535b7371aa1d4a9
10558107254d89da8611064e4b8f120ee51a03ec39
10726+4d8d8b8a6413f78bfaf740524e31e95e
10559107274d8e13c4edaced86ad508787254f4ec0
10560107284d8e8c5d8b0dc5c64af4a008430e11e4
10561107294d8f973b37ce704f9d024d444ac27863
@@ -10588,12 +10756,14 @@
10588107564db58b03a10f3e9e7e2978c0ce21474a
10589107574db5d748d7b9a27f9fa364f2485ed49a
10590107584db64909fca43b4ee3163732b67f24f7
10759+4db7650bef330987b9f7fe54fb546770
10591107604dbb9828d7c80916d98e97e26794550d
10592107614dbb9d02f8881d30d7a4660ef3ff4608
10593107624dbd8a8009a7ecbc0667d541aa536e63
10594107634dc0445a322a47708b1609c3b24ae421
10595107644dc04fdc26e7df10670d21fa7c80270e
10596107654dc099d7fd49ccc6ba633f816fd8c967
10766+4dc21ca96fdea28e80acf3f2eb434fc0
10597107674dc2d61cc71e3e10b7a1e176987f8415
10598107684dc31d98c88aa438dd024d7c42ef05c6
10599107694dc3295dd36e7f057538013dcc2f0fc3
@@ -10604,6 +10774,7 @@
10604107744dd023c313784e4e66454390f97cbb68
10605107754dd0f5ae02e94be8e54f4489c58f8732
10606107764dd1948411af64a4189ea96c823f88cc
10777+4dd23c4ef0a0e6108d9fee3bad995f13
10607107784dd23e0c16e46a71d004f5e82c4d54c4
10608107794dd34f5e41e99bbde744693f87c731f8
10609107804dd5b9eabac961a5ef057a8d1fa53ef0
@@ -10669,12 +10840,14 @@
10669108404e4991bb09c2f268b08efc328a643b36
10670108414e4bd8fa220b49ffdf828c17d5fe4911
10671108424e4de82b1e3494a9de7d8a169646175a
10843+4e521568816af8440b220737e53b868c
10672108444e532ebcbede333d9593c9e8fb39d533
10673108454e543d7dd154046c833ee0f59e00366d
10674108464e5617c667036e976398bf9f1d04642e
10675108474e57c5cb658baa7465212b72bf596bf9
10676108484e5e1cccd382826050f8106f63b41d47
10677108494e63a617105b72b89b1724f91cc1c9e0
10850+4e6591664f87f7560d6440dc6b07ea0a
10678108514e65c054a86cb5aeb169e00133d30815
10679108524e691082ccb87596eef14cb9412258cd
10680108534e694cb858a9f6c1103f3a75c540b62e
@@ -10748,6 +10921,7 @@
10748109214ed7760b17f6c3cd0fbdc59ebd91a0b4
10749109224ed866f55b071b51d3be537320ea643d
10750109234ed8b6513d4563e5d7e652a813bea5b0
10924+4edbcfa6d6d123f9627f01b2c3670b71
10751109254edccd105914873d36705b242a553e5c
10752109264edcd6a77ac222551d11d9bdec297734
10753109274edda37453113b1b3e2c8314461eef0f
@@ -10833,6 +11007,7 @@
10833110074f5abe53c16b09896daab13ae221ebe0
10834110084f5aece007e1c4719f1a48e9cf26a166
10835110094f5bdf578e059ef6f30bdb772d022680
11010+4f5c5585419a9fb14bc0ea77d16587a4
10836110114f5cafcf7ffb057b9382d4c8dd17d281
10837110124f5d0978dbaec80477f46405b260150f
10838110134f604c2b3b15e4815c6dd60d51705fec
@@ -10847,6 +11022,7 @@
10847110224f6d1f13ed47ba986e5b63f2645d31ce
10848110234f6e5faf600cbc11c28f7c139d6943a4
10849110244f6f53fd02a978db9432c3ee73842543
11025+4f71a0450c91a800340ab58e2dcaa8b2
10850110264f7476ec7fc7e81a18be156c556e7058
10851110274f76f76c7340b2437831bab6457a60ea
10852110284f7839e45a1f67150cf314e972e1d5c6
@@ -11233,6 +11409,7 @@
1123311409526a4df188a0b75f070fa0f0d310a44c
1123411410526a871713ff39f4c055487d0ab1336b
1123511411526c7a69b160b1b0f5591b270d4159a4
11412+526e7804e6ba4af67a6b20b26b1b85ef
11236114135270a059e8e476ff45da6479b516c914
112371141452754339e1a157a8eff0ee2c0a99f6f2
11238114155277156589f74e94bb8859b3d84aa552
@@ -11372,6 +11549,7 @@
11372115495360aa15856ef3f1cce9be8d26f3af99
1137311550536374159acaf11a4a8803e7dad5c9b9
1137411551536391461493eccd17ceebaa079f5948
11552+5366f42afc3a5e6cc1dcd853027c6883
113751155353672bdad82e52c8cc15f374a995e386
113761155453685d7743faf1418620bdc0e2f2a5b4
1137711555536870b7582a74f876bc6282da0a1765
@@ -11460,6 +11638,7 @@
1146011638540cffe58619a93f753bf65363808109
11461116395410a8fc06eee62d37b79109bb821a14
114621164054129ba4a991bab79463c211db2bcdcd
11641+5417299457c4193733f4ea34326354a2
11463116425419d043b9b8dd8ce42b69f571579218
1146411643541a2629bd428bf540170673d190ad25
1146511644541a57180662e79556d5c7fa4b53aa4f
@@ -11484,6 +11663,7 @@
114841166354386dc3c0cef34a60631fb40e67a4cc
1148511664543970e9dac4ba6fe9fe743f6d6b7e47
1148611665543a1d7c67b03524b47034a2e2ea9958
11666+543a871c76d5feff2f61841352f48954
1148711667543abc852feed5f00c78bc06a95cf543
1148811668543b73f97cc9a1ba299fae06761fec2d
1148911669543b8e48c18a4c4b0bc04941de92467e
@@ -11526,6 +11706,7 @@
115261170654811f084f552d2e5a4348ee60ec3669
11527117075481bd7549d821ec69cbb96b080a052d
115281170854842286a49aba78a57bd67ac97307b5
11709+548495d42b159cacf19184b304e7591a
115291171054849c89fde9e179dd41a5fcca26afe0
11530117115484cf4c2514f58775a89cca1b99e8a6
1153111712548540ebdd0deab6ce3023a19c7a451e
@@ -11583,6 +11764,7 @@
115831176454ea403c70c882d2fe9725e2b12dd22e
115841176554ebd212ff26f3dd50e8567d94c5d687
115851176654ebe1922790a5e74af9a317655f9227
11767+54ec53d4c5a3ac1a7fb08fba242e6c01
115861176854ecbb32f20b78e0d78aa0dbf401b0ad
115871176954ef3ef3b3cf31e027e8cc2fbf597391
115881177054f02f3370f5a56bb05972c09f91aabb
@@ -11743,6 +11925,7 @@
1174311925560da424a58920d930e96af8b2197b68
117441192656107422ec37d823f28453971a51eba1
117451192756120b114dbb8a52a234e1040b0761eb
11928+5616d0de82f76721c9f482cf009fba5b
1174611929561dc1abc10d0fb7eadefb34fe5df995
1174711930561fae812fc4e38819f32b41eea4053c
117481193156207c5c25b34ef673ff37c94d4fa3a1
@@ -11828,6 +12011,7 @@
118281201156ad05df55603bd474bb18a9563dfe20
118291201256ad333a506d4bc941df7dfcee8531cb
118301201356ad4eb8db1e1cb7d44b083ad6b8be27
12014+56b1e66217f5480a74be912ca64a75d9
118311201556b36d49642d47c280fc6fe054fcc1c5
118321201656b4b4327aa8f6922a0242dd04f54316
118331201756b4e124304264bd80263a8f6cfbedcd
@@ -11887,6 +12071,8 @@
1188712071570e3c3a363bbb6f116b4591b120cd83
11888120725713b037ffd4a685778cbdd88bff886c
11889120735713f94dc6201bca0f552bd2c167001b
12074+57180e688bb7f9f118be3a5eaf15170c
12075+571b5ddae3245be083035a6524eab6a6
1189012076571b61b7cfcb8a12916ce6306981df30
1189112077571bb120ff3a6f7585143718d78bbe69
1189212078571d940c8cc7db26fe833d2d9511eddb
@@ -11894,6 +12080,7 @@
1189412080571e0b9ff37a7d698d095708abf80b9b
1189512081571eda32c9d1fdee1fab4661f5a3e7ba
11896120825720d25b130b56f849c2c74886eb87c6
12083+57212b91118be36ed7a5f0a795a27dd0
11897120845722396e37c11dcdf054bca5e3edcbf1
118981208557251900fd828915743b5dff6b15bf59
11899120865727b5ebb1ed3e37d77f77093887d43e
@@ -11921,6 +12108,7 @@
1192112108574c35a2a1a3cb942bb7dacaf9cc389c
1192212109574d258ae4e5d8a45298f3f8e797194d
1192312110574eb7ca78defa3f0acd739a659a6d6f
12111+574f93707d81b89d3706c13afd9ec714
11924121125751dec506f7c66df4bdee121b04f7f8
11925121135752ab43e81015b545b4645e382a4b98
11926121145752ee63cb0815a50e386bf7fe8a22ae
@@ -12049,6 +12237,7 @@
1204912237582e9bd7174281fd891627861b0ed53f
12050122385830760d5d69ba23232ec1f3f83842f9
12051122395830cdfa1ef57800a0b72a3ffb5befd3
12240+583173b28cfdfe0c1af96802545cf9dc
120521224158357c8c5da853a168c845628b27bb79
1205312242583628e868a6b38988eb68538eeb7c89
12054122435836b45ec0cf29436c447a5758ee5460
@@ -12067,6 +12256,7 @@
120671225658446803d8c0f9b1ee0e22bb13c2046c
1206812257584643528e061e2994c8027daa5201ab
1206912258584a627bc4825712625ec240d4f5b8d5
12259+584fc45661e18c082f676b6a680ab9b2
1207012260584fe417a34b4895e31b8b6512d10bcc
1207112261585607805d1b9db98c054ae968ff95c5
120721226258592f77f7b952d31dc69de853571d01
@@ -12224,6 +12414,7 @@
12224124145963f6cacade1e2192b3f8c0779006c4
1222512415596431a846b9127f689d11910f0b0c51
122261241659645e5fb68bd1ed93dcec0406a2a77d
12417+5968b2f1f6d4b3406997b7f7e79240fc
1222712418596a244d85b83386a2462fbcc7ede21b
1222812419596abc1123523f570a3ff80a6919ed7b
1222912420596be6175cbc554aa579e421503e1d1c
@@ -12245,12 +12436,14 @@
122451243659903fc455986aa8d2ff9b854c5f88e9
122461243759911ca7ba509119c85eb0ff6435576b
1224712438599460bbf98cc0e3d5b5bb3c12fbe9fb
12439+59947ecf9f3214f4c58117d0bd0ba6ab
12248124405994b7a3e44720dfaf90a24ef21eb255
12249124415999359214e8b53898baff4ac51cde55
1225012442599b76545d5f77f36d377f029b94db2e
1225112443599b7690185e8fca6805236a428e73b6
1225212444599f1ab520f921d45563ca41d35aac73
1225312445599f3e2b59db1fa9be48eeac55f0a6a5
12446+599ff3d0b99308a8746aeb7e9711440c
122541244759a247e217298c6e177bb01d20b68b14
122551244859a34de450e4fd6808d6a50eadc9f526
122561244959a40940d13f68d4334b3bcb12c7fe86
@@ -12475,6 +12668,7 @@
12475126685b2acfff7cf531598ca1f37d4b0a3808
12476126695b2b0af5f7539c133089f60855570e57
12477126705b2c1cc770c6a14150cd0cb86e80c362
12671+5b2c5a087a2bccd5dd4d523494cc896d
12478126725b31a16769b27d18d83dd0be28f3d339
12479126735b328c3fc42e14204c9db754d18105fc
12480126745b3449b95d3f74564097002636524067
@@ -12597,6 +12791,7 @@
12597127915c06cd201c2df97879b45132437ad992
12598127925c09133bf45c852a1aacca73b7329d05
12599127935c09a6f67271275ebe0df6d1962bbead
12794+5c09f1c614b0cf95ac7b3589ae36b137
12600127955c0acb8a6cd92af6ed5b4d6d6e04f498
12601127965c0bf895bfb5f7e64bcbee916005ff31
12602127975c0c50336ba6061140dd253b74e6dba1
@@ -12624,6 +12819,7 @@
12624128195c3e00df4dc2f3f984fe2973c64d9845
12625128205c3fd8c572a18ade9eaddd7997cec72a
12626128215c42b40b302dea1f942c455d3fdb3b84
12822+5c4554446dc83e51b3d0c04e5774f385
12627128235c4bcece70de961bdd5df2353b2ab3ad
12628128245c4c234a35138f857c115da817c2d387
12629128255c4d7eaa1f7699dea14bd5bc5bf84a5b
@@ -12658,6 +12854,7 @@
12658128545c85688e2e00aeb70038f24a3f142f61
12659128555c85d1b4d869a923a36deae91626580a
12660128565c88ce714f4b223c89f6bbe31ced301d
12857+5c892535c74d4b9dbf29db48b3997f92
12661128585c8988dce448ef446c2f68471b9a7bda
12662128595c8b8bc2d90d2217a2dfa33e1cdf9787
12663128605c8d3e6a3fd00cd81b447357cdc49d77
@@ -12774,6 +12971,7 @@
12774129715d3f8199d17bad19bb0dc8f8aadf16a8
12775129725d415c585a4ecd0e9a949b807eea4c54
12776129735d42e741ad85e1523589c0868004646c
12974+5d441f2a53c15027fdb230f22cd5b1ce
12777129755d453ef77f525eb3b896981052555e1c
12778129765d49183f81e65d621b8d25a433d416da
12779129775d495a76bb15de81695df2e5aa578626
@@ -12894,6 +13092,7 @@
12894130925e1ebd340c9698efcc8e5e0467a236d7
12895130935e206267810e3f0c952463fd42edc9ab
12896130945e22de1f373a4ce556b92378aa36e939
13095+5e246461222199a12a6fe3f1c03ce35d
12897130965e252b1206716ea0fa0eca40da6fe507
12898130975e278216502d5828f323c7e3689e9980
12899130985e29c7f6e408858d46c9c01c8ea45e44
@@ -12902,6 +13101,7 @@
12902131015e2bb9f9ea61b9366585caaff6ca754b
12903131025e31ab98969a09f5cf838b1c5553b2ba
12904131035e334cfc14800cbe82717cafb66c3227
13104+5e35011920497d580d36b2d566e639f3
12905131055e378551cb037ba53b6db6cc8925e8ce
12906131065e37c72552eb748993b1cef6c52272bd
12907131075e3cd6424220f8885447730b2e572531
@@ -12943,6 +13143,7 @@
12943131435e849e09221670f35f75c4d34cc145a9
12944131445e86070a356d2ed4a036a28bdca8e059
12945131455e86b84765be8eba76e7620b1e40e931
13146+5e8b88bcbfb24a37bd8fc5534552b152
12946131475e8d7345618f025a78644962b0ec28bd
12947131485e8e1d139500893bedb076d1dc01ce03
12948131495e945f28c037d057178e3c40b0b08fcd
@@ -12953,6 +13154,7 @@
12953131545e9872159973f42c3c6ca127f910483e
12954131555e991f221f160ef2b29f7d7cdf28d444
12955131565e9eda907377c7bbbc4ddf252530a8a9
13157+5ea311d64891c8828bab38edde460f53
12956131585ea31ebd6a8abf232e6ee2def4a3c1aa
12957131595ea4aab0882ee4864ec36eb4e07f2606
12958131605ea53e34eb494c2fc9cebf3c73b2ee7b
@@ -12987,6 +13189,7 @@
12987131895ed8b85057924bd2a6385e3ceb8d37b8
12988131905edc098376bce3a48b81de182c18b4e8
12989131915edccf52eca8033b46808e7fb898b7d9
13192+5edd2fefde21a3164f1853e7020284e4
12990131935edfbd19bb7f1850bd6a7af61623a539
12991131945ee6cb6f97474864bb9c5cd496b78df3
12992131955ee6ee7e04645e000bda30ad53bbb408
@@ -13070,6 +13273,7 @@
13070132735f7e3b31e52bdccf9575e4e37c5000e7
13071132745f82f8572629d1762dce804cfe27dac6
13072132755f836cd77d406a15c229ebd4000ee0c8
13276+5f83b54d0e757d43ed9c7c2865fdd906
13073132775f86313b2e10abc3980545b82c68bff8
13074132785f87fed679f1bb16ac45b3f39c724a68
13075132795f8a1492abe655392be6a92531c0ebb1
@@ -13102,6 +13306,7 @@
13102133065fc11181759d4d5440f2db916366d116
13103133075fc54f761f1d3e2b418955c88db80e24
13104133085fc73b574b425da4c4a2049c3d9ad39e
13309+5fc79da802fbe1557d6a1da364baea80
13105133105fcce5c19d2e8d1ec5796a8a77f4e431
13106133115fcf44ff082f35ffa4c1e97800eadea9
13107133125fd115ae834b2471aef74f2cca747601
@@ -13231,6 +13436,7 @@
132311343660d9012f8c219237973102647d1b59ad
132321343760dcee357d820a71732e3a04b21444ed
132331343860de2bf77d24d11468163772305339cb
13439+60e5207a274abbaa9c08b55fc6c78322
132341344060e76c1d210f64e28edec50881f8f0d2
132351344160eb666917d006cc03c206e4c727893c
132361344260ef3180b60f8f975807b506a061c6b9
@@ -13334,8 +13540,10 @@
133341354061a1f982d85deb6f4898c0a693b3140f
133351354161a406ee4b79b035ed3edeed7f533a07
133361354261a6437b2aadcc5256bdbad9626b9f1c
13543+61aa7aa7c17afc262d6088400ed3a3ed
133371354461acb9bab5991a2656310bdd772adb2b
133381354561ad0902f30aeae388a98254e5e22a1b
13546+61ad67d8d8576f3d6d0b9546fa4f715c
133391354761aead9e5d20a9d431a47df92da08194
133401354861aec8b05686621e7cf47d14ce3cc728
133411354961b00cc217168aa8df111b0c1d448b8a
@@ -13371,10 +13579,12 @@
133711357961e53134b982c19f4758f4ea4a25d47d
133721358061e76ad43a46244e120631dd97c7c10f
133731358161e8703253f468f13b3fab2b470d1050
13582+61ebcaca0fa49ab276fe51a643035aa9
133741358361ec3fe87a46fe5dad7506f574a9143e
133751358461ed3c07ce1dc11404b7ba241fe6f30a
133761358561edcb90bfe8e93794035cf0ec5055b4
133771358661f005e0316e6a33ecd85a7a840d1a7f
13587+61f023ce7228c3525988d1084c8272d3
133781358861f4681707f33c7c73c85a9e0fa9becf
133791358961f7e5591be2727ef323a0983a782c24
133801359061f918062cdefed259999e4fac188649
@@ -13383,6 +13593,7 @@
13383135936206a0bfac0659c0a7ec19ba47da6fb4
13384135946206c355c888ae5c84453c24b04f31cd
1338513595620c34d90d8d46582e835f70df88db99
13596+620cc354049f84a4601298938ac8e822
1338613597620d260bca94827279a172f0408853e0
13387135986210c681468317d3d1fcddd098a0d812
133881359962117f7fc5a1f3350b2476de6c00cf39
@@ -13425,6 +13636,7 @@
1342513636626023d31030d2d4ea784679977fd1e2
1342613637626055f143412174f5a5ccf9a264c756
13427136386260db919aeda9032226d7730719923e
13639+62642db3cfbe7272c762354f8c2902ee
1342813640626535b65f8e6390bb80a54dfd189334
1342913641626b2d894d0930e649815820c74f82e9
1343013642626c3d600313bbdb4930e9f94da7965b
@@ -13468,8 +13680,10 @@
134681368062b5ecc8d63de3a0c682e5fa83b4e6e6
134691368162b9b63af083c574d566022687ca1269
134701368262ba1e72ec6c141fd1d714f47cb29466
13683+62baefedc59c779011f2de31e673e5f3
134711368462bc4d7b6901faed53cdb3ddb103c2ed
134721368562bc65382a4230a4913825a90081f2bb
13686+62bde25c1c578ee363c8ba5f40961f7d
134731368762bfbe0dc0921dce2f0cff73874a21a2
134741368862c0561aabf989db4df6ed023011f312
134751368962c107f3d19915a3debfbb1d487ecd36
@@ -13484,6 +13698,7 @@
134841369862ce2fc18c76c072a1fee6707617cb76
134851369962cf52ea6b0eae23bf26d29f555aeac7
134861370062d122eaf1ef68936a00002d792e26fa
13701+62d2751296fbc6fb6980a0aec4fb5df5
134871370262d3cdc386d8c93ee4d2480408cc18aa
134881370362d58c1235151c27ea499d9b731fd907
134891370462d98b3bc75ea0b8ccd4a08e3e4127ff
@@ -13517,6 +13732,7 @@
13517137326311522bf92fb666757c17d4a039e9df
135181373363115464a68602a5f6af8409fba52631
13519137346311e3f10285201f9208c1a5513829fe
13735+6314e06e193861b9537eddfab78c6631
13520137366315fec8a12ac5c9565c9c337882fed1
13521137376316c8aac81603eeafca353921ecde04
135221373863177b0b5e823a090c31c0b94c5a6ca6
@@ -13593,6 +13809,7 @@
13593138096381e551008a356862cb8003e83794f6
13594138106382b91795333a71e37879b1f4ee1578
13595138116384294a7883ac653dc374838294dfa6
13812+63872fe01e0625421101f882d778d0a4
1359613813638746829397573341b4ce8be96c89ae
135971381463893816aa3b139332d0b03e35f300ec
1359813815638ac12243bd3bb1c728504f3e234a04
@@ -13691,6 +13908,7 @@
1369113908643e3c4590206e455310c5688a1d245a
1369213909643ffe77569245654f293fec82577f91
136931391064416e9b6a62fa2d58e04c81bf1e870f
13911+6441b666d75f75eb4d92ae8b50c1b60f
13694139126441eaf5c46ecaccaef98350ee1e1bdb
13695139136446da7e20c8f6f1c828f7c0b0d6813e
13696139146448a059fc8117ad8d4eb9e79b533d00
@@ -13819,6 +14037,7 @@
138191403765370337bd6e72ab6e7387316b56a183
138201403865381acd37fbd31ec7332d91c24b9e62
13821140396538af985e7b29789a76b974e0b904fc
14040+653e0d85da3a3ec2153c15e69018c068
1382214041653f59359044ade07b8f4eef68072bae
1382314042653fc3b81b7e0df95fef88fb7e160456
13824140436543a947e7b77866c8e6a73914ac534b
@@ -13876,6 +14095,7 @@
13876140956593fa792f7b02f26e6f0a2ab1a70010
138771409665943738dab4a8c5c2b328837cffd484
138781409765944c8d6430d1d882c179c7d3ec7eb4
14098+65988aab527712fc34055cb1c6db60d9
13879140996598c6ea38d69d69b59fb28bdaf56784
1388014100659aa65725a6054644cd1cfe49635d1a
1388114101659d818df07f25384223a873237cd7b9
@@ -13930,6 +14150,7 @@
139301415065fd2134e90a6e24ce1f1c56962044cb
139311415165feda8333a13e4e9201d46c3c6fc87c
1393214152660081cc034cd7c6b071f4fb0529fcdc
14153+66032207a797c8a3ff798bad60c7c416
13933141546605c86dd975b842ba3c263c866578ea
13934141556605f3d5d0903ef7db263b5233e53f4d
13935141566606bf470076976cb33bba5b3e16854d
@@ -13976,6 +14197,7 @@
13976141976647f15889ef674bcd8240214f323d6a
13977141986648f617721d110dc7564a4fd85fc0c6
13978141996649415c6ae156447930df454a136b39
14200+664abc5e0b1dc23aad380b3b3c2c5fdb
1397914201664e51ef7e25ba774c15688309bf7c85
13980142026650684526b3c0f5a10eee0f6b790fc7
13981142036651499eb91df180e3f81c193f4f0f72
@@ -14003,6 +14225,7 @@
14003142256667c345de226989e753f6aabe8f374d
1400414226666811d46ed32cb43c4a1008a9ad3d26
14005142276668549f2d390202130a53edb2159ec4
14228+6668e00876de451b4c4207c6737acd3a
1400614229666aecdeb02685ba13bca9fc2d94986d
1400714230666cade985d9661d8d117b8512237326
1400814231666fe6a63446193d91a1e9220137b0b8
@@ -14022,6 +14245,7 @@
14022142456689fab2786bfbd09bd2f0985a20724c
1402314246668a0378dec91781a927d68fb642a4be
1402414247668ba652cca5a910378b274c2281abde
14248+668d3e42c90e2485e69dd27933ab5446
140251424966923419f319336524da65f146dc3bf5
140261425066983299fb4e30741f875351dbc3e2a4
1402714251669d8f442e6f24cf7b6ef3a4ae523423
@@ -14042,6 +14266,7 @@
140421426666b0282b24dc1c1aaf42d06d6014708f
140431426766b0a5d6b86c709655d2b78ae7826074
140441426866b0b8378c191e31b1b5343201297250
14269+66b2a17fb45b7325e1901a531ecdac87
140451427066b3ae0f238d0da08e796e87200c41a3
140461427166b5b24ccfc9e86027551fb475ba8f6a
140471427266b687efe8ca1433c52c9c86e2ef9d18
@@ -14071,6 +14296,8 @@
140711429666e03bee0dbdaabc5aa949c097e03964
140721429766e6046c2c0a62d3a1835faa95a2cb18
140731429866e64fca3c833fd875292761071ddb63
14299+66e95be6727965bfcf4bba7dd21e9b19
14300+66e9dc76040ac238f7a57677bd0abfda
140741430166ea50cb45110cbc8980600f832f801c
140751430266ec2d4eedb9ab3eb0bb39dc5a96dfcb
140761430366ecfd0e211ebac37bb6dc72a3432436
@@ -14180,6 +14407,7 @@
141801440767952d5995855fc0d8b2c3a9914357da
1418114408679b390e4e14fe8f487b074a0eb75abd
1418214409679ca442fbd0591b564d8a7f011ab155
14410+679e4289818511c6e4699f8768ba9349
1418314411679fd11c1519a8a576f21eb0d4a43d80
141841441267a082af5b8ceeec2e00724c5faf0d54
141851441367a15c36f2b065f6b0f30a5bf4aab082
@@ -14190,6 +14418,7 @@
141901441867a661baee35a3430b0136128bc3551d
141911441967aa6780ae602300d0e1779bdf58e54a
141921442067abd1ea9889e6682c8a9c988d98668f
14421+67ac4461692b6306330ae8f39a9757e7
141931442267ae2b1d4448628420b831847f86c84d
141941442367af80d4e70d5937ec8d5bdd16fd5dcd
141951442467b1a62ed76c0d17dca93945bf076448
@@ -14259,6 +14488,7 @@
142591448868190d55f6ea6020afe5be0fdee19641
1426014489681954c88b7cb251c0211411dbca2433
1426114490681b442910848f90c134b7823308ed98
14491+681b92d41a65fcae128480fa9636181a
1426214492681e6a5186b214bcbced167395b4ef19
1426314493682033bd32d95f382ad78e4cde6af770
1426414494682173c0a49f6db73dbcf66ccfd1dd16
@@ -14467,6 +14697,7 @@
1446714697697285f312b25d17f05ad8d30ea8f0bc
14468146986973d6480eeb02baf665f9a235db850c
144691469969766959fafb8982d39b13c86700db49
14700+697831a2811912b202445ca5be0efedc
1447014701697c05ab5352aca9ec654104a23b6e70
1447114702697d2f8a8b1922e000b640b2904f55d4
1447214703697dac063e6746251cc825f5b135aa5a
@@ -14514,6 +14745,7 @@
145141474569d7a0286da31e885a85e62c77064c60
145151474669d828844f960bc9a675c1b1d3b90a5e
145161474769d8e66f4bbe5e89c8f1f9f230a9d387
14748+69db3d300ff1fc897cff80654d3787a8
145171474969dc2ea9ef60bef771756260283c253b
145181475069e22efca6d3d6d6f6720769cb383131
145191475169e5e61f392b138b8a60a0e01ff1111f
@@ -14597,6 +14829,7 @@
14597148296a77f1a1219a75711094822384073b86
14598148306a7a810ce8213a04046053e80bd4f876
14599148316a7c627c9eae25af1f2f8dd16252f5bb
14832+6a7d60cd8aad67ec4338cb933d34f69a
14600148336a7db68c79289cf85508d35e883b6600
14601148346a82a269dd41fd6aa65585f3b818d839
14602148356a82a5fef0ca8d90954e044af1b90e55
@@ -14798,6 +15031,7 @@
14798150316be04bbb4a2d74af862ce3388acfe46a
14799150326be08506e914784ca5f2d99fa757ae9d
14800150336be085818e722b281085c05a0fb46831
15034+6be18d73be5978fc27cad5fe261b21cc
14801150356be47a74644fd0eb185dece01d31b0dc
14802150366be709e93fb3d26c7184d0f7829f2825
14803150376be73251574b3e6318ba374858b13d79
@@ -14811,9 +15045,11 @@
14811150456bf9e713fb27e24dbe124e0d8503458b
14812150466bfc027794c9f72f417e10e4713a5aa3
14813150476c020d4c3f83f86c4e629497e872a914
15048+6c023b923352f6618c890660356aa24c
14814150496c037651131bfa50414ef24bd7a94e0c
14815150506c0bf18262dcce03019dbb45a83ccc28
14816150516c0c00d17f1c1ed64dc7a6154ebc0753
15052+6c0c9305d77d2e7b05d2baeed3a6fc60
14817150536c1142b431d305efcc6ea8da1308d164
14818150546c130ba270cb3d4c182f2986b9cf3ab1
14819150556c138f5becff39c23040bc950a88d0dd
@@ -14876,10 +15112,12 @@
14876151126c92049ab0cc5d4c0772d118ef7ae2e5
14877151136c950ef65e80c083628d4d0b19cc17bf
14878151146c96ab98b191027801796cc9489e0ae6
15115+6c98887fe66a9b66ef09a57949dfcc0e
14879151166c98a86a0dc546c247bda66e4ba1e70a
14880151176c98b2bec3996bf1e515fc66680dd7ac
14881151186c9946aa3f2b24650f11dd3f82892f4e
14882151196c9d4162d44c624b90a1238ce75b2abc
15120+6c9da575091f4eaec4f7323b96c5062b
14883151216c9e4e04c844505f9e5820833f4f4e24
14884151226c9ee5307e0930c9c6fb720bf55b45cb
14885151236c9f25b9522d4e7ab697d8df51153b70
@@ -14901,7 +15139,9 @@
14901151396cba0875d9f1143f67ba724ddc0f9f50
14902151406cbc209a23896b517138943fd042c4a7
14903151416cbf350ccd968fb8ef055677d0cc1728
15142+6cc02dd4f4eb9d49cf50eba4ab9dc89e
14904151436cc05ffc2b875424cda9ee3c48b83d71
15144+6cc06e4c17c5ddd430a608ae7452c373
14905151456cc4b0ecc0c7158905bfb77fdb83604b
14906151466cc4dc4233ff9305a95d50666084873e
14907151476cc5afb7c5967218768c1bc63935825e
@@ -14950,6 +15190,7 @@
14950151906d167077ea49de07212e30651b6ea3d6
14951151916d168fe0b4b172203271b3e2cb82ea6c
14952151926d1b4fddf9cbd47ffd0b5c429c7926bf
15193+6d1bd4ef7293d195ec61735acb2e1df3
14953151946d1c8c7df4e04ee1f5726775b81bd34d
14954151956d1dbb6712d7ef76a659d56d43d3711f
14955151966d1e016f565af8f69bb8a09bd563d84e
@@ -14987,6 +15228,7 @@
14987152286d5260490e71936ff3adb479bed5b425
14988152296d547520df5d06eac235eac03a960b59
14989152306d5783b961f3fbcd0ec9af0de674b5fe
15231+6d59fa5e6ab8c27110548eb20119e926
14990152326d5e78acc718252d273e4c5b717bde82
14991152336d5eec73b6541206f43a71196674c79c
14992152346d612f119504b16d83896a1911b5a538
@@ -15132,6 +15374,7 @@
15132153746e4ff8a672dcb6e7a85c93880c802f83
15133153756e52b4d5690d8425a050c4b99fb835af
15134153766e533b14680595ebce5a3d1f4605f78d
15377+6e5341d73b11566c7dac342f40b0f529
15135153786e54cf7b22f7f730caadf8a53a236db1
15136153796e55d5826ca850f2a97570674dc12d97
15137153806e59d3eef06c237da0006c85479e7438
@@ -15148,12 +15391,14 @@
15148153916e6e60018417ff14809bf5a6a78a50fa
15149153926e6eedb54c4330103ca60845c3014fc0
15150153936e70021296f93102bacb65a4c96618b2
15394+6e704875be58935346433188c3170da3
15151153956e7292cefda5953128390c28d9c208cc
15152153966e73a963a7e609fe0fde50aac48687ce
15153153976e749a4466dbe912ec56b4b854fb553e
15154153986e75ab9eba0f57dfd6342df4b94d3776
15155153996e75b52b74a192f7a188d6bf07e882f9
15156154006e7e573c74884bd5550e1bde013a1d25
15401+6e7f3a53ab722699f7c7d39ccae8bb5a
15157154026e80b985b3f6cda4c0aa0ea210b803b5
15158154036e815af85a34d31bf91f746d69b19e82
15159154046e845a3118cd850856f20855ad3bec35
@@ -15199,6 +15444,7 @@
15199154446ed743bb8135e90cc3b7157a4bdb17f8
15200154456ed904a7c60d842f061bb76be0a4c456
15201154466ed96d4bf928fad2b6811ad330879d2a
15447+6edac8bea4689142c93541469bdd6c38
15202154486edb2c310e7f6d6bf6b6f57e77b9ad9f
15203154496ee016c27dbecda811ab19724045195c
15204154506ee257b4b8f911740007be2f5277ef26
@@ -15280,6 +15526,7 @@
15280155266f79e1ecd1b25404eb07ef6cd7bd335d
15281155276f7cdbe049500a29ca5200eed73183e0
15282155286f7dc6472c189cdb87713035856355f3
15529+6f7ede37ace73c066a324dfe620c127e
15283155306f80e49e6d46d8ed13cd57e62c779c94
15284155316f81d178c3a2d2f87c3fb422927eaae3
15285155326f842c1c2ef7ceed2e6e16153953668f
@@ -15317,6 +15564,7 @@
15317155646fa874c2100da27f4a14c51dd78b2462
15318155656fa8ba9c0ff1d474bf71ef56431c775a
15319155666faa804f00735c8049c87446bf5bc2b8
15567+6fac69fc85008f3827f8b5cb2d1e4993
15320155686faf4609567a17c17aeb7e7c2dc16841
15321155696faf78de9648b90cf863abaf66a95a0d
15322155706fafac15fbbe2f48b8d46fb93b34335b
@@ -15326,6 +15574,7 @@
15326155746fb2b671e5a49af962cf17a63ff776c4
15327155756fb3d250e36030bc0fbfb21e9f6ea7fe
15328155766fb4c17a8aa687b22518fac921d4739a
15577+6fb5389416cd4f45e2c921ae0c6e6495
15329155786fb860a65a8d47ce0d0e3f9f8c0a2b84
15330155796fbe416caf0c60c1c1d6487eecf625a8
15331155806fbe8f8b377b94f793fdc87a4a95597a
@@ -15361,6 +15610,7 @@
15361156106ff5901d82d0e8a412e8a9498fa3a524
15362156116ff65014ec474d7fcb88d8a95b73579f
15363156126ff8678ebc305b8c87f901cc18c481fc
15613+6ff871f8c411976f8bf5b0aa0e40b757
15364156146ffa4bc9e779feed145f71b857e647b4
15365156156ffbc3df5df005db41c7adc321b49580
15366156166fff70d00ded4353883a3ac908ccf1f8
@@ -15412,9 +15662,11 @@
1541215662703d92b7508e3bc61b58bfffdb226a89
1541315663703dee7855fd99d4bbf48c928b0e0ed7
1541415664703fda1ae7717a7d1dee5cf9fa5d7fa3
15665+70450be9535f5ec4d8ab0a913ab6b358
15415156667045396789edb33a54b64de2c7b2a520
1541615667704614cafa5bb263657e2150b0733f5d
154171566870497cb1aaf0d0913ae972e0d591e178
15669+704a8d2c484c5f306e2a586e334e812c
1541815670704ba30354eb53d5f2dca0dad8ddf6cd
1541915671704d1fc5c314866aaecc6518f4404897
154201567270513e02f93f9f495a6e7b0e58773978
@@ -15465,6 +15717,7 @@
154651571770acb7f045cb0e67265e14ce399e4bb4
154661571870ad12ce765bcffa07ff30222e30b3dd
154671571970af9d0a4e8f9afdc4e85f561cb2fb8b
15720+70b0c3eb4040c7fd5b9f71f49b0dc4f4
154681572170b0f8a5bea59ceefda2acc077b171d1
154691572270b1976f379e70ac287ef33f4183b184
154701572370b1b952ad5534b61dab6d1564b38ea6
@@ -15482,6 +15735,7 @@
154821573570cda0ec549992322848971095f99a52
154831573670cdfdce881159f4bc101602fde9b547
154841573770d0c225d44fce9411acfa4be98bef56
15738+70d23c82936c3e7a25e6e812650245d4
154851573970d690dc629241971f51762253a5bb33
154861574070d7488bc68328e8796f2aa0cd3afa1e
154871574170d77093ba6589891c5f40ed131b9608
@@ -15543,6 +15797,7 @@
155431579771425886d5fe44e61c7a3a078b796bab
1554415798714896c3fd4610aa99f49d8909fa7dcb
1554515799714c92b0a4f4df50f863064cfffc2482
15800+714dae84bdcc2bc7d5063a72fd267cc2
15546158017151aa2035d8dffe075f41f144d0db00
155471580271531e5b26e95a152dfbfb8acfe5aa24
1554815803715434b54b25841426fcdf57193aea79
@@ -15620,6 +15875,7 @@
156201587571f6a43d2864aab38954d07873b99629
156211587671f839b30d480b43bb792388fbb28442
156221587771f9a584502855bd1e08b34827705d37
15878+71fa5c79c17002e70705d7ba5a6f33f4
1562315879720a2e634987bcf3a0fff3ae5ddc7e9e
1562415880720a47281c1bf4c490ff1f1ff0cf75a8
1562515881720a61c45ef33ac2aa26ea0eb99c767d
@@ -15726,6 +15982,7 @@
157261598272c8584925cf446fa8c1ba782cd63c3e
157271598372ca6fc5b5726046280509ea604f5ab8
157281598472ce3b8a62a34e7b78ba210c03f1fe00
15985+72ce4fba6b61a6c239c0d42385539c33
157291598672d2f3f08d8fa7c779119e4da1c27fa5
157301598772d731ed6fb3747db31bdf0291ffc307
157311598872d75e3b2a62d6b14978110bf0911d70
@@ -15783,6 +16040,7 @@
1578316040733303873d999fc63a7f88a18642e843
1578416041733740b005e6bf2370d62dfd4f55dac0
157851604273382b58a1cef711286464c280c3dd3c
16043+7339b3c7302d69cbbe0f32e4cc7144c5
1578616044733d793672b6cc061da0ef3f41e38c91
1578716045733d91cb67872dd577a1f7dd15ff487e
1578816046733e9e72be0274ad651442cd3ef3756b
@@ -15821,6 +16079,7 @@
1582116079738d2cb27ee0343080a94982dbf6fecd
1582216080738dfbf4885cadc6715b59568a70dcb6
1582316081738f595d489547be8758f2fafd972d21
16082+73900b5938afb28c5a238758743a05b5
15824160837391386407624dfed0ad5f10a78c250d
158251608473923e67457ed90a3c87529b606c1e1e
158261608573938b9e8685d0954a0e7e39526693dc
@@ -15847,6 +16106,7 @@
158471610673cdef0968d451a70fc7358c2aa7bf40
158481610773d2685938ed445fbfee036d73f35c35
158491610873d76b1354a940341aeb0d36bdb107a7
16109+73da10f665f3df7fe2ad128256ad4ce2
158501611073db0c9d8b142dc77348e7833b1fa6c2
158511611173dc5f64d89b534ebdbb00b54212144d
158521611273dd45c8045f8a1c1cef91c00b242f53
@@ -15871,6 +16131,7 @@
158711613173f857f2bdb7172196956fba216673fc
158721613273fc418ebac9d06d37998d3ca11bd9ff
158731613373fc523908a5f110b34ca01a29c45cfe
16134+73fc9dddd2e618dd8f985d16d05ccbd8
158741613573ffe2144e5025b16ff89f1ac6e3d8fd
158751613674025f5321d3f2b8860ada325a2bb6b7
15876161377403a28c4be18ff829c8659ad7baffaf
@@ -15943,6 +16204,7 @@
1594316204747baff0e4d6145cfc40696b2e5646bf
1594416205747ea4ee66192ad882f6d46359fe28f5
1594516206747f4b9c5fd7d13f1b2611732745a589
16207+74841f2899533f8db78c898cca15a4c1
159461620874850be58d8daafda6ee8fdf3d864734
1594716209748735160895517fa79a565f4395ff21
1594816210748742a2e411e0ae69f1c7c0d4091880
@@ -15970,6 +16232,7 @@
159701623274b5658bf5ebe05f717dd07f29d6ffc2
159711623374b5b1cfcdef5ad6f9bb7f2552456711
159721623474b677479b37e69e511ce9fa5f892f83
16235+74ba1a053251c09486f1e39a9ea44259
159731623674c087ac78640c919782870ae10c4184
159741623774c0eaec18664d62e1ea109d23b4e906
159751623874c1e464a293a74bbea5a01824df560c
@@ -16059,6 +16322,7 @@
16059163227564680e8b3c07b21f1ba1a4455aac21
160601632375657eae2727d6cf4dc34497389d74d4
1606116324756680734afcc311edcf454a07dabd90
16325+75685b8a938a55d4f2fd197f425e9f21
1606216326756860ec198201b3a3d649df4786ddab
16063163277568af5cae93470f3586674730e1a8e0
16064163287569bb749bf0e2b4a04de72a1c091485
@@ -16161,6 +16425,7 @@
161611642575f8303d3a4cf645ba4775b5613362c0
161621642675f84f68e5f5daf2c952c84412a4596d
161631642775f8fd9ee97eee2c358f2a3c9ed6cf39
16428+75f91ccd0cd76775505d988e04d337d8
161641642975fa872f3e9531ef2d0b8d765974b89d
161651643075fe010881c622d257e78634062bc2bc
161661643175ff52089492e16421019fffed59b09f
@@ -16184,6 +16449,7 @@
1618416449761fac49aa7858693deeac7b58cb7578
161851645076255ebecb5260109751989e93cd4da1
16186164517625e6819d152c59aadd211ac0421c9a
16452+7627eb28c53f9a931c3c042d50304fda
1618716453762b055b60a9af079841ea320c28a4b7
1618816454762c800b0beedc00ad25bb08ae2d727d
1618916455762e189dc74bfda111aa65078d333e8a
@@ -16205,6 +16471,7 @@
1620516471765dbce76e64f5e24eea46fc89a9e380
1620616472765ded42ac52169e9d148dea0d7fbef9
1620716473765f2d1848f5f9d3c8ed63f4618ca0a6
16474+765f7add89c065c13c3483026d3082a1
1620816475765fa79ab2a1cb5f6bf086f7c2c1f26a
162091647676607325dbc512bae1ec9ff6e926b517
1621016477766238dc39940cfff4105f2c6cc48b73
@@ -16212,6 +16479,7 @@
162121647976638822d2c4b1d5860e1081467ef8dc
1621316480766505e7b08068bc5f62317b74c8bd41
16214164817666c7c68e986e2ecaa651b215337530
16482+7668e487efce447dc84aac24e0dfb616
162151648376697b8ab0155ce1b74635ca5950f149
1621616484766b2e79a4adf32cc3c5d6fda95ce9c3
1621716485766d2d365f92605c2fb8ef16495743cf
@@ -16441,6 +16709,7 @@
164411670977fb4e91f977a000b417cc5a44f99680
164421671077fee2fd1a000fa4186186bf989e026e
16443167117801579bdee0f8ed243ec22b48c8c991
16712+78019a7e356738eb6e4722be932346b2
16444167137805845520fead33e6abe5a7563cda65
16445167147805986fab6c7f4137febd105079e668
16446167157808662175d47e184382a36a20269865
@@ -16525,6 +16794,7 @@
1652516794788a131a4603338ffd99640c8ed08919
1652616795788acc82e61837142ea96a0fe18b861f
1652716796788b53e6edbea8622deeee183683aacd
16797+788ca1975b98783c5f6388b7221a246f
1652816798788f3fb1dd4a1ebb98a00673c2f74c66
16529167997891d8524ddf09b39c3a9fcebed6e547
16530168007892ec8ae855cfdffe02d08f6d892dc1
@@ -16717,8 +16987,11 @@
167171698779ffaf8082e825b497d39fba6314f02b
16718169887a004af390ce64b63708dfa65afe6e20
16719169897a00d83d51c910292d3b97c753534b7e
16990+7a0195e63af4c6637721097584a19773
16720169917a029e72dce9d5772809d9b9b76eb854
16992+7a02a152a071e2ffdaae84c86c52b90b
16721169937a047d89c889154be8dbfc794f163f12
16994+7a090dd90ea8e60cbcd9090647a3b024
16722169957a094a17dc374d06f822e101511af3b1
16723169967a0c91856e1e0dead7e2977df4fd86e9
16724169977a0edaaf0d3a3074e3113632181b5114
@@ -16832,6 +17105,7 @@
16832171057ad46ebe0aef62c6650def37251394b5
16833171067ad55bc2e4645975e1f1e982843ad895
16834171077ad6868e5ecae31c98dc9bddd59de89b
17108+7ad6a12d33629a50f2f82a356dd5b944
16835171097add00236520952f7368d976ebb08473
16836171107add70a1a7abce9d26bddd418791ddef
16837171117addbd9544604b943f1ef540a4617e1f
@@ -16984,6 +17258,7 @@
16984172587bc50f19180ed63af24c5835ef97af01
16985172597bc74d8c9c00e0d578b991f703b8cc26
16986172607bcf303489dd8e48259d64c78e59bcbd
17261+7bcf847807d9d0581834be88c257dd08
16987172627bd164bef2c79504eac96acc9e79f100
16988172637bd21b193bf2efa103aef06120ebabf2
16989172647bd39abebbc4f5a676dcf0f73838a64b
@@ -17050,6 +17325,7 @@
17050173257c32801eb8bd44d694ef1df6181cc0c2
17051173267c36434e66a30c0be90ae1954db68789
17052173277c36b68d126b5c4f456087b2b16a4c0f
17328+7c37ea72ad547f496b11cff67f78c364
17053173297c3944c1da4c9f8e9b9ddb9f3f46954b
17054173307c3d69e3b5a685d4a14e1863c1ac3fe4
17055173317c3f198d2628523c4d9313f7889341e8
@@ -17114,6 +17390,7 @@
17114173907cb2eec90180c45b6fb351dfbc83647a
17115173917cb6758ca6307602dc6c3959117c99fa
17116173927cb710671225b45a1f087fbdb437a876
17393+7cb87344f6e712ad4a0581896d3abd91
17117173947cba4bc14fefcc7ecef1e49cc69d514d
17118173957cbabc8502c46555d608e218d9438eda
17119173967cbd3cdf57c562f94b7a909fbd0187f6
@@ -17139,6 +17416,7 @@
17139174167cea22d990c99db98ab3557e55d15a96
17140174177cf0fc5679d337c87efde6beb4674c37
17141174187cf332718da28b4114e84616199044c5
17419+7cf58eb4b46cfd6ab02aa1af9c62d7ea
17142174207cf6b058285bce677d23a765626657fe
17143174217cf7cdc7d475b804dd4d9ec3e6725323
17144174227cf81c42a019a4a47e472569e4b2af21
@@ -17206,6 +17484,7 @@
17206174847d57ccceb2d54b54a595e971e73e9ef5
17207174857d58fa1363834697f3260d264dce4185
17208174867d5b0629bdc79379385d43fc5298206e
17487+7d5bbb2aab6dd2fe1e65c41ac3c788bd
17209174887d5d1bac3b691d494b6a5135741147d4
17210174897d5d7fc144475d0e4570690aa523d6cd
17211174907d5ecb638014e7eec7a053be0d20912e
@@ -17230,6 +17509,7 @@
17230175097d83380272eaefdfcd487c9db960f8b3
17231175107d835682beb54f37a9bdd4d563bbf365
17232175117d84a7615e85847c0e313a63800c8944
17512+7d8516388bbcf6c843e0a9ec7a21a787
17233175137d8621a17b3958ea744122ad5e28ce44
17234175147d89494402442054b5b805d4af80404d
17235175157d8acd079b6578e89e051eafe016f7a8
@@ -17290,6 +17570,7 @@
17290175707ddd8ed803905d958d2bcc6c4533a6d5
17291175717dddf4c2299dfe0cd3b0a048abbd26fa
17292175727ddeb951789296cf118875c137961448
17573+7de1f8f71cda51550798a4410e4a16f8
17293175747de208067d522cd94ff70ea7bed36691
17294175757de419fdb5788d46df45ff679979e1eb
17295175767de5d596b690088bd5f3eb7bfb43ccc4
@@ -17367,6 +17648,7 @@
17367176487e5008af79901eb1441ee564c7f42230
17368176497e511345dd2cdd7737089f4bf7bcbcb0
17369176507e5119c004ea79acf99a7bd3fe36ef23
17651+7e51a3795c729acf22dc2434f8b264bf
17370176527e51d111c63b0cf63ef22958a21226ad
17371176537e530645c6d5791549ae4a2938bf97ec
17372176547e54973abefb8f48aae539e1a317f0bf
@@ -17413,6 +17695,7 @@
17413176957e94440e7fe7cd5c17c766c2baeaa1dc
17414176967e9590403500a95a94974f886c9f9072
17415176977e95a4d23618d84998d276330ccabd9a
17698+7e961bff64d9577e7f92189f3d586e60
17416176997e9677876b2ddbb8036f28d9e2f52f20
17417177007e98a1d4d7dc18c49b553afee2e9b8ff
17418177017e98ee02383e04dc686f30de93afbd46
@@ -17467,11 +17750,13 @@
17467177507eed6e5676d94f3036b8e95958857fc6
17468177517eee62f49b725bceb2f398b0b70ffa33
17469177527ef06f46918b59b51f1918aae701a159
17753+7ef22df04a46c368591044abed30dc84
17470177547ef2eead9669efb6360552398388b4ce
17471177557ef6341d0b6b2d1cac54904cc9118bc6
17472177567ef642387f4068dd741deca3237c6571
17473177577ef6f91fb5e5d264f163bd9daf8abad2
17474177587ef92ca506afc5e34df42047c1c7ac2f
17759+7ef9b21d119356dfd515f6fa944c3e06
17475177607efa97acf52a2eff1d3d62deb5519d74
17476177617efb04f1ae37bbf5a75e097d91ae7d74
17477177627f02745e23cab68d541999a3569799b9
@@ -17616,6 +17901,7 @@
17616179017fdfc28eea63fb58b8dc481b2a109288
17617179027fe3468481fb452b1ee8c7fe043cefaa
17618179037fe368cb15650c400e6a55016dc8b2f5
17904+7fe562b676ff133e9c7fe179a825bab4
17619179057fe5e1d80f481db506bcb9c94d0ff1fe
17620179067fe79b7b43ff64c9d68564efe4efc288
17621179077fea19a2557ed753a90929999c2997ec
@@ -17664,6 +17950,7 @@
1766417950804c7712580b1520d59b2ff2e4a57684
176651795180518c73fa54eb1288c5dc540ee7fd6b
176661795280560da5eb084b79a1a326b46be3013b
17953+8057c6a210db187afd254bbe35879438
17667179548059460fb03bda1701ddee2502ee390c
1766817955805cd1fa1e874e070bb73e6613e49c79
1766917956805f6a49f2d2b0219282a7d7a8ee3655
@@ -17721,6 +18008,7 @@
1772118008809f21a913774f48bad8f4ddf613c3c8
177221800980a17e54721826002907f6d645899684
177231801080a8118a1989392238ce9d9558e9eda6
18011+80a8cab607d6eefa87f07a5766648d9e
177241801280a9f5979573404b8c28ede1a8f5ad9f
177251801380ade39a6c6d84897925c3272c88e4b5
177261801480af6e983181bdec1aa679cc79fbf5a1
@@ -17729,6 +18017,7 @@
177291801780b2ecb2a5ed4246232f6c20aec6401d
177301801880b5164257e7af08cd638d5adbe42d54
177311801980b55d61448121587dda2c3b1f4e5179
18020+80b76fe95c6316cc9a6e238bdba0644a
177321802180b86b2438d41327435761a559a979af
177331802280b916d5b1a9d2156e8dedf6e77ac77b
177341802380b9e7eda0ac67eb5618520fb2d14d8c
@@ -17858,6 +18147,7 @@
17858181478196cfe5b0c065b6abc0067ace6187b5
17859181488196f664df340f45e0b7e9a22c0a318b
17860181498197bc93084e778a1933ca6904b252ee
18150+8197d8ff9034112a68b73ff0f9d71c0b
17861181518199eadc3d87f1789d5f44dd63bf7622
1786218152819a281fa37afc6e7fefc02d88411e5e
1786318153819bb4b421fa00354541461f1a535c49
@@ -17874,6 +18164,7 @@
178741816481b0032835de15bffc089b4a92077ea9
178751816581b0eaeb439539b7ebc0bb21a056035d
178761816681b28dbaf46f619e71d445684ea163d5
18167+81b28f0954fefe5802cf03fb2cdfbeb7
178771816881b58a0d64d1f784936a5ecd41d60f24
178781816981b78a61482eff5c1d8006d093f9e357
178791817081beb8908f5e870f07ecdc6191cdad58
@@ -17944,6 +18235,7 @@
179441823582188706ae4ae926f3a0732ad9ba2dad
1794518236821dd2e4467cc269e089421fa7e5178b
1794618237821f57c95aeca1459e85c20eb10f8e6d
18238+821fd8d6191b1a5f0f691770a3591c59
17947182398220a30980c93e3d7fa81b0bf0bbc92e
1794818240822297a3b95c67cb4784c77e0ab7c000
17949182418223021ef8c2b88a53ccdb3b0715ae78
@@ -17971,6 +18263,7 @@
1797118263825260b580ee31ceaa2674a06d61098a
17972182648253e13f71b140b09f83d9a81d9c1c22
1797318265825606ea21672f51668b82903250479c
18266+825697728f369896e1aa7ca1efbd89f6
179741826782596d97a6205f8f07e1574243e35678
1797518268825ab3fa130effdf149255c13b70d928
1797618269825d9aabbcc18b29d9f8e0a9bf595f9d
@@ -17988,6 +18281,7 @@
179881828182737d45bc225ca33a7d31537e8af8b6
17989182828274ef499cc6940bd85feae096049945
1799018283827547bba55ac35f5e8ce3f3051bb96c
18284+82765b9d05f39c35252926b5406dc542
179911828582768ba559840008989191ee84a674e5
17992182868278a6637d88f935d931bf85c3f02f81
1799318287827de5f08e8f6b93a396aa883e137460
@@ -18291,6 +18585,7 @@
182911858584781c2757e4416ff42b987ee5305442
1829218586847a469e6530baa12aef2d1409e83440
1829318587847bee60bfe2344ffc188e1d1e461101
18588+847c6afaa376bc6e3aa90951a84e167a
1829418589847c9e63db01375a5013c79d384cbad5
1829518590847dab112da46ebc1c0178c02d701d73
182961859184803e7bc6bfc5ed423ae99436e4460f
@@ -18304,6 +18599,7 @@
1830418599848c29652541a7e3550dc27be3b87eb1
1830518600848d3095be7a3550c6d213888d6f89eb
1830618601848d79aea0b62c632e660a59da4986fa
18602+848d951f8199110c7d06aac5addf0567
1830718603848e490b9a79564b3d795091bf0b82d8
1830818604848f5d7b43d1143814b5b24b359c2339
1830918605848ff93398fb8ec0de7cefe9a4678961
@@ -18460,6 +18756,7 @@
18460187568595b19046d6ddf114f746504ee16a7a
18461187578597fc973b44b31ae6991d00d2628c38
1846218758859cba2c4c07bfab9d196d1bc1daa319
18759+859e216886320857b02e6d0d919d6890
1846318760859f6fa1e02a0bdc44da2ef614b38257
1846418761859fbdb8d3427e3f191cc5e29c5b14da
184651876285a00986c936fb0963319c95458f576f
@@ -18477,6 +18774,7 @@
184771877485b51be6d867461088452c9dba9fa390
184781877585ba9ce49738a495b71b589fc1f0baea
184791877685bad1e432da7438b5e5c13da4809c21
18777+85be1e2ce29b944df126107125e40d4e
184801877885be9f06344fa14968b7bf8c83f4b894
184811877985c0adc578e5c7c4cd7fdf61015490d1
184821878085c35f4943504b76dff92de1bf0b25f6
@@ -18500,6 +18798,7 @@
185001879885e1c6c50de43efdefdc48a76e772e14
185011879985e289aa04ce07feddc6c37b7867b93d
185021880085e597ea6017b70d49db82d48f2ff15a
18801+85e7fb50adc4546c0fb99d7fab733654
185031880285ed1f2c0bd0f21c8d58558ba618187f
185041880385ed655b587f58dac8b3513c3c7ffece
185051880485ef0c6dccbeb0f45e6aa4750e857cc4
@@ -18565,6 +18864,7 @@
1856518864864030863e59d7d5391afa57e5c67c94
1856618865864232c07cc73c68289c2fd2f58f1caf
18567188668643f4d05d024c9cf3eda4e135c0e9ce
18867+8647a44809158747080f9f4939f2fa70
1856818868864df149d409eb6c9837686ac58ed9e7
18569188698653c88ac7fafc4a98d53342b447b436
1857018870865485c3753da5f5e343d2c434ae327c
@@ -18580,6 +18880,7 @@
18580188808662a2eae9f9aedcb135120867a701e6
1858118881866670e09867d7a36009f4c383574ae1
185821888286677ead60d5e7e0ca8eb0be2238f501
18883+866a26f86b26627fbef07c152b46aec9
1858318884866af44aa737c1d01d728ed1e07b71db
1858418885866b1f697b1de6febac3760a93b55538
1858518886866bf0601da06e7790217f985de865e7
@@ -18614,6 +18915,7 @@
186141891586a5a3579153063c7f1222565fc1eea8
186151891686a5ee49a9f5b225be891cbe56947825
186161891786b043277522360e10d5a1a9ec855a17
18918+86b2212d024833f6137b258dc96cd3fd
186171891986b418f5ffcd92e89c186e5643b6518f
186181892086b731d0f4a55150239cb917c8b0f5b9
186191892186b9eb76fca4780377a1a72c9eacd9aa
@@ -18644,6 +18946,7 @@
186441894686f193ab198db71bbe970d3b958076f7
186451894786f1df1f382669385a6bb1647d707150
186461894886f422f92834f7fdbcb99f906fc04032
18949+86f5756286246fb2448550eeb3271a33
186471895086f63e4451a90ed69bcfe96d162e6629
186481895186f6b3754b1dcfe5f0935a15a315b43c
186491895286f88546761d918c23ab4808f3991bbd
@@ -18698,6 +19001,7 @@
186981900187456cd4c2279e2a3ed734df87b6d8d3
18699190028745904f602bc1034904265bf237327d
1870019003874609de4ee126c73c404fc7cb733407
19004+874bb3385e1bdd5b9909d8aa98683d4a
1870119005874cc597b327db2bc8ea8a3656fcdf40
187021900687515d569a3398cb3e0aa3e49378c81f
1870319007875294ab8b9a4a5ae7a472e91f109cfa
@@ -18739,6 +19043,7 @@
1873919043878b308c6e4de749b59e77708e04722c
1874019044878c448a5ab2000ad4169c968c6eeebf
1874119045878caa353a323fc18ff80556a2bbd355
19046+878ee861fb120e58388cbddbb5cda63f
187421904787906097355d402b3c223a6b6fe38913
187431904887917525f38c049eb4ae3fdcee2d0cf8
187441904987934d725d0fe38cf68052c06b352b96
@@ -18886,6 +19191,7 @@
1888619191886127b7185e6719dc2cd63663b9ecc0
18887191928862111313d64bde600dabab6f4c5b8c
18888191938862df0b61e5d102ea34f0241327e472
19194+88666cbd06301f070ea28893b7dd5a89
1888919195886908697a815be0e07752ad69b8ca0f
1889019196886b0fbadbe374623d2e8f156ddc15c9
1889119197886cfa45a3cda56508f4bc2eddd741ea
@@ -19001,6 +19307,7 @@
19001193078925fb5073cfb453b1bc713add61669a
190021930889273a96cc0cdb10cc11e2b384f1a643
19003193098928ef6b2f48b64047bdd139508e4e37
19310+8928f5ab2eaddccab3cbaf750a60ff46
1900419311892b53dccd474dddcc0f56e73f3b9bb4
1900519312892c78276f5b160e4ce38c7ba496326f
1900619313892f8f2dd1b23cb695d739b7e03b2bf9
@@ -19069,6 +19376,7 @@
1906919376898b2b1598f32950c5d221cd06624910
1907019377898d2967cb03dacf73293fca321aa7af
1907119378898df540b6b561b19606b16f469907f4
19379+898e4b4f035a1eeea8280f517a073714
1907219380899073ca3d2b142d0d6eed12cd2e3cb3
190731938189929cf65e777782b053e3343d320b56
190741938289931af57fc17b6f83daaadc03af47af
@@ -19078,6 +19386,7 @@
190781938689a0fdb1f8b3a5002be819a6f6acbed2
190791938789a28e6d71ad4e11eb15ff070a52d2a5
190801938889a3e1fded109b24d4e533704beff6f1
19389+89a44888e6c4dc32b7200b86159de3e3
190811939089a603e8f4328f2f18a4c815fef49e0e
190821939189aac74100a04d77dbf84f6bdab01724
190831939289acc66672e86b62a4c92832eeef6138
@@ -19121,6 +19430,7 @@
191211943089e6dddbb89b13d0ae0848c5b190310a
191221943189edff3df70ede6919d3c3db4e523249
191231943289ef08d3897e162bd2e6d7168205f855
19433+89f165bb3f7bc2daba154c3d0835c960
191241943489f1983dfaba17a2fad564a2773e3cb1
191251943589f4e90b4ee68090a881f04a32d4b6c1
191261943689f5d527f0648002dd3ab78755c3e547
@@ -19245,6 +19555,7 @@
19245195558ac01d301b7ff5cd4f3510c59e1693b7
19246195568ac03aef63ffdd59094010b0d5a0874f
19247195578ac10af6dd050ee6b0322d86633f72e4
19558+8ac2aa58ce042398c2533630f061bc04
19248195598ac4a65b87e45dbf63144fc62a315f0d
19249195608ac4bd53afc1ade38cf661be283967ea
19250195618ac7877cdab6b0abe16e1313c0e9506d
@@ -19281,6 +19592,7 @@
19281195928aec9a9c0652fad8a9ca08af96a854be
19282195938aed3178a01990787d25f6b736beb87f
19283195948af06ca36e4fef637aaf29b0978a7f9c
19595+8af1aefd2fb0fbf15bafe3a8b16aed05
19284195968af235481608387e49ead9488dd3a695
19285195978af3421d4635154c146c255597068404
19286195988af4dfed145ef20d7ea6f0a9056fdd8f
@@ -19317,6 +19629,7 @@
19317196298b416b22854a40d91ec5735cb11d55c1
19318196308b418059afa7b2bdcc560aef94d7b199
19319196318b41f556daf93d810c884da29b0c0afc
19632+8b421d3f18b987d61e36707282fc4e68
19320196338b433f760acaa0fb04611f4c812c2953
19321196348b43913acc89efebeb272befcf5d3ec5
19322196358b4629ba761940bfa1a9cb17e415a03c
@@ -19336,11 +19649,13 @@
19336196498b5caac1fc15573ea354aa5db05e09db
19337196508b5d1a997da00ca395d7be81ba021886
19338196518b5ed3dc115ccb7dab209e24edb9ae3c
19652+8b618d81ab210c369d850569b8e74530
19339196538b62684d624e6d5e5eb8b33b7ee3b0dd
19340196548b635abfb386c6efd9053fda9037525c
19341196558b64ab727581942bb7caa209bb2c5e0d
19342196568b6969880d14eb3bcbb266fa88ddd26f
19343196578b6be8a3777e232d46e067829b71884d
19658+8b6f218b4a3ef86ff520ff9e93b97057
19344196598b7027b606d7f140b427dbbd38f7a2a9
19345196608b7150f7f0bbc9ca56515e3a39f44017
19346196618b7477c363c6abb337a302b0450a3ca5
@@ -19390,10 +19705,13 @@
19390197058bb9a06bee364cfad34001d339ce217c
19391197068bbc024a1b59881eb0850ba6ac54aed6
19392197078bbcadfb79be01a36badb667e5795df7
19708+8bc24f47416b3052c4d1a91d0efec774
19393197098bc3af4ae8ad12c41c9a5ae2377cf1a5
19394197108bc6dff2ee45be0ee9d25a3608d37f9f
19395197118bc873396bffc3119cdd5c3118adbbb7
19396197128bc985cff6f59d3f9cbccf5835caa61a
19713+8bcc9d8bd8a08bfa8380a9a8999476cb
19714+8bcd154c0df3732f6361a0420e3e9b37
19397197158bcfdea1abec1d447a0b6562378fc86d
19398197168bd2f4bc3cdfae147288fc62fd79e326
19399197178bd442202186375c8ed9707ce2cabc97
@@ -19466,6 +19784,7 @@
19466197848c4d6a9a5002f55032be930937ba7dbb
19467197858c5006576fd56d2b36fe7b1b16e181b6
19468197868c52e3950463af2503f20e1d72532d6d
19787+8c55cae88406fab87c222ba0291fcabf
19469197888c57906b7afc82e5ed3c454634876586
19470197898c5943d95dc7fbcf7ed7ebb403e447f7
19471197908c5f51e61c7da214d8333a7bb1b38b47
@@ -19478,7 +19797,10 @@
19478197978c655227e5f6daad211a07cc58bce0ab
19479197988c6752a131501fbe826b92bc2c4e4718
19480197998c67ee9cdd5596da5789230f8d197c25
19800+8c6998253d2105c5117feb7278c21b2d
19481198018c6abde21bd20320c36a80c31149a0e8
19802+8c6abe02b0287c6ec09aa6c74ed7446e
19803+8c6b903aedf0410cf05900c03ef01eee
19482198048c6c4aadfb253f8fedc46f568066f7dd
19483198058c6ee2d3940dfbc38cd191a8884dcefc
19484198068c710ad168b1a6753d351c20a6fc1806
@@ -19631,6 +19953,7 @@
19631199538da468ba3dac51ecf41c8ed5f59cd811
19632199548da590b29bf63da90c0b01b1e603b2fb
19633199558da5c079b27249612da11dd7d96c434e
19956+8da6537c8175e9d4e48f8fbc234e2f32
19634199578da870b1d850914c18847e2a57e5b519
19635199588daf49dcd2be2f1798d036757d256bd2
19636199598db088ed3273daf7eb03d7b787bd690d
@@ -19807,6 +20130,7 @@
19807201308f0f46b488915eb53d276e2a1167c3ef
19808201318f1158695d2a7326a5ec4a6174bb323a
19809201328f12acfc09e45c48cc9c7945e32a10bf
20133+8f14da461e768f649fc624dd2bc25beb
19810201348f1a0b327a8ab7f38dcb67c0a18c86a9
19811201358f1bf0884c9e3d6b5ef3afcea4352c48
19812201368f1cc6206fbb4b6bb2c840e9cd36101f
@@ -19911,6 +20235,7 @@
19911202358feb434cea971fb73e5810a26313274f
19912202368ff43001bfa0790801809f3380cbc6b2
19913202378ff60a4bf8f842b49a00b82be20152a0
20238+8ff614530bc1d8e3938630d82d3a5b97
19914202398ff6ebdc7ca7bc970d03cc047201412f
19915202408ff95c0fecb08048a4f11903d821486b
19916202418ffb0744a4a697c86f2c4e3797cd675f
@@ -19950,6 +20275,7 @@
19950202759034840b93bf8b013f3d72d34b68982e
19951202769034f3515ddb27dc0b7910614160ef1c
1995220277903526dfd378e3d67d482a0712a60ba1
20278+90374253273d438253c50f11777d52e2
19953202799037e21a3750fab30a3654e17a1e84de
199542028090384fd9a7fac64e48ea08dd924d0d3d
19955202819038f9d79febdbe36d0b532cd79d9427
@@ -19964,6 +20290,7 @@
19964202909047da6f77f7c3004a4b2f96aa1b0b43
19965202919049757eb53543d528be2f5b26da9c18
1996620292904a4e53ef11ecb021a858b26a9f9e8c
20293+904cbbfb5825d47254b87a7a163d3413
1996720294904f826fb200ca0a540764a0ec741dde
1996820295905133361c38a893bebf41484d0a59e7
199692029690527313628644ebc0a36ea877fca1f7
@@ -19988,6 +20315,7 @@
1998820315908064bb3af304fc9ab0a38d8f2a6adf
199892031690849b8af9972c20995ec8264845052e
19990203179084cdca90a1b8194ba4abc24d836e99
20318+9087f86e4d69bb858d975ab64ba6738f
19991203199088f9cb7c1abd4e3dcbe3e97f780e61
1999220320908d52a24a4c95926eafea098d6fb559
19993203219091494449309c976b7ebfedd571ef22
@@ -20092,6 +20420,7 @@
2009220420915d6c3439a0ba60800c6dae4797113d
200932042191610f9fc477ee362eacf5ed155cc7e1
20094204229163ff6c8cf4a0edb46f0210d322fed3
20423+916640d4f86b882c5dbfda18b7ceacf0
20095204249168f5252be58d05fb0529dc58cbbb27
2009620425916973e03dfbf32babae8b71a679b318
2009720426916ce6f0727cfebb37723fbd73949233
@@ -20102,6 +20431,7 @@
2010220431917278fe396280a2abfc3fe28e6ea79d
201032043291730d59032766e96a0a3a489e9fd689
20104204339175f323276fb6275836aeca4b228777
20434+917cd84932813644b972af5b0a55adc1
20105204359183b8d5ab5b44707833863c58f11ce2
20106204369183c2674f84d031640fcda087b89dc6
20107204379183f5231abcdc099aee4cdc00f483c1
@@ -20167,6 +20497,7 @@
201672049791fa5634c761846a94136ed32860845d
201682049891fc26b3bbdf5b9579a37513003a22fd
201692049991ff0ec55f1100fd30638fd71b93552a
20500+91ffbbab63ef17dbae365cce7a7452d1
2017020501920074caeb020dbd9b194673c7c2b277
20171205029203836a259272de05b13e834ba5560b
20172205039203d41c547f00c21e950c68161ef9a8
@@ -20364,6 +20695,7 @@
203642069593a0ae7758fdd988027c2bf72b9ae594
203652069693a0c9093f097fc53c4179dd01cde90a
203662069793a8860bad9f442ebe8f32db068db6f1
20698+93aabb6404ed6184549c16f1a899c736
203672069993abf25378380a3f050f43b4a4676335
203682070093af1ea89ba5530ffe57c399a54fb811
203692070193b0f66d51601ff783dd2639b9471e39
@@ -20374,6 +20706,7 @@
203742070693b587b6cf45d14fc08c54556d60989d
203752070793b76dfbdf8886c1dab7d971da88e71f
203762070893b811b672555aecd352c022b51fe818
20709+93b9b9c660169523cf5532267dabfc94
203772071093bd9d6ed3eb8ec532c03a30df3a5ded
203782071193bdb71547fd7f1d1eb8efa50deb28f5
203792071293be78ede6240b20d81b76148d12e1a5
@@ -20427,6 +20760,7 @@
20427207609407e2a98e7a9f498cd18337d0a431c6
2042820761940adadcfa39021af6862d9ed052a5ce
2042920762940adeb70caebcbe5c73bd0450ca86a1
20763+940b9855a8f371ab5893d9a7b25c29dd
2043020764940ecfefc39cb15491c5b563dbf5d6d9
204312076594134f907f2f5b635c3d227f1310b2de
204322076694164f0a864e4e12316a7cdc597bce98
@@ -20464,6 +20798,7 @@
2046420798944c0cead9fe446ff7b68ee13997dd87
2046520799944f9b0a14f27e361aa1189467400d4f
2046620800944fe398346134774ae7095d8237e3a6
20801+945252227096842913457fbca2cb14cc
2046720802945357859c1f63f9500c9647317182b9
204682080394563fa32bbf3e04677c78f71682f8d7
2046920804945676fa148668daf4d7676a4c0b7eea
@@ -20503,6 +20838,7 @@
2050320838949da6c4c6c896c3a7692c2afed505f4
2050420839949e1cab9625367b8c1a30b5995defbc
2050520840949e5ba84dc8acf97ee6271b630ca5d7
20841+949e63af04b85cf2f1e58bed063d6264
205062084294a41b3d7a328414b886ba924dda2037
205072084394a5822e7b243198fd8d08f12f3c4035
205082084494aa85b75d1020dea3a48fe51148d06f
@@ -20626,6 +20962,7 @@
20626209629575002752a36ed63d12ca2b605cd369
20627209639576b02a2ab6236f73fcbbc757499389
20628209649576d41cf1fb5d1623d4b039f0e7fd75
20965+957749172395669b894339102c3d8a39
206292096695787222b92efa7aa9ef22231cc9c390
20630209679579239de038fbdc10e77ce2950b7b3b
2063120968957c4a5ca50886aab9f63fd2a89d7a78
@@ -20656,6 +20993,7 @@
206562099395b1d05ae0b3c1f487a1bf1b121df42c
206572099495b3e927e8dbf51cad1a046227b2aab6
206582099595b5827db79cb9404b469f59e0ea049b
20996+95b685efa645063bb6279cd5c116a99f
206592099795b69e335e66c424f2c027e31f31b886
206602099895b89a223a3aa9f85a28886bb257593e
206612099995b8f1409bca511c85df2e1955401c0c
@@ -20869,6 +21207,7 @@
2086921207973526a994fd3d8fbe1236849190e2e2
2087021208973793441794e526e52258f53e467391
2087121209973c4623a6e7da340eb60e5e320c97c5
21210+973d0d7d45186b481783f0cf7e481f48
208722121197441a83ab5ceb939f863d0819bd313f
2087321212974489a7d051f11d102d94bf28b5419b
2087421213974703fd7e0188c2cf42471c48a6c9a5
@@ -21004,6 +21343,7 @@
2100421343983d2e3cd6bb649bab0161ec785a6faf
2100521344983dc7469c8d864ccfe0e1b27d24e67b
2100621345983f6865f264a7eb3e53a4bbd8e8b12d
21346+98413fa459af714715a5e075a31e8329
210072134798474a755183568649fe96b2c1504235
21008213489848237aa4bb4bbd746db3e3abe334fa
2100921349984c342094eea7e1c8752637f39e4b28
@@ -21059,6 +21399,7 @@
2105921399989ecc240324f997d5e1789747af9053
2106021400989fa9cdd5555ea0a833e2c5f94fb5b4
210612140198a017740c918e32758d76bfb9107ad2
21402+98a21fa3375c9034ec80a0754310157c
210622140398a33f660754b552369453714ee176b1
210632140498a50af46df6629191a60801dad60a4a
210642140598a5f93aecd4ed2b77bd36706307bedb
@@ -21089,6 +21430,7 @@
210892143098d5ccc20ab779b85940fdc6d4d1a826
210902143198d71bc91ada8740c6f95e597ce1573c
210912143298d791eaf2ccaf6c262235cfa270131f
21433+98d8c4a315d60dd143003c8e4209e28c
210922143498d9819375d562e5aff3a28310ce203b
210932143598dbd5f79f4f3187b4e5723fdcbe847a
210942143698dc646fe50fa365d904b3da5ce9632e
@@ -21096,6 +21438,7 @@
210962143898e2314aedc82b248ba09e5f34bed98e
210972143998e3130acca7b432d2f1dbbd6633dc61
210982144098e7f279a2f29c974e4e0f1328b0a286
21441+98ebd9a569cabf61ab8da49f6f72c432
210992144298ec6875c25d881ed5bbb6a879376da7
211002144398f2caae06a62f193fac4fbfd57e9441
211012144498f3494373bb5c5f27ba72f516a2e840
@@ -21244,6 +21587,7 @@
21244215879a0042adb3bef413cbc61f510430d27f
21245215889a078806d0fad797d6dcf0603cbd4707
21246215899a084299cf87ae5d7388985b3bdd6231
21590+9a0928a55c4b05be864333e5e56e8e2e
21247215919a0a1a1f410604d8f4b8c024f138d170
21248215929a0b28358e1d3f0807783982aa7a3b7c
21249215939a0b8cd434bcd328fc660906b6376796
@@ -21272,6 +21616,7 @@
21272216169a2ee7f3ca47738218807d82a5be8dde
21273216179a2fae2409aa6c8227603cc8537da731
21274216189a2fb00189e84eab5b319134f18f61b0
21619+9a307dba1fe1ed7b336c031867decbb1
21275216209a31dcde5e864c7787bb61542f3e4796
21276216219a323025e305d89eb7f7c7f692bcc15d
21277216229a3299f800b6ebc2460e74a5ba53e491
@@ -21294,6 +21639,7 @@
21294216399a57d32a7c634be877e159fc78ec9fe0
21295216409a5a1b6dc3d469253ac25694413605d6
21296216419a5a305228cf789f66c0e0ed2bc3d67b
21642+9a5a9392e70bfa48b66306806293f1d3
21297216439a5cd4f3261db1dcc84295dd75a38d13
21298216449a5eaa85758ac00242d40f98b791400b
21299216459a604110af202551f31755b60fbca1ff
@@ -21324,6 +21670,7 @@
21324216709a8738f9d45279fc6c0f06e15dd31116
21325216719a879591420bd3775dea24c85a2ac67f
21326216729a8add0b5945dcece09fec916eee6a91
21673+9a948ce761b24b4ee16ac56a1a1949e6
21327216749a950a641179ff88fff59a4b6d91f048
21328216759a95935195ccf304f98559cc4b372d12
21329216769a9598aae42ae47b7653d48d6f316de8
@@ -21386,6 +21733,8 @@
21386217339b06ac784f943e6965fbb312dd5c685b
21387217349b086150b6d7d8d4c52ab13bfe64c7eb
21388217359b0a4826c0fb86294da40eb77038a3de
21736+9b0ad244f144cca9ae74eee77883fbd0
21737+9b0b20131e2d7684f3408d8101d9be86
21389217389b0b38c2fac9b9142d308bd124076a83
21390217399b0bbe3e9d21d537facdee9448a4642f
21391217409b0bd19a572d45da058f1ab843d1e54f
@@ -21452,6 +21801,7 @@
21452218019b64c0ad5cb62fc0f42e519b1c5da203
21453218029b65c07002b3fd5225cb7a6696725f20
21454218039b6642ea6631e81a4730200b1bf040ab
21804+9b675666ed680d0dafe1a9e55ca93dff
21455218059b6bfb8c67d4a2a6c0e2185ad400318a
21456218069b6db70cc4bfcf9ab45aa713258fad16
21457218079b6dd83a4787eb5fa608d580628b2aa6
@@ -21473,6 +21823,7 @@
21473218239b85fc71907a78d1e28cc7d9c6195185
21474218249b88206b84290819d9df8994e8525aaa
21475218259b888245c6602a635c577d89df5f63d6
21826+9b8c5f08ce3b46911d4e25c6ceeb2541
21476218279b8e5013ed0a3eb00ee34ffbc9d89395
21477218289b91c09cafe91467493be288ade8ed9a
21478218299b93a36769cca46210a9bcb8edacbed4
@@ -21487,6 +21838,7 @@
21487218389b9c096618636608ffbb0d893d7af5e3
21488218399b9c8c0437dace5c7e1f63a94cf11f62
21489218409b9f3d4702a291ff307d992164fec34c
21841+9b9f8a532206cf3937b03d74c2803951
21490218429b9fa53cfc4598207b83d39372c43039
21491218439ba35ea204c86c15353707ca77563e34
21492218449ba56a1ce567d3ede0e8a63ad3641762
@@ -21513,6 +21865,7 @@
21513218659bd28d6a97409f949a66895ffe8b833d
21514218669bd608a33735bb22a5bf09b244ec1d34
21515218679bda9800e66f4e3a9cb66973c769371e
21868+9bddecc39197487fe8d28a853c3075ca
21516218699bde563a514d60ea5ece05d7d628f770
21517218709bdf09aad422f983392dbe895e4c60c8
21518218719bdfa12c4b74441da0d8e50e74496e47
@@ -21525,6 +21878,7 @@
21525218789be907d1333c349d642cc853ad841d71
21526218799beb5d6c2da178aa97a73448973b5c4f
21527218809beb95336723c6b98663c26e4cc7698f
21881+9bec66a8d0298f9de34885308982b946
21528218829bf1515d303c782486ca14ebc2eadfe9
21529218839bf2ef40b22e4ea068fe2b65903f75aa
21530218849bf34dc847b4be090accf308c53a39c7
@@ -21619,6 +21973,7 @@
21619219739cbe6d605e37458214db9c220167e75d
21620219749cc003b458a8b8e2818934a349fef105
21621219759cc2f1b9b7fcd1e26b6696859f972a78
21976+9cc3ac90c9dc891fbe7c26deadbff358
21622219779cc513dcd5f39a4ac3d1b879ec4324fc
21623219789cc55e75a445837a30e19812d28f439b
21624219799cc8d9f7dc9d077b1718835957c2f8a6
@@ -21680,6 +22035,7 @@
21680220359d2a2a2c1a900ebb5795e2b8824554ac
21681220369d2dc9b135294895cbf18e5593e12b47
21682220379d2eb770acc5c5faa3eee32e7c8da74a
22038+9d3097766a6e3454a651cb4e329046ff
21683220399d30ef61feebf6415e212501fd3b8051
21684220409d31597c22b68583b5e982b415d349c0
21685220419d33a1b68323b68f950cb2b28223728d
@@ -21687,6 +22043,7 @@
21687220439d3614641bb94ebedc3ca44ff1708a6f
21688220449d3ba67014de60092c2f3786860bcc64
21689220459d3cfba4cfb1d0b1111620251f9d68e2
22046+9d3f099f43d33cff18fcab8783540f3c
21690220479d3f31bfb2a361197b2e13b616c20b42
21691220489d40846b6d94f8417df6b600fdc6eda8
21692220499d425346480c1aebd702c800051d5271
@@ -21767,6 +22124,7 @@
21767221249dd9283587b5adf91d1168bcca19bba5
21768221259dda3c336471ba35e99884b6ae2c794b
21769221269ddef2982eb977497b7138ddf2b71ed2
22127+9de0d239265bc7b1fe1b96576085021d
21770221289de1a0062bb6fd4b2e45f72417d12e56
21771221299de4979ab21a43a73ac7342f4745db90
21772221309de7983ae05884c96d807d72f1c4f275
@@ -21793,6 +22151,7 @@
21793221519e0a91f902379fd82139c7a9fee75a51
21794221529e0ad8eec4a43ebb1d5eb04e0571d726
21795221539e0bb92a61d7791ff3ae64a8159f7500
22154+9e0c52bf16e684d0cc552dc7a10fec46
21796221559e0cca5024e72d46a341e63168f290fa
21797221569e0d1e4055d68588d8eec1ef3633f25b
21798221579e0ee38ea6f5674e37b42cf41548f81f
@@ -21826,6 +22185,7 @@
21826221859e3aad39819f760fa31779908c25d11e
21827221869e3c21f1f8986e8a2a025b797dd19a85
21828221879e3d72262bf8cc77f97541926e1b5a58
22188+9e3e5b4e133500836fea21c710313a39
21829221899e404573ddbbb8c0ac88b2c7da52f1a8
21830221909e43a9f00927bea30bd780a117a17e76
21831221919e43f9d05fb38177e10edb82c1bcad5b
@@ -21846,6 +22206,7 @@
21846222069e63176e91947975378a71d1c6f566dc
21847222079e6411917539350e8afe57036814444a
21848222089e65acea6131a104f4ce2d1492551705
22209+9e65e77aef4ea9c86b27f31f1d33fbc8
21849222109e6f0cdd81a8005f60952c4d19089c57
21850222119e70e776c8df8f42af024f50b587419e
21851222129e71b16c0d9caa9ea68e1b484220ee43
@@ -21859,6 +22220,7 @@
21859222209e83164f9ab3f7d31f901e4cbcdb07bd
21860222219e896a007979c0e7ddcaca4969158f64
21861222229e89bf5e50d829c15323d4f5a4f952ed
22223+9e8b20430ca1d10fcc33c691e0d94830
21862222249e8bc9f9733dff0c40731b53ab857325
21863222259e8d46cc05bbcf298ea169f4f8db485f
21864222269e8eaee1a942c7c08d8e669df0733e57
@@ -21868,6 +22230,7 @@
21868222309e945aedf671ec4ae1f1f82f2f19ed72
21869222319e980600faee964f0b809daeddb852ef
21870222329e99070827b1225519f3b9c4364e1857
22233+9e9929d130e5fd8d9197611ebccd6af4
21871222349e9b2bffbf566ee5010a4995bfbd3ba5
21872222359e9b94fef02331f40132c12b541f5783
21873222369e9ddd94861db26d2c5a64a2db96aad5
@@ -21984,6 +22347,7 @@
21984223479f3d8dba56bdef867427c5d1e7cc626d
21985223489f3f091bf3db4181262260b9cba3a236
21986223499f3f3f2efcdbd4bd71c58505803d7820
22350+9f40a3680758cafd42c99fc4c89da896
21987223519f413eac9608562ca5bf5599882f1abd
21988223529f42db0f6f25442b3ce94b11e1277ad2
21989223539f42f2e4ce869c4f167cd990ccbee162
@@ -22131,6 +22495,7 @@ a0369f54a720a6c64cab06f671e39f85
2213122495a0393a5734d5077247868176ad0aa983
2213222496a0393a8e1bd94b49a5b04a742be0fcba
2213322497a0399b4d8eaf3dcccc996c5c6004e62c
22498+a03c44a2db95349a2162a337a1c277ab
2213422499a04085bca166150f1c20079eef68ae9c
2213522500a041c48aa554e515255c8d28f7d43991
2213622501a0435489163daca68f30b971d5580f9e
@@ -22174,6 +22539,7 @@ a095a73f4a69500247fcae9a2db8ca52
2217422539a099080acfa27a206cb2535a52e11e00
2217522540a09936d7c6fa4590cf2d7f4032023ce1
2217622541a09d8cc4521b68dded9c65969a5876fb
22542+a09e6e1e5b7f2c71f31139bf4e1e40b4
2217722543a0a0f9bbd65c868e8bd69470a2ea8445
2217822544a0a5e70cc01288bc3cb941683501b17b
2217922545a0ab163bf35f240bfdd5bacdca2a1763
@@ -22214,6 +22580,7 @@ a0e5d3291be6a0aecc64fa4d1740b9fa
2221422580a0e710f5491a92cd9bdfac9e43799419
2221522581a0eb7f77ca702bb3ae4d05b43e678e5c
2221622582a0ecf529454cda3171558468fee38f6f
22583+a0ed123ecb48b8301461717b02d0b726
2221722584a0ee0b2218b35e173a5de87920931fe1
2221822585a0ef233be498ebe3467d291ccece81f3
2221922586a0ef4e4018c123c5e2901881d48653d3
@@ -22235,10 +22602,12 @@ a0ff7be2533f54c78e67f3814671f26d
2223522602a1027a816f3d9af938b192a2a7e07881
2223622603a1033a801e0f1ae4a7c3330a3fe4c8bf
2223722604a103bdba4ea11aa9f738057f724295cd
22605+a106ab2e6ebf3c2abe105bf99423d3bb
2223822606a10987704dbb214b42c67a9ac0d9eac1
2223922607a10a02fbf914069d8976cbdfc46998f4
2224022608a10c2a76372116de1035d30f6b4d64cc
2224122609a10e41c9868ca874a31149dcbc66c9b9
22610+a110f2d0957ed4cdaeac7b81558c70f3
2224222611a111037291d55295435d9b569bef5988
2224322612a11232ac6b0d850d9adf9553c4a4f37b
2224422613a1147688cedc50bb366d2f4833d6085d
@@ -22252,6 +22621,7 @@ a11e7142b8b2eb09e09f5793466f81a5
2225222621a11e8309532499083a5443329a07d077
2225322622a11f13cb0db16cd1ba1fe2208655b366
2225422623a1232c2d54d60ba9ec2d768888b643ef
22624+a123309a557d414e980bb04b2fefdd78
2225522625a124b8c83a2c19aec0ea3c48bd57a867
2225622626a1271ac307f21e56a1aa1012dced68cc
2225722627a1272007555bf5800838148e14c61987
@@ -22280,6 +22650,7 @@ a1595359a12a89ff51ce36b5557c9e71
2228022650a15c53f51c8a5fccb39d47e6db9961de
2228122651a15e04bd26b3a85d8dc511b4b3f64a1b
2228222652a1627bc656d53060e43503cf993d1808
22653+a163383fba1daa097f0c9c913e1df5d5
2228322654a1633c0274ed56d5be01965a17b9b86d
2228422655a16675e63d2e05b28bb88efd03cbfcfa
2228522656a1689a2b819145db32d384c5f479cb03
@@ -22289,6 +22660,7 @@ a16e2baa1e3c8c1cce0c932e9433e237
2228922660a16f21ad17310b4b704ba9b51f422f06
2229022661a16f3f16d0838c1ebd000eab07874f71
2229122662a17100edd4b71bb83a7da6108dd759fb
22663+a172c579baff44c1d5a7b938bc6cfef2
2229222664a173b9a41c234bc5ed5b494fe8ad3d72
2229322665a17453413f4df5dc9e9ed72d5413a884
2229422666a1746d2d2c7170a79b268274668ecf1f
@@ -22336,6 +22708,7 @@ a1bbef8e278be6aef5bc6680b0dd10f0
2233622708a1bf596cb6d003e3850be6d9efbdbda9
2233722709a1c2561423aff7c1cd62f0bf2c0a8803
2233822710a1c28da16fde36ebc2a27a88ce1a5b82
22711+a1c460f9e47a826b1dcb2fd52389bee4
2233922712a1c48f6f27509e10318d582cbd0ea848
2234022713a1c4c89851502becffd8b733f4f05f73
2234122714a1c4e3588503477f6a712fe7bda7f849
@@ -22569,6 +22942,7 @@ a375011245d5a52cee9b3584e49c6cfd
2256922942a3762cd7d5934a6f64415a90982be20b
2257022943a3785072775184b318be65f21a4189a0
2257122944a378c3414cacad8344a152293db0c0b4
22945+a379b0b92ee844a75480c841f4cf340e
2257222946a37a784d2914eff602935ac0af278254
2257322947a37b863a5bf02d4b1c3d543d95318a6e
2257422948a37dba8255da222dd4a2ac391da05495
@@ -22740,6 +23114,7 @@ a4a14c6e4955e61ce77e6bad654ce8be
2274023114a4a4e525032bebc61bfd70c5b7eca5e1
2274123115a4a7b4e118c8f7040990c416c103be99
2274223116a4a8fc4d7adb760e2c6ba8588df713d4
23117+a4aa1f5add9f67dcf9b66c533c5151f1
2274323118a4abbfb8f16fcbd250c960ab9f657990
2274423119a4b072d4978526c6e499d5f879705c64
2274523120a4b2747d9b2857894034a3589aad575c
@@ -22769,6 +23144,7 @@ a4d0e27c6ea982b32847923c3ce6b76d
2276923144a4d26986beafe5d532dac54210501ced
2277023145a4d2aeb539941ac2915ac7e2a1320d66
2277123146a4d359adb840ad96398e7f39e823390f
23147+a4d53c1befcd246f174937cdcb93ff63
2277223148a4d58f7204d703b567390069852af237
2277323149a4d5e2d38af074e04292d17d3f56bb99
2277423150a4d73c41e13b0e61a232e31472d5f323
@@ -22880,6 +23256,7 @@ a572695dab2c78225f4ac1b89a354d5c
2288023256a5727929bfa0f2e6130ba6d1258405c5
2288123257a572ffd122780f46a2ee607c9b8730bc
2288223258a5749931e8fc371d3ef465d4e434da06
23259+a576a8ef3263e9020573562bf9d14a49
2288323260a57a0a351cdc9edf7efcbbc6d5198e5c
2288423261a57c4431b4ca3bd3c8a63b8691bd6f9f
2288523262a57d5414d6b45ce43c5f05de4a71f475
@@ -22901,6 +23278,7 @@ a5a552726577a65460e6ad950dcbfffd
2290123278a5a5d63f4013fa732a1318041521973b
2290223279a5a689cb9d9012ec9da00f00a73f3115
2290323280a5a756744c92ab61e4c325df72df5ed6
23281+a5a87953778e89bcbc4981d07f7c6329
2290423282a5a9624e2263433d2995c88c8713e7bb
2290523283a5aaee4d3a2341defc2f0ddeba6c7871
2290623284a5adfa5b769005f70f52c55dcf8e53f7
@@ -22933,6 +23311,7 @@ a5db22b1f6f1b0d031e2fb789226b5f0
2293323311a5df57edca47a1f717d8f6130a31d450
2293423312a5e542dcc14988c0d96f2b481f9d38b3
2293523313a5e9199ba6af82a26fc4e6ee51671726
23314+a5e9d92b27db72e73775af8acd89f364
2293623315a5ea19c4c52907675150d51b706e26b4
2293723316a5ea1a4e59d06e745772bddb404dca33
2293823317a5eb6cd40310afdd796bfc8fb35c88a4
@@ -23068,11 +23447,13 @@ a6c7d0dbe9d7445a9ce19fde1c0a88e5
2306823447a6c958b2aed9b2153bf9cf9caf3d64b2
2306923448a6caf8c60bda1a560e15bfa202702cd3
2307023449a6cb0f8b0a49ee1544d7d18a641bf910
23450+a6cd3e4cceb1483a3bc2db2c73c6aba9
2307123451a6d44604e86a19997282f5deacb3dd3f
2307223452a6d522a9f5c300e3be7c5eaf19a4ab00
2307323453a6d5d2ca27de290fb13dd7d9ca10336c
2307423454a6d5f08b9bc5daaa1335c99380c84d54
2307523455a6da2bf9a4385437c0579f3952d36c27
23456+a6daa4f8838cb7946e335b639b23b6dd
2307623457a6dbb0ca18539cd62021c1bbf9d134a7
2307723458a6dbd30c1deed7bd726bdbc4013c67a5
2307823459a6de8a765cdf65b9711b4e546c34b365
@@ -23176,6 +23557,7 @@ a76b32c5f4b05a8353468f20c9a7cb6f
2317623557a76f6802f3e4bbf5ae9d8fb6d3c39c7a
2317723558a76f71009c980003eea2062414ea11b3
2317823559a7742a668365d60c9a44495a4329e3dc
23560+a77445b146425d6f1376a0dcce77ae6b
2317923561a7748015c29aea4bd98eaedc2a8be721
2318023562a7786698b995f1d3e19823a834537dd4
2318123563a77af7c1e34d19ec3e9c080bba9dfb05
@@ -23413,6 +23795,7 @@ a94397f704e7d51ae3e62517f2f4d440
2341323795a94ad86cc3f8fa1fb816faab4abfb90b
2341423796a94cad56c41823b484321acee181224e
2341523797a94d6e304f24d1e7d7cc7d07e32c2f72
23798+a9506d330520c8f0b9137cf5627ffe8f
2341623799a9509a7bd9bd790eea584df6613c4e15
2341723800a9512d54de43b1e1157a5de637db8e33
2341823801a9514ca80c7067426d808e7d6ccc4298
@@ -23476,6 +23859,7 @@ a9be1a5f5bd1897e65d513a39f1a0fff
2347623859a9bf3b9ac11fc355efa9da970186f927
2347723860a9c0a6bc0e3dbc9363cdc323b5d4e71b
2347823861a9c15ca6aca2c390ab605509a6f32b24
23862+a9c506cf4bf7c97fe61d7af25cf34c88
2347923863a9ced68ed00774ab8fb76fca3c8bb21a
2348023864a9d57efd56642588b2681f19791391a0
2348123865a9d5d4c80e48f641abd126b104a4b401
@@ -23675,6 +24059,7 @@ ab5b65d14f3dc86cef65a528a62c946a
2367524059ab5e91739495a4529085b93df631a1d0
2367624060ab5e9c458c8c8a0b069c01aba540181c
2367724061ab5f0a63b94cda6c90a0615c6c24782d
24062+ab60f63c792d6507ea43bdc0adea3101
2367824063ab62f8f380ecd91b11c588d7f58a1e5f
2367924064ab6602f682faafb05ad3793808afb478
2368024065ab6aa5c71870daa409f2c72777b9e11e
@@ -23721,8 +24106,10 @@ aba913bf8fecb68046821b21d32a753f
2372124106aba947b0945cf24cff8fa86a03dfe139
2372224107abaa709b6fce84b4d35eb41e9a0bae65
2372324108abab31c3f484c8cc553ca98449f96961
24109+abaf519b0c3c95f5f75fed1f9795b8b1
2372424110abb0ffd13a6155c03bdd0b852640f81a
2372524111abb142234163d8b88cec2476bc4751cf
24112+abb2c76617a43c0872d45ec706ab199e
2372624113abb3839f46fbbb92ab027845f624456c
2372724114abb75a46a7fb855f41f5f2b2ef1b13a2
2372824115abb8e5b549fafb761720412b838b6e2b
@@ -23763,6 +24150,7 @@ abfb1b003444b6847597514e1e6701aa
2376324150abfbd98afd86ec64208305d01a12605d
2376424151abfe2315aa7a806dc0ad2e43f12dadc6
2376524152ac02fe3164ed4066842e0dfd0984a7fe
24153+ac04012918c454a69b09c37d791dbd1b
2376624154ac046e469f522769c052770e8e406c5c
2376724155ac120991de3bb7a21613775c669a40a4
2376824156ac12c5a936da317bbe80a11a1712d8c6
@@ -23860,6 +24248,7 @@ acca8136fe0a889da46d6da12b2c6996
2386024248acce4d5a212b261cbb7c26d61f45675b
2386124249acd004085ea907d706c6bb1d1c00ce09
2386224250acd2b22a2b7ba474152a566cdfdac161
24251+acd55db4868a01e3d94f97c10823e380
2386324252acd5c30a88089b16ecbd91471eb4c4f0
2386424253acd9765b5228e5a68c82362e61df7961
2386524254acd984510ecdf5461c112a3c0b2c875a
@@ -23872,6 +24261,7 @@ acdd10d2c5003f10146e468aa03beb2f
2387224261acdedbe878e59413ded26c0fd1599393
2387324262ace19407f8860caa886d21086866a44a
2387424263ace967816af932910830304d303cfecc
24264+acead24c704eb51f67ea479d1074bc0d
2387524265aceb9cc5f25dee4a54201e6201636aee
2387624266aced7b36912517b925c393c5e2d0a55f
2387724267acee102fa8ebde418e8777b9cfe583f9
@@ -23984,6 +24374,8 @@ adb0811fc6cba841637d7fbcc8522984
2398424374adb10258e94823bbabbc0000058ce236
2398524375adb19a03e33381c596a46ed1eb573972
2398624376adb6370ddf7a93a90a75a6d59dd9ccc7
24377+adbd42b12d1809e7a6530041ff6ebf3b
24378+adbefa5a0455aba391fe8b6e41d10075
2398724379adc06a24ec0eeceb296fe9eb91421971
2398824380adc1974be058cfdc05e71baf2015b211
2398924381adc460f797783f5377c8d54d19d76170
@@ -24218,6 +24610,7 @@ af4ca8db70e2b39f356221bdcaa07602
2421824610af50b4f884299f60ad5f5b70183ba1c2
2421924611af53307aa3a3dd5e940b08ec5d8e0c39
2422024612af541a245bc254a79bbedbadc52ae732
24613+af56971fb1e394b06d8e071d4ce2f93c
2422124614af59039f7fd030221accf7065d289c8f
2422224615af5a49d34932d2c221fbc4ca6883cb56
2422324616af5c97c9ad40069de547879cc34d371f
@@ -24405,6 +24798,7 @@ b0a8e6f685eaa127be7efa3a093cd20e
2440524798b0ab76af879d8c92086d960b476342f1
2440624799b0ab8fd0edc0fd8b8b6da25ec6f4880f
2440724800b0af8a15da5d662d4900dce3379a5191
24801+b0b0c709f8a52d22f780261939df1b0e
2440824802b0b190fb0f52ed04bbf8014537f43669
2440924803b0b300a8a40fd2d9dc39f3149b0feccc
2441024804b0b5c27126d91e21ed0937da6839f2f6
@@ -24439,6 +24833,7 @@ b0e21c27cb43325f0d2e4b68774c9e29
2443924833b0e47d951f8fc90e72982bd82fb825f1
2444024834b0e580283d40bc2cddc96bdee652d456
2444124835b0e62eadc8fff702de36db462f916158
24836+b0e77801ffc758af791e612e4ea6bb7b
2444224837b0e847cdb66477587a793cae3a50849c
2444324838b0ea259c8c9c2bdccdad7c045a2dfe48
2444424839b0ec0ff1fb581f89ed2409ff6f09a14c
@@ -24482,6 +24877,7 @@ b12cfdaed7541d7557cc60af068ace97
2448224877b13097efdf6a87fbb494aa7e212e4f71
2448324878b131041da698d9df6eb243d147e25aaf
2448424879b131c13318299709402bc08df954e568
24880+b1349eb094b84c14f892679a7581fbcb
2448524881b1369900c235d99f3c57dd84ee394933
2448624882b13944daefefe8f1cb4e087700f17654
2448724883b13bf725a8e2bfa89664b22b4529f1fd
@@ -24493,6 +24889,7 @@ b14bf89192bc622c4d2cf83939e0b487
2449324889b14c1f25953e74790bfb7979fec8c7ea
2449424890b15061937d59e6e102203c896ddfe95d
2449524891b1507baead651d7e9e0c95eae3cd7063
24892+b15210d0eff633e3b526f1db2b4ebf55
2449624893b1569410b74419dfb0f7020e98f60eb1
2449724894b157b93be085c79207c9422cb7e9e33d
2449824895b15913f1f5f5211b28622d9dabd2e7ee
@@ -24513,6 +24910,7 @@ b16f48be60f8969b93bc85f966ab9b86
2451324910b17207c63ccf0bfdbd655ef3ec5dd384
2451424911b17541fe46aeb075ee59e3a8da16edb7
2451524912b17778b3af0c4713b713d54972898a6a
24913+b17912a3ce4ea0b7222e4739909f1416
2451624914b17994e00ead525d7b5e9cd70c2c70e5
2451724915b17a84254b6354f6dfa2a17a1e844b3f
2451824916b17e33d2688e58b9b1b7f1426c4dc1aa
@@ -24521,12 +24919,14 @@ b183c425efc80d455e4b166d0a95bbdb
2452124919b18458f81a7548a99dc34f7edb25ad16
2452224920b187ff8c3fedb0480c850f8679a3eba5
2452324921b18d9ad11c1c77784214a5725b080e81
24922+b18ffd3abcf540e493835984088d53e9
2452424923b1907f4a203ef7a3b1743931cd6e0ff0
2452524924b193e2f5debab5c5c9ee7f313a7dee36
2452624925b19996ab23c7493987fb14d8ac110be2
2452724926b19f22462e4cb12bf3a78156b03f3404
2452824927b19f31da27578b77e120124b7e91b8c7
2452924928b19fb628ff498ad6da4faca70400dfcd
24929+b19fbe6f338d3555a96101a62b1f9957
2453024930b1a0f1711497c6f16d3e1c816aeddb4e
2453124931b1a17f9fe0410979bceb956c8d0a9a1b
2453224932b1a1b455b5f123afcb78ce1e221d4850
@@ -24775,6 +25175,7 @@ b36175d75bd798e1350318a1dd650edc
2477525175b3623ebd31ba11756f291efcbbc93d52
2477625176b36281d2b360281f9cfdf2db1d18d4ca
2477725177b368c6a80d83570d679da36d388efe66
25178+b369353de54c8384a2292eff88082896
2477825179b36d96665f578ca728f63710668f6b11
2477925180b36e201727bcaa234ecb197268095eb0
2478025181b3722224819f809b0a1c8d1f4a553b4c
@@ -25032,6 +25433,7 @@ b53af65fb58e9698c0c1a021fe2f38fa
2503225433b53e512da982d82228fce6750accd1a5
2503325434b53ea43d620030598e04382e43097884
2503425435b54066805bdda8385012588de1ea69ce
25436+b54122c6f75a5a75ae6a132f96faac3d
2503525437b541299b3475aea916457a4737516764
2503625438b54741350766dd015e188686bb15c3f1
2503725439b5475faeac6ae602fbe1a7f7cf3d734b
@@ -25089,6 +25491,7 @@ b5a0fc784279541f81d64b28ae984dc4
2508925491b5a23560615c3dfa170a60c8393e0763
2509025492b5a301d559d88ab3e9d99635df8254aa
2509125493b5a32260676a51bb1b1ea7afa30c8c51
25494+b5a51737e16706798f7e2961367470e8
2509225495b5a697cbb509c9cc3f3a72ef4e2d8677
2509325496b5a80ffb00e8896d5b1dc00bb3bce5c7
2509425497b5aa91ea815222b8adc599056f83ea49
@@ -25168,6 +25571,7 @@ b6359af231a49ca2c91480a467676d39
2516825571b639495358d62618ef62404e0840a60b
2516925572b63ac2446b5f65b7b171d7ba476972dc
2517025573b63bce1c9631f2e187211de76797daa2
25574+b63c0f8798d85e7c4be6e2bab0e4900c
2517125575b63ca466a47b2cd45b53a1fb5925d1b9
2517225576b63eb537755ab7e921bc567ca40313a4
2517325577b640de0c79fd8029d34583137c6c65d0
@@ -25175,6 +25579,7 @@ b6427c3c35f9a81d84ac094d331f236d
2517525579b642849fe4b52121fa2786c10f4ba356
2517625580b6434086459942467e936baf3710fc99
2517725581b644133f996054b26834c5501d5b12eb
25582+b6441f34dbe606e5944fcc8605ec53a1
2517825583b644dcbc7cd56912173df423e946aa07
2517925584b64802fb6ef38a675aeef3ebe9d4862a
2518025585b6495a62eb76e9b0fa16fdded0078bd7
@@ -25239,12 +25644,14 @@ b6a24066052492135599082429156ae8
2523925644b6a307ce5bd2b3274d7f33c628d1c29f
2524025645b6a6ca5da9a2e81772ea87d03b604d31
2524125646b6aa395bccfb94cd8e401989eb14f811
25647+b6ac61f5391721ae41083df355ce6194
2524225648b6ac99bdd024f2a97c418d150ac11d0a
2524325649b6adf73bb44363514ff04f3696593992
2524425650b6afda3dfd18e00aadc1f9919f268538
2524525651b6aff606bce405cfeda5832fc2ffb995
2524625652b6b151f4b26ae1342debcd6c6582dc32
2524725653b6b1f612e33825d437b4bd36c744ef8f
25654+b6b3cec946778923c0d52ccb46e932fd
2524825655b6b421993991371efaecaf33d40302b5
2524925656b6b4546a45481a4e896745d3b51ff359
2525025657b6b94610c6637ffebba711252719f0f6
@@ -25350,6 +25757,7 @@ b7590b83b54c4963ae2d3ff8f74e9bbc
2535025757b75b1b3cfde8f1f61c356312726d3c04
2535125758b75d058dba8ff1c6f8a0449754330a77
2535225759b76312fa0457c1f5fe83aec9371c299c
25760+b764caa4ce0f75646c3d0aa26ec1b3ba
2535325761b765ea251f92805a6487dd226e6b9453
2535425762b76617223a4efbde6e2f590df7e87b26
2535525763b768001e49b90a090d81851045a96aa6
@@ -25540,6 +25948,7 @@ b8ae1bebd23317456611d102eb25688b
2554025948b8b6396c5e12dc79c3b36b7c46bf8751
2554125949b8b886a881c069430c3595ff35b4cee5
2554225950b8bae3af2af4b35644fa5ed295a055d9
25951+b8bc594c50a06066b2e7042c3915e325
2554325952b8bcc42578b54f5b4cacb02e837647d9
2554425953b8bf24473f17b3e835f604da1e9b0b3c
2554525954b8bf3c2dedce91e8d81e0a7f581a207b
@@ -25597,6 +26006,7 @@ b918183e0a3e6bbc7ceb98d545d9bcb8
2559726006b9199cc12acaf8e032054ff607c83fd8
2559826007b919a4737753232797bdf717ea2a3db2
2559926008b919a7b575c43451b2e92732eca6ded9
26009+b91a2ae3ced4f098684ff3b9b0c6c592
2560026010b91adf5d142208c65cac8a57b153f712
2560126011b91b0eb468c2b82913ed45e02fff8bc8
2560226012b91c0a842938aeeb36ba37bf90dc2578
@@ -25642,6 +26052,7 @@ b96b6b5bf2f170560895d232279a6ead
2564226052b96e3d0d231d0d1091ea3ef7e746dd89
2564326053b9718e01ec2c7e04f188c59a44e0b856
2564426054b972afc586c924a88a7ccee4465046d5
26055+b97720f039a2eb99ce6ef2666c8290f7
2564526056b9785e6b87f36e1e5527ea8d7af8c709
2564626057b980bc08567b376b088ec5ca1e3e7d98
2564726058b980ffd694ebdd242391d014a323115b
@@ -25669,11 +26080,13 @@ b9aad97e50c4bd33094ea141c872b3a6
2566926080b9ab8b3c4528627516a135562a54705b
2567026081b9abce049d7d18d85feb8b3a49bfabd9
2567126082b9ac970cca94f1038bcad3629b3ec807
26083+b9aeb6a8fafb197daf63019a29e50aab
2567226084b9b09c941593363c5b1135189f5ce397
2567326085b9b0a192fca915c7b5a41be84fd59618
2567426086b9b2e1b440d0923ce5abec20ad6d02d6
2567526087b9b5087eed07e760ec53571fb354ab2f
2567626088b9b56f8b413caa5a0154f0a7447ccfb6
26089+b9b5b2f41b355b7fe75fb5497046b170
2567726090b9bf26088d3e4608646a6e32fec37efb
2567826091b9c0653f025eb7bf4a47d77b7eae6fae
2567926092b9cc3ac275011aa259b067fcdf315fbf
@@ -25744,6 +26157,7 @@ ba5c2279911a0418e970059a88414b08
2574426157ba5cd9c8c6d317459f53456ce51d63b3
2574526158ba5deda920d853a4324c6ac53215f19b
2574626159ba5e6da597b8fdf217eb3dd87d997732
26160+ba5e842e5d19ca31b0cbe1ed478d1742
2574726161ba6347d7b787812fb521bc2b0d66ca96
2574826162ba63927fa4012bf39dba71a4e9e1873c
2574926163ba64af3bb24b42b0a072f1bcd3bdd262
@@ -25760,10 +26174,12 @@ ba72a15bccfe4cbac687b82dcfa49d2e
2576026174ba7385ed2c40a618cd024b14668d71d8
2576126175ba77188888946b768099e57ec025a61b
2576226176ba78b4f758112e2defae1a3475586a83
26177+ba798215fed31ec3da482a91de1b3445
2576326178ba79a6caffc5117e8f3196eb7ff48ef7
2576426179ba7cd5e3561851d5bd4f7b60eed78d80
2576526180ba7d8efe795c88bd955de995665044ce
2576626181ba830176431acd854dfffe086756f04f
26182+ba84935c099b0b8610ccd5223d44bd8a
2576726183ba88ee111a06f38d13765e4e0196f7f7
2576826184ba8b9de5cc84cdfdbdddd4907130c655
2576926185ba8d0b8ca6a227b5cc6dbfb749628917
@@ -25777,6 +26193,7 @@ ba94b07bff40e5ef853b8312c29713ff
2577726193ba94eb4b3cddd0c5babc30462c30ae09
2577826194ba95e61448ffd2c4e24834417c7aa19c
2577926195ba967a191b7a5fd744a0179a3d3c5ce0
26196+ba97984f8662d263e29bf20cc6a91062
2578026197ba9832331311e6da4c795935deb9f235
2578126198ba994c9097fc8a993d9e60f0e3ee7f6c
2578226199ba9bd68859306e301053a875a4e722c2
@@ -25810,6 +26227,7 @@ bad37e9555a12869ba9648751569dc71
2581026227bad37fc4e2ff156c8fe4e64cd6fb1f3b
2581126228bad4b94cdb76a98934ddf561ddc801f3
2581226229bad643cdc23d2244413db278e8214490
26230+bad674f6c6c2e4703ce2a63d37d2124c
2581326231bad7d1725713015c7dfdf110e0a19851
2581426232bad907a546dc22ac816f8ab29c1b6742
2581526233badb89863438fb6dc644b66cacd12cdb
@@ -25944,6 +26362,7 @@ bbceb443078694c4d171ee5939545662
2594426362bbcf08fd98935328c7ad792cce85534d
2594526363bbd3e91cb991018db086e2a90985d642
2594626364bbd4a4560f6c6b1a9127df10936ecc48
26365+bbd4f0a69a9ffde189961dcaae055254
2594726366bbd4fe98ffdf5e6dfcdd92b9e65ace91
2594826367bbd6952420f5b934c2bb47e7a688b218
2594926368bbd82df26dddb2296c299db2eb827823
@@ -26036,6 +26455,7 @@ bc7d388307b72cca066ca8ef7f4c5215
2603626455bc7de8289d0c441f8512059c671a2d20
2603726456bc7f210eecfa5304719f334104219fb1
2603826457bc81074749b22fc9e674d414c6b2ab98
26458+bc84b645b9c5f780952a143d8b3f2cab
2603926459bc86ed66bc30df225b248e040881c26c
2604026460bc89a835e2e9d17e74862862bfaebac2
2604126461bc8c59d679de2e0ce93594f669bc6c38
@@ -26049,11 +26469,13 @@ bc925aec35475c1ccb1618f5740d5050
2604926469bc936b40362217cd3b9c0dc581378390
2605026470bc9500551e8b9bb28f082db5df179777
2605126471bc969fcabd8efa5607d0a9f2c47b6c04
26472+bc98ca57d780ef724fe4423d47b9b8c3
2605226473bc98fb9045921d5bc386d5decbb32e4e
2605326474bc9c5594b18de4f32ec8a34fea01d7f5
2605426475bca14e10c3ec8953d50795b1b648977f
2605526476bca197e88d3bf54377f7eb87c5892a54
2605626477bca2317c77203b46a4300cc546df1429
26478+bca54e30e670df638ac255e4adf06298
2605726479bca5b87ea0d3c9e05df01e2c8e260742
2605826480bca5dfaf72454538e9544d8198fe54b2
2605926481bca64765d9c5f2c085daf06745b30a9a
@@ -26140,6 +26562,7 @@ bd4f7c2003995dd2cd1312be72043cce
2614026562bd551c12756021127a407aee4bd3cd29
2614126563bd5a74a0d6404418dfae506c23ebc503
2614226564bd5a8d066af5d4644b56f3b66b5d356a
26565+bd5f62341cc8c90a1f306ae48c29bed8
2614326566bd6332b651affb13fb35aab3d36dd792
2614426567bd6579e86fd01aa8a2afe0bb51532bdd
2614526568bd69cd548744290fcc7640f23d4f65bd
@@ -26148,6 +26571,7 @@ bd6ffc7a7ba01a3954f2634f666d14a6
2614826571bd724de3271ead67f90481d23db3c28c
2614926572bd77107c575b25a8cd1ce223a9696b81
2615026573bd791e179bf92c897d127d8e6a34df8f
26574+bd7dd69ff50d63a8e61371bc9da859a0
2615126575bd7e5eb7babd048aeff454a0abec82ac
2615226576bd7ea1e13b204040a85e59c6fe51a77f
2615326577bd81404ec71d476561022fd4cce0abb4
@@ -26161,6 +26585,8 @@ bd966a8c450834f935e0df5143b5d67f
2616126585bd96cd1b00a05c61b1e89fffff02f929
2616226586bd98a1946fc6a3d1bdc7bd7cd3a69a8b
2616326587bda3ae6ea7c56b9a2fd986b70a6765eb
26588+bda402ecdac7e8236fee90c9f2d14c11
26589+bda7cfe66b25e77c65086a6228851729
2616426590bda9c170ed50bc53f3ffa6b26433987d
2616526591bdaba093d97efaace135a7ab9b526b8e
2616626592bdac2479036f418d868362a80191ee93
@@ -26283,6 +26709,7 @@ be93f40f7574e8245fb5f9b2bdc8c81b
2628326709be95988b30e1af7749aefb285355f6f7
2628426710be96bcd53dd56deef7e2f135751a8f23
2628526711be972fd73b8f9e1576e8cf0aecc6e1d7
26712+be9752dfa76e085f08dab00bf50727c7
2628626713be996b52f43f196670283792a187aa7f
2628726714be9a657d7657cbf881a6df011db1bfff
2628826715be9b193ce9e1ce4144f2a43ddca30583
@@ -26296,6 +26723,7 @@ bea8bf4556b66e3f51a60259a678b4f5
2629626723beacd19be8a4204b1f3f00dcbdebdb4c
2629726724beacfa933aec442e6ca101ff121e9b11
2629826725beb11e53b22aef05ccc2f9551aa5abca
26726+beb2ad2de0dc556a0597e18c1a45cc24
2629926727beb2be0f952b3401c5ac5b665fae58b1
2630026728beb382e95c1aeb6034b052e8dc59330e
2630126729beb3f44ceb81ba65614c2da119fc52db
@@ -26325,6 +26753,7 @@ bedb5b68f14c87de2ebb1431e262ad39
2632526753bedc132473ad752234713ba7832413a5
2632626754bedea6fd3003e973ccebb4c97d1d41a2
2632726755bedeed4e14ca890c56aebc320976f00d
26756+bee058a1d05ca9051671629ce34aebb5
2632826757bee3d90a904c23e75be2db1a312d2f09
2632926758bee3e2ff08e342fa882ed8bb53e7f62c
2633026759bee5a1cbda3e995890e7892259ea5d16
@@ -26379,6 +26808,7 @@ bf37d41cee19dc03a51565d81de620e7
2637926808bf3a10b34d0edaa8ee34b5fc49dd81bb
2638026809bf3ab1dbb24ad358e5fec2a07b452e2a
2638126810bf3d06dd2467fac353d4543864e362fc
26811+bf3f011938560d00adef55becf2581bf
2638226812bf406688150e523c03aaaa0558ee0f7d
2638326813bf41ce2f9e20b93e11f85ef75b04c1af
2638426814bf42d9affd3357ef148d89405ea8acdb
@@ -26592,6 +27022,7 @@ c0bc9f5044c19090e7251d262f25d49a
2659227022c0c4ce6586b1b8a695601c3f3c906c9f
2659327023c0c6018aeac5d6d280f35dc72b3a2be7
2659427024c0c7e59b0e8b45de7aa5e074910890f5
27025+c0c9b2a00cabe2344537cf62f6054edd
2659527026c0cdf4eb3247445da434120a630e1c0c
2659627027c0cf1f91797f5702030d520d17249b7d
2659727028c0cf3c9adae08bcbfc097f0f4acc4291
@@ -26764,6 +27195,7 @@ c1e76ea8839b654fbd04621cb7cf355c
2676427195c1e8749bc810648e8295d6fc68c888d3
2676527196c1e8b8bdede711b8ac62cd5368486d47
2676627197c1ee4d310780d3c9f36b8a54df4175d0
27198+c1f2156a717ada3d4bf786aba0f1ae96
2676727199c1f36e57f5a282814b36b7469ec66736
2676827200c1f6f033fae021fb5595619ad3f2d3ec
2676927201c1fa098c5de27b840b850e107f5a6590
@@ -26773,6 +27205,7 @@ c1fde5bff477c7667250e8aa1e938bf1
2677327205c1ff557c21bf14efb3fd2d9bf727329c
2677427206c1ffeeb374312f4dcdc3ac211d017805
2677527207c201021b9ba276fdf4a5f4ab4db50720
27208+c203a7b62434370b076eb552aa3ece35
2677627209c20789a206af5f045647b2175ac72ccc
2677727210c208199fef03e5d6d9127296094252dc
2677827211c20b070e0ed2149b0430adf6db0055bc
@@ -26782,6 +27215,7 @@ c20f58e2e2e9b45d297c61315a9bc914
2678227215c20fedc45c15b0b06593e0c3805f8c80
2678327216c2114e6ca8080743ca7a6ae466cd77fc
2678427217c213bf87398b1542499482fc56f0b835
27218+c21a0a75c654cd6b2d2002d5e4d2538c
2678527219c21d830da08ff1ddf98dece11c535b91
2678627220c21ee42a4157974ae225a36d4bdfa701
2678727221c220a5591fc61cb11feaf0bea96189c6
@@ -26909,6 +27343,7 @@ c2f5d0b96f8da04c256d5841e326e056
2690927343c2f6c6b4aa1152a5fbd0107ce9e7572b
2691027344c2f73c332698ef87c8ee398f5860746e
2691127345c2f81ddfdfa2b32e60499cee2adea05a
27346+c2f88ca070b6e22fe7e87c39b0b01494
2691227347c2fa2cb00ba0612c1c6d88649568a810
2691327348c2fa553841690d8991bda5f34f9f0dce
2691427349c2fbf4fd75dbc170de09a47fe3f07682
@@ -26929,6 +27364,7 @@ c30ecf6950a0087dd7acf7400186af65
2692927364c30f0b1f6beecc3647f7754fd4bc68f8
2693027365c30f2dd44c23502cf3d5d1b3e0f05ac2
2693127366c30f7119992d04e7952d3f0068ce1bb6
27367+c310ca61b5b3a13770746e0e305ffcb5
2693227368c31209044613a8b9a77e456825cd01fe
2693327369c31324846d27346c8d9d5eb54373141d
2693427370c31696f5c54f9953738e8ba5c21c3840
@@ -26937,6 +27373,7 @@ c31932bc11f0b29056eaa6e108440f1d
2693727373c31ab7590b7a627b74e3c20f718f912e
2693827374c31bf090dc65b81c5e0a13c28b7d6a9f
2693927375c31c092d0ab0c98e985913f36d651c71
27376+c31c695963f8854327ac30f6201ecbe6
2694027377c321341a0ed065d09d3f71bbffbf6efc
2694127378c3245a801e35b35d9880cf424c6d4c1d
2694227379c32aaa08b87ef90823e6cf7f761f1f1b
@@ -26970,6 +27407,7 @@ c355afef105d21178db3a66f35163fd8
2697027407c359755e89002d8bb3f14da9a8d8639d
2697127408c35ab5ae0a6f9d64176b5b97ec2d54a8
2697227409c35e69238ff278f304521307fc140d94
27410+c361b1c6600a744fe66f12875567072f
2697327411c362a5f720be9a5eff0dc6783a41a81f
2697427412c362ef7a2b2f4d9206332e481c67a5d5
2697527413c365b0dd2879e5b9d522244ff93a32df
@@ -27008,6 +27446,7 @@ c39bbbd8de996eefe8478fb287645487
2700827446c39dcca688a1b04556fa8e9205bb5512
2700927447c39deb75a287d07e6be6e666f87735c4
2701027448c39eddb90dbe2d3115da7bcc01262b05
27449+c39eefe8b60e9e517901f99e87855216
2701127450c39f911754be809ba20f47f6f9bd93b3
2701227451c3a0a78457d7a0bb62806cbe84fbfd6e
2701327452c3a3e062001ec4fd9a42f35feb37df54
@@ -27061,6 +27500,7 @@ c402703b89badac9661b1ac809ec6e6b
2706127500c4027c1087a59d993c95577a1837a6ca
2706227501c402875e8ca8e15fa4f9531e734d59b2
2706327502c4048a86c39b8fd78db54e2d3c659eba
27503+c405a0802efb4a79ad3c2e9cb1111940
2706427504c407894aedbc818ec260404f312cc21f
2706527505c408a4fc231784912266b7084199d0c9
2706627506c40c607c2816f152b40032cebf0f9c03
@@ -27069,6 +27509,7 @@ c411bc157437c6a7a1d6a648848de3b9
2706927509c4139f13156a2203900fd92ca1545c64
2707027510c4156f42875f915253ea7e9902de1229
2707127511c416d791a255c0d285b21dcc7cde1e09
27512+c4173bd88ab7f4f52e77111d4752fb60
2707227513c417eb363c5902819ec10e2d492d6be8
2707327514c4199c0de57911950812db778fc996e9
2707427515c41d9e55ecc837cc7f1a517a1f414c25
@@ -27090,6 +27531,7 @@ c433109a0181a72e8e35f6c85da3011b
2709027531c436056ef9aa202808f15b0a3ff5ef86
2709127532c4385ed5e69f2cf5ea4a4d537114d857
2709227533c43ae0db82d0f680f78ae66cbfcc813f
27534+c43d95f0d9970cfc109172280b306318
2709327535c43da58814eb7b4735a30db1540422a2
2709427536c43dbf57bece6961279815db75b61c3f
2709527537c43dd5845458724dd27d46dc6136de5d
@@ -27255,6 +27697,7 @@ c59039c140764053dc091ebaa959c61e
2725527697c5913891a163b9944264997f6bcdafe7
2725627698c596a1507a56c03913dbb44c45cca681
2725727699c59c40f137ccbee7826475a8163e893f
27700+c59dbf6f49807ecf10a15ef8d88254bc
2725827701c59e524a61b1efaa09ea2f7498517b17
2725927702c59e92f4f3ba8284c18e0e3439562318
2726027703c5a0cb55a624dc3838f375edb4e205ca
@@ -27407,6 +27850,7 @@ c6ab544c8df8fc2988704ead969c64b2
2740727850c6af7ee85a28cc2f91747411c0126fbe
2740827851c6af9f211e198a0594b39b0f8e732e53
2740927852c6afc912c6326e5378e94b85b4edff7d
27853+c6afdd7e567e1fa4cb8f5028d0015175
2741027854c6b1001b750a6b10825f4494d3c4678a
2741127855c6b2806de12a5a66cc5376e988ca0dab
2741227856c6b726a22678ad1d237859f327444e48
@@ -27591,6 +28035,7 @@ c7fb1690f1c352686153580261e7f49b
2759128035c7fcbaabfb28d769c6f67d749ad3d24a
2759228036c7fdc0a95c04d600accba09aae2e3a9d
2759328037c7ff540959cb65bcfd86dbb7feb4f240
28038+c7fff82a77da14caaa8d3543de7e5ce0
2759428039c8010f1f6d8912fecba617d37e6cb05d
2759528040c802aab557ea92a92bf03a1450c89110
2759628041c804baeb5bc541ba5d328ae35f0a8125
@@ -27707,6 +28152,7 @@ c8ae64f77d055c29af04d1b99879ea19
2770728152c8b0f12e343b3b0ae763153527a0220d
2770828153c8b121246b1ed67c4a2b72e6d222772c
2770928154c8b26ae0bb0bbb55e52464e10da9fdfc
28155+c8b35d72c0b821627d28ddda166abc05
2771028156c8b4a5d5bf07af6f91e35a5f555a2309
2771128157c8b4b8e5b7dffba06ea08095a51e4044
2771228158c8b630467dd2390827a24416f410e49b
@@ -27864,6 +28310,7 @@ c9ae773056f7d370502fddfa70488977
2786428310c9afc919e0d692ee80d23e1e109779e7
2786528311c9b16953a3189f9f0f94b4b3052ba4b4
2786628312c9b17506d16defebe23ce186bf84df38
28313+c9b77d033120de872dbe1b0ad9cbf8ad
2786728314c9bd62feed525fd2cad60dfcd5bb934b
2786828315c9c19d484b2b0b92b1d3b6ccfedea94f
2786928316c9c4575da1d1db0c8e5e38a3bde2a3e0
@@ -27901,6 +28348,7 @@ ca09bdc976b58c7172b4bd278f307a50
2790128348ca09db494d5b2eb2deb5e0b2fc87bac4
2790228349ca09e4dad6e596254546de26f20e1fca
2790328350ca0bf022fae68e60549b97a4943051a3
28351+ca0e0c30efce45e612eb80da9ae74f19
2790428352ca0f87ae2740a4ea6f62e2730a90e89a
2790528353ca1263d2d9f282063468dcf6520dfac6
2790628354ca1495863fd5c4483090e4ff8dabaa65
@@ -27962,6 +28410,7 @@ ca6d62ea11f510fe8ba7bf4a918ee2b8
2796228410ca72e3a911b80c1293e33153b3e1d9d2
2796328411ca7352bc912e43ab83080131dad9fee8
2796428412ca73a7a2b21cfd0acf0226ca3543a942
28413+ca73efce30c26a91180764783e4c25d3
2796528414ca74e273fac6008b049087184be71692
2796628415ca74f3dc84e82d3a075a076e4eafda42
2796728416ca77ac1976311f268779d82bc631a748
@@ -28005,6 +28454,7 @@ cabab3f1f25bd18233ca539c79494053
2800528454cabb605c84243d9af7bafe92dc4718c6
2800628455cac0c7f789663104136570c58bba40ce
2800728456cac11864024754fd487eab172bfd1be7
28457+cac28534f5b64eba84ddfc8805103f3e
2800828458cac7bcb09a2f531e71db07f658fcc220
2800928459cac8763a1f869d93dbed568a4369da46
2801028460cac8d299e75c9a1be83d277ded994a51
@@ -28014,6 +28464,7 @@ cacb31845dc328fcdc12aedaed98ee57
2801428464cacbfa9861bc169c12100837b60e4a22
2801528465caccb4553bea14b850173ed929d48427
2801628466cacea158c089d6f047298ce91ceb6778
28467+cacedca97c4979067966a58cb2fd45d4
2801728468cad0cd81ed3e0c3d103ec9833a6e7bfc
2801828469cad54c41579530a07127f1dc317d8f54
2801928470cad76650641ef43923d50e791f696de3
@@ -28092,10 +28543,12 @@ cb6dff36fc820b2d14256de9acdcde80
2809228543cb71cce2c6007925111bcd1d97630520
2809328544cb7314cf34bc73e19f52a34c06997059
2809428545cb7475a883d17e1d52e39769fc8897b3
28546+cb78a60b0368045c5c2bf05cbb678539
2809528547cb7c0180fa8520c6a8ac2cf2c44900c4
2809628548cb7cb819b971c81380255caa55a3e3d4
2809728549cb7e174c0da2807c5d07cb83259b27f2
2809828550cb7e38eaa7cbbb3eb4fb64724338161b
28551+cb7e490b9fcf18f3c58e080cd740cebb
2809928552cb80634275bd50d83b232e1a5487cfbe
2810028553cb80a8a3bea68a7ab0d7e7bc6d516dba
2810128554cb81a588ada0518c10605186646249a6
@@ -28157,6 +28610,8 @@ cbd2cf93b33afb7d6c374c6fcae20fce
2815728610cbd4493806d133055d74b4bc23f163df
2815828611cbd5680c7a375f949592c065a7396cd5
2815928612cbd682859b400a2fb46ee83d41538f82
28613+cbd6e1c4071f5ab9e0e305dee43c54e5
28614+cbd8d99284066af6df43b3973c4c9f31
2816028615cbdb9c8075da1d2e172af59f08545861
2816128616cbdd67670b05b8d422acd644bb9ba097
2816228617cbde8a8677860e0f920198d593a59917
@@ -28239,10 +28694,12 @@ cc641cd4a773ad9f4cffb5228f1a85f5
2823928694cc6574e10ed17fcd7ee9b5fe064e6986
2824028695cc6584f54f0d2ba99cee06f4ccd26211
2824128696cc66c37acc67d49f9e145528aba30d33
28697+cc67204d264f71b7a0062fdc54eb0b84
2824228698cc6be062768e334c846e051b4ebf5776
2824328699cc6d14ad5c331ad04d56351648d261df
2824428700cc6e76b559fb864675993b7cd1f2a1d4
2824528701cc71b2fa94d18743c3b96c0d9f9a2695
28702+cc71ff1ca46ba592257a731716ab2c84
2824628703cc742f2c760d567d691e95f692450d1b
2824728704cc776f9c265d59dac40f28988b709e1e
2824828705cc780461ea336cefaebb576c3d8c0c78
@@ -28272,6 +28729,7 @@ cca6a9fe9559fc6b1b351115cca8c509
2827228729cca725e86d2a3e2c7446b6c511930617
2827328730cca798ad16b61787167eb9d365d797eb
2827428731cca79cc5ea29814e98e55837b315d788
28732+ccaa43756fd9858323ddb6e462d0f8ab
2827528733ccaca57bc58df4fec1400e5b9eb43c47
2827628734ccad02fbbf4def4dff2a2c3c612891f4
2827728735ccb55c3b64b359540efaedcafaa7be5d
@@ -28347,13 +28805,16 @@ cd63d93a224bf25ec62eafa906e50e67
2834728805cd65ce1dd745932c97c48fa429698302
2834828806cd65ec9a85993d154696467b2a166f48
2834928807cd66904f013121d89fa72ff0d02215ec
28808+cd68f06a46fa67aaa0650c1cb892b5dd
2835028809cd6bccdef4046defc710486d329aab96
28810+cd6bd04dce27274d98dd2816693f5ad9
2835128811cd6d1146ee30b6ba7d173847ff2764a5
2835228812cd6d7e155397db5263932aa4f597706a
2835328813cd6f87639cc14c6abd00f307792fa0b9
2835428814cd71f10f69022ecde8f1cdf631e93d66
2835528815cd74991d6af462004ae65a91447b2f6a
2835628816cd75eef241138038083b23cc0a9c038b
28817+cd76cf2de6c14687b8998acc85f3c5a1
2835728818cd7766ac8acfe52a3329003a3fe27cff
2835828819cd7c0999091c15b02740b3f67e0cbc84
2835928820cd7c5a12fc6819693e17f5b662abf4b0
@@ -28420,6 +28881,7 @@ cdefa6124dfcf90ecbe9a2be746d4f7c
2842028881cdf4b901b73db72345c91ff558c35426
2842128882cdf5af0decd41a122cc0a4adba55d2bf
2842228883cdf80266bece467aba3c378a06a9fc7f
28884+cdfa6d9ceffb47f2b8cf05f6c13a3424
2842328885cdfaa3cb36f58651c81e44c87271271d
2842428886cdfab8cd9096c3e137d1f706c5d09a22
2842528887ce039f51b2de2c5c6290aeef302545fc
@@ -28450,6 +28912,7 @@ ce3eb936fb5b332ed7bd431649ee9157
2845028912ce405bda6a9df7cd68402e5ffcd03e2e
2845128913ce46bb377956a0de61080988ea7b592b
2845228914ce49cee67d3fa5050b7439242e0c39c0
28915+ce4a099743fbcc3a9020bcdd2df1980a
2845328916ce4ca8bd41d50c4db6cad8c7c75a51f8
2845428917ce4cc12d319e7b3675495eb63208df31
2845528918ce5354ff079a64b85076d6de263a5a92
@@ -28515,6 +28978,7 @@ ced37f9c5bb9ee20dca2cce1cb83e52d
2851528978ced5f88f47572a0ebfd105ea9cb63fd3
2851628979ced710840ecb3835c1db91df744c7830
2851728980ced7b262c08c88f25be7a445e3027c09
28981+ced9613c7e8d848abdd4a8d0f0742244
2851828982ceda1dbeb15a5ca212b4452a40666a20
2851928983ceda90cc461476fd6d1c2d3a66488bdd
2852028984cedb093b2b4c3757d3994d541fb7f0b8
@@ -28709,6 +29173,7 @@ d059fbd290ae160f185eb264d85164a8
2870929173d05a223edc3f941a314389756c27c9c6
2871029174d05be6a6a40f0f0c2f42a0e85dcdaf16
2871129175d05e2327d384a21af7251027d29f7080
29176+d05f7836aaf87b47bf8cbecf7cb0c53f
2871229177d05f86c4af15c2f9c3ba05b5edef4f6c
2871329178d0600e4f490f0b4cb45c75f33048c6c0
2871429179d060c764596e1cc73faef4a1e1915e22
@@ -28728,6 +29193,7 @@ d07bbc6d0f4a4ca2059f5f02aba0d453
2872829193d08160abc8441d1e373215cbb51bb53d
2872929194d082204b2e91dd040953c1c801adbc19
2873029195d08413a7258b4987da76827200d48bb8
29196+d086ab30d5e865b7feb8cb17aef20435
2873129197d08939ec3d9304228346a89d49301fef
2873229198d08c5f43e03bcc8f5d3a7f8e80292a34
2873329199d08e3cbf95a408ce17b21bee5f186cc8
@@ -28828,6 +29294,7 @@ d1296c1283cff880f35fb0b7af6528dc
2882829294d1297dd1666cd79b001d00b4841ec3d3
2882929295d12d74758844d42072951ff5476732aa
2883029296d12fcaeccdc513f263e3cce81da97301
29297+d1337c55efda4f93d2edc7c434bef7bb
2883129298d13be8c7fdc35c105075451e33d50bfc
2883229299d14152f666bf2312e2ecc84bbe31e5bc
2883329300d142e8aafe486b18cc447d7b4b893860
@@ -28894,6 +29361,7 @@ d1a6899af4a02591c2188ddc563a370d
2889429361d1a82d07b8188d80cd6bdd864ae854a2
2889529362d1a8c3f09b7cc0c9ba4c314f23180a4c
2889629363d1b40abd6bcd116f3c602325e5bf20b3
29364+d1b57db43355790c620238dc6963ab0a
2889729365d1b62ea267b422e424f0cff5a0e2a56e
2889829366d1b71bc1d9aa9721f493956beaa071b8
2889929367d1b73a196744171dd5f7ffd19938edb3
@@ -28905,8 +29373,10 @@ d1bae669be1fd867c025fd82b00f55a7
2890529373d1bb8cc9908a4fd36b030d3e3a489a52
2890629374d1bbff7fd94587d5a9e09e7eb7a69af1
2890729375d1bdf33d619d6d46e81d1b01c721283b
29376+d1be05946c614faffaecff66e69a208c
2890829377d1c354463ff151cee3d4059fcc3d1e29
2890929378d1c798ab86b03849420f15fd23632d85
29379+d1c94fe461b176c70485ba632bf8fee4
2891029380d1c980c24af9e918585c91f6d494cee4
2891129381d1ccdc68ffde884d7470bc9fbe9220f6
2891229382d1cdfed97e4fbe8be001c04bc328f558
@@ -29317,6 +29787,7 @@ d4b879b4754838966b43bdc50ba1bfad
2931729787d4b9c338f515e82a94f6066fc3a9f09a
2931829788d4bc01498cfeeec7cf254fa925e032d3
2931929789d4be707553f579c5571e4bc573185cf9
29790+d4c1f6b6e32e5911239a8b7372f9e6d9
2932029791d4c215a5aca74771dff2ea27051ddaca
2932129792d4c224a3bbaf4c6868eb2bd158c919ce
2932229793d4c431da3f187f3d469ab1afc274510c
@@ -29442,6 +29913,7 @@ d58ef626b63db36fbe520fd4ac6b10d4
2944229913d58f7b0f7cf0633a3a7f9051eef9283a
2944329914d58fca799048238ed2bb343bc5401dd2
2944429915d58fdc47324b7a1be0b062dab65f9887
29916+d58ff97f7f3b9c605bd70350dd92de38
2944529917d5950f4e333b64d729612eace641b952
2944629918d59512c6fa06fc3b5c0ff9005bcca9f6
2944729919d597747358428d814002abda48cec29f
@@ -29558,6 +30030,7 @@ d645a3646e8df08dbd8bc4fbaebb42c8
2955830030d645be01c379aef934c1d5fcb424dd60
2955930031d6467c55a745d0e0dddbf78d6c97d08f
2956030032d6486c5f15df37b09f1e2bfcaaa781e6
30033+d648c4f319b26cfb63dc930519d4a183
2956130034d648ddb0d7e5b01b9b150723de6cf365
2956230035d6494c2b4775427fef7d418ca5b5ae62
2956330036d64a85875bbca160b1baa7fec6dba421
@@ -29629,6 +30102,7 @@ d6cecf69ff57aa0177aa795e95bb2d71
2962930102d6ced0d9335fdd54379afd89c122fa0d
2963030103d6d2297eb9c8f51b5ad732deafae32b5
2963130104d6d40175fd9c2b152391a5a43cc138b2
30105+d6d56365a2a60bc3e50e59e1591f2e18
2963230106d6d80d01d0306a41d484201bfba86e2f
2963330107d6d9f2cfa27c0360a7561b0b837d3a15
2963430108d6dac00a0f1dd7a74cfbd787ce1894b7
@@ -29663,6 +30137,7 @@ d6fdff53dd0d63caf0943ab64ebb7959
2966330137d709e40dafc19739190f714f2a98a6c4
2966430138d70d38e00a87a03ede4b40fc90a6efc5
2966530139d70e20d0bb71e9d036acd83ae9fc0d78
30140+d70f391822e07239cd506755d242e3f7
2966630141d70f54c0abac7c36908520b1a6bbf3fa
2966730142d70fa7e89118378f91dbd580e798343b
2966830143d713a53e79b72645cf7dc9f7a55c70e1
@@ -29670,6 +30145,7 @@ d715a25052ebab71a19e2a10e60923a5
2967030145d715b68105a20601442a9de8211efd03
2967130146d719ee108a38ae09ca86e9286fa300ec
2967230147d71a550b66884ee8c88ad6343216ec5b
30148+d71a5c7709f876c2bfb8f8cb2d8617bf
2967330149d71cbf957ddba62e91a53212d00c07f6
2967430150d71e3418d44e2363778d5d1fde340179
2967530151d72234b86a3de4325c1452bf7fd3a43a
@@ -29754,6 +30230,7 @@ d7ae45ea9444a5a91af4662aaab3b57c
2975430230d7b2bff9fcdee0a317d48d80b69ca60f
2975530231d7b2dce46da49ef8422ccb137d1ca534
2975630232d7b3a085e9e9024b1f0dd6c2cdbe6290
30233+d7b4dac32d4e4124505d17a53d31ce36
2975730234d7b541d081a66933adcea9cf2235ecf6
2975830235d7b5cec664694e992deb46abcba543d9
2975930236d7b5f131076556c3deb495fce7474d3a
@@ -29918,6 +30395,7 @@ d8db515e0dd20d9773c7d048f51e162d
2991830395d8dbd7b6d364da57701f3da79f1ca5c4
2991930396d8e1e9febe9d6928806ac258ad6e7d18
2992030397d8e2879b919ff5b80616912f7fb5e8a7
30398+d8e2b4a028fdbc7465dd2697655a250d
2992130399d8e5fe343fb97235f41a5b683f364c3e
2992230400d8e79fc93d982abc40d4cca9883a6f81
2992330401d8e8d9045152ad31946e45639383f44c
@@ -29962,6 +30440,7 @@ d92749265f65b19a811400391ea49879
2996230440d9280e9700f5730ef6b58c3d015af5f0
2996330441d929844f17ec45926734d3f33fb95684
2996430442d92be2b1f771a2780a15ffe26a43bb54
30443+d92d9c4ac1c31b34b8396339313499be
2996530444d935bf57235f7423712cc913f0115c18
2996630445d9362ebf453e4f1a9489156c1d5fbe0c
2996730446d936af24676934f09507e8279c088e6d
@@ -30071,6 +30550,7 @@ d9d5ff6658f3e86a16f0681e5a8bc39e
3007130550d9d6b41ae1381cb9b0f0c6171c20ca09
3007230551d9da1bd752fd1ca3f1f94dc4da8c1505
3007330552d9dbbefce8d3cc6fb856f35b67b90ea4
30553+d9e0413b487a7cb856e74e7abbc24256
3007430554d9e3414533a241f27a780832ba1436d7
3007530555d9e4bd6fe997ed4ac1b7710d6f492c8e
3007630556d9e89afb807e0773289c32c4c0c5c597
@@ -30091,6 +30571,7 @@ da061de7ae8718bf8ed7ca766fd5aa1e
3009130571da0b1cdbf01edd3f5b27306b4203b098
3009230572da0baa01ddd425958abf4187b4149566
3009330573da0bbc9da1234c616c4f0338fb02f777
30574+da0d1f8e4e459eb76a2f3b8de0b4c9c8
3009430575da116a76dd54e8eb0bd559f0aa79085c
3009530576da122af56c2e5b2f65d0db3f9737fbd2
3009630577da12faede1e1769ca4edf3d8f4d85f9c
@@ -30142,6 +30623,7 @@ da4b3fc8943168de46a6ce601e646ac4
3014230623da4da2b3118af1cfcd2f27f447e72c04
3014330624da4f50cb4282c2950052987671e0cb2c
3014430625da4f681fe9fef5e91514607933ba2903
30626+da5518b3f8819b33972c1e4722a48016
3014530627da55cf117cca98d21df71b1c1e76b969
3014630628da55e47e68434211ac5ff64e5179e9c7
3014730629da568ec080e03279292445f0d9822258
@@ -30292,6 +30774,7 @@ db62cc3ee54c23b9997a8344c8def80f
3029230774db6397477b5fa63a3308edf85542dad2
3029330775db63e277f93451f4e20c0c8f82aa87fe
3029430776db6413ec869ca83c544c85ec9932227d
30777+db64ceb568034016521ed4edf5353b23
3029530778db67bbea5cd9bde353b2eeed70ede5bf
3029630779db6b969582378074bde40ebee7daee99
3029730780db6be3cc8ac53c8c3982e20e47c7a689
@@ -30329,6 +30812,7 @@ dba6ef363301742e43fbde3b43a07f4f
3032930812dbaa92e468cb71ca638ba822eb24ebfd
3033030813dbab7a4aace2d7c0a227741a1ae33986
3033130814dbac449e6de7d00bfc082c19e4647cd2
30815+dbb3149e8d86697a0cdfde7d8280b75a
3033230816dbb55b662faf07b01a533b27305ff452
3033330817dbbc69c4d83e4a1012e502e131630ef1
3033430818dbbcc2a005d39fac6e6ce8feb608544d
@@ -30350,6 +30834,7 @@ dbe804252883314a675242c283629198
3035030834dbed3701dadbbaf0c9dd23f08cdb44c2
3035130835dbf08bb9cc3c92bc32b3f93a52294060
3035230836dbf11da88fdf22c99a76dd99e825b309
30837+dbf3ef77bdadceea2052020eee0cec20
3035330838dbf566f2ad5c76a35c22b24696944862
3035430839dbf8221584c38d47de29e4e9e57728a1
3035530840dbfa8741c4835616675a4f67d5d843ae
@@ -30375,6 +30860,7 @@ dc1fd54ee2cb7e1d321928e92247ea6c
3037530860dc20ea5ff120bbbef60ea0b8651be8f9
3037630861dc22ee056453c4c39ed91d6d6d8ceb02
3037730862dc23e9f6047621464d28b0af18994536
30863+dc2c49eab18703a412752c2692a1e0b6
3037830864dc349f80b05a430e45a01cce4b42d9ac
3037930865dc36d0651d2cc30bba8e56b0d485c933
3038030866dc3ac6131a016cfad63229dae3d61b6f
@@ -30438,6 +30924,7 @@ dcc1be292f4876eb4f98a8ca662685c7
3043830924dcc48a0401383595250f733a3c5249d7
3043930925dcca532fa8fe9efdc91d6e010461b07e
3044030926dcce839dae90bae619521bf682a7eb5c
30927+dccfb2a3806e9930596a7ab01aaa0e60
3044130928dcd2d5640c9ecfcd8c5182ccd55e97c8
3044230929dcd3de39f563d065bb4e92804aacdd3d
3044330930dcd8559edbbd6331cc07f900d81824f2
@@ -30698,6 +31185,7 @@ debc10f64c8c922766e2826dd070052c
3069831185debdae6a706748f03c641dc47c11a2a5
3069931186dec0e2bc26194a22aee36c61639ea941
3070031187dec0fcbb5516ad550387abcbeaf91da5
31188+dec11f03685eca32752ae01452cf62f3
3070131189dec205de8532cbf5c79e07c60e35aee6
3070231190dec345f0790b7782474c838312240bb1
3070331191dec56737e108b5232ce1d25c986c81bf
@@ -30893,6 +31381,7 @@ e00d364da1f6b56a35cbe394f5a253cd
3089331381e00e6ecc0cc7ca58e38ad55fa9d0f71a
3089431382e010d5dcc1a647a6d23a7f6f73fb45c3
3089531383e010d744876eb80f5c5a95a325f28f20
31384+e013dd3b7129abfc7a8a83ff5c8b8a8b
3089631385e019819dc32aed02235714b502efbaf3
3089731386e01e2a8c5b65644b35d272afaa6f4d9d
3089831387e01fbae900661573bc6c4601d5d29bdb
@@ -30950,6 +31439,7 @@ e07a2d2c7c2565cebdfc7db42bd47fc1
3095031439e07a4f6437ff08ef003df274e6d9b32c
3095131440e07f8039a11a00afbca8a56eb940923f
3095231441e0821adbbbb6528a46439cacae81f3f0
31442+e082b78e67995ddc852c7abcd67a479c
3095331443e082d60b1b31d773f877d81dad42fbca
3095431444e08495143e8f21c3fc9da71dadc811c1
3095531445e0869bda88b43259b0e4bf541ce94e5b
@@ -31057,6 +31547,7 @@ e1480fd076cfa8e48b9a57a71733f77c
3105731547e14997c28113b27abec34f593237670a
3105831548e14ef642fd4f0dea66ca3ea3cecb5fde
3105931549e14f522a44aea7c9092d7a8ab1c3fc28
31550+e14f56abcbb2f74e42ceb65d4feae020
3106031551e15160873d8b4104faff09cbeb29a1e9
3106131552e15bd12a2d340650953715dc91b3e550
3106231553e15e95f8fbe3c4133b6f4396be678601
@@ -31070,6 +31561,7 @@ e1684d441133b33a0aeedd8524743e77
3107031561e168f615e4141466abaf19d415f27699
3107131562e16be6c84ff76df369713bc86c153873
3107231563e16cb8b58da6065be9d24c323eb3ffeb
31564+e16f618787b897e227493893577c4512
3107331565e1722956de181dbb662aba8e3a0f6e10
3107431566e172540c05c9180e86cccdbd52aca5ce
3107531567e17305e53c65a5f3af933759d899bd9c
@@ -31120,6 +31612,7 @@ e1b6ae581a234431bd042fce2981d124
3112031612e1b7c49a2f9f1d5f949d24034d542fa1
3112131613e1b803f4a998f7356dce42e30ec1a1ed
3112231614e1b8b2f36e55e672bac9af1c58195554
31615+e1bc9de2b188210b61f395e2c160cbc1
3112331616e1becdf0d8433cd06dc56aabb5d35981
3112431617e1c3102eb2e47c21348f6eb52245f5f8
3112531618e1c34662679cbb111cc3b74f401f01bc
@@ -31225,6 +31718,7 @@ e2640113d3788c074f890bc9b84b786a
3122531718e2662988c0a481a5ebf179201718918e
3122631719e26a8f6a71d18500608a728d7d108def
3122731720e26aefb29d0b05ee73fe8a1f151405eb
31721+e26ecf82dca3214341fe0b273fc945a2
3122831722e26f919b1693e495e4758a6225d1d6e6
3122931723e272987ab92e8770aca13576b1380710
3123031724e275262b210284d722222ccdd0a071e9
@@ -31236,6 +31730,7 @@ e28376098f1f25de6969923e125b68be
3123631730e28673e10b0d20c83661783204296108
3123731731e2892413ddee5544c2221cd9e8b7726e
3123831732e28972cf2ab32e39e515daed1caa9cd0
31733+e28a71c1986e412860f83a5e3d4a71e1
3123931734e28b8569a78dd2aea8f192a4d9f79fed
3124031735e28d581ef4bc736accd5cf251585fd4a
3124131736e28e02d9fae12cdab85a8c2dc61cc095
@@ -31246,6 +31741,7 @@ e29018cf123845defe03b1971bae3006
3124631741e295ec3ffeba003e08d8ebacb11d99f4
3124731742e297a1ace24d2011ba332118c54edd81
3124831743e29c5bc36ed2c7db847d2205c89e0cb9
31744+e2a1d2c12b13fe77f68392b69222e585
3124931745e2a31ec05486deb7afda8e6254cfbc8a
3125031746e2a684b86c6020242a7218c0b595b9ab
3125131747e2a6ccbac30710d6d45022b9f08bc60c
@@ -31257,6 +31753,7 @@ e2b0234da4278a28eb14c7ea48757d3f
3125731753e2b04590767725a6361b74db7bda803e
3125831754e2b1f9a1c3fe7e848579cc5f86aeee7d
3125931755e2b31e3e00cf10f1b4a00f0695c42960
31756+e2b3ed5f977aa3c7cc781f1dafcb9131
3126031757e2baa9f1e76a61fe19ab9f7e16f25b7a
3126131758e2be05c0ceb581653fafc5e1c255fe02
3126231759e2c2b659cc72daed3372f685efe00b3a
@@ -31274,6 +31771,7 @@ e2d413e6524c4249533b820847c6fcf2
3127431771e2d53f79bae5800fde7cac8bab87f5a7
3127531772e2d54e5916b9c0d63c20d3e47999b011
3127631773e2de5ea053c1fb66f3f6f24b2a5ed989
31774+e2de6a50aa278dc87c279af4373592a1
3127731775e2deab68f98ea7dee9ef77828f32a342
3127831776e2e0b1508aa889c916ec363920184a3e
3127931777e2e177c543d67a73541fcd3256a19cd3
@@ -31439,6 +31937,7 @@ e424961b1ab3b3afa9958ec35c2befc8
3143931937e428589e8ea128f3d32110c1857626ce
3144031938e42b587d59992b969a8cd8c5dd27b716
3144131939e42c8358c081203a6763385628a9f495
31940+e42de701734ae79cdcac85f43aeadb0e
3144231941e42e3a759a7cb51ec7f53ffeadef724e
3144331942e42f0a01a0653b167d699be1177f913d
3144431943e4306a17b1abf8c30df5ae8028d35311
@@ -31534,6 +32033,7 @@ e4c7c5d0903bec0e7e56db239e3a47a7
3153432033e4c85da362f699c0d65bab4a8547213e
3153532034e4c9f6ce0d8440755a6f24ae5be1501f
3153632035e4cf84e6152026c3647d6bea2edbd134
32036+e4d0c126e1169d57bbb094b7b3f88467
3153732037e4d2882b24281d0df5fb4549d14587f3
3153832038e4d34b129414d3f684447a345c1e7d8f
3153932039e4d367b8947b864f3a4ecd20bbf8af5c
@@ -31542,6 +32042,7 @@ e4d8e3b300f7bb4ac3e16d5c51a7c859
3154232042e4da535dbdd477e9b2e7c8aeac402d74
3154332043e4da700e0e342217f61826a4e7459e15
3154432044e4dac23780f9ad51a82e20b4d96f7a22
32045+e4dc6bc63e9fda6d312fcca40a90bd9e
3154532046e4dcf994f6163f8cc218f6b974bf484f
3154632047e4dd1b15bc1194f046ebff96cf262fe1
3154732048e4dd5090d0cd25600fe2e552edd9641f
@@ -31602,6 +32103,7 @@ e54c36f969557d3e6af59b71128b37e7
3160232103e550ee59b9391c3383c2d12684bb9674
3160332104e55211fd538fd0e41d000bfac30bf1fe
3160432105e552588dfa993ec997d2012ce3bf996e
32106+e5530bf4f7aef478b7a507df5a532aa0
3160532107e553d8682ff8a0632c8f8b84424bcfa3
3160632108e5540991f1375e90d365954ed93b581a
3160732109e555e1564c7fa6fda70392298452be31
@@ -31648,6 +32150,7 @@ e598ccb7077a803dc3e6aec39cc25eaf
3164832150e59a6238e33af6068f4b5f8c5a83e0bd
3164932151e59a9c45d10476a6e4a83ec5595044db
3165032152e5a0edf16b24c1d43717def419fd63f2
32153+e5a4352431de876a7981c4f04ff1d477
3165132154e5a560bc2329e87f4706e1e5db01af57
3165232155e5a61b7a409f20ed2423e1a111c2555f
3165332156e5a79e07b1862c517dd3de385cd75e31
@@ -31674,6 +32177,7 @@ e5cf19505e11e73a18b191cebdcacd50
3167432177e5cf58b5b0ab643c8142e1022451ab04
3167532178e5d028d1720d6fb33d93e71d18925187
3167632179e5d291d4104b8e8e108e9bbd25dceafb
32180+e5d4f913ad86dc9f1eca33989eb20bd7
3167732181e5d56f4eba6b402b9c015a20f5590559
3167832182e5d57a7389509e369373217eff7c5977
3167932183e5d63207b40adbda2fe65799878d28ba
@@ -31701,6 +32205,7 @@ e5fbc2e55f647fe098760778d75f0bf4
3170132205e5fcec949c6fd1da27d5c03fe42fde48
3170232206e5fd22770ba4783db878b9b35a88cbf5
3170332207e5fdab0994c53495e611cb6727310641
32208+e600cccb1935517c56d319f395635982
3170432209e6018b235ec221dae6cf18557c98ff05
3170532210e6032472f02c18f2caca24d8a24e6015
3170632211e604ebc336de0c5c0ba2c36569881b97
@@ -31817,6 +32322,7 @@ e6cbe20a82c2f77ec11a3cdb09ee45d6
3181732322e6ccacf98998344e6a3e1efeb3e2f719
3181832323e6cea313b0c2b1230908d8c34163795a
3181932324e6cef5b2d261dc3f678dc1d07131c886
32325+e6d230aa576c6c0cd3e666b1f7c7cc9a
3182032326e6d34689d17d5455e573f7325b929f22
3182132327e6d39122bea94a1cfff9267b67d5d3bc
3182232328e6d3a9ad43736a33d803097a9ba5b2a0
@@ -31878,6 +32384,7 @@ e7393c8abae8b8676deebace8c6c711f
3187832384e73d6ba8a713a5b70ff3a3b9ee8b12e3
3187932385e73ee95fde32570e79272555a7fdd951
3188032386e73fc1b64daa6e23fa94be10701a991b
32387+e7409f7463a1099a7e496bff1f43ecf2
3188132388e74287b051d0f26d9349526dead792b9
3188232389e7463608be58c6cfe723d246a38554cb
3188332390e74678f410bfcc4e5c599180552a11d3
@@ -32091,6 +32598,7 @@ e8d0f6f6fd7193aa4f6827982cbcf5ed
3209132598e8d4a8e65262252b419a77435d4d8caa
3209232599e8d4d44df4b56b531f6a8fd40b83e403
3209332600e8d6deab04273e99d2c405f4fa8baad0
32601+e8d79044a2e1b55fd31724f833411f5e
3209432602e8d7fc269594d4fbd790965c7ce19e76
3209532603e8da4683d117bc4fec68a4c9ba414216
3209632604e8daa35fcf155fdf64e48aafe7da30c8
@@ -32220,6 +32728,7 @@ e9e04f85b35ffeb16e62dcedd5599527
3222032728e9e10e33c505ed03b4c679cdab2cdf4b
3222132729e9e17232ad119002f31b79fc7b5c4509
3222232730e9e48c0bf3a466dcf9bebe3197b7b86d
32731+e9e77f48f0b7e73bb707d198e8427d16
3222332732e9f297fe8ff52304cada446d36869417
3222432733e9f60b81103fa0fcc9d1e467be9d5eb7
3222532734e9fdf914c5d33786b7be914b23832edb
@@ -32254,6 +32763,7 @@ ea3cf3653c7d392f73a043740fb56973
3225432763ea3d0ef5b1c0027eb654cbe666f40094
3225532764ea3e9ea040587ff9b72dd905d7f8f25b
3225632765ea3f8e4fcbe51bd315af71e90146031d
32766+ea4012ddafb54d4e22fbd73683be996c
3225732767ea462d890fc3ba657601811149da03a0
3225832768ea46932799c9d625aa7bfdeec60d2855
3225932769ea46d8209b3624b5bfe1fbc50f2edf5c
@@ -32291,6 +32801,7 @@ ea84756974e761ff34f3a1e1a3c3f50f
3229132801ea84e942c01ca0261280a1303549e5e0
3229232802ea8503e6f64a543136346788c9b6e6de
3229332803ea85f4311bfe7ec3d09f5419d6161e48
32804+ea876c5a9bf1583e8ce8f6422c847c7d
3229432805ea88166d4203952d2d2241c7c437c2fa
3229532806ea88d4c8f4a9075fc3dec4b8584d6596
3229632807ea89a393b666e752ccce285fc1da41dc
@@ -32339,6 +32850,7 @@ eac65d560bdc9f58ff2c98fbb9685a96
3233932850eace0eef94d323e137ab199a486a0e17
3234032851eacfc8393e2836278b9466b6bc836fd1
3234132852ead0676fb7bb9c95c595aa7a7a314d05
32853+ead13d43429b08d5bc3c3513801bf3eb
3234232854ead4bf399b7dbd1b4be4b9727cb3aa08
3234332855ead588f2dba3ef699573a125b4f98df6
3234432856eaddf1e6c89bf586f5c2972e75c45b49
@@ -32372,12 +32884,14 @@ eb0f103a9fb95fb00ce936cca6efe986
3237232884eb1101552493ecbd2cbcf9f5933e1e02
3237332885eb11f8a76524e9992208ef24835973bc
3237432886eb123dd91617d541cd9f40f4d649a764
32887+eb131ef0cb9fa18c59319d393658ccc5
3237532888eb1387576d4b9c915957f8cf48a93bdf
3237632889eb1527ca474e7564c11c8ffb8463b088
3237732890eb15a1e27856b94a24750951861854b4
3237832891eb16c9cdf13dc653edff10ccef9612e8
3237932892eb1a20e388fc675a24956247ff5c66b0
3238032893eb1b439a5cbafd002a3b60db7affe960
32894+eb2289dd0f4ceb4a0e6558eaa75914d6
3238132895eb251bc2bad285da6c979a1fa71453cf
3238232896eb26bd3c710ace0d2020630ac75eb3e6
3238332897eb26cda1bc27567f41f22f319a4e4dcc
@@ -32393,6 +32907,7 @@ eb44e7fe94be1a7de381cbeb011daafc
3239332907eb464dc781c64aca17103bc92ac6e9d3
3239432908eb46598de220a093b53df017f1c57bb7
3239532909eb4673632a02554744e12dfc73a150ab
32910+eb484ee869449eddeb5bf8c5889a65dc
3239632911eb496b45d980638b3451eef60a54e647
3239732912eb4fb69204db2037aa0e61df8f68b3cb
3239832913eb53bfb7a4cf1304042157c0a80be377
@@ -32535,6 +33050,7 @@ ec621d602552e74c25727a825db5b397
3253533050ec62c9ac2160965614c2c7704a68479f
3253633051ec654a1a257297af1debbfdab386ad2e
3253733052ec65ffd73c35fc5413abe22fdc21b5cb
33053+ec694610d83990add64324bb1b1cce01
3253833054ec69fff7941a3b2a1461c6c3becb5cb3
3253933055ec6bb1e857c6ef18bd6ad1b649150ee4
3254033056ec722ed19d527aa7b7779df63f320c1b
@@ -32567,6 +33083,7 @@ ec9e04670ff51d24e93d43130ee35f19
3256733083ec9e9085891b0a966cfc4bbbfefd8445
3256833084ec9ff1773b843f396c3d30b60b5a3baf
3256933085eca0d7559559adda1d7daceae0df7ea8
33086+eca1287c5355e0d6a075edc03d230998
3257033087eca206d8137baa207ecbdf765c2e1e3d
3257133088eca411016124b384ef9d139bbc50f1a4
3257233089eca4278a981f64ab0e3a28171cd6f1ee
@@ -32650,6 +33167,7 @@ ed33db04354228b8f21cd5a6a00c6f9e
3265033167ed346c869699cf46fc00d01c539c89ba
3265133168ed3546dd515c8e89398d75eee2d10593
3265233169ed35bf1cae60198deede544b43e4854f
33170+ed36650126797e2e9dde8614073ced95
3265333171ed36a65b8370e52e12c6ba1ec72119f7
3265433172ed36ce0453cf2a3fb7489490ddb36db0
3265533173ed37fe9a4688f43fc02109054f09ce5b
@@ -32970,6 +33488,7 @@ efa9b7b7138797daed640923a70a8636
3297033488efaa89d1b3f75db504312185e9f9415e
3297133489efaae2c612025818a729a57db42cd0ba
3297233490efaf168bdd4ba45c6dea432cf7790fc5
33491+efafb227e67adfa8d022d76a611d9148
3297333492efafe01cb7d9b16572a1586cc277442a
3297433493efb1d92870a835efd11dd37a60abce16
3297533494efb5ee0c0ec047e2e7014c024fdf3132
@@ -33000,6 +33519,8 @@ efd62322d7e21b6b50e6a4375b5b63d1
3300033519efd64ab2eedc8f8aaf1dea5e8d8e0387
3300133520efe08a006631effb2bedf98eabef18b8
3300233521efe15ee3c834a777877c34f892ee3e8e
33522+efe19d500d8ed1818304ce46304a1f93
33523+efe1a88b8b3327b8e27bdfb90070a752
3300333524efe445e822a5f32e583b467ce029a45f
3300433525efe59ab1ef7324f746b15f9b37498aa9
3300533526efe6f4365049ad75c20ba2c74373a466
@@ -33010,6 +33531,7 @@ efea977a877dc555f1e060a5d9fc5a56
3301033531eff3bcafda516eb9a9167e8dd8b68f29
3301133532eff68abb18ce770141c38d00db03344d
3301233533eff700afb91d464894cdf3ab76056447
33534+eff885030a722ba20a93710b2f9d0575
3301333535eff9f458c15bfb6a8e2e0bf8fbc4b898
3301433536effb7a05e07f99d19d1816b8567c9950
3301533537f0013e31f2a5547e7779cbe5cf05903f
@@ -33038,6 +33560,7 @@ f03b52a80e8f06d201732340ba8fa1ed
3303833560f03c8e0ace27427329abca59b1510ff3
3303933561f03cee29ddf3989466386ccee617e225
3304033562f03cf744a7d04ec465d54a3708c69977
33563+f03de9eb0074c8fca5433659749ec37d
3304133564f03e6cd84dbe3d6aeabf4df2c187a482
3304233565f03ecde1a8cee0de7e22e2f83db249df
3304333566f03fd36e9adfe59870c22986dbebd5ac
@@ -33132,6 +33655,7 @@ f104bb15657cb4a857eba1846e58d88e
3313233655f105205316654dbb1f9ddd7a41984dc0
3313333656f106ba86083f603f695a30644c7775f4
3313433657f10bea1a3623592c343a0f03df3fae30
33658+f10d5eeb6c7177610c6de601dc1cebd7
3313533659f10d6d267b76821a779cda8cd3f72ee7
3313633660f10e42df74605914db317d308d5ef1f3
3313733661f10f9d6238792d69ec6160c67ecd75d9
@@ -33165,7 +33689,9 @@ f135b7ea9d1fab5781c6a50e37259efe
3316533689f13802fe58323e16281f8212349df294
3316633690f13911b1e96eef8d0359e66e22cfd90c
3316733691f13dfd804bacc6cae399f567c32f59d6
33692+f13f87b03b2b1c5e9765d1be4be146aa
3316833693f1407fede683d782d17bf4f224120020
33694+f14137cf63cc3e6b202da6aa2590dad6
3316933695f1419ae89c26cc2202a863d8a2e696e5
3317033696f1450de7cc2a1f1f0dd763fdd0fd57c6
3317133697f145281f93d607c2a457dde9b869a270
@@ -33177,6 +33703,7 @@ f14ad576421ba9b1ffb3e75941484a91
3317733703f14b92a03c3b3aa87e4cc21651aac0a2
3317833704f14c2feb838a689cc3390191f970c158
3317933705f14c5e1988ca5125598d8617dd4613f6
33706+f14e104634264c656cd40b7df4f3b552
3318033707f15740be3f8881b15bdd4e17d94bfee0
3318133708f158588be31293e526a3c5553d8357ba
3318233709f15a03f9c8860eee81816e6656f71e02
@@ -33229,6 +33756,7 @@ f1b332fb596adda7d5b1abd055259640
3322933756f1b668333e70d0c25c8f5ad0740b4d84
3323033757f1b69054ec8bdb7aff4e525223a93ede
3323133758f1b87a1636410db3a7e894fa5f6d9b6e
33759+f1b985862e4fed1c495dd4b068270243
3323233760f1bd7cdd4dc275ae30438327b135a7d0
3323333761f1be4a15a7cda0eb1298d9b5bde8fa04
3323433762f1be68315e1679728bc7294b50d50440
@@ -33252,6 +33780,7 @@ f1d550e7b25df51154c7620a20f9044d
3325233780f1d793eb2a0be53ae096d0b1780f57f8
3325333781f1d819018d5502e2d08837edb50da392
3325433782f1d8e5becfbc39c821e71b8c58bf3ec2
33783+f1d96952a2b0837e56a1ca72412ca984
3325533784f1d96a425c2ed1ef42e7093221f25c79
3325633785f1d9813a045742dba81dd7ea92e5ef14
3325733786f1daf2469d620c400f8c6f8ab3e7667b
@@ -33270,6 +33799,7 @@ f1ef4714a4f7ed212f8b05f7d9a2fb53
3327033799f1f5c64ff4b4aa37b84c08e3d790f40a
3327133800f1f9bbf72c87a222d63da0503f37acb7
3327233801f1fc6d3fd4cdca6e420dbc41245a8980
33802+f2010079404faeb9230b02a28cf3bf48
3327333803f201457ea88831c9aad70993e287de4d
3327433804f201b5fa222fffb54acffc94d1bf6992
3327533805f201e1203ffa459965eedcb952871018
@@ -33343,10 +33873,12 @@ f27462f0a4f6ae27ff7e2db8adc55c8b
3334333873f27bc8008cc77583349797e34ff5ee18
3334433874f27bfe0e28c7934424b9465c5e00db91
3334533875f2808808f00e00b8c48d9093c789e881
33876+f281c16724d1234d48591da20c6e116a
3334633877f283c7d143a72288491f02f6669b4a48
3334733878f283f93c1dbe4f1ef3f37eaed2498bc3
3334833879f2863963cb5d1ac4388ba25c67aceaeb
3334933880f28ac0444b9811d7fc89cf0b5fa438d3
33881+f28c5910b72d17b52da4990e64db0632
3335033882f28d23646da6dbba7b2e4652b836b436
3335133883f28e11551b7e865779352b76d19adf55
3335233884f28efdb343696e6287651d097a34521c
@@ -33488,6 +34020,7 @@ f3874ac1a3236de7905764f2a3f63a9d
3348834020f388de13c14ad0d14573305ada342632
3348934021f38af6fe429b4db4f7b4c69c803c4d9d
3349034022f38efccd22c3adb4011970233bd2d0c7
34023+f38f1b14936555428f006164542808b2
3349134024f3901743dba3e9f5b514dd752c7ab524
3349234025f39075c48853c17a65316ba2ade23c0a
3349334026f391c7e780ac080b653aeccab717f067
@@ -33578,6 +34111,7 @@ f43b0a557dc3564b86aa904b4bd5cca6
3357834111f43eb02a7180e676402026f284abddb0
3357934112f4438df1250db346250c1fdd9100c7cd
3358034113f444f5bdbc3af39568c96a1c0e0e6f4f
34114+f446e3e89d03bef154fac7a62406deae
3358134115f449d81c61acf2fe6f5fe15d6da72805
3358234116f44c2c0a8443bb4d759e275d6e39a03c
3358334117f44dc0898a4a016f56070cdd45e77c89
@@ -33605,6 +34139,7 @@ f47b3da133075a559d8484fd417599e6
3360534139f47c9229b3c19e99bef78eff24a698f9
3360634140f47d463435efa4a438ecf091d87cdb84
3360734141f47db00ec563292f0ba196b047e954c4
34142+f480bb85757affca9b347784b7ebe4a7
3360834143f480fab9a90475b30e3bb8e427df689a
3360934144f481312137481cbb0cf2e31a5f2ea517
3361034145f4825c602e88942559f1a8bd7eeec8e6
@@ -33724,14 +34259,17 @@ f55e7d21caddbd10c20a949bb8e6f929
3372434259f560c8a07b34b53bdcdfd11fe40728f9
3372534260f5626f73bb6ab25c3fc11ba2f9fe6975
3372634261f5664daf1640f2eea306e0c2926c6df6
34262+f56670f0b8fc22db2a6d350b73c961de
3372734263f566775b7e5854372d71f0f971330004
3372834264f56cbf43c07bd89410cb02bca7cde757
3372934265f56cc61e87f8a314cc070fca2cb010fb
3373034266f57050db3d71775ff4a6c5ae1d02810e
3373134267f570ac81e2f7fd0e9a02499bac51803a
34268+f571251d7bfe841da26713cce1be109e
3373234269f573a2469356eae98c73045c1d1a92ab
3373334270f577217484a75a1f24d99331f9b568ec
3373434271f577b6fa3054d843c0349cd068174419
34272+f578a2f9307da820265b680e31925590
3373534273f579bd2266eaa885904a9d5fe5ad215a
3373634274f579d195c69fce03aaa7cdc5e7beed48
3373734275f57a32921d7145a5fe20022d0804ca0d
@@ -33825,6 +34363,7 @@ f6028bae7448bc888bbffaa55d6871f4
3382534363f60535577ff1f14f2eaafac806597411
3382634364f606dcdeafa5f27bc64db2c471ec089f
3382734365f608124ba52a311d57b33dbf32f95776
34366+f6099610dc1ce4200719ebcc1f919abc
3382834367f60a67b7a477046b4790f7bd4dc83e13
3382934368f60fea42cc1810a1185153a9fa8dfe2c
3383034369f61169e349aa479ce02c36d96647cd01
@@ -33959,6 +34498,7 @@ f70a126391b7410a946125d339ca9960
3395934498f70c3539f6204e5b0b7d002504fa52b5
3396034499f7126f8523c107f7ae1737eb065654a8
3396134500f71449b25597bd6c24208c8524187ddf
34501+f714bee2320f72be6d229dbd2eade571
3396234502f71502b9cc0d79072d684685a01304b5
3396334503f718993a945317209af7bc58ec8ce66b
3396434504f71a30c22504d1ace33bcc747edee685
@@ -33996,6 +34536,7 @@ f75a64fe3d7c826e9fe782dd6d77a8c0
3399634536f75b1a6ed10c64efc01e36a7913149f5
3399734537f75b43792288d3e2d4048e233685cc3d
3399834538f75b4c5182774430950b0949d2bd2841
34539+f75c1eee5bb895c469a7b1269aea6108
3399934540f75c7379023b73658e0346b451e0e833
3400034541f75caaf95b7828cdd4040b6cfcc0c8af
3400134542f761c54567315a5151bb47c95aca90c4
@@ -34042,6 +34583,7 @@ f79b1b4c9efa662c91ec7db6ebda8f97
3404234583f7a20485b63536aff4170b457cc43bfe
3404334584f7a4af8f06680d894cf434894184fdff
3404434585f7a6275abb2fe0d978f00c186228ec3c
34586+f7a8b684bf74353fbfcb4bbc04502213
3404534587f7ab7695746827e9c24d4f1aea7ef2ba
3404634588f7ad88e3c5bac4b70c974088bd122665
3404734589f7ae4afc1636933aad9c685c6c2ba178
@@ -34166,6 +34708,7 @@ f887ef0a7dda73b68859e853c9270de5
3416634708f88bc35242dadf4266c97034385db908
3416734709f88c6a654d5232a7eace1b19c143cb93
3416834710f88dda5c9f5fad47e0c0f3bb795b4d38
34711+f88ffae23ac185460fb81e7d3c39b1e9
3416934712f8919fa4676cd15f6b85d73d2b245958
3417034713f892634400f3ab771dc95ea36440e60a
3417134714f894ad8d3233058974673b3b9a4cf264
@@ -34234,8 +34777,10 @@ f91680a65a27724b2a3e541c4beb38cb
3423434777f916ae346ea7dbfaa0bcd0e3c357769f
3423534778f918824b7a19c28415cedb4dd0dc7d0c
3423634779f919748d89a3ace4c89a30f46e8f66cd
34780+f91caf4dd95745aec4c4db88f79fe8af
3423734781f91d4097c44ba6c933855464c3f2fffc
3423834782f91d79d2592ee0096d5f0c598d3e518c
34783+f9240681d891810ef10b99ea23100d2b
3423934784f924dca6955cf2eef3224eb186da8921
3424034785f925ec176a8cc6f95051d78c17dbc3e0
3424134786f928eb5de7baabdb19edd59d4aede584
@@ -34255,6 +34800,8 @@ f93d6dafcd5e3011941f0602228ce1c4
3425534800f940220dca66fce05af1d2315d588b6e
3425634801f9429199f5c547be10f0e3ab14fc70dd
3425734802f943ec365b0fbfe309ec9d344d59a480
34803+f9450e92bcebe5f9991bfd0e27b60aae
34804+f9453b3e0e93132dc959c22a43127183
3425834805f946683e3190902b4b03e1b708cf1f52
3425934806f9468bf1355078be9bcdd7d40b6272b3
3426034807f94881e3cc6aa183f79fec0ef95ec0b5
@@ -34283,6 +34830,7 @@ f97c2a82de0b5a362b0c11a40117cd53
3428334830f97df9707de7048563e3ec1f67152e5e
3428434831f980ef5b5ad6f60a1a8cb7b75c69e7c7
3428534832f983e38c46e27dc8d929df7e79746e93
34833+f984d5ab5aacf0d37c884489b4113940
3428634834f98777010985cbbdde90b537ae428341
3428734835f98ce57c07016f0874788382bc088c7d
3428834836f98d1f1c28a0a9727951a3ecaea39579
@@ -34333,6 +34881,7 @@ f9dc7709335aa2327f12c6f13ac57800
3433334881f9dd0b1a0520c482a94a8715e8adee78
3433434882f9de7244b5124a7f7cf3c068318147f2
3433534883f9dedad92c95e5d2ca98de25293e69d3
34884+f9def50e69fe063412f941b48cbc7256
3433634885f9e05a49b1c65b3b1f7daed40b42107c
3433734886f9e0da0085e9033ac59e8c462e2b7252
3433834887f9e2b3179ca9b381e2690ab260ff92bb
@@ -34464,6 +35013,7 @@ fad5d277bf6839419102c5ef60f85a93
3446435013fad67636e83a6043af77179e008b8712
3446535014fad67e54c7d83f57c2637d31577ae9fe
3446635015fad710fafe96cc650cccaa43c0c87b4d
35016+fad761538543f6cb5bbdd457b1e3c606
3446735017fad7ef725b8aed057408a25958c250a3
3446835018fad896395e8fc5a91ed882ee2e47fe72
3446935019fae0d439a8a45e7ae8ab5286c046020b
@@ -34509,6 +35059,7 @@ fb22ea4fa551ab36438f29ffb35cf939
3450935059fb2727538d22d63a7d6bc2b1b8b07a8c
3451035060fb2735b0b232e970c26c23fff320241a
3451135061fb291e829476e0e2d62e07a8bf28cca8
35062+fb29a9f0f6362e4170a93fc96c96ea6c
3451235063fb29dc7ea8d1c118b759f974d08e741a
3451335064fb2c3b2d7fcc1ccb9ebdaf70ece9c60e
3451435065fb2d42f89745cde9387f647959d148e8
@@ -34699,6 +35250,7 @@ fc8174ee6ccfeb7f8ba09969aef9b8d0
3469935250fc8262c8ce98a11d9a765a5e905fe3a0
3470035251fc835e402383f24b56708b4680d1284b
3470135252fc83fb0fa8953deb39a6cc1b39b3b8c6
35253+fc866437834e457a7597a76a5baa2df1
3470235254fc8ae1fff5a50e2ccc31dfd454791b50
3470335255fc8b97c3cb6b15cebc69a67c2f1d191f
3470435256fc8dd5d947e330bc8d31ba285ede5a51
@@ -34709,6 +35261,7 @@ fc97296809c1ea00d1cfa01ed2e25624
3470935261fc9af53c64a1d60eef0cbb3ce8830792
3471035262fc9c7f397c7db23a95eb28a6075c83f4
3471135263fca1348857c1ba55b85a2f970a4f008b
35264+fca1776e9cf97ab5d32aef9dc189b818
3471235265fca1a6f3fe5c39547951d00163a67a1e
3471335266fcaa9e9cd6c6b870d290ff95647cdd7d
3471435267fcafabb7d281f7332f0511afb765cb1d
@@ -34743,10 +35296,12 @@ fcd65c311c175ee59a8e05e13686bb42
3474335296fcdc5c5445ce000e8d63836f98f1bdb3
3474435297fcdcb327424ebf3e67c8b263776a2407
3474535298fcdd5911b681da6d764f3aef53cfea04
35299+fcdf492bd75a038407d235a0e4413839
3474635300fce007403bb941cb31d4aa53a5cd54b6
3474735301fce05034c443f97aea28b8101028b037
3474835302fce248a57134c6495046c0d12c47c1f9
3474935303fce2d214a8fe8ad5dd3d6fa99ca726bf
35304+fce4aa39b420029654cbcf0e8fd2ce33
3475035305fce4aa83430b1a1c1dd2bc8ef3825347
3475135306fce6d08af9e01cb22975a6a3f90009e1
3475235307fce7355e30529dc9085a476dd94f8ed1
@@ -35133,6 +35688,7 @@ ffbcd43aa88c27bbaf8e2fd6907faaed
3513335688ffbf4efac6f9d16dadbf3cf7a6d4612b
3513435689ffc1006148dd133b1953cd96a431adbd
3513535690ffc256d13f4df40bf09c0a0e7d68b315
35691+ffc613c073b6677d6717edd112f10a47
3513635692ffc775490528b517eff7d17e397510f3
3513735693ffc8e908fc26935d33c25bb4ebf070b3
3513835694ffc94869e1d121f3239c80a4b6692914
@@ -35167,6 +35723,7 @@ ffeb50773926188e20ddbfdb08212eaa
3516735723ffed5926e8ea23b3cb743d4075d61452
3516835724ffee9a7d8f0b158120861f460aff695c
3516935725fff0ab39c75cf5441fcece68da746c7c
35726+fff1bbba90ee509950dc3d634fd6efa3
3517035727fff2eed02d5934c5443f7b727bcdb8bd
3517135728fff33d3a8a4c6b80f5e80052eb7c897d
3517235729fffb3b61e603ae263fd0b9f3b085fd63
searx/data/useragents.json+4−3
@@ -1,8 +1,9 @@
11{
22 "versions": [
3− "93.0",
4− "92.0.1",
5− "92.0"
3+ "94.0.2",
4+ "94.0.1",
5+ "94.0",
6+ "93.0"
67 ],
78 "os": [
89 "Windows NT 10.0; WOW64",
searx/engines/__init__.py+1−1
@@ -275,7 +275,7 @@ def get_engines_stats(preferences):
275275
276276
277277def load_engines(engine_list):
278− global engines, engine_shortcuts
278+ global engines, engine_shortcuts # pylint: disable=global-variable-not-assigned
279279 engines.clear()
280280 engine_shortcuts.clear()
281281 for engine_data in engine_list:
searx/engines/command.py+1−1
@@ -35,7 +35,7 @@ def init(engine_settings):
3535 if 'command' not in engine_settings:
3636 raise ValueError('engine command : missing configuration key: command')
3737
38− global command, working_dir, result_template, delimiter, parse_regex, timeout, environment_variables
38+ global command, working_dir, delimiter, parse_regex, environment_variables
3939
4040 command = engine_settings['command']
4141
searx/engines/gigablast.py+24−13
@@ -5,10 +5,10 @@
55# pylint: disable=missing-function-docstring, invalid-name
66
77import re
8−from json import loads
8+from json import loads, JSONDecodeError
99from urllib.parse import urlencode
10−# from searx import logger
1110from searx.network import get
11+from searx.exceptions import SearxEngineResponseException
1212
1313# about
1414about = {
@@ -22,6 +22,9 @@ about = {
2222
2323# engine dependent config
2424categories = ['general']
25+collections = 'main'
26+search_type = ''
27+fast = 0
2528# gigablast's pagination is totally damaged, don't use it
2629paging = False
2730safesearch = True
@@ -34,6 +37,8 @@ base_url = 'https://gigablast.com'
3437extra_param = ''
3538extra_param_path='/search?c=main&qlangcountry=en-us&q=south&s=10'
3639
40+_wait_for_results_msg = 'Loading results takes too long. Please enable fast option in gigablast engine.'
41+
3742def parse_extra_param(text):
3843
3944 # example:
@@ -54,7 +59,6 @@ def parse_extra_param(text):
5459 if re_var is not None and re_var.search(line):
5560 extra_param += re_var.search(line).group(1)
5661 break
57− # logger.debug('gigablast extra_param="%s"', extra_param)
5862
5963def init(engine_settings=None): # pylint: disable=unused-argument
6064 parse_extra_param(get(base_url + extra_param_path).text)
@@ -65,14 +69,17 @@ def request(query, params): # pylint: disable=unused-argument
6569
6670 # see API http://www.gigablast.com/api.html#/search
6771 # Take into account, that the API has some quirks ..
68−
69− query_args = dict(
70− c = 'main'
71− , format = 'json'
72− , q = query
73− , dr = 1
74− , showgoodimages = 0
75− )
72+ query_args = {
73+ 'c': collections,
74+ 'format': 'json',
75+ 'q': query,
76+ 'dr': 1 ,
77+ 'showgoodimages': 0,
78+ 'fast': fast,
79+ }
80+
81+ if search_type != '':
82+ query_args['searchtype'] = search_type
7683
7784 if params['language'] and params['language'] != 'all':
7885 query_args['qlangcountry'] = params['language']
@@ -90,9 +97,13 @@ def request(query, params): # pylint: disable=unused-argument
9097def response(resp):
9198 results = []
9299
93− response_json = loads(resp.text)
100+ try:
101+ response_json = loads(resp.text)
102+ except JSONDecodeError as e:
103+ if 'Waiting for results' in resp.text:
104+ raise SearxEngineResponseException(message=_wait_for_results_msg) # pylint: disable=raise-missing-from
105+ raise e
94106
95− # logger.debug('gigablast returns %s results', len(response_json['results']))
96107
97108 for result in response_json['results']:
98109 # see "Example JSON Output (&format=json)"
searx/engines/google.py+20−11
@@ -8,7 +8,7 @@ Definitions`_.
88 https://developers.google.com/custom-search/docs/xml_results#WebSearch_Query_Parameter_Definitions
99"""
1010
11−# pylint: disable=invalid-name, missing-function-docstring
11+# pylint: disable=invalid-name, missing-function-docstring, too-many-branches
1212
1313from urllib.parse import urlencode
1414from lxml import html
@@ -108,8 +108,9 @@ filter_mapping = {
108108# specific xpath variables
109109# ------------------------
110110
111−# google results are grouped into <div class="g" ../>
112−results_xpath = '//div[@class="g"]'
111+# google results are grouped into <div class="g ..." ../>
112+results_xpath = '//div[@id="search"]//div[contains(@class, "g ")]'
113+results_xpath_mobile_ui = '//div[contains(@class, "g ")]'
113114
114115# google *sections* are no usual *results*, we ignore them
115116g_section_with_header = './g-section-with-header'
@@ -121,8 +122,8 @@ title_xpath = './/h3[1]'
121122# href=...>
122123href_xpath = './/div[@class="yuRUbf"]//a/@href'
123124
124−# in the result group there is <div class="IsZvec" ../> containing he *content*
125−content_xpath = './/div[@class="IsZvec"]'
125+# in the result group there is <div class="VwiC3b ..." ../> containing the *content*
126+content_xpath = './/div[contains(@class, "VwiC3b")]'
126127
127128# Suggestions are links placed in a *card-section*, we extract only the text
128129# from the links not the links itself.
@@ -274,7 +275,12 @@ def response(resp):
274275 logger.error(e, exc_info=True)
275276
276277 # parse results
277− for result in eval_xpath_list(dom, results_xpath):
278+
279+ _results_xpath = results_xpath
280+ if use_mobile_ui:
281+ _results_xpath = results_xpath_mobile_ui
282+
283+ for result in eval_xpath_list(dom, _results_xpath):
278284
279285 # google *sections*
280286 if extract_text(eval_xpath(result, g_section_with_header)):
@@ -285,24 +291,27 @@ def response(resp):
285291 title_tag = eval_xpath_getindex(result, title_xpath, 0, default=None)
286292 if title_tag is None:
287293 # this not one of the common google results *section*
288− logger.debug('ingoring <div class="g" ../> section: missing title')
294+ logger.debug('ingoring item from the result_xpath list: missing title')
289295 continue
290296 title = extract_text(title_tag)
291297 url = eval_xpath_getindex(result, href_xpath, 0, None)
292298 if url is None:
293299 continue
294300 content = extract_text(eval_xpath_getindex(result, content_xpath, 0, default=None), allow_none=True)
301+ if content is None:
302+ logger.debug('ingoring item from the result_xpath list: missing content of title "%s"', title)
303+ continue
304+
305+ logger.debug('add link to results: %s', title)
306+
295307 results.append({
296308 'url': url,
297309 'title': title,
298310 'content': content
299311 })
312+
300313 except Exception as e: # pylint: disable=broad-except
301314 logger.error(e, exc_info=True)
302− # from lxml import etree
303− # logger.debug(etree.tostring(result, pretty_print=True))
304− # import pdb
305− # pdb.set_trace()
306315 continue
307316
308317 # parse suggestion
searx/engines/mysql_server.py+2
@@ -13,6 +13,7 @@ import mysql.connector
1313engine_type = 'offline'
1414auth_plugin = 'caching_sha2_password'
1515host = "127.0.0.1"
16+port = 3306
1617database = ""
1718username = ""
1819password = ""
@@ -36,6 +37,7 @@ def init(engine_settings):
3637 user=username,
3738 password=password,
3839 host=host,
40+ port=port,
3941 auth_plugin=auth_plugin,
4042 )
4143
searx/engines/prowlarr.pynew file+80
@@ -0,0 +1,80 @@
1+# SPDX-License-Identifier: AGPL-3.0-or-later
2+"""
3+
4+ Prowlarr search (Files)
5+
6+"""
7+
8+from json import loads
9+from urllib.parse import urlencode
10+from searx.exceptions import SearxEngineAPIException
11+
12+categories = ''
13+
14+paging = False
15+api_key = ''
16+indexer_ids = ''
17+search_type = 'search'
18+search_categories = ''
19+base_url = ''
20+
21+
22+def request(query, params):
23+ if not base_url:
24+ raise SearxEngineAPIException('missing prowlarr base url')
25+
26+ if not api_key:
27+ raise SearxEngineAPIException('missing prowlarr API key')
28+
29+ query_args = {
30+ 'query': query,
31+ 'apikey': api_key,
32+ 'type': search_type
33+ }
34+
35+ if indexer_ids:
36+ query_args['indexerIds'] = indexer_ids
37+
38+ if search_categories:
39+ query_args['categories'] = search_categories
40+
41+ params['url'] = base_url + urlencode(query_args)
42+
43+ return params
44+
45+
46+def response(resp):
47+ results = []
48+
49+ json_data = loads(resp.text)
50+
51+ for result in json_data:
52+
53+ new_result = {
54+ 'title': result['title'],
55+ 'url': result['infoUrl'],
56+ 'template': 'torrent.html'
57+ }
58+
59+ if 'files' in result:
60+ new_result['files'] = result['files']
61+
62+ if 'size' in result:
63+ new_result['filesize'] = result['size']
64+
65+ if 'seeders' in result:
66+ new_result['seed'] = result['seeders']
67+
68+ if 'leechers' in result:
69+ new_result['leech'] = result['leechers']
70+
71+ if 'downloadUrl' in result:
72+ new_result['torrentfile'] = result['downloadUrl']
73+
74+ # magnet link *may* be in guid, but it may be also idential to infoUrl
75+ if 'guid' in result and isinstance(result['guid'], str) and result['guid'].startswith('magnet'):
76+ new_result['magnetlink'] = result['guid']
77+
78+ results.append(new_result)
79+
80+ return results
searx/engines/startpage.py+100−20
@@ -1,16 +1,30 @@
11# SPDX-License-Identifier: AGPL-3.0-or-later
2−"""
3− Startpage (Web)
2+# lint: pylint
3+"""Startpage (Web)
4+
45"""
56
6−from lxml import html
7−from dateutil import parser
8−from datetime import datetime, timedelta
97import re
8+from time import time
9+
10+from urllib.parse import urlencode
1011from unicodedata import normalize, combining
12+from datetime import datetime, timedelta
13+
14+from dateutil import parser
15+from lxml import html
1116from babel import Locale
1217from babel.localedata import locale_identifiers
18+
19+from searx import logger
20+from searx.network import get
1321from searx.utils import extract_text, eval_xpath, match_language
22+from searx.exceptions import (
23+ SearxEngineResponseException,
24+ SearxEngineCaptchaException,
25+)
26+
27+logger = logger.getChild('startpage')
1428
1529# about
1630about = {
@@ -33,7 +47,7 @@ supported_languages_url = 'https://www.startpage.com/do/settings'
3347
3448# search-url
3549base_url = 'https://startpage.com/'
36−search_url = base_url + 'do/search'
50+search_url = base_url + 'sp/search?'
3751
3852# specific xpath variables
3953# ads xpath //div[@id="results"]/div[@id="sponsored"]//div[@class="result"]
@@ -42,18 +56,74 @@ results_xpath = '//div[@class="w-gl__result__main"]'
4256link_xpath = './/a[@class="w-gl__result-title result-link"]'
4357content_xpath = './/p[@class="w-gl__description"]'
4458
59+# timestamp of the last fetch of 'sc' code
60+sc_code_ts = 0
61+sc_code = ''
62+
63+
64+def raise_captcha(resp):
65+
66+ if str(resp.url).startswith('https://www.startpage.com/sp/captcha'):
67+ # suspend CAPTCHA for 7 days
68+ raise SearxEngineCaptchaException(suspended_time=7 * 24 * 3600)
69+
70+
71+def get_sc_code(headers):
72+ """Get an actual `sc` argument from startpage's home page.
73+
74+ Startpage puts a `sc` argument on every link. Without this argument
75+ startpage considers the request is from a bot. We do not know what is
76+ encoded in the value of the `sc` argument, but it seems to be a kind of a
77+ *time-stamp*. This *time-stamp* is valid for a few hours.
78+
79+ This function scrap a new *time-stamp* from startpage's home page every hour
80+ (3000 sec).
81+
82+ """
83+
84+ global sc_code_ts, sc_code # pylint: disable=global-statement
85+
86+ if time() > (sc_code_ts + 3000):
87+ logger.debug("query new sc time-stamp ...")
88+
89+ resp = get(base_url, headers=headers)
90+ raise_captcha(resp)
91+ dom = html.fromstring(resp.text)
92+
93+ try:
94+ # href --> '/?sc=adrKJMgF8xwp20'
95+ href = eval_xpath(dom, '//a[@class="footer-home__logo"]')[0].get('href')
96+ except IndexError as exc:
97+ # suspend startpage API --> https://github.com/searxng/searxng/pull/695
98+ raise SearxEngineResponseException(
99+ suspended_time=7 * 24 * 3600, message="PR-695: query new sc time-stamp failed!"
100+ ) from exc
101+
102+ sc_code = href[5:]
103+ sc_code_ts = time()
104+ logger.debug("new value is: %s", sc_code)
105+
106+ return sc_code
107+
45108
46109# do search-request
47110def request(query, params):
48111
49− params['url'] = search_url
50− params['method'] = 'POST'
51− params['data'] = {
112+ # pylint: disable=line-too-long
113+ # The format string from Startpage's FFox add-on [1]::
114+ #
115+ # https://www.startpage.com/do/dsearch?query={searchTerms}&cat=web&pl=ext-ff&language=__MSG_extensionUrlLanguage__&extVersion=1.3.0
116+ #
117+ # [1] https://addons.mozilla.org/en-US/firefox/addon/startpage-private-search/
118+
119+ args = {
52120 'query': query,
53121 'page': params['pageno'],
54122 'cat': 'web',
55− 'cmd': 'process_search',
56− 'engine0': 'v1all',
123+ # 'pl': 'ext-ff',
124+ # 'extVersion': '1.3.0',
125+ # 'abp': "-1",
126+ 'sc': get_sc_code(params['headers']),
57127 }
58128
59129 # set language if specified
@@ -61,9 +131,10 @@ def request(query, params):
61131 lang_code = match_language(params['language'], supported_languages, fallback=None)
62132 if lang_code:
63133 language_name = supported_languages[lang_code]['alias']
64− params['data']['language'] = language_name
65− params['data']['lui'] = language_name
134+ args['language'] = language_name
135+ args['lui'] = language_name
66136
137+ params['url'] = search_url + urlencode(args)
67138 return params
68139
69140
@@ -139,10 +210,11 @@ def response(resp):
139210
140211# get supported languages from their site
141212def _fetch_supported_languages(resp):
142− # startpage's language selector is a mess
143− # each option has a displayed name and a value, either of which may represent the language name
144− # in the native script, the language name in English, an English transliteration of the native name,
145− # the English name of the writing script used by the language, or occasionally something else entirely.
213+ # startpage's language selector is a mess each option has a displayed name
214+ # and a value, either of which may represent the language name in the native
215+ # script, the language name in English, an English transliteration of the
216+ # native name, the English name of the writing script used by the language,
217+ # or occasionally something else entirely.
146218
147219 # this cases are so special they need to be hardcoded, a couple of them are mispellings
148220 language_names = {
@@ -156,7 +228,15 @@ def _fetch_supported_languages(resp):
156228 }
157229
158230 # get the English name of every language known by babel
159− language_names.update({name.lower(): lang_code for lang_code, name in Locale('en')._data['languages'].items()})
231+ language_names.update(
232+ {
233+ # fmt: off
234+ name.lower(): lang_code
235+ # pylint: disable=protected-access
236+ for lang_code, name in Locale('en')._data['languages'].items()
237+ # fmt: on
238+ }
239+ )
160240
161241 # get the native name of every language known by babel
162242 for lang_code in filter(lambda lang_code: lang_code.find('_') == -1, locale_identifiers()):
@@ -181,8 +261,8 @@ def _fetch_supported_languages(resp):
181261 if isinstance(lang_code, str):
182262 supported_languages[lang_code] = {'alias': sp_option_value}
183263 elif isinstance(lang_code, list):
184− for lc in lang_code:
185− supported_languages[lc] = {'alias': sp_option_value}
264+ for _lc in lang_code:
265+ supported_languages[_lc] = {'alias': sp_option_value}
186266 else:
187267 print('Unknown language option in Startpage: {} ({})'.format(sp_option_value, sp_option_text))
188268
searx/engines/tineye.pynew file+86
@@ -0,0 +1,86 @@
1+"""
2+Tineye - Reverse search images
3+"""
4+
5+from json import loads
6+from urllib.parse import urlencode
7+
8+from datetime import datetime
9+
10+about = {
11+ "website": "https://tineye.com",
12+ "wikidata_id": "Q2382535",
13+ "use_official_api": False,
14+ "require_api_key": False,
15+ "results": "JSON",
16+}
17+
18+
19+categories = ['images']
20+paging = True
21+
22+safesearch = False
23+
24+
25+base_url = 'https://tineye.com'
26+search_string = '/result_json/?page={page}&{query}'
27+
28+
29+def request(query, params):
30+ params['url'] = base_url +\
31+ search_string.format(
32+ query=urlencode({'url': query}),
33+ page=params['pageno'])
34+
35+ params['headers'].update({
36+ 'Connection': 'keep-alive',
37+ 'Accept-Encoding': 'gzip, defalte, br',
38+ 'Host': 'tineye.com',
39+ 'DNT': '1',
40+ 'TE': 'trailers',
41+ })
42+
43+ return params
44+
45+
46+def response(resp):
47+ results = []
48+ # Define wanted results
49+ json_data = loads(resp.text)
50+ number_of_results = json_data['num_matches']
51+
52+ for i in json_data['matches']:
53+ for i in json_data['matches']:
54+ image_format = i['format']
55+ width = i['width']
56+ height = i['height']
57+ thumbnail_src = i['image_url']
58+ backlink = i['domains'][0]['backlinks'][0]
59+
60+ url = backlink['backlink']
61+ source = backlink['url']
62+ title = backlink['image_name']
63+ img_src = backlink['url']
64+
65+ # Get and convert published date
66+ api_date = backlink['crawl_date'][:-3]
67+ publishedDate = datetime.fromisoformat(api_date)
68+
69+ # Append results
70+ results.append({
71+ 'template': 'images.html',
72+ 'url': url,
73+ 'thumbnail_src': thumbnail_src,
74+ 'source': source,
75+ 'title': title,
76+ 'img_src': img_src,
77+ 'format': image_format,
78+ 'widht': width,
79+ 'height': height,
80+ 'publishedDate': publishedDate,
81+ })
82+
83+ # Append number of results
84+ results.append({'number_of_results': number_of_results})
85+
86+ return results
searx/engines/xpath_flex.pynew file+121
@@ -0,0 +1,121 @@
1+# SPDX-License-Identifier: AGPL-3.0-or-later
2+
3+"""
4+ xPath Flex Engine (xpath_flex)
5+
6+ Aims to be a more flexible engine that covers xpath use cases for all categories
7+ (as it allows to override the result template).
8+ The engine configuration expects you to specify a 'field_definition' dictionary with the following properties:
9+ * field_name: the template field that should be set by this entry.
10+ * xpath: a xpath expression to apply
11+ * (optional) single_element: if True, will execute the xpath expression to expect a single node, not a list
12+ * (optional) extract: a string specifying an extraction/conversion of the value, the following is supported:
13+ "url": extracts an url using base search url
14+ "boolean": will convert the value passed to the template to True if the xpath matches any node
15+ "boolean_negate": will convert the value passed to the template to True if the xpath does NOT match a node
16+ by default, text will be extracted from the found node(s)
17+
18+ an example would look like this (for an example shopping site with paging):
19+
20+ - name : xpath-flex-example
21+ engine : xpath_flex
22+ paging : True
23+ search_url : https://myl-shopping.site/search?q={query}&p={pageno}
24+ template : products.html
25+ results_xpath : //div[@class="listing--container"]/div[@class="listing"]/div[contains(@class,"product--box")]
26+ field_definition:
27+ - field_name: url
28+ xpath: (.//a[contains(@class,"product--image")])/@href
29+ extract: url
30+ - field_name: title
31+ xpath: (.//a[contains(@class,"product--image")])/@title
32+ - field_name: content
33+ xpath: .//div[@class="product--description"]/text()
34+ - field_name: price
35+ xpath: .//div[@class="product--price"]/span/text()
36+ - field_name: thumbnail
37+ xpath: substring-before( (.//span[@class="image--media"]/img)/@srcset, ", ")
38+ extract: url
39+ single_element: True
40+ - field_name: has_stock
41+ xpath: .//a[contains(@class,"buynow")][not(contains(@class,"is--disabled"))]
42+ extract: boolean
43+ single_element: True
44+
45+"""
46+
47+from lxml import html
48+from urllib.parse import urlencode
49+from searx import logger
50+from searx.utils import extract_text, extract_url, eval_xpath, eval_xpath_list
51+
52+logger = logger.getChild('xpath_general engine')
53+
54+search_url = None
55+paging = False
56+results_xpath = ''
57+soft_max_redirects = 0
58+template = 'default.html'
59+unresolvable_value = '' # will be set if expression cannot be resolved
60+default_field_settings = {'single_element': False}
61+
62+field_definition = {}
63+
64+# parameters for engines with paging support
65+#
66+# number of results on each page
67+# (only needed if the site requires not a page number, but an offset)
68+page_size = 1
69+# number of the first page (usually 0 or 1)
70+first_page_num = 1
71+
72+
73+def request(query, params):
74+ query = urlencode({'q': query})[2:]
75+
76+ fp = {'query': query}
77+ if paging and search_url.find('{pageno}') >= 0:
78+ fp['pageno'] = (params['pageno'] - 1) * page_size + first_page_num
79+
80+ params['url'] = search_url.format(**fp)
81+ params['query'] = query
82+ params['soft_max_redirects'] = soft_max_redirects
83+
84+ return params
85+
86+
87+def response(resp):
88+ results = []
89+ dom = html.fromstring(resp.text)
90+
91+ for result in eval_xpath_list(dom, results_xpath):
92+
93+ single_result = {
94+ 'template': template
95+ }
96+
97+ for single_field in field_definition:
98+ single_field = {**default_field_settings, **single_field}
99+ try:
100+ if single_field['single_element']:
101+ node = eval_xpath(result, single_field['xpath'])
102+ else:
103+ node = eval_xpath_list(result, single_field['xpath'])
104+
105+ if 'extract' in single_field and single_field['extract'] == 'url':
106+ value = extract_url(node, search_url)
107+ elif 'extract' in single_field and single_field['extract'] == 'boolean':
108+ value = (isinstance(node, list) and len(node) > 0)
109+ elif 'extract' in single_field and single_field['extract'] == 'boolean_negate':
110+ value = (isinstance(node, list) and len(node) < 1)
111+ else:
112+ value = extract_text(node)
113+
114+ single_result[single_field['field_name']] = value
115+ except Exception as e:
116+ logger.warning('error in resolving field %s:\n%s', single_field['field_name'], e)
117+ single_result[single_field['field_name']] = unresolvable_value
118+
119+ results.append(single_result)
120+
121+ return results
searx/engines/yggtorrent.py+2−2
@@ -37,9 +37,9 @@ cookies = dict()
3737
3838
3939def init(engine_settings=None):
40− global cookies
40+ global cookies # pylint: disable=global-variable-not-assigned
4141 # initial cookies
42− resp = http_get(url, allow_redirects=False)
42+ resp = http_get(url, follow_redirects=False)
4343 if resp.ok:
4444 for r in resp.history:
4545 cookies.update(r.cookies)
searx/network/__init__.py+26−27
@@ -4,6 +4,8 @@ import asyncio
44import threading
55import concurrent.futures
66from time import time
7+from queue import SimpleQueue
8+from types import MethodType
79
810import httpx
911import h2.exceptions
@@ -12,29 +14,6 @@ from .network import get_network, initialize, check_network_configuration
1214from .client import get_loop
1315from .raise_for_httperror import raise_for_httperror
1416
15−# queue.SimpleQueue: Support Python 3.6
16−try:
17− from queue import SimpleQueue
18−except ImportError:
19− from queue import Empty
20− from collections import deque
21−
22− class SimpleQueue:
23− """Minimal backport of queue.SimpleQueue"""
24−
25− def __init__(self):
26− self._queue = deque()
27− self._count = threading.Semaphore(0)
28−
29− def put(self, item):
30− self._queue.append(item)
31− self._count.release()
32−
33− def get(self):
34− if not self._count.acquire(True):
35− raise Empty
36− return self._queue.popleft()
37−
3817
3918THREADLOCAL = threading.local()
4019
@@ -122,17 +101,17 @@ def request(method, url, **kwargs):
122101
123102
124103def get(url, **kwargs):
125− kwargs.setdefault('allow_redirects', True)
104+ kwargs.setdefault('follow_redirects', True)
126105 return request('get', url, **kwargs)
127106
128107
129108def options(url, **kwargs):
130− kwargs.setdefault('allow_redirects', True)
109+ kwargs.setdefault('follow_redirects', True)
131110 return request('options', url, **kwargs)
132111
133112
134113def head(url, **kwargs):
135− kwargs.setdefault('allow_redirects', False)
114+ kwargs.setdefault('follow_redirects', False)
136115 return request('head', url, **kwargs)
137116
138117
@@ -156,15 +135,27 @@ async def stream_chunk_to_queue(network, q, method, url, **kwargs):
156135 try:
157136 async with await network.stream(method, url, **kwargs) as response:
158137 q.put(response)
138+ # aiter_raw: access the raw bytes on the response without applying any HTTP content decoding
139+ # https://www.python-httpx.org/quickstart/#streaming-responses
159140 async for chunk in response.aiter_bytes(65536):
160141 if len(chunk) > 0:
161142 q.put(chunk)
143+ except httpx.ResponseClosed as e:
144+ # the response was closed
145+ pass
162146 except (httpx.HTTPError, OSError, h2.exceptions.ProtocolError) as e:
163147 q.put(e)
164148 finally:
165149 q.put(None)
166150
167151
152+def _close_response_method(self):
153+ asyncio.run_coroutine_threadsafe(
154+ self.aclose(),
155+ get_loop()
156+ )
157+
158+
168159def stream(method, url, **kwargs):
169160 """Replace httpx.stream.
170161
@@ -180,10 +171,18 @@ def stream(method, url, **kwargs):
180171 q = SimpleQueue()
181172 future = asyncio.run_coroutine_threadsafe(stream_chunk_to_queue(get_network(), q, method, url, **kwargs),
182173 get_loop())
174+ # yield response
175+ response = q.get()
176+ if isinstance(response, Exception):
177+ raise response
178+ response.close = MethodType(_close_response_method, response)
179+ yield response
180+
181+ # yield chunks
183182 chunk_or_exception = q.get()
184183 while chunk_or_exception is not None:
185184 if isinstance(chunk_or_exception, Exception):
186185 raise chunk_or_exception
187186 yield chunk_or_exception
188187 chunk_or_exception = q.get()
189− return future.result()
188+ future.result()
searx/network/client.py+14−23
@@ -3,6 +3,7 @@
33import asyncio
44import logging
55import threading
6+import uvloop
67
78import httpcore
89import httpx
@@ -17,30 +18,20 @@ import python_socks._errors
1718
1819from searx import logger
1920
20−# Optional uvloop (support Python 3.6)
21−try:
22− import uvloop
23−except ImportError:
24− pass
25−else:
26− uvloop.install()
27−
2821
2922logger = logger.getChild('searx.http.client')
3023LOOP = None
3124SSLCONTEXTS = {}
3225TRANSPORT_KWARGS = {
33− 'backend': 'asyncio',
3426 'trust_env': False,
3527}
3628
3729
38−async def close_connections_for_url(connection_pool: httpcore.AsyncConnectionPool, url: httpcore._utils.URL):
39− origin = httpcore._utils.url_to_origin(url)
40− logger.debug('Drop connections for %r', origin)
41− connections_to_close = connection_pool._connections_for_origin(origin)
30+async def close_connections_for_url(connection_pool: httpcore.AsyncConnectionPool, url: httpx._models.URL):
31+ logger.debug('Drop connections for %r', url.host)
32+ connections_to_close = [conn for conn in connection_pool._pool if conn._origin == url.host]
4233 for connection in connections_to_close:
43− await connection_pool._remove_from_pool(connection)
34+ connection_pool._pool.remove(connection)
4435 try:
4536 await connection.aclose()
4637 except httpx.NetworkError as e:
@@ -76,12 +67,12 @@ class AsyncProxyTransportFixed(AsyncProxyTransport):
7667 Note: AsyncProxyTransport inherit from AsyncConnectionPool
7768 """
7869
79− async def handle_async_request(self, method, url, headers=None, stream=None, extensions=None):
70+ async def handle_async_request(self, request: httpx.Request):
8071 retry = 2
8172 while retry > 0:
8273 retry -= 1
8374 try:
84− return await super().handle_async_request(method, url, headers, stream, extensions)
75+ return await super().handle_async_request(request)
8576 except (ProxyConnectionError, ProxyTimeoutError, ProxyError) as e:
8677 raise httpx.ProxyError(e)
8778 except OSError as e:
@@ -89,25 +80,25 @@ class AsyncProxyTransportFixed(AsyncProxyTransport):
8980 raise httpx.NetworkError(e)
9081 except httpx.RemoteProtocolError as e:
9182 # in case of httpx.RemoteProtocolError: Server disconnected
92− await close_connections_for_url(self, url)
83+ await close_connections_for_url(self, request.url)
9384 logger.warning('httpx.RemoteProtocolError: retry', exc_info=e)
9485 # retry
9586 except (httpx.NetworkError, httpx.ProtocolError) as e:
9687 # httpx.WriteError on HTTP/2 connection leaves a new opened stream
9788 # then each new request creates a new stream and raise the same WriteError
98− await close_connections_for_url(self, url)
89+ await close_connections_for_url(self, request.url)
9990 raise e
10091
10192
10293class AsyncHTTPTransportFixed(httpx.AsyncHTTPTransport):
10394 """Fix httpx.AsyncHTTPTransport"""
10495
105− async def handle_async_request(self, method, url, headers=None, stream=None, extensions=None):
96+ async def handle_async_request(self, request: httpx.Request):
10697 retry = 2
10798 while retry > 0:
10899 retry -= 1
109100 try:
110− return await super().handle_async_request(method, url, headers, stream, extensions)
101+ return await super().handle_async_request(request)
111102 except OSError as e:
112103 # socket.gaierror when DNS resolution fails
113104 raise httpx.ConnectError(e)
@@ -115,16 +106,16 @@ class AsyncHTTPTransportFixed(httpx.AsyncHTTPTransport):
115106 # httpx.CloseError: [Errno 104] Connection reset by peer
116107 # raised by _keepalive_sweep()
117108 # from https://github.com/encode/httpcore/blob/4b662b5c42378a61e54d673b4c949420102379f5/httpcore/_backends/asyncio.py#L198 # noqa
118− await close_connections_for_url(self._pool, url)
109+ await close_connections_for_url(self._pool, request.url)
119110 logger.warning('httpx.CloseError: retry', exc_info=e)
120111 # retry
121112 except httpx.RemoteProtocolError as e:
122113 # in case of httpx.RemoteProtocolError: Server disconnected
123− await close_connections_for_url(self._pool, url)
114+ await close_connections_for_url(self._pool, request.url)
124115 logger.warning('httpx.RemoteProtocolError: retry', exc_info=e)
125116 # retry
126117 except (httpx.ProtocolError, httpx.NetworkError) as e:
127− await close_connections_for_url(self._pool, url)
118+ await close_connections_for_url(self._pool, request.url)
128119 raise e
129120
130121
searx/network/network.py+8
@@ -326,6 +326,14 @@ def initialize(settings_engines=None, settings_outgoing=None):
326326 if isinstance(network, str):
327327 NETWORKS[engine_name] = NETWORKS[network]
328328
329+ # the /image_proxy endpoint has a dedicated network.
330+ # same parameters than the default network, but HTTP/2 is disabled.
331+ # It decreases the CPU load average, and the total time is more or less the same
332+ if 'image_proxy' not in NETWORKS:
333+ image_proxy_params = default_params.copy()
334+ image_proxy_params['enable_http2'] = False
335+ NETWORKS['image_proxy'] = new_network(image_proxy_params)
336+
329337
330338@atexit.register
331339def done():
searx/results.py+8−2
@@ -6,6 +6,7 @@ from urllib.parse import urlparse, unquote
66from searx import logger
77from searx.engines import engines
88from searx.metrology.error_recorder import record_error
9+from searx.utils import add_scheme_to_url
910from searx import settings
1011
1112
@@ -240,10 +241,15 @@ class ResultContainer:
240241 result['parsed_url'] = urlparse(result['url'])
241242
242243 # if the result has no scheme, use http as default
243− if not result['parsed_url'].scheme:
244− result['parsed_url'] = result['parsed_url']._replace(scheme="http")
244+ if not result['parsed_url'].scheme or result['parsed_url'].scheme == '':
245+ result['parsed_url'] = result['parsed_url']._replace(scheme='http')
245246 result['url'] = result['parsed_url'].geturl()
246247
248+ if 'thumbnail_src' in result:
249+ result['thumbnail_src'] = add_scheme_to_url(result['thumbnail_src'])
250+ if 'img_src' in result:
251+ result['img_src'] = add_scheme_to_url(result['img_src'])
252+
247253 result['engines'] = set([result['engine']])
248254
249255 # strip multiple spaces and cariage returns from content
searx/search/checker/impl.py+1−1
@@ -76,7 +76,7 @@ def _is_url_image(image_url):
7676 a = time()
7777 try:
7878 network.set_timeout_for_thread(10.0, time())
79− r = network.get(image_url, timeout=10.0, allow_redirects=True, headers={
79+ r = network.get(image_url, timeout=10.0, follow_redirects=True, headers={
8080 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0',
8181 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
8282 'Accept-Language': 'en-US;q=0.5,en;q=0.3',
searx/search/processors/online.py+4−3
@@ -69,9 +69,10 @@ class OnlineProcessor(EngineProcessor):
6969 if max_redirects:
7070 request_args['max_redirects'] = max_redirects
7171
72− # allow_redirects
73− if 'allow_redirects' in params:
74− request_args['allow_redirects'] = params['allow_redirects']
72+ # follow_redirects
73+ if 'follow_redirects' in params:
74+ # httpx has renamed this parameter to 'follow_redirects'
75+ request_args['follow_redirects'] = params['follow_redirects']
7576
7677 # soft_max_redirects
7778 soft_max_redirects = params.get('soft_max_redirects', max_redirects or 0)
searx/settings.yml+43−12
@@ -410,6 +410,13 @@ engines:
410410 timeout: 3.0
411411 disabled : True
412412
413+ - name : tineye
414+ engine : tineye
415+ shortcut : tin
416+ paging : True
417+ timeout : 9.0
418+ disabled : True
419+
413420 - name : etools
414421 engine : etools
415422 shortcut : eto
@@ -498,6 +505,13 @@ engines:
498505 engine : gigablast
499506 shortcut : gb
500507 timeout : 3.0
508+ # Collection names to search in, separated by whitespaces.
509+ # By default searx, queries the main collection.
510+ #collections: main
511+ # Search types, not required. possible values: images, news
512+ #search_type: images
513+ # Enable fast to get results quicker.
514+ #fast : 1
501515 disabled: True
502516 additional_tests:
503517 rosebud: *test_rosebud
@@ -683,22 +697,19 @@ engines:
683697
684698 - name : hoogle
685699 engine : xpath
686− paging : True
687700 search_url : https://hoogle.haskell.org/?hoogle={query}&start={pageno}
688701 results_xpath : '//div[@class="result"]'
689− title_xpath : './/div[@class="ans"]//a'
690− url_xpath : './/div[@class="ans"]//a/@href'
691− content_xpath : './/div[@class="from"]'
692− page_size : 20
702+ title_xpath : './div[@class="ans"]'
703+ url_xpath : './div[@class="ans"]//a/@href'
704+ content_xpath : './div[contains(@class, "doc")]'
693705 categories : it
694706 shortcut : ho
695707 about:
696− website: https://www.haskell.org/
708+ website: https://hoogle.haskell.org/
697709 wikidata_id: Q34010
698− official_api_documentation: https://hackage.haskell.org/api
699710 use_official_api: false
700711 require_api_key: false
701− results: JSON
712+ results: HTML
702713
703714 - name : imdb
704715 engine : imdb
@@ -908,6 +919,26 @@ engines:
908919 engine : openstreetmap
909920 shortcut : osm
910921
922+# - name : prowlarr
923+# engine : prowlarr
924+# shortcut : prow
925+# categories : files
926+# enable_http : True
927+# api_key : ''
928+# indexer_ids : 5 # comma separated list of indexer ids
929+# search_categories : '' # comma separated list of categories
930+# search_type : search
931+# base_url: http://localhost:9696/api/v1/search?
932+# timeout : 50.0
933+# disabled : True,
934+# about :
935+# website : https://wiki.servarr.com/prowlarr
936+# wikidata_id : None
937+# official_api_documentation : https://wiki.servarr.com/prowlarr/search
938+# use_official_api : true
939+# require_api_key : true
940+# results : JSON
941+
911942 - name : openrepos
912943 engine : xpath
913944 paging : True
@@ -1450,10 +1481,10 @@ engines:
14501481 engine : xpath
14511482 paging : True
14521483 search_url : https://petalsearch.com/search?query={query}&pn={pageno}
1453− results_xpath : //div[@class="container"]/div[@class="container"]
1454− title_xpath : .//a[@class="title"]
1455− url_xpath : .//a[@class="title"]/@href
1456− content_xpath : .//div[@class="webpage-text"]
1484+ title_xpath : //span[@class="title-name"]
1485+ url_xpath : //div[@class="card-source"]/text()
1486+ content_xpath : //span[@class="desc-cont"]
1487+ suggestion_xpath : //*[@class="rs-text"]/*[contains(class, rs-text)]
14571488 page_size : 12
14581489 categories : general
14591490 timeout : 4.0
searx/templates/oscar/result_templates/products.html+2−1
@@ -1,4 +1,4 @@
1−{% from 'oscar/macros.html' import draw_favicon, result_header, result_sub_header, result_footer_rtl, result_footer %}
1+{% from 'oscar/macros.html' import draw_favicon, icon, result_header, result_sub_header, result_footer_rtl, result_footer %}
22
33{{ result_header(result, favicons) }}
44{{ result_sub_header(result) }}
@@ -11,6 +11,7 @@
1111 {% if result.shipping %}<small>{{ result.shipping|safe }}</small></br>{% endif %}
1212 {% if result.source_country %}<small>{{ result.source_country|safe }}</small></br>{% endif %}
1313 {% if result.content %}{{ result.content|safe }}{% endif %}
14+ {% if result.has_stock is defined %}<br>{% if result.has_stock %}{{ icon('check', _('Has stock')) }}{% else %}{{ icon('alert', _('Out of stock')) }}{% endif %}{% endif %}
1415 </p>
1516 </div>
1617</div>
searx/utils.py+12−6
@@ -7,7 +7,7 @@ from numbers import Number
77from os.path import splitext, join
88from random import choice
99from html.parser import HTMLParser
10−from urllib.parse import urljoin, urlparse
10+from urllib.parse import urljoin, urlparse, urlunparse
1111
1212from lxml import html
1313from lxml.etree import ElementBase, XPath, XPathError, XPathSyntaxError, _ElementStringResult, _ElementUnicodeResult
@@ -214,6 +214,16 @@ def normalize_url(url, base_url):
214214 return url
215215
216216
217+def add_scheme_to_url(url, scheme="https"):
218+ """Add schema to URL: if scheme is missing from the URL, then add it."""
219+
220+ parsed = urlparse(url)
221+ if parsed.scheme == '':
222+ parsed_with_scheme = parsed._replace(scheme=scheme)
223+ return urlunparse(parsed_with_scheme)
224+ return url
225+
226+
217227def extract_url(xpath_results, base_url):
218228 """Extract and normalize URL from lxml Element
219229
@@ -262,11 +272,7 @@ def dict_subset(d, properties):
262272 >>> >> dict_subset({'A': 'a', 'B': 'b', 'C': 'c'}, ['A', 'D'])
263273 {'A': 'a'}
264274 """
265− result = {}
266− for k in properties:
267− if k in d:
268− result[k] = d[k]
269− return result
275+ return {k: d[k] for k in properties if k in d}
270276
271277
272278def get_torrent_size(filesize, filesize_multiplier):
searx/webapp.py+42−14
@@ -94,7 +94,7 @@ from searx.plugins import plugins
9494from searx.plugins.oa_doi_rewrite import get_doi_resolver
9595from searx.preferences import Preferences, ValidationException, LANGUAGE_CODES
9696from searx.answerers import answerers
97−from searx.network import stream as http_stream
97+from searx.network import stream as http_stream, set_context_network_name
9898from searx.answerers import ask
9999from searx.metrology.error_recorder import errors_per_engines
100100from searx.settings_loader import get_default_settings_path
@@ -921,6 +921,8 @@ def _is_selected_language_supported(engine, preferences):
921921
922922@app.route('/image_proxy', methods=['GET'])
923923def image_proxy():
924+ # pylint: disable=too-many-return-statements, too-many-branches
925+
924926 url = request.args.get('url')
925927
926928 if not url:
@@ -932,16 +934,23 @@ def image_proxy():
932934 return '', 400
933935
934936 maximum_size = 5 * 1024 * 1024
935−
937+ forward_resp = False
938+ resp = None
936939 try:
937− headers = dict_subset(request.headers, {'If-Modified-Since', 'If-None-Match'})
938− headers['User-Agent'] = gen_useragent()
940+ request_headers = {
941+ 'User-Agent': gen_useragent(),
942+ 'Accept': 'image/webp,*/*',
943+ 'Accept-Encoding': 'gzip, deflate',
944+ 'Sec-GPC': '1',
945+ 'DNT': '1',
946+ }
947+ set_context_network_name('image_proxy')
939948 stream = http_stream(
940949 method='GET',
941950 url=url,
942− headers=headers,
951+ headers=request_headers,
943952 timeout=settings['outgoing']['request_timeout'],
944− allow_redirects=True,
953+ follow_redirects=True,
945954 max_redirects=20)
946955
947956 resp = next(stream)
@@ -949,25 +958,37 @@ def image_proxy():
949958 if content_length and content_length.isdigit() and int(content_length) > maximum_size:
950959 return 'Max size', 400
951960
952− if resp.status_code == 304:
953− return '', resp.status_code
954−
955961 if resp.status_code != 200:
956962 logger.debug('image-proxy: wrong response code: {0}'.format(resp.status_code))
957963 if resp.status_code >= 400:
958964 return '', resp.status_code
959965 return '', 400
960966
961− if not resp.headers.get('content-type', '').startswith('image/'):
962− logger.debug('image-proxy: wrong content-type: {0}'.format(resp.headers.get('content-type')))
967+ if not resp.headers.get('Content-Type', '').startswith('image/'):
968+ logger.debug('image-proxy: wrong content-type: %s', resp.headers.get('Content-Type', ''))
963969 return '', 400
964970
965− headers = dict_subset(resp.headers, {'Content-Length', 'Length', 'Date', 'Last-Modified', 'Expires', 'Etag'})
971+ forward_resp = True
972+ except httpx.HTTPError:
973+ logger.exception('HTTP error')
974+ return '', 400
975+ finally:
976+ if resp and not forward_resp:
977+ # the code is about to return an HTTP 400 error to the browser
978+ # we make sure to close the response between searxng and the HTTP server
979+ try:
980+ resp.close()
981+ except httpx.HTTPError:
982+ logger.exception('HTTP error on closing')
966983
967− total_length = 0
984+ try:
985+ headers = dict_subset(
986+ resp.headers,
987+ {'Content-Type', 'Content-Encoding', 'Content-Length', 'Length'}
988+ )
968989
969990 def forward_chunk():
970− nonlocal total_length
991+ total_length = 0
971992 for chunk in stream:
972993 total_length += len(chunk)
973994 if total_length > maximum_size:
@@ -1148,6 +1169,13 @@ def run():
11481169 )
11491170
11501171
1172+def patch_application(app):
1173+ # serve pages with HTTP/1.1
1174+ WSGIRequestHandler.protocol_version = "HTTP/{}".format(settings['server']['http_protocol_version'])
1175+ # patch app to handle non root url-s behind proxy & wsgi
1176+ app.wsgi_app = ReverseProxyPathFix(ProxyFix(app.wsgi_app))
1177+
1178+
11511179class ReverseProxyPathFix:
11521180 '''Wrap the application in this middleware and configure the
11531181 front-end server to add these headers, to let you quietly bind
tests/unit/test_external_bangs.py−6
@@ -72,31 +72,26 @@ class TestResolveBangDefinition(SearxTestCase):
7272class TestGetBangDefinitionAndAutocomplete(SearxTestCase):
7373
7474 def test_found(self):
75− global TEST_DB
7675 bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('exam', external_bangs_db=TEST_DB)
7776 self.assertEqual(bang_definition, TEST_DB['trie']['exam']['*'])
7877 self.assertEqual(new_autocomplete, ['example'])
7978
8079 def test_found_optimized(self):
81− global TEST_DB
8280 bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('example', external_bangs_db=TEST_DB)
8381 self.assertEqual(bang_definition, TEST_DB['trie']['exam']['ple'])
8482 self.assertEqual(new_autocomplete, [])
8583
8684 def test_partial(self):
87− global TEST_DB
8885 bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('examp', external_bangs_db=TEST_DB)
8986 self.assertEqual(bang_definition, None)
9087 self.assertEqual(new_autocomplete, ['example'])
9188
9289 def test_partial2(self):
93− global TEST_DB
9490 bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('sea', external_bangs_db=TEST_DB)
9591 self.assertEqual(bang_definition, TEST_DB['trie']['sea']['*'])
9692 self.assertEqual(new_autocomplete, ['search', 'searching', 'seascapes', 'season'])
9793
9894 def test_error(self):
99− global TEST_DB
10095 bang_definition, new_autocomplete = get_bang_definition_and_autocomplete('error', external_bangs_db=TEST_DB)
10196 self.assertEqual(bang_definition, None)
10297 self.assertEqual(new_autocomplete, [])
@@ -114,7 +109,6 @@ class TestExternalBangJson(SearxTestCase):
114109 self.assertEqual(result, None)
115110
116111 def test_get_bang_url(self):
117− global TEST_DB
118112 url = get_bang_url(SearchQuery('test', engineref_list=[], external_bang='example'), external_bangs_db=TEST_DB)
119113 self.assertEqual(url, 'https://example.com/test')
120114
utils/searx.sh+1−1
@@ -418,7 +418,7 @@ install_settings() {
418418 err_msg "you have to install searx first"
419419 exit 42
420420 fi
421− mkdir -p "$(dirname ${SEARX_SETTINGS_PATH})"
421+ mkdir -p "$(dirname "${SEARX_SETTINGS_PATH}")"
422422
423423 if [[ ! -f ${SEARX_SETTINGS_PATH} ]]; then
424424 info_msg "install settings ${SEARX_SETTINGS_TEMPLATE}"