Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX-#4478: Support level param in query and eval. #4529

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

mvashishtha
Copy link
Collaborator

Signed-off-by: mvashishtha [email protected]

What do these changes do?

Support level param in query and eval.

  • commit message follows format outlined here
  • passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
  • passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
  • signed commit with git commit -s
  • Resolves BUG: df.query and df.eval harcode level #4478
  • tests added and passing
  • module layout described at docs/development/architecture.rst is up-to-date
  • added (Issue Number: PR title (PR Number)) and github username to release notes for next major release

@mvashishtha mvashishtha requested a review from a team as a code owner June 6, 2022 22:29
Signed-off-by: mvashishtha <[email protected]>
@codecov
Copy link

codecov bot commented Jun 6, 2022

Codecov Report

Merging #4529 (523779e) into master (c1d5dbd) will increase coverage by 1.81%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #4529      +/-   ##
==========================================
+ Coverage   86.36%   88.17%   +1.81%     
==========================================
  Files         228      229       +1     
  Lines       18413    18726     +313     
==========================================
+ Hits        15902    16512     +610     
+ Misses       2511     2214     -297     
Impacted Files Coverage Δ
modin/pandas/dataframe.py 91.51% <100.00%> (+0.03%) ⬆️
modin/experimental/cloud/rayscale.py 0.00% <0.00%> (-84.94%) ⬇️
modin/experimental/pandas/io.py 60.00% <0.00%> (-30.39%) ⬇️
modin/distributed/dataframe/pandas/partitions.py 65.30% <0.00%> (-18.37%) ⬇️
modin/config/pubsub.py 91.56% <0.00%> (-8.44%) ⬇️
modin/experimental/cloud/base.py 45.94% <0.00%> (-8.11%) ⬇️
...ataframe/base/exchange/dataframe_protocol/utils.py 94.20% <0.00%> (-4.35%) ⬇️
...core/execution/dispatching/factories/dispatcher.py 89.61% <0.00%> (-3.90%) ⬇️
modin/experimental/batch/test/test_pipeline.py 100.00% <0.00%> (ø)
modin/pandas/base.py 94.81% <0.00%> (+0.08%) ⬆️
... and 18 more

📣 Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

@modin-bot
Copy link

TeamCity Python test results bot

Tests PASSed

Tests Logs
x.sx [ 93%]
xxxxxssssxxsxxxsssxs.xxxssxsxsssxxx.xsxx.xsssssssssssxxxsssssssssx.xxsss [ 93%]
sssssx..ssssssxxsssssss.xssssssssssssssssssssssxsssssssssxxxssssssssssss [ 93%]
sxxxxsssssssssssssssssxssssssxssssx.xssssssxsssssssxxxsxxxsx.ssxssxxssss [ 93%]
xxsxxsssss.sxsssxssxssssssssxsssssssxssssssxssx.s.sssxsssssssss.s.sxsxss [ 93%]
s.ssssxsss..ssssssssssssssssssssssssxxsssssxxssssssxxssssssssssssssssssx [ 94%]
sssssssxssssssssssssssssssssssssssssssssss.xxssxssssxsssssssssssxsssssss [ 94%]
sssssssssssssssssss.xssssxsssssssssssssssxsssssssssssss.ssssssssssssssss [ 94%]
sssxsxxsss.ssxssssssssssxsssssssssssxsssssssssxsssssssssssssssssssssssss [ 94%]
sssssssssssssssssssssssss.sssssssssssssssssssxsssssssssssssssxxsssssssss [ 94%]
sssxsssssssssss.sssssssssssssssssssssssssssssssxsxss.ssssssssssssss.ssss [ 94%]
ssssssss.sssssssssssssss.ss..s.xsx..sss.ss....s.ss....s...s.x.xs.s...s.. [ 94%]
.........ss.s..s......s...xs..s......................x...x.............. [ 95%]
.....................s.s............s................................... [ 95%]
....s....s......................s....................s..............s... [ 95%]
....................s.......................s..............s..........s. [ 95%]
........................................................................ [ 95%]
............................................................................ [ 95%]
........................................................................ [ 95%]
............................................................................ [ 96%]
........................................................................ [ 96%]
........................................................................ [ 96%]
........................................................................ [ 96%]
......................................................................... [ 96%]
.......................................................................... [ 96%]
........................................................................ [ 97%]
..........x........xx.....................x.....x..x.x.................. [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
.............................x.......................................... [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 98%]
........................................................................ [ 98%]
........................................................................ [ 98%]
........................................................................ [ 98%]
..x................................s..sssss...............ssssx.....x... [ 98%]
ss.......................sssssss.s.sss.sss...sss..s.s.s.ss..sssss.sssss.s [ 98%]
ssssssss.........s.........sss..x...x.........s...............sx........ [ 98%]
.........................s............x......x..............x.....s..... [ 99%]
..s...............s.s.........x.......sss.....s..s..ss..s.s....sss.sx... [ 99%]
.s.ssss.sss.....s..sx.s.x.s....ss..ss.................s.s....s...s..x... [ 99%]
...ss......s.x......s..........sssss.s......s.....s.ssss.s.........ss.ss [ 99%]
sss..s...ss...ss.s.ss...ss....s.................................ss...... [ 99%]
......s....sss....s...s.s.....x....................................s.... [ 99%]
........................................................................ [ 99%]
......s........................                                          [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates
fatal: bad object HEAD


---------- coverage: platform linux, python 3.8.13-final-0 -----------
Coverage XML written to file coverage.xml

= 8987 passed, 37801 skipped, 2917 xfailed, 31124 warnings in 150.30s (0:02:30) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
Tests are successful
============================= test session starts ==============================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.4.1, cov-2.11.0, forked-1.4.0, xdist-2.5.0
collected 2464 items

modin/pandas/test/test_io.py ........................................... [  1%]
........................................................................ [  4%]
.............................................ssssssssssssssssssss.ss.ss. [  7%]
ss.ss.ss.ss.ss.ss.ss.ss.ss.ssssssssssssssssssss.ss.ss.ss.ss.ss.ss.ss.ss. [ 10%]
ss.ss.ss.ssssssssssssssssssss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.sssssssss [ 13%]
sssssssssss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ssssssssssssssssssss.ss.ss. [ 16%]
ss.ss.ss.ss.ss.ss.ss.ss.ss.ssssssssssssssssssss.ss.ss.ss.ss.ss.ss.ss.ss. [ 19%]
ss.ss.ss.ssssssssssssssssssss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.sssssssss [ 22%]
sssssssssss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss.ss............................ [ 25%]
........................................................................ [ 28%]
........................................................................ [ 30%]
........................................................................ [ 33%]
........................................................................ [ 36%]
........................................................................ [ 39%]
........................................................................ [ 42%]
........................................................................ [ 45%]
........................................................................ [ 48%]
.................................s...................................... [ 51%]
........................................................................ [ 54%]
........................................................................ [ 57%]
........................................................................ [ 60%]
........................................................................ [ 63%]
........................................................................ [ 66%]
........................................................................ [ 68%]
........................................................................ [ 71%]
........................................................................ [ 74%]
........................................................................ [ 77%]
........................................................................ [ 80%]
................................xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [ 83%]
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [ 86%]
xxxxxxxx................................................................ [ 89%]
........................................................................ [ 92%]
........................................................................ [ 95%]
.............................................................X.......ss. [ 98%]
...x....................xx.........ss........                            [100%]

---------- coverage: platform linux, python 3.8.13-final-0 -----------
Coverage XML written to file coverage.xml


= 1999 passed, 341 skipped, 123 xfailed, 1 xpassed, 3914 warnings in 132.06s (0:02:12) =
============================= test session starts ==============================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.4.1, cov-2.11.0, forked-1.4.0, xdist-2.5.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I / gw6 I / gw7 I / gw8 I / gw9 I / gw10 I / gw11 I / gw12 I / gw13 I / gw14 I / gw15 I / gw16 I / gw17 I / gw18 I / gw19 I / gw20 I / gw21 I / gw22 I / gw23 I / gw24 I / gw25 I / gw26 I / gw27 I / gw28 I / gw29 I / gw30 I / gw31 I / gw32 I / gw33 I / gw34 I / gw35 I / gw36 I / gw37 I / gw38 I / gw39 I / gw40 I / gw41 I / gw42 I / gw43 I / gw44 I / gw45 I / gw46 I / gw47 I
gw0 [49705] / gw1 [49705] / gw2 [49705] / gw3 [49705] / gw4 [49705] / gw5 [49705] / gw6 [49705] / gw7 [49705] / gw8 [49705] / gw9 [49705] / gw10 [49705] / gw11 [49705] / gw12 [49705] / gw13 [49705] / gw14 [49705] / gw15 [49705] / gw16 [49705] / gw17 [49705] / gw18 [49705] / gw19 [49705] / gw20 [49705] / gw21 [49705] / gw22 [49705] / gw23 [49705] / gw24 [49705] / gw25 [49705] / gw26 [49705] / gw27 [49705] / gw28 [49705] / gw29 [49705] / gw30 [49705] / gw31 [49705] / gw32 [49705] / gw33 [49705] / gw34 [49705] / gw35 [49705] / gw36 [49705] / gw37 [49705] / gw38 [49705] / gw39 [49705] / gw40 [49705] / gw41 [49705] / gw42 [49705] / gw43 [49705] / gw44 [49705] / gw45 [49705] / gw46 [49705] / gw47 [49705]

........................................................................ [  0%]
.......................................................................... [  0%]
........................................................................ [  0%]
........................................................................ [  0%]
........................................................................ [  0%]
......................................................................x.. [  0%]
........................................................................ [  1%]
...............x........................................................ [  1%]
......................................................................... [  1%]
......................................................................x. [  1%]
.........................x.............................................. [  1%]
........................................................................ [  1%]
........................................................................ [  1%]
........................................................................ [  2%]
........................................................................ [  2%]
........................................................................ [  2%]
........................................................................ [  2%]
........................................................................ [  2%]
........................................................................ [  2%]
........................................................................ [  2%]
......................................................................... [  3%]
.......................................................................... [  3%]
........................................................................... [  3%]
........................................................................ [  3%]
........................................................................ [  3%]
........................................................................ [  3%]
........................................................................ [  3%]
........................................................................... [  4%]
......................................................................... [  4%]
......................................................................... [  4%]
......................................................................... [  4%]
................................x............................................. [  4%]
........................................................................ [  4%]
........................................................................ [  4%]
........................................................................ [  5%]
........................................................................ [  5%]
...................................................................xx... [  5%]
..................x.....................................x................... [  5%]
........................................................................ [  5%]
............................................................................... [  5%]
........................................................................ [  5%]
.......................................................................... [  6%]
.......................................................................... [  6%]
........................................................................ [  6%]
....................................................x................... [  6%]
.......................................................................... [  6%]
....................................................s................... [  6%]
..s..s......s.........ss......s.s.....ss....s...s..ss..sss..............s [  7%]
s.s..s..sss.........s..s....ss...sss.....s...sss..s..s.ss..........ss... [  7%]
ss.s...sss......s..s.....sss..sss.........ss....s.s..s.s.ss.........s.s.. [  7%]
.ss.ssss...........ss.ssss...s.sss........s..sss..ssss.x.ssss......s.ssss [  7%]
..ssss..ssss.......s...sssss...ss.s.sssss.......s.ssss.s.s.ss.s..ssss... [  7%]
...s..sssss.ssss....ssss........s.ssss.sss..ssss.s.ss.....s...s.ss.sssss [  7%]
.sss..s..sss.....s.sssssss.ssss....sssss.s....sssssss.s.s.xsss...sssss..s [  7%]
...ss.ssssss.s..sss.s.sss.ss...s..s.ssssss.ss.sss..s.sssss...ssssssss.s.s [  8%]
.sss.s.s.sssss...s...sss.s.sss.ss.s.sssss.sss.ss.s.ss.ssssss.s.sss.s...xs [  8%]
.ssss..s.s.sssssssssssss.sssss.s.s.s....s...ssssss.ssss..sssssssssssssssssss. [  8%]
sss.s..sss..ss.ssss.sss.s....s.ssssssss.s.ssss.sssssss..sssssssss.sss.sss. [  8%]
s.s.sssssss...s.sssssss.sss.s.ssssss.sssss.s.s.ssssssssss.s.ssssssssss.s. [  8%]
sss..sssss..ssss.s..ssssssssssssss.ssssssssssssss.sssssss....ssss.sssssss [  8%]
sss.sssssssssssss.ss.sssss.sssss.sssssss.ssss..sssssssssssssssssss.ssssss [  8%]
...sssss..ss.sssssssss.sssssssssssssss..ss.sssssssss.ssssssssss.sss.sssssss [  9%]
sssssssssssssssss.ssssssssss.sssss..s.ssss.ssssssssssssss.sssssssss.ssss [  9%]
s.sssssss.sss.sssssssssssssssssssssssss..ssss.s.ss.sssssssssssss.ssssssss [  9%]
sssss.sssssss.sssssssss.ssssssss.sssss.sssssssssssssss.ss.sssssss.ssss.s [  9%]
ssssssssssssssssssssssss.sssssssssss.ssssssssssssssssss.s..sssss.ss.ss.sss [  9%]
ssssssssssssssssssssssssssssssssss.ssssss..ssssssssss.ss.sssssssss.ssssssss [  9%]
sssssssssssssssssss.ssssssssssss..ssssssssss.sssssssssss.sssssssssssssss [  9%]
sssssssssssssssssssssssss..ssssssssssssssssssssssssssssssssssssssssss.ss [ 10%]
s.ssssssssssssssssssssssssssss.ssssssssssssss.s.ssssssssssssssssssssssss [ 10%]
sssssssssssss..sssssssssssssssssssssssssssssssssssssssssssssss.ssss.sssss [ 10%]
ssssssssssssssssssssssssssssssssssssssssssss.sssssssssssssssssssssssssss [ 10%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 10%]
sssssssssssssssss.ssssssssssssssssssssssssssssssssssssssssssssssssssssss.s [ 10%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 10%]
ssssssssssss.ss.ssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 11%]
sssssssssssssssssssssssssssssssssssssssssss.sssssssssssssssssssssssssssssss [ 11%]
sssssssssssss..ss.sssssssssssssssssssssssssssssssssssssssssssss..s.sssssss [ 11%]
ssssssssssssssssssssssssss.ssssssssssssss..sssssssssssssssssssssssssssss [ 11%]
sssssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssssssssssssssss [ 11%]
sssssssssssssssssssssss.sssssssssssssssssssssssssssssssssssssssssssssssssss. [ 11%]
ssssssssssssssssssssssssssssssssssssssssssssssssssss.s.sssssssssssssssss [ 12%]
ssssssssssssssssssssssssssssssss.sssssssssssssssssssssssssssssssssssssss [ 12%]
sss.ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 12%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 12%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.sssssss [ 12%]
sssssssssssssssssssssssssssssssssssssssssssssss.sss.ssssssssssssssssssssss [ 12%]
ssssssssss.sss.sssssssssss.ssss.sssssssssssssssssssssssssss.ssssssssss.ss [ 12%]
ssssss.sssssss.ssssssssssssssssssssssssss.sssssssss.sssss.sssss.ssssssssss [ 13%]
ssssssssssssssssssssssssss.ssssssssss.sssss.ssssssssssssssssssssssssssss [ 13%]
ssssssss.ssss.ssssss.sss.sssssssssssssssssssssssssssssssssss.sssss.ss.sssss [ 13%]
sss.ssssss.sssssssssssssssssssssssssssss.ssssssssssssssss.sss..ssssssssssss [ 13%]
ssssssssssssssssssss.ssssssssssssssssssss.s.ssssssssssssssssssssssssssssssss [ 13%]
ssssssssssssssssssss..ssssssssssssssssss.sssssssssssssssssssssssssssss..ssssss [ 13%]
sssss.sss.ssss.ssssssssssssssssssssssssssssss..ssssssssss.ss.sssss.ss.ssssss [ 13%]
ssssssssssssssssssss.ssssss.ssssss.ss.s.ss.sss.sssssssssssssssssssssssss [ 14%]
ss.sssss.ssss.sssss.s..ss.sssss.ssssssssssssssssssssssss.ss.ss.ssss..ssssss [ 14%]
ss.ssssss.sssssssssssssssss.sssssssssss.s.ssssssssssss..ss.ss.ssssssssssss [ 14%]
sssss.ssssssssssss..ssssssss.ssssssss.ss.sssssssssssssssssssssss.ssss.ss [ 14%]
sss.sssss.sssssssss..s.sssssssssss.ss.sssssssssssssssss.s.sssss...s.sssss [ 14%]
s.sss.ssss.sssss.sssssssssssssss.ssssssssss...sssssssss.s.sss.ssssssssss [ 14%]
.ssssss.ssss.ssss..s.s..sssss.ssssss.ssss.sssssssssss.s..s.ssssssssssss. [ 14%]
sss.sssssssss.ssss..ssssssssssss.sssssss..sssssssssss.ss.ss.sssss.sssssss.s [ 15%]
s.ssssssss.sssssss.ssssss.ssss.ssssssss.sssss.sssss.sss.ss.ssssssssssss.ss [ 15%]
ssssss.s..ssssssss.s..ss.ss.sss.sssss..ss.sssss.ssssssssss.ss.ssssssss.sss [ 15%]
s..sssss.s.ssssss.s.sss.s.sssssssssssss.sssssssssssss.sss.ss..ss.sssssss [ 15%]
.sssssss.sssssssssssss.ssssss..ssssssssss.ss.s.s.ssssss.sssss.sss.s.ssss [ 15%]
sssssssssssss.s.sssssssss.s.ss..sss..sss.ss.ssssssssss..sssssssssss..sss [ 15%]
s..ssss.sss.sss.s...sss.s..ssssssss..ssssssss.ssssssss.ss.s.ssss.sssss.. [ 15%]
ss.ssss...sssss.sssssssss.ssssssss...ss.sss.sss..ssssss.ssss...ss.sssss. [ 16%]
sss.ssssssssss.ssssss.sss.ss.sssssss..s.ss..sssssssssss.sss.ssssssssssss [ 16%]
.s.s.sssssssss.sss.ssss.ss.ssssssss...ssssss.ssss.sss.sss.sssssssss.sss. [ 16%]
.s.ssssssssssssssssss.sss.sssss.ss.ss.sss.ssssss.s.ss.sssss.sssssss.sss. [ 16%]
sssssss.sss.s.ss.s.ssssssssss.ss.sss.sssss.ssssssssssssssssssssss..sss..ss [ 16%]
..ssssssss.sss.ssssss.sssssssssssssssss..ssssss.ss.ss.s.ssss..sss..s.sss [ 16%]
sssssssss.ssssss.s.ss.ss.ss.s.ss.s.sssssss.ssss.ssss.s..ssssss.sssss.ss. [ 17%]
ssssssss.sss..sssssss.ss.sss...ssss.ss.sssssssss.ss.ssssssssss.ss.sss.ss [ 17%]
..ssssss..sssss.ssss.ssssssssss.s.ssssss.ssss.sssssss..sssss..ssssssss.s [ 17%]
.ssssss...ssssssss.sssssss.sssssssssss..sssss.sss..sssssss.sssss.s.ssssssss [ 17%]
.ssssss.ssssssss.ss.ssssss.s.ssssssssss.ssssssssssssss.sssssss.sss.ss.ss [ 17%]
.sssssssss...ssssss.ssssssssss.ssss.ssssssssss.ssssss.sssss.ss...sssssss [ 17%]
s.s.sssssssss.sss.sssssssssss.ss.sss.sss.s.s.s..ssss..sssssssss.ss.sss.sss [ 17%]
sssssssssss.s..ssss.s.ssssss.s.ssssss.ssssss.sssss.ssssssssss.ssssssss.ss [ 18%]
sssss.s.ssss..sss.s.sss.ss.sssssssssssss..sss.ssss.ssss.ss.sssssssssss.. [ 18%]
sss.s..ssssssss..ssss.ssssss.sssssss.s.sssssssss.ss.s..s.s.s....ssss.sss. [ 18%]
.sssss.ssssss.ssssss.s.sssssss.s.ssss..s.ssss..sssss..s..ssssss.ssssssss [ 18%]
s.sss.ss.ssssssss.s.s..sss.ssss.ss.ss.s.ssssss.ssssssssssssssss.sssssssssss [ 18%]
s.s.sss.sssssss.sss.ssss.sssssss.sssssssssssssss.ssssssssss..ssssss.sssss [ 18%]
ssssssssssss.sssss.sssssssssssss.ss.sssssss.ssssss..ssssssss.ssssssssss. [ 18%]
ssssssssssssssssssssss..ssssss.ssssss.s.ssssss.ssssssssss..ssssssssssssss [ 19%]
.ssss.ss.sssss.sssssss.s.ssssssss.ssssss.ss.sssssssssss.sss.ss..ssss..ss [ 19%]
ssss.s.ssssssss.ssssss.sssssssssssss..ss.ss..sssssss..ssss.s..sssss.ssss [ 19%]
ss.sssssssssssssssss..s.s.sssss.s.sss.ss.sssss.ssssssss.ss.ssssssssss..sss [ 19%]
.ssssssss.ssssssss.ssssssssssss..ssssssssssssssssssss.ssssss.ssssss..sss [ 19%]
ssssssss.ss.s.sssssssssss.sssssss.sssssss.ssssss.ssssssssssss..sssssssss [ 19%]
ssssssssssssssssss.ss.sssssssssssss.sss.ssssss..ssssssssss.ssss.ssssss.sss [ 19%]
ss.sssss...ssssss.sssss.sssssssssssssss.ssss.sssssssss.s.s.ssss.ssssss.s [ 20%]
ssssssssssss.sssssssssssssssssss.ssss.sssss.ssssssss.sss.ssss.ssssssssssss [ 20%]
ss.sssss.s.sssss.ssssssssssssssss..ssssss.sssssssssssssss.sss.ssssssssss [ 20%]
ss.ssssssssssss.sssssssss.ssss.ss.sssssssssssssss.ssssssssssssssss.ssssss [ 20%]
s.ss.ssssssssssssssssssssssssssssss.sss..ssssssssssss.s.ssssssssssssssss [ 20%]
sss.ssssss.s.sssssssssss.sssssssssssssssssssss.ssss.ssssssssssssssssssss [ 20%]
ssssssssssssss.ssssssssssssssss.ss.s.sssssssssssssssss.s.sssssssssss.s.s [ 20%]
ss.ssssssssssssssss.sssssssss.ssss.s.sss.ssssssssssssssssssssssss.ss.sss [ 21%]
s.ssssssssss.ss.s.sssssssssssss.sssss.sssssssssss..sssssssssssssssss.sss [ 21%]
ssssssssssssssssssssssssssss..ssssssssssssssssssssssssssssss.ssssssss.sss.s [ 21%]
ssssssssssssss.ssss.sssssssssssssssssssssssssssssssss.ssssssssssss.ssssss [ 21%]
ssssssss.ssssssssssssssssssssssssss.sssssssssssssss..sssssssssssss.sss.s [ 21%]
ssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssssssss.sss.sssss [ 21%]
sssssssssssssssss.sssssssssssssssssssss.s.sssssssssssssss.ssssssssss..sss [ 21%]
ssssssssss.ssssssss.sssssssssssssss.sssssssssssssssssssssssssssssssssssssss [ 22%]
sssssssssssssssssssssssss.ssssssssss.sss.sssssssssssssssssssssssssssssssss [ 22%]
sssssssssssss.sssssssssssssssssssssssssssssss.ssssssssssssssss.ssssssssss [ 22%]
sssssssssss.ss..sssssss.sssssssss.sssssss.sss.sssssssss.ssssssssssssssss [ 22%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 22%]
sss.sssss.sss.sssssssssssssssssss.ssssssssssssssssssssssssssssssssssssssssss [ 22%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.sssss.ssssssss [ 23%]
ssssssssss.ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 23%]
ssssssssssssssssssssssssssssssssssssss.s.sssssssssssssssssssss.ssssssssss [ 23%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss....sssss.... [ 23%]
..sssssssssssssssssssssssss.s.s..sssss..sssssssssssssssss.ssssssssssssss [ 23%]
sssssssssssssss.ssssssssssssssssssssssssssss.sssssssssssssssssssssssssss [ 23%]
.....sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 23%]
sssssssssssssss.sssssssssssssssssssssssssss.sssssssssssss.s..sssss..ss.s [ 24%]
sss.ss.ssssssssssssss.sssssss.ssssssssssssss.sssssssssssssssssssssssssss [ 24%]
.sssss.sss.ssssssssss.ssssssssssssss.ssssssssss.sss.sssss.ssssssss.sssss [ 24%]
ssssssssssssssssssss.sssssss.s.s.s.s.sss.s..sssssssssssssssssssss.s..s.s [ 24%]
sssss.s.ssss.s..sssssssssssssssssssssssssssssssssssssssss.s.ssssss.s..s. [ 24%]
sssssssssssssssssssssss.s.s.s.sssssssssssss....ssssssssss.sssss.ss.sssss [ 24%]
ssssss.sssssss.ssssss.s.s.sss.sssssssssss.sssssssssssss.ssss.ssssssss.ss [ 24%]
sss.ssssssssss.ssss.sssssssss.sssss.ssssssssss.sssssssssss.ssssss.ssssss.s [ 25%]
.sss.sssssssssss.sssssss.ssssss.sssssssss.sssss.ssssss.sss.sssssssssssss [ 25%]
s...s.ss.ssss.sssssss.sssss.ssssssssssss.sssss.ss.sssssssss.ssssssssss.s [ 25%]
ss..s.ssssss.sssss.ss.s.sssssssssss.ssssssssssssssssssssssss.ssssssssssss [ 25%]
sssssss.s.sssss.s.ssssss.ssssss..s.ssssssssssss..ssssss.sssssss.sssssssss [ 25%]
sss.ssssssss.s.ssssss.sssss.sssssssssssssssssssssssssss.s.sss.ssssss.s.ss.ss [ 25%]
.ssssssss..s.sss..ss.sssssssssssssssssssssssssssssssssssssss.sssssssss.sss [ 25%]
..sssss.ssssss.sssssssssss.ssss...sssss.ssssssssss.ssss.ssss..sssssssss. [ 26%]
s.ssssssssss.ssssssssssssss.sssssssssss.s.ssss.ssssssssss.ssssss..ssssss [ 26%]
..sssssssssss.ssssss.sssssssss.sss.ssssss.ssssssssssssssssssss.ssssss.ssssss [ 26%]
.sssssssssss.....sss.ssssssss.ssssss...s.ssssssssssssssssssssssssss.s..ssss [ 26%]
sssssssss.ssssss.s..s...........sssssssssssssssssss...ssss..s.s........ss [ 26%]
ss...ssssssssssssssssssss..sss..ss........ssssssssssssssssssssssssssss.s [ 26%]
..sss........sssssssssssssssssssssssssss.s..s.sssss......ssssssssssss..s [ 26%]
sssssssssssss.sss.s.s...s.ssssssssssss.sss..sss.sss.sssssssssssssss.ssss [ 27%]
sssssssssss..s.sss.sssssssssssssssss.sssssssssssss..ssssssssssssssssssss [ 27%]
sssss.ssssssssssssss.ssssssss.ssssssss.ss.ssssssssssssssssss.sssssss.ssss [ 27%]
s.ss.sssssssssssssssssssssss.s.ssss.ssssss.ssssssssssss.s..ssssssss..sss [ 27%]
sssssss.sssss....sssssssssssssssssssss.s.sss.s.s..s.ssssssssssssssssssss [ 27%]
s.ss..sssss.ssssss.sssssssss.ssssssss.s.ssssssssssss.s.s..sssssssssss.sssss [ 27%]
s.ssss.s.ssss..sssssssssssss.sss.ssssssss.ss.ss..ssss.ssssssssssssssssss [ 28%]
ssss.ss.s.ss.sssss..ssssssssssssss.ssss.ssssssssssssssssssssssssssss.sss [ 28%]
.s..s.sssssss.s.sss.sss.ssssssss.sssssssssssssssssss.ssssss.ssssssssssss [ 28%]
s..s..sssssssss.s.s.sssssssssssssssssssssssssssssssss.s.ssssssssssssssss [ 28%]
ssssssssssssssssss.ssssss..s.sssssss.ss.sssssssssssss.ss.sssss.sss.sssss [ 28%]
ssssssssss.s.sssssssssssssssssssssssssss.ssssss.s.ss..ssssssssss.s.sssss [ 28%]
sssssssss.s.sssssssssssssssssssssssssssssssss.ssssss.sssssss.sssssss.s.s [ 28%]
sssssss.ssssssssssss.s.sssssssssss.ssssssssss...s...ssssss.ssssssssssssss [ 29%]
s.sssssssssss.ss...sss.sssssssssssssssss.sssssssssssssssssssss.s.ss.ssss [ 29%]
ssss.sss.sssssssssss.sssssss.sssssss.sss.sssssssssss.sssssssssssssssss.. [ 29%]
.ss..s.sss.sss.ssssssssss.ssss.ssssssssss.ss.sssssssssssssssssssssssssss [ 29%]
ssssssss.ss.s.ssssssssssssssssss.ssssssssss.ssssss.sss.ssssssss.s.sssss.s [ 29%]
ssssssssss.ssssss.s..ssssssssssssssss.ssss.sssssssssss..sss.sss...sssss. [ 29%]
.sssssssssssssssssssssss..ssssssssssssssssssssssssssssssssssssssss.sss.ss.sss [ 29%]
sssssssssssssss.ssssssssssss..sssss..sssss.ss.ssssssssssssssss.ssssss.s. [ 30%]
.sssssssssssssssss.ssssssss..sss.s.ssss.s.s..s.sssssssssssss.sssssssss.s. [ 30%]
sssssssssssssssssssssssssssssssssssssss.s.sss.ssss.sssssssssssssssssss.s [ 30%]
ssss.ssss.ssssss.ssss..sssssssssssssss.sssssssss..ssssssssssssssssssssss [ 30%]
ssss.sssssss..sssss..ssss..sss..sssssssssssssssssss.sss.ssssssssssssssssssss [ 30%]
ss.ssssssssssssssssss.sss.ss.s.sssssssssssssssssssssss.sssssssssssssssss.. [ 30%]
sssssss.sssssssssss.ss.sssss.sssssssssssssssss.sssssssss.s.ssss.ssssssss.ss.. [ 30%]
.sssssssssssssssss..s.ssssssssssss.s.sssssssssssssss.ssssssssssss.ss.sss [ 31%]
ss.sss.sssssssssssss.sssssssssssssssssssssss.ss.sss.ssssssssss.s.sssssss [ 31%]
.ss.sssss.sssssssss.sss.ssssssssssss.ssssssssss....sssssssssssss.sssssss [ 31%]
sss.ss.ssssssssss.sssss.sssss.ss.s.sssssssss..sssssssss.ssssssssssssssssss [ 31%]
s.ssssssssss.ssss.ssssssssss..ssss.ss.ssssss.sss.sssssss.ssssssss.ssssss [ 31%]
sssssssss.sss.ssss.sssss.sssssss.ssssssssssssss.ssssssss.ssssssssssss.ssssss [ 31%]
..sssss.ss.ssss.sssssssss.s.ssssssssssssssssssssssssssssssssssss.sssssss [ 31%]
ss.s.sssss.sss.ssss.s.ssss.ssss.sssssssssssssssss.sss.ssssssssss.ssss.s. [ 32%]
sssssss.ssssssssssssssss.sssssssssss.sssssssssssssssssss..ss..sss.sss.ssss [ 32%]
.sss.ssssssssssssssssssssssssssssssssssssssssssss.sss.ssssssss.s.ss.ss.s [ 32%]
ssss.ssss.ssssssssssssss.sssssssssssssssss.sssss.s.sssss.ssss..sssssssssss [ 32%]
ssssssssss.sssssssss.ssssssssssss.sssssssss.sssss..ssssss....ssssssssssss [ 32%]
ssssssssssssssssssss.sssssssssssss..ssssssssssssssss.ssss.s.sss.sss.ssssss [ 32%]
ssssssssssssssss.sssssssssss.ss.sss.s.ss..s.ssssssssssssssssss..sssssssss [ 33%]
s.ssssssssssssssssssssss.ssssssss..s.ssss.ss..ss.ssssssssssssssssssssssss [ 33%]
ssssssss.sssssssssss.sssssssssssssssssss.ss.sss.sss.s.ssssssssssssss.sss [ 33%]
ssssssss.sssssssss...ss.sssss.sss.ssssssssss.sssssssssssss.sssssssssssss [ 33%]
sssssssssss.ssssssss.ss.sss..s.ssssss.ss.sssssssssssssssssssssssssssssss [ 33%]
ssssssss.s.s.ssssssss.ss.ssssss.ss.s.ssssssssssssss.ssssssssss.sssssssss [ 33%]
s.s.s.ssssssssssssss.s.ssssssss.ssssssssssssssss.ssssssssssssssss.s.s.ss [ 33%]
sssssss.s.sssssssssss.ssssssssssssss.s.ssssssssssss.s.ssssssss.ss.ssssss [ 34%]
ss.ssssssssss.sssssssssssssssssssssssssssss.ssssssssssssssssssssssssssss [ 34%]
ssssssss.ssssssssssssss.ssssssssssss.s.sssssssssssssssssssssssssssss.s.s [ 34%]
sssssssssssssssssss.s.s.sssssssssssssssssss.s.ssssssssssss.sssssssssssss [ 34%]
ssssss.sssssssss.ssssssssssssssssssssssssss.s.s.sssssss..ssssssssssss.ss [ 34%]
ssssss.s.ssssssssssss.ssssssss.sssssss.sssssssssssssssssssssssssss.s.s.s [ 34%]
ssss.ssssssssssssssssssssssssss.sssssssssss.ssssssssssssssssssssssssssss [ 34%]
ssssssssssssssss....s.ssss..ssssss.sss..sssssssssss.sss.s.sssssssssss..sss. [ 35%]
ssssssssssss.sss.ssssssssssssss.sssssss..ssssssssssssssss.ssssssssss.s.ss [ 35%]
sss..ssssssssssssss.sss.sssssssssssssssssss.sss.ssssssssssssss.ssssssss.s [ 35%]
ss.sssssss.ssssssssssss.ss.ssssssssssssssssss.ssssssss.sssss.sssssssss.s [ 35%]
ssssssssssssss.sss.ssssssss.sssssssssssssss.ssss.ssssssssssssssssssss.ss [ 35%]
sssssssss.sssssss.sssssssssssssss.s.sssssssssss.sssssssssssssssssss.ssss. [ 35%]
ssssssssssssssss.sssssssssssssssssssssssssssssssssssss..ss.sssssssss.sss [ 35%]
ssssssssss.ssssssssssssssss.ssssssssssssssss.ssssssssss.ssssssssssssssss [ 36%]
sssssssssssssssssssss.sssssss.sssss.sssssssssssssssssssssssssssssssssssss [ 36%]
.ssssssssssssssssssss.ssssss.sssssssssssssss.sssss.ssssssssssssssss.ssss [ 36%]
ssssssssssssssssssssssss.sssssssssssssssssssssssss.sssssssssssssssssssss [ 36%]
sssssssssssssssssssssssss.sssssssssssssssssssssssssssssssssssssssssssssss [ 36%]
ssssssssss.s.sssssssssssssssssssssss.sssssssssssssssssssssssssssssssssss [ 36%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 36%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 37%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 37%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 37%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.ssssssssssss [ 37%]
sssssssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssssss [ 37%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 37%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 37%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 38%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 38%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 38%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 38%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 38%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 38%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 38%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 39%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 39%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 39%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 39%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 39%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 39%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 39%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 40%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 40%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 40%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 40%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 40%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 40%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 41%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 41%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 41%]
sssssss.ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 41%]
sssssssssssssssssssssssssssssss....ssssssssssssssssssssssss.....ssssssss [ 41%]
ssssssssssssssssssssssssss.s.ss...ssssssssssssssss.sssssssssssssssssssss [ 41%]
ssss.sssssssssssssssssssssssssssssss.ssssss...ssssssssssssssssssssssssss [ 41%]
ss.sssssssssssssssssssssssssssssss.........sssssssssssssssssssssssssssss [ 42%]
sssssssssssssssssssssssssssssss.ssss.sssssssssssssssssssss.sssssssssssss [ 42%]
s.ssssssssssssssssssssssssssssssss.ssssssssssssssssssssssssssss.ssssssss [ 42%]
sssssssssssss.sssssssssssssssss.ssssssss.ssssssssssssssssssssss..sssssss [ 42%]
ssssssssssssssssssssss.sssssssssssssssssssssssss.sssssssssssssssssssssss [ 42%]
ss.ssssssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssss [ 42%]
sssssssssssssssssssssss.sssssssssssssssssssssss.ssss......ssssssssssssss [ 42%]
ssssssssssssss.sssssssssssssssssssssssssssssssssssssssssss.sssssssssssss [ 43%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 43%]
sssssssssssssssssssss.sssssssssss.ssssssssssssssssssssssssssssssssssssss [ 43%]
ssssss...ss.sssssssssssssssssssssssssssssssss.ss.sssssssss..s.ss.sssssss [ 43%]
sssssss..s...s.sssssssssssxxxssssssssssx.sssssssssssssssssssxsssssssssss [ 43%]
.sssssssssssssssssssssssssssssssssssssssss..xxsssssssssssssss.sssss..sss [ 43%]
sssssxssssssssss.ssssss.ssssssssssssssssxsssssssssssssssssssssssssssxsssss [ 43%]
ssssssssss.sss.sssssssssssssssss.sssssssss.sssssssssssss.sssssssssssssss [ 44%]
sssssssssssssssssss.s.sssssssssssssss.sxsssss.sssssssssssssssssxsssss.ss [ 44%]
sssssssss.sssssssssssssssssssssssssssssssssss.ssssssssss.ssssssxssssssss [ 44%]
.sss.sssssssssssxssss.sssssssss.ssssxsssssssss.sssss.ssssssssssssssssssssss [ 44%]
ssssssssssss.s.sxsxssssssssssssssssxssssssxsssssssssssssssssss.ssssssssssss [ 44%]
sssssssssssss.sssssssssssssssssxsssssssxssssxssssssssssxssssssssssssssssss [ 44%]
s.sxss.ssssssssssssssss.ssssssssssss.ssssssssssssssssssssssssssssssssssss [ 44%]
xssssssssssxxss.ssss.sssssssssssssssssssssssssssssssssssss.s.sssssxsssssss [ 45%]
sssssssssss.ssssss.ssssssssssssssxsssssssssssxssssssxsssss.sssssssssssssss [ 45%]
s.sssxsssssssssssss.s.sssssssssssssssssssssssssssssxssssssxssssssssssssss.s [ 45%]
ssssss.ssssssss.ssssssssssssssssxssssxxsssssssssss.sssssssssssssssssssssss [ 45%]
ssssxxssssssssss.sssssssssssssssssssssssssssssssssssssss.sssssxsssssss.s [ 45%]
sss...sssssssssssssssssssxxssssssssssssssssxxssssssssssssss.sssssssssss. [ 45%]
ssssssssssssssssssssxsss...sssssssssx..sssssssssssssssssssssssssssssssss [ 45%]
sssxsssssssss..xsssssssssssssssssssssssssssssssssss.xsssssxsssssssssssx. [ 46%]
ssssssssssssssssssxx...sssssxssssssssssssssssssssssssxxsssssssssssssssss [ 46%]
ssssssssssssssxxsxssssssssss...ssssssssssssssssssssssssxxssssxxsssssssss [ 46%]
ssssssssssssssssssssssssss.sssssssssxxxsssssssssssssssssssssssssssssssss [ 46%]
ssssssssssssssssssssssssssss.sssssssssssssssssxsssssssssssssssssssssssss [ 46%]
sssssssssssssssssssssssssssssssssssssxxssssssssssssxssssssssssssssssssss [ 46%]
ssssssss.sssssssssssssssssssssssssssssssssssssssssssssssssssssssssxsssss [ 46%]
ss.sssssssssssssssssssssssssssssssssssssssssss.ssssssssssssssxssssssssss [ 47%]
ssssssssssssssxxsssssssssssssssssssssssssssssssssssssssssssssssssssssxss [ 47%]
ssssssssssssssssssssssssss.sssssssssssssssssssssssssssxxxsssssssssssssss [ 47%]
xsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 47%]
sssssssssssssssssssssssssssssssssss..sssssssssssssss.sssssssssssss....ss [ 47%]
ssssssxxsss..x..xxxsssssssssssssssssxssssssssssssssssss....xssssssssssss [ 47%]
sssssssssssssxsssssssssssssssssssssssss.xsssxxxssssssss.xsssssssssssssss [ 47%]
sssx.xssssssssssssssssxxssssssssssssssssssssssxssssxssssssss.sssssssssss [ 48%]
sss.xssss.xsssssssssss..xssssssssssssssssssssssssssssssssss.x.xsssssssss [ 48%]
ss.xxxxxxxxsssss..sssssssssxxxssss.sssssssssssssssssssssssssssssssssssss [ 48%]
sssssssssssssssssxxxxxxx.ssssssxs.ssssssssxxssssss.sssxssssssxsxsssssssss [ 48%]
ssssxssss.sssssssssssssxsssssxssssssxsssssssss.ssssssss.sssssssxsxssssss [ 48%]
ss.ssssssssxssss.ssssssssssssssssssssssssssssxssssssssssss.ssssssxssssssss [ 48%]
xsssss.ssssssssxsxssssssssssxsssssssxsssssssssssssssssssssssssssssssxsss [ 49%]
sssssssxssssssssssssssssssssssxssssssxss.ssxssssssssxssxssxssssssssxssss [ 49%]
sssssssssssssssssssxsssssssssssssssssssssss.sssssssssssssssssssssssssssss [ 49%]
sssssxssssssssxssssxsssssssssxssssssssssxssssssssssssssxxxsssssxsssssssssssss [ 49%]
sssxsssss.sssssssssssssssssssssssssssxssx.xsx.x.sssssxssx.xx.xxsssssxsss [ 49%]
ssxxxxxsxssssssssssxxxssssssssssssxxxssssssssssssssssss.ssssssssssssssss [ 49%]
sssssssssssssssssss.ssssssssxsssssssssssssxsssssssssssssssssssssssssssssss [ 49%]
sssssssssssss.sss.ssxxsssssssssssssssssssssssssssssssssss.ss.ssssss.ssxssss [ 50%]
ssssssssxssss.s.ssssssssxsssssssssssssss.ssssssssssssssssssxssssssssssss [ 50%]
ssssssssssssxsxssssssssssssssssssssssxssxssssssssssssssxsssss.sssssssssss [ 50%]
ssssssxsssssssxsxssssssssssssssssssssssssssssssssssss.ssssssssssssssssss [ 50%]
ssxsssssssssssssssssss.ssssssssssssssxxssxssss.ssssssssssssssssssssssssss [ 50%]
sssss.sssssssssssssssssssssssssxssssssssssssssssssx.xssxsssssxssxsssssss [ 50%]
ssssssssssssssssssssssssssssssssssssssssssxssssssssssssssssssssssssssssss [ 50%]
ssssssssssxsssssssssssssssxssssssssxsxssssssssssssssssxssssssssssssssssssssx [ 51%]
ssssssssssssssssssssssssssssssssssssssssxsssssssssssssssssssssssssssssss [ 51%]
sssssssssssxsssssssssssssxsssssssssssssxssssxssssssssssssssssssssssssssss [ 51%]
ssxssxsssssssssssssssss.ssssssssssssss.sssssssssssssssssssssssssssssssss [ 51%]
sssssssss.ssssssxsssssxs.sssssssssssss.ssssssssssssssssssssssssssssxsssss [ 51%]
ssssssssss.sssssssssssssssssssssssssssssxsxxxxssssxxssssssssssxsssssssss [ 51%]
ss.ssxsssssxssssssssssssssxssssssssssssxsssssssssssssssssssssssxxsssssss [ 51%]
ssssssssssssssssssssssssss.sssssssssssssssssssssssssssssss.sssssssssssss [ 52%]
sssssssxssssssss..xxss..x...xxxsx.xssssssssssssssssssssxxxs.xsssssssssss [ 52%]
sssssssssss.xxx.xxssssssssssssssssssssss.xx.sssxssss.xxxxx.xxsssssssssss [ 52%]
ssssxssxssssxsssss.sxxxsssssssssssxxssssssssssssssssxxsxxsssssssssss.sss [ 52%]
sssssssssssssssssxssssxssssssssssssssssssssss.xxssssssx.sssxx.xsxsxsssss [ 52%]
sssss.sssssssssssssssssssssssssssssssssssxsssssssssxxssssss.ssssssssssss [ 52%]
sssss.ssssssssssssssssssssssssssxssssssssssssssssssssssssssssssxssssssss [ 52%]
sssssxxssssssssxssssssssssssssssssssssssssssxsssssss.sssssssssssssssssss [ 53%]
sssssssssssssssxsssssssssssssssssxsssssssssxssssssssssssssxsssssssssssss [ 53%]
ssxxsssssssssssxsssssssssssssssssssssxsssssssssssssssssxssssssssssssssss [ 53%]
sssssssssssssxxssssssssssssssssssssssxsssssssssssssssxxxssssssssssssssss [ 53%]
sssssssssssxxxsssssssssssssss..xxssssssssssssssssssxxsxxx.sxxsssssssxssssss [ 53%]
sssxxxsssssssssss.ssssssxsssxsssssssssssssssssssxssssssss.ss.sssssssssxs [ 53%]
sssss.ssssssssssssssssssssxx.ssssssssssssssssxssx.sssssxs.ssssssss.sxxxss [ 53%]
sssssssssssssssssssxssxssssssssssssssssssssxxxssssss.ssssss.sss.xssxxssssss [ 54%]
s.ssxssssssssxssssssssss.ssssssxssssxsssss.sssss.sss.sss.xssxsss.xs.ssssss [ 54%]
ssxs.sssssssssssxssssxss.ssssssxsss.sssss.xsssssssssxsssxxsxssssxsssssss [ 54%]
sxxsssssssxsssxxsssssssxsssssssssssssxssssxsssssxsssssssssssssssssssssxxss. [ 54%]
sxsssssssxssssssssxxsssssxsssxsssssssssssssssssssssssxxssssxsxsssssss.ssss [ 54%]
sxssssssssssssssssssssssxsssssssssssssssxsssxsssssss.ssss.sssssssxsssssxss [ 54%]
ssssssssssssssssssssssssssssssssssssssxsssssssssssss.sssxx.sssssxsssssss [ 55%]
ssssssssxssxssxssssssssssssssssssssssssssssssssssssssssssssxxssssss.ssssss [ 55%]
sssssssssssssssssssssssssssssssxxsssssssssssssssxsssssssssssssxssssssssx [ 55%]
xsxsxss.ssssssssssssssssxsssssssssssssssssss.s.sssssssssxsssssxssssssssssss [ 55%]
ssssssxssssssssxsssssssssxssssssssss.ssssssssssssss.ssssssssssxssxssssssx [ 55%]
sssssssxssssssssssssssssss.sssxssssxxssxsssssssssssxx...xxxxxss.ss..xxss [ 55%]
s.xxxxxssssxxsssss.xxxsssssssssssxssxxxxsssssxssssxsssssssssssxssss.ssss [ 55%]
ssssssssxxsssssssxssssxssssxsssssssssssssssxxxssssss.xssssssssssssssssss [ 56%]
ssxssssss.sx.xsssssxxxssssssssssssss....ssssssssxxxsssssssssssssssxxxsss [ 56%]
xssssssssssssss.sxsssssss.xssss.xxxssxssssssssssssssssssssss.ssssssssss. [ 56%]
xxxsssssssssss.xxssssxx.sssssx.sssssssssssxsssssssxssss.sssssssxssss.xxx [ 56%]
x.sssxssssssssssss.xxxxxxxssssssssssssssssssssssssssssssssssxxx.ssssssss [ 56%]
sssssssssxssssxxxxssxxxx.xsx.sxxsssssssssxxsxsxsssssxssssxssxssssxssssss [ 56%]
sssxsssssxsssxsssssssxx..sssssxsssssssssssxsxs.ssxssssssxsssssssssssss.s [ 56%]
sxxsssssssxssssssssssssssssxsssssssssxsxsssssss.sssssssxsssxssssssssxsss [ 57%]
ssssssxs.s.xssxsssssssssssssssssssssssssssxs.sxssssssssssssssssssssssssss [ 57%]
s.sssssss.xsssssssxssssxsssssssxssssssssssss..xssssxxssssxssssxsssxssxsss [ 57%]
ssssssssssssssssxssssssssxsssssss.ssxxssssssssxssss..ssssssssxsxssssxsxs [ 57%]
xssssssxsssssssssxsssssssssxssssssssss.sxsssssssxxssssss.xss.ssssssxs.sssss [ 57%]
ssssxxsssssxsssxxsssssssssxssssxxss.ssss.ss.ssss..ssxsssx..xsssssss.x.sss [ 57%]
ssxsssx.ssssssssssxssssssssxsxxsssxx.xssss..sssssxxssxsssxsssssxssssssxss [ 57%]
ssssssssssxssssssssssxssxssssssxss.sx.sssxxssssssssssxsssssxs.sssssssssxs [ 58%]
sssxsssssssxsxsxsssssssxssssssssssssxsxxx.xxxssss.xssss.xsss.xxxxx.x..xs [ 58%]
xss.xxxxxxssxsxxssxsxxs.sxssxsssxsxxxssxsssxxs.ssssxssxssssssssxsssss.ssx [ 58%]
sxxsssssssxsssssssssxsssssssssssssssssssxssssxssxssssssxsssssxsssssss.ss [ 58%]
sssssssssssssssssssssssxsssssxssssssssssssssssssxxssssssssssssss.sxsxssxss [ 58%]
ssxssssssssssssssssssssssss.sssssssssssssss.sssssssssssssss.ssssssssssssss. [ 58%]
ssssssssssssxssxss.ssxsxss.sssssssss.ssssssssssssssxssssssxssssssss.sssss [ 58%]
ssxsssssssssssxssssssssssssssssxsxsssxxsxssssxssssssssss.ssxssssssxsssss [ 59%]
sxssssssssssss.sssssssxssssxssssssssssssssssssssxxssxssss.s.sxsssssssssss [ 59%]
ssssssssssxssssssssxss.sssssssssssssssssssssssssssssssssssssssssxxxsxxss [ 59%]
ssssssssssssssssssssssssssssssssssss.sssss.sssssssxsssssssssssssssssssss [ 59%]
s.ssssssssssssssssxxssssssssxssssssssssxxsxsss.sssssxs.sssssssssssssssxs [ 59%]
sssss.sssssssssssssssssxssxxxssssxssssssssssssssssssssssssssssxsssxxssss [ 59%]
ssssssssssssssx.xxsssssssssxxsssssssssssssxssssssssssxx..sssssssssx.ssss [ 59%]
ssssssssssssssssssxsssssssssssssssssssssssssssssxxsssssxxxxxs.xxssssx.ss [ 60%]
ssssssssssssssssssxx.s.xxxsssssssxxx.xsssssxsssssssxsssxs.sssssssxsss.ss [ 60%]
sxss.sxssssxxsssssssxsssssssx.ssxssssxsssxs.sssssxsxxx.xxxxxsx.sss.xsssxxxxxxxx [ 60%]
.ssssss.xsssxxxxxxxsssssssssxssxsxxxsxsssssx.ssssxsxxsxssssss...ssssxsss [ 60%]
sxss.x..s.sxssxssxsss..xsx.xssxsxssssx.xxxx.ssss.ssxxxxssxss.xssxxxssssxss [ 60%]
xxxs.sssxssxsxssssssssxsss.ssss.sssssxsssxssssxxsssssxsssssssssssssssssxsx [ 60%]
sxssxssssssssssssxxssxsxs.ss.sssxxxsssx.xxxsssxsssss..xx.xxxssss..sxssss [ 61%]
sx.sssssssxssssssssssssssssx.ssssssxsxsssssssxsss..ssxxsssssssssssssssss [ 61%]
sss.xxssssssssssssssssssssssssssssssssssxssssxxssssssssssssssxxsssssssss [ 61%]
sssxsssxssssxsxsssssssxssssssssssssxx.xxsssssssssssx.sssssssssxx.sxxssss [ 61%]
sssxssssxssssxssssssxssss.sx.sxssss.sxssssssssxss.sxssxxss.sssssssssssss [ 61%]
ssssssssssssssssxss..xsssssssssxssssxxxsssssssssssssxss...ssssssssssssss [ 61%]
sssxxsssssssxsssssssssssxx.ssx.sssssssssssssssssssssssssssssssssssxssssx [ 61%]
sss.sssssssssssssssssssssssssxssssxxxxxxxx.sssssssssssssss..ssssssssssss [ 62%]
sssssssssssxsssssssssssssssssssssssssssssssssssssssssssssssssssssxssssss [ 62%]
ssssssssssssssxxssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 62%]
sssssssssssssssssssssssssssssssssssssssssssssssssxssssssssssssssssssssss [ 62%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 62%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 62%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 62%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 63%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 63%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 63%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 63%]
sssssssssssssssssssssssssssssssssssss.sssssssssss..sssssssssssssssssssss. [ 63%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxs. [ 63%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 63%]
sssssssssssssssssssssssssssssssxssssssssssssssssssssssssssssssssssssssss [ 64%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssxxsssxsssss.sssss [ 64%]
ssssssssssssssssssssssssssssssssssssxsssssssssssssssssssssssssssssssssss [ 64%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 64%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 64%]
sssssssssssssssssssssss.ssssssssssssssxsssssssssssssssssssssssssssssssss [ 64%]
ssssssssssssssssssssssssssssssssssssxsssssssssssssssssssssssssssssssssss [ 64%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 65%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 65%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 65%]
sssssssssssssssssssssssssssssssssssssssssssssxssssssssssssssssssssssssss [ 65%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.s [ 65%]
ssssssssssssxsssssssssssssssssssssssssssssssssssxsssssssssssssssssssssss [ 65%]
sssssssssssssssssssssssssxssssssssssssssssssssssssssssssssssssssssssssss [ 65%]
ss.sssssssssssssssssssssssssssssssssssxsssssssssssssssssssssssssssssssss [ 66%]
ssssssssxsssssssssssssssssssssssssssssssssssssss.sssss.xxsssssssssssssss [ 66%]
sssssssssssssssx.sssssssssxxsssss.ss.ss.xxssxxxssxxxxxx.s..sssssssssssssx [ 66%]
sxxsxsssssxxxsxxxxxxxssxxssssssssssssx.xssxsxxsxs.sxxx.sxxxxxsxsssxsssss [ 66%]
ssss.sssxssxxsss.sx.sssxx.xsxxxsxssssss.ssssssssxxsssxsx.xxsxsxxxsxssxxss [ 66%]
sssssxss..s.ssssxssxsssxssxsssxxxsxsxssssss.ssxss.s...sssxsxxsxsssxsxsxss [ 66%]
ssssxssss.x.ssxs.x.ssssssssssxssxssxssss.sssxsssssxx.x.xssxsxx.sxssssssssx [ 66%]
xsssssx.sssssxsss.x.ssx.xsxxsxsssssssx.sssxssssss..s.xsxsxxx.xxxxs.sssss [ 67%]
.ss.sxsssss.s.x.sxxxsxsxxsxssxxxx..sxssx.ssssxssssssssxxssxxsxssxxx.sxsx [ 67%]
xsxssssssxssssssssss.xsxsssxxxxssxsx.sssxssssssxssssxssss.xssssxsxssxs.s [ 67%]
sxx.ssssxxsss.xsss..ss.ssxsssxssxxs.xx.sssxsssxsssssss.xsss...xs.ssssssx [ 67%]
sssss.xssxsssxsssssssxxs.s.xsxssss.sssxssxsssxxsxss.xsssssss...ssxsxxxs.ss [ 67%]
.sssssssxxx.sxss.s.ssss.xsxsssx.xx..ssssssssxxxssss.ssxs.xxssx.xssxsxssxx [ 67%]
ssssssxxssssxxsssxxssx.xsxxssxsxsxxssssssss.xssxsssssxsss.xsxxsssxsxsxsx [ 67%]
sssssss.xxss.ssssssxsxssxxsssxsxsxxxxssssssssxssxx.sss..ssxsxsssx.sssssx [ 68%]
..ssxssx.sssx.ssssssxxxs.sssx.xsss.ssssxsxxsssx.xssxsssssxssssxsxxxsssssss [ 68%]
sssx.xsssssxxssxsssssxssssxxssss..ssxsxs.xsssssssxssss.sssss.sxsss.ssssx [ 68%]
sxxxx.xssssssxssxs.sss.sssxxsxsxssssxssxs..sssssssxsssss.sssxxssssxxxssxs [ 68%]
x.sssssssssssx.sssxxsssssxs.ssssxssxssxsxssssssxsssss.sssxsxsssx.ssssssx [ 68%]
ssxsxxsssss.ssssxs.xssssssssssxsssxssssxxxs.sss.sssssxsss.sssxsssxssxsssss [ 68%]
sxxsssss.sxsx.ssx.xsssssssssssxssssssxxsss.sxssssssssxsxsxssssssssxsssss [ 69%]
ssssxsxxxsssssssssxssssxssssssxs.ssssssxssxssssxssssxsssxsssxssssssssss. [ 69%]
sxsssssssssssssxxsxss.sssssssssxsssss.ssssssxssssssssssssxssxsssxss.ssssx [ 69%]
ssss..ssssxssssssssss.xxsssssxsxssss.ssxssssssxs.ssssxs.sssss.ssssxsssss [ 69%]
sssssssssxxssssxx.sssxss.ssssssxsxssssssssssssssxsxxsss.ssxxsssss.ssxsss [ 69%]
sssssssssssssxsssx..sssxxssssx.ssxssxssssssssssssssss.x.xsssxssssx.sssxs [ 69%]
ssssssssssssss.xxxsxsxxsxxssxsssssxsssssssssxxsxsssxssxxxxss.sxsssssssss [ 69%]
sssssxsxssssxsssxssxxs.sssssssssssss.sssssxssssssssssssssssxsssxssssssx.ss [ 70%]
sssxsssssssssxxsssssss.ssssssss.xssssxssss.ssssss.ssssss.ssssxsssssssssxs [ 70%]
ssss.sss.sssssssxxssssssssssssxssssxs.ssx.ssssssxssssssssxsssssxss..ssxx [ 70%]
ss.ssxxssss.sssssssxsxsxssxssss.sxssssxssssssssssxssxssxs..sssxsssssssssxx [ 70%]
ssxxss.sssxs.sssxsxssssssxxssss.xssxssssxsssxs.sssssssssxs.sssssssxxssss [ 70%]
ssxss.ssssxss.ssssssssssssss.sssxxsssss..sssssssssxxssssss.ssxs.xxsssxs. [ 70%]
ss.ssss.ssssssssx.xssxssssxsss.sssssssssxssssxs.ss.ssxsssssssxsssxsssssxss [ 70%]
ssssssssssssxsssssssssssxssss.sssssssssxsxssss.xxsssxxssssssxsssssssssssx [ 71%]
ssssssssxxsssssssssssssss.sssssssxssssss.ssxssssssssssx.ssss.sxsssssxsss [ 71%]
sssxsssssssxxsxsxssxssssxsssssssssssssssxssssssxxxxx.x...xx.ssssssxxxx.sxx [ 71%]
xss.sssssssssxxxxxssxssssssssssxsxxxsssxs.s.ssssxsxsxs...s.sssxxss..xsxs [ 71%]
ssxsxsxxxxsssssxssxxsxsxxsssssssssxsssssss.xsssssssssxsssssssssssssssssxs [ 71%]
sssssssssssssssxssss.ssss..ssssssssssssssssssssssssxssssssssssssssssssss [ 71%]
sssxx..ssssssssssssssssssssssssxssssssssssssssssssxxsssssssxssssssxxssss [ 71%]
ssssssssssxssssxxssssssssssssxssssssxxsxsssssssssssssss.ssxsssssssssssss [ 72%]
sssssssssssssssssssssssssssssssssssssss.sssssssxssssssssxsssssssssssssssss [ 72%]
sxsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 72%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssss.sssssxsssssssssssss [ 72%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 72%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxsssssss [ 72%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 72%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 73%]
ssssssssssssssssssssssssssssssssxsssssssssssssssssssssssssssssssssssssss [ 73%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 73%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 73%]
ssssssssssssxxsssssssssssssssssssssssssssssssssssssssssssssssssssss.ss.s [ 73%]
ssssss.sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 73%]
sssssssssssssssssssssssssssssssssxssssssssssssssssssssssss.sssssssxxxxss [ 74%]
sssssssssss..ssssssssssssssssssssssssssssssxssssssssxxssssssssssssxsssss [ 74%]
sssssssssssssssxssssssxsssssssss.ssssssssssssssssssssssssssxssssssssssss [ 74%]
s.sssssssssssssssssssssssssssssssssssssxxsssssxssssssssssssssss.ssssssss [ 74%]
s.sssssssssssssssssssssssssssssssssssssssssssssssssxssssssssssssssssssss [ 74%]
ssssssssssssssssssssssssssssssssssxxxsssssssssxxxxxs.sss..xssssssssxssss [ 74%]
ssssssssssssxssssssxsssssssxsssssssssssssssssssssxsssssssssss.ssssss.x.ss [ 74%]
xsssssssssssssssssssssssssss.ssssssssssssssssxssssxssssssssssssxs.ssssss [ 75%]
sssssssxssssssxssssssssssxssssssssssss.ssssssssssssssssssssssxsssssssssss [ 75%]
sxs.ssssssxssssssssxsssssssssssxsssssssssxssssssssssxsssssxsss..ssxsssss [ 75%]
ssxssssssssssssssssssssssssssssssssxssssssssssssssssx.sx.sssssssssssssss [ 75%]
sssssssssss.xssxsssssssxxsssssssssssssssssssss.x.ssssssssssssxssssssssss [ 75%]
sssxssssssx.ssssxssssssssssssssssssssssssssssssssssssssssssssssssssssssx [ 75%]
xssssssssssssssssssssssssssxsssssssssssssssxssssssssxxssssssssssssssssss [ 75%]
sssssssxxssssssssssssssssssssss..sssssss.ssssssssssssssssssssssss.xsssss [ 76%]
ssxxssssssssxssssssssssssssssssssssssxxsxxssssssssssssssssssssssssssssxs [ 76%]
ssssssssssssssssssss.xxsssxssssssssssssssssssssssssssssssssssssssssxssss [ 76%]
ssssssssssssssssssxssssssssssss..ssssssssxxsssssssssssssssxxssssssssssss [ 76%]
ssxssss..ssssssssxxssssssssssssssssssssssssssssssssssxssssssssssssssssxx [ 76%]
ssssssssssssssssx.xsssssssssxxsssssssssssssssssssssxxssssssssxssss.xssss [ 76%]
sssssssssssssssssssssssssssssssssssssxssss.xssssssssssxxsssssssssssssssx.xsxxxs [ 76%]
ssssssssssxxxsss.sxsssssssxssssxsssssssssssssssssssssssxsssssssxsssssssx [ 77%]
sssssssssssssssssssssssssssssssssssssssssssssssssss.ssssssssssss.ssssssss [ 77%]
sss.sssssxxsssssssssssss.sssssssssssxssxssssssssssssssx.ssssssssssssssxs [ 77%]
ssssssssssssss..ssssssssssssssssssssssssssssssssssssxsssssssssssssssssss [ 77%]
ssssxsxsssxssssssxsxsssssssssssssssssssssssssxsssssssssssssssssxssssssss [ 77%]
ssssssssssxxssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 77%]
sssxssssssssssssssssssssssssssssssssssssssssxsssssxsssssssssssssssssssss [ 77%]
ssxsssssssssxssssssxssssssssssssssssssssssssssssssssssssssssssssssssssss [ 78%]
sssssssssssssssssssssxxsssss.xssssx.ssssssssssssssssssssssxxssssssssssss [ 78%]
ssssssssssssssssxsssssssssxssssxsssssss.sss.ss.sssssssxsss.sssxx.xxsssss [ 78%]
sssssssssssxsssxxsssxsssssssxsssxssssssssss.ssssxsssssxssssxxxxxssss.sss [ 78%]
ssxxssss.......xssssssxx.sssssssssxxxs.xxssssx.xxx.sssssssssssssssxxssss [ 78%]
sssxsssss.ssssssssssss.xssssssxxsssssssssssssssssxxssssssxxxssssssssssss [ 78%]
ssssssssssssssssssxsssxxssssssssssssssssssx.sx.xx.sxssssssxsssxxssssssss [ 78%]
ssssxssssssssxssssxxsss.xsxssxsss.ssxxxssxsssssssssssssxssssssxsssssxsssss [ 79%]
ssssssssssssxss.sssssssxsssxsssssxsssss.sssxsssssssxssssssxssssssssxs.ss [ 79%]
xsssxsssss.sssssssxssssssss.sssxsssssssssssssxsxssssssss.ssxsssss.ssssss. [ 79%]
sssssssxxsssssssssssssssssssss.sssss.ssssssssssssssssss.xssxssxxx.sxssss [ 79%]
sssxxsxxxx.sssssssssssssssssssssx.ssssssssssssssssssssssxxxsssssssssssss [ 79%]
ssssssssssssssssssssssssssssssssxxsssssssxxsssssssssssssxxssssssssssssss [ 79%]
sssssxx.xssssssssssssxxxssss.xssss.ssssssssssssssxxsxxxssxssssssssssssss [ 79%]
sxs.ssssssssssssssssxssssssssssssssssssss.ss.ssxsssssxsssxs.ssss.sxsssssss [ 80%]
sssssxxsxsxsssssssxsssssssxxsssssssssxsssssssxssssxssssssss.ssssssssssssx [ 80%]
sssssssxsxssssxssxssssssxsssssssxsssssssx.ssssssssxssssssssssssxssxs.sss [ 80%]
sssssxssxxssxsssssssssssssssssssssssssssssssssxss.ssssssss.sssssssssssss [ 80%]
sxssssxxs.sss.sssssssssssssssssssssssssssssxssssssssssssxsssssssssss.ssss [ 80%]
xsssssssxssssssxx.s.s.sssssssxssssssssssssssxx.x..sxxssxsssssxsxssssssssxs [ 80%]
ssssxssxsssssssssssxsxxsss.sssxs.ssssssssxxsss.sssssxsssssssss.sssssssss [ 80%]
sxxxssssssxsssssssssssssss.xssssssssxs.sssxssxsssssss.ssssxsxxxssssssxxs [ 81%]
s.ssssssssssssssssxsssssssssssssxssssssssxssssssssssssx.ssssxssss.sssssss [ 81%]
x.xsxsss.sssssssssssssssssssssssxsssxss..sssssssssssssssssssssssssssssss [ 81%]
ssssssssssssssssxsssssssssssx.xssss.ssssssssssssssssssssx.x..xxsssssssss [ 81%]
ssssssssssssxssxssssssss.x.ssssxxssssxsss.ssssssssssssssssssssssssssssx. [ 81%]
sssssssssssssssssxssssxsssxsssssss.ssssssssssssssssssssssssssss..xxsssss [ 81%]
sssssssssssssssxxxxssxxxxssssssssssss.xssssxxxsssssx.s...sssssss.sssssss [ 82%]
sssxxxx.x.xssss.ssssssss.s..xssssxssssssssssssssssssssssssssss.xssssssss [ 82%]
ssssssssssssssssssxssssssssssssssssssssssxssssssssssssssssssss.sssssssss [ 82%]
sssssssx.sssssssssssssxsssssxsssssssssssssssssssssss..xsss.xxxsssssssssx [ 82%]
xxsssxxssssssssxssssx.sssssxssssxssssssssssssxxxxsssss.sx.ssxxxxs.xssssx [ 82%]
sssssss.sssxsssssssssssssssssssss.sxxssssxss.xxsssssxsssssss.x...sssssxs [ 82%]
sssxx..ssxxssssssxss..sssssssss.sssssssssss.xsssssssssxxxxsssssss.ssssss [ 82%]
ss...xsssssssssxx.xsx.ssssssxxssssxsssssssssss...ssssssssssssssssssssss.xxssss [ 83%]
sss.ssxxx.xxxxxsxxsx.xxxxsss.ss.sxxxxsxxxxxsssxssssxsssssssssssxxxxxxssss [ 83%]
ssssss.xsssxxxxssssssxssss.ssssssssxsxxssss.ss..ssxsxsxsssssxxsssss..ssssx [ 83%]
xssssssxxsssssssssxx.sx.xssssssssssxs.sssxsxssss.sxsssssssss..xxxxsssssss [ 83%]
sssssssssx..xxssssssssxx.xsxx.xssss.sxss.sssss.sssxxxxssssxs.ss.sssssssxsxx [ 83%]
sxsssss.sssxxssxsxsssssx.sssssssssxsxxsssss.ssxssx.sssssssssx.ssssxsxsss [ 83%]
xsssxsssxssssssx.ssssssssssssssssxxxxxxx.xxxsxsssssssssssssxxxxxxxxxs.ss [ 83%]
ssssssss.ssssxxxxxxxsx.sssssssssssss.sxxxxxxxsxsssss...sssssxsssxxxssxsxss...s. [ 84%]
sxsssssxsssxxxx.ssssssxxssssss.xxxxsxsssssxsxxxssss.sssssxsxxsssssssssxx [ 84%]
ssxsssxsxsss.sssssssssssssssxsssssxssssssssssss.xsssssx.s.sssssxsssssssxss [ 84%]
.sssssssssssssssssx.ssssssss.sssssssssssxsssssssssssssssss..sxssssssss.sx [ 84%]
sss.sxssssssssssssxsxxssssssxs.ssssxsssssssssxsxsxssssssxsssssss.sxxsxssxs [ 84%]
xsxssssssxxssssssssssssssxxsssxsss.xssssxssssss.xxssssssssxs.ssssssxxsss [ 84%]
ssssssssssxxssxssssxsssssssssssssssxssss.ssssssx.ssssssssss.ssssssss.xxs [ 84%]
ssss.xsssssssxssssssssssssssssxsssssss.xsxsssssssxssssssxs.sssssxxxssssss [ 85%]
xsssssssxss.ssssx.sssssxs.sssssssssssxsssxsssssxssss.ssssssssxsssssxssss [ 85%]
ssssxx.sssssssssssxsssxxxsssss.sssssxssssxxsss.ssssssxssssxssssssssxssss [ 85%]
ssxsx.s.xxxxxxxxxxsssssxxssxxssssssssssssssssssssxsssssxxsssssssssssssss [ 85%]
ssssssssxxx.xxxssssssssssssssssssssssssss.ssssssssssssssssssssssssssssss [ 85%]
sssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssssssssssssssss [ 85%]
ssssxsxssss.sssssssssssssssssssx.ssssssssssssxssssssssssssssssssssssssxx [ 85%]
ssssssssssss..ssssssssssssssxsssssssssssssssssssssssssssssssssssssssssss [ 86%]
ssssss.xsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 86%]
sssssxssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 86%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 86%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 86%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 86%]
sssssssssssssssssssxssssssssssss.sssssssssssssssssssssssssssssssssssssss [ 86%]
sssssssssssssssxssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 87%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 87%]
.sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxss [ 87%]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxss [ 87%]
ssssssxsssssssssssssss.ssxssssssssssssssssssxssssssssssssxx..ssssssssssx [ 87%]
sssssx.xssss.sss.sxsxssxs.s.sssss.ssxxssxsxs.ssxsssxsxsssssxssxsxss.ss.s [ 87%]
xx.xsx.xsxxxxxs.xxxxxsxxssssx.sxxsss.xxsxsxssssxsssssxssssxssxxs.xsssss. [ 88%]
x.xssssssssssssssxss.ssxssssssssssx..xssxx.xxxssss.ssxsssssssssssssx.sss [ 88%]
ssss...sssssssssxx.s...sss.xxssss..x..xxxxxssxx.xssssxxxsx.sxxs..xs.xsxsx [ 88%]
xxxx.ssxxssxxssx.ssssssxxxsxssxssxxssssssssxxxxxxs..sssxsxssxxxssxxsxs.xsx [ 88%]
sxssssssssssssxs.ssxsxsxssxsssssxsssxssxsssxxsssxxs.sssssssssssssxsxsx.s [ 88%]
sxssssssssxssssxs.ssssssssssssssss.ssxxssx.s.ss.sssxxsssssssssssssxsssss [ 88%]
xsssssssssssssssssssssxxxssssssssssssssssxssssss.xssssssssxxssssssssssxs [ 88%]
sssssssssssssssssssssssssssssxxssssx.xssssssssssss..xxxxsssssssxxxssssss [ 89%]
sssssssxsssssssssssssssssss.xxxxxssssssssssssssssssssssssssxxssxxsxxxxs.x [ 89%]
s.xssssssssssssssssss.ssssssssssss.sssssssssssxsssssxsxxs..ssssssxxxssss [ 89%]
ssxss.sxsxssssssssssssssssxssxssssssssxsssssssssssssssx.sssssxss.ss.ssss [ 89%]
sss.sssssssxsxsxssxssssss.sssssssxsssxsssxxxsssssssssssss.ssssssssssssx. [ 89%]
ssssssssssssss.x.sssssssssssxsssssssssxxxssssxxsssssssssssxsssssssssssss [ 89%]
ssssssssssssssss.xssss.xssssssssssxx.xx.sxxxsssssxssxssxsssssxsss.ssxxxs [ 89%]
ssxxssssssssssx.ssssss.sssssssxssxxssxsss.sssxxsssxssssssxsssssssxsssxsssss [ 90%]
ssssssssssxsxxsxsssssssxssss.sxss.ssssssssssxx.xsxxssxssssssssssssssssss [ 90%]
s.xxxssssssssssssssssssssssssss.xssssssssssssssssssssssssssssssxxsssxsss [ 90%]
sxssssssssssxxxxssssssssssxssssssssssssss.xsssssssssssssssssxxssssssssss [ 90%]
sssssssxsss.ssssssssssxxsssxssssssssssssssssssssxxssssssssssssssssssssss [ 90%]
ssssssssssssssssssxsssssssssssssssssssssssssssssssssssssssssssss.sssssss [ 90%]
s.sssssssssssssssssssssssssssssssssssssssssssssssssssssxssssssssssssxxss [ 90%]
ssssssssssssssssssssssxssssssssssssssssxssssssssssssssssssssssssssssssss [ 91%]
sssssssssxsssssssssssssssssssssssssss.ssssssssssssssssssssssssssssssssss [ 91%]
sssssssssssssssssssssssssssssssssssssssssssssssssssxsssssssssssssss.ssss [ 91%]
sssssssssssssssssssssssssssssxsssssssssssssssssssssssssssssssssssssssssx [ 91%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 91%]
ssxssssssssssssssssxssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 91%]
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssxsssssss [ 91%]
ssssssssssssssxsssssssxssssxsssssssss.ssssssxssssss.xssssssxssssssssssss [ 92%]
sssssssssss..ssssssssssx.s..s.xsxssxssssss..sssxxssssssssssxsssss.ssssss [ 92%]
sxx.sssss.sss..sss.xsssxx.ssssssssss.xxxsxssssss.xx.ssxsxxxs.xx.xssssxsx [ 92%]
x.xsssx.xxxssssxxxxssxxssssxxsssssxx.xxssxxxxx.x.ssssssss....xxxxxssssxx [ 92%]
xxxxssssxsssssssssssssxxxsssssss.xsxxxsxsssssxssssssssssssssx..xxssssx.x [ 92%]
sss.xxxsss...x.xxxxxxssss.xxsxx.x....xxs.xxxssssssxx.sssss.x.xxxssxssssx [ 92%]
ssssssssssssxx.xxxsss.sxxssssx.ssssssssxxxssx.xx.xssssssxssssxxsssss.sss [ 92%]
ssssssxxsssxsssssssssssss.xxxssssssssxssssssxx.xxxx.x.xxxx.sssxxssssssss [ 93%]
sxxxx.xsxxssss..xxxsssssxsssssssss..xxssxxssssxxxsxxxxssssxxxsssssssssss [ 93%]
sssssssssssssssssssssss.xxssss..ssssssssssssssx.xss.ssssssssss.x.xxxx.sx [ 93%]
xxxxxssssxxsxxxsssxs.xxxssxsxsssxxx.xsxx.xsssssssssssxxxsssssssssx.xxsss [ 93%]
sssssx..ssssssxxsssssss.xssssssssssssssssssssssxsssssssssxxxssssssssssss [ 93%]
sxxxxsssssssssssssssssxssssssxssssx.xssssssxsssssssxxxsxxxsx.ssxssxxssss [ 93%]
xxsxxsssss.sxsssxssxssssssssxsssssssxssssssxssx.s.sssxsssssssss.s.sxsxss [ 93%]
s.ssssxsss..ssssssssssssssssssssssssxxsssssxxssssssxxssssssssssssssssssx [ 94%]
sssssssxssssssssssssssssssssssssssssssssss.xxssxssssxsssssssssssxsssssss [ 94%]
sssssssssssssssssss.xssssxsssssssssssssssxsssssssssssss.ssssssssssssssss [ 94%]
sssxsxxsss.ssxssssssssssxsssssssssssxsssssssssxsssssssssssssssssssssssss [ 94%]
sssssssssssssssssssssssss.sssssssssssssssssssxsssssssssssssssxxsssssssss [ 94%]
sssxsssssssssss.sssssssssssssssssssssssssssssssxsxss.ssssssssssssss.ssss [ 94%]
ssssssss.sssssssssssssss.ss..s.xsx..sss.ss....s.ss....s...s.x.xs.s...s.. [ 94%]
.........ss.s..s......s...xs..s......................x...x.............. [ 95%]
.....................s.s............s................................... [ 95%]
....s....s......................s....................s..............s... [ 95%]
....................s.......................s..............s..........s. [ 95%]
........................................................................ [ 95%]
............................................................................ [ 95%]
........................................................................ [ 95%]
............................................................................ [ 96%]
........................................................................ [ 96%]
........................................................................ [ 96%]
........................................................................ [ 96%]
......................................................................... [ 96%]
.......................................................................... [ 96%]
........................................................................ [ 97%]
..........x........xx.....................x.....x..x.x.................. [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
.............................x.......................................... [ 97%]
........................................................................ [ 97%]
........................................................................ [ 97%]
........................................................................ [ 98%]
........................................................................ [ 98%]
........................................................................ [ 98%]
........................................................................ [ 98%]
..x................................s..sssss...............ssssx.....x... [ 98%]
ss.......................sssssss.s.sss.sss...sss..s.s.s.ss..sssss.sssss.s [ 98%]
ssssssss.........s.........sss..x...x.........s...............sx........ [ 98%]
.........................s............x......x..............x.....s..... [ 99%]
..s...............s.s.........x.......sss.....s..s..ss..s.s....sss.sx... [ 99%]
.s.ssss.sss.....s..sx.s.x.s....ss..ss.................s.s....s...s..x... [ 99%]
...ss......s.x......s..........sssss.s......s.....s.ssss.s.........ss.ss [ 99%]
sss..s...ss...ss.s.ss...ss....s.................................ss...... [ 99%]
......s....sss....s...s.s.....x....................................s.... [ 99%]
........................................................................ [ 99%]
......s........................                                          [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates
fatal: bad object HEAD


---------- coverage: platform linux, python 3.8.13-final-0 -----------
Coverage XML written to file coverage.xml

= 8987 passed, 37801 skipped, 2917 xfailed, 31124 warnings in 150.30s (0:02:30) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
Tests are successful


<b>Remaining output truncated<b>


Copy link
Collaborator

@naren-ponder naren-ponder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work on this @mvashishtha. Just have a few questions, but overall looks good to me.

# either.
level += 1

frame = sys._getframe(level + 1)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we bumping level by one again here?

level += 1

frame = sys._getframe(level + 1)
f_locals = frame.f_locals
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason you removed the try finally statements?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, please retain the try..finally, it's here to protect against creating a reference cycle if any exception fires during getting the variables. Maybe we should extend this finally until for name in local_names loop is over and remove f_locals and f_globals as well for the same refcycle reason...

level += 1

frame = sys._getframe(level + 1)
f_locals = frame.f_locals
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, please retain the try..finally, it's here to protect against creating a reference cycle if any exception fires during getting the variables. Maybe we should extend this finally until for name in local_names loop is over and remove f_locals and f_globals as well for the same refcycle reason...

Comment on lines +821 to +826
# Bump level up one because this function is wrapped in the Modin
# logging function wrapper. The alternative is for the wrapper to
# give the Modin functions that deal with `level` the special
# treatment of bumping `level` up by one, but that's not so nice
# either.
level += 1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should just discard any modin-owned frames (or at least logging-owned) instead of calculating this offset manually

self._validate_eval_query(expr, **kwargs)
inplace = validate_bool_kwarg(inplace, "inplace")
self._update_var_dicts_in_kwargs(expr, kwargs)
self._update_var_dicts_in_kwargs(expr, level + 1, kwargs)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you had already increased level above, why again +1?

self._validate_eval_query(expr, **kwargs)
inplace = validate_bool_kwarg(inplace, "inplace")
self._update_var_dicts_in_kwargs(expr, kwargs)
self._update_var_dicts_in_kwargs(expr, level + 1, kwargs)
# Make sure to not pass level to query compiler
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this comment is needed

new_query_compiler = self._query_compiler.eval(expr, **kwargs)
return_type = type(
pandas.DataFrame(columns=self.columns)
.astype(self.dtypes)
.eval(expr, **kwargs)
.eval(expr, level=level + 1, **kwargs)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

again, why +1?

Comment on lines +1723 to +1734
# Remove `level` from the kwargs if it's already there. "level" doesn't
# make sense within the remote execution context, where the remote
# functions have a stack which is different from the stack on the
# driver node that ends in the modin eval call.
level = kwargs.pop("level", 0)

# Bump level up one because this function is wrapped in the Modin
# logging function wrapper. The alternative is for the wrapper to
# give the Modin functions that deal with `level` the special
# treatment of bumping `level` up by one, but that's not so nice
# eitiher.
level += 1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

given I see exact same wall of comments three times already, maybe we should turn this into a helper function like

def _extract_eval_level(kwargs):
    """
    Extract `level` from eval or query `kwargs`.

    Remove `level` from the kwargs if it's already there. "level" doesn't
    make sense within the remote execution context, where the remote
    functions have a stack which is different from the stack on the
    driver node that ends in the modin eval call.

    Bump level up one because eval/query are wrapped in the Modin
    logging function wrapper.
    """
    level = kwargs.pop("level", 0) + 1
    return level, kwargs

and then use it here like

def query(self, expr, inplace=False, **kwargs):
    # docstring
    level, kwargs = _extract_eval_level(kwargs)
    # do the rest of the stuff

Comment on lines +308 to +309
df_method_with_local_var(modin_df, method, expr, level=level),
df_method_with_local_var(pandas_df, method, expr, level=level),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should also test the case of omitting the level argument (to ensure we and pandas stay on the same page about default value of level).

@@ -795,25 +795,40 @@ def equals(self, other): # noqa: PR01, RT01, D200
and self.eq(other).all().all()
)

def _update_var_dicts_in_kwargs(self, expr, kwargs):
def _update_var_dicts_in_kwargs(self, expr, level: int, kwargs):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: might as well add type annotations for expr and kwargs here.

"""
Copy variables with "@" prefix in `local_dict` and `global_dict` keys of kwargs.

This function exists because we neeed to infer local and variables

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this say local and *global* variables here? it feels like it's missing a word.

Copy link
Collaborator

@RehanSD RehanSD left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a quick comment.

infer them on their own. The remote functions take place in a different
thread with their own stacks that normally do not match the stack that
leads to the Modin eval or query call.

Parameters
----------
expr : str
The expression string to search variables with "@" prefix.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The expression string to search variables with "@" prefix.
The expression string to search for variables with "@" prefix.

@mvashishtha mvashishtha self-assigned this Jul 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

BUG: df.query and df.eval harcode level
6 participants