From d4edb21fefe98a0eefdab300d5e22ba767a02487 Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Sun, 17 Apr 2022 11:45:05 -0400 Subject: [PATCH 01/16] snapshots_tests_failures dir creation with Actual/Diff/Expected snapshot .png files inside --- tests/test_plugin.py | 120 ++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 64 deletions(-) diff --git a/tests/test_plugin.py b/tests/test_plugin.py index 07cd605..bfa5626 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -1,68 +1,60 @@ import sys +import os +from io import BytesIO from pathlib import Path - +from typing import Any, Callable import pytest -import requests - - -@pytest.mark.parametrize( - "browser_name", - ["chromium", "firefox", "webkit"], -) -def test_snapshot_create(browser_name: str, testdir: pytest.Testdir) -> None: - testdir.makepyfile( - """ - def test_snapshot(page, assert_snapshot): - page.goto("https://example.com") - assert_snapshot(page.screenshot(), "test-snapshot.png") - """ - ) - filepath = ( - Path(testdir.tmpdir) - / "__snapshots__" - / browser_name - / sys.platform - / "test-snapshot.png" - ).resolve() - - result = testdir.runpytest("--browser", browser_name) - result.assert_outcomes(failed=1) - assert "Snapshot not found, use --update-snapshots to update it." in "".join( - result.outlines +from PIL import Image +from pixelmatch.contrib.PIL import pixelmatch + + +@pytest.fixture +def assert_snapshot(pytestconfig: Any, request: Any, browser_name: str) -> Callable: + test_name = f"{str(request.node.name)}[{str(sys.platform)}]" + + def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png') -> None: + update_snapshot = pytestconfig.getoption("--update-snapshots") + test_file_name = str(os.path.basename(request.node.fspath)).strip('.py') + filepath = ( + Path(request.node.fspath).parent.resolve() + / 'snapshots' + / test_file_name + ) + filepath.mkdir(parents=True, exist_ok=True) + file = filepath / name + if update_snapshot: + file.write_bytes(img) + return + if not file.exists(): + pytest.fail("Snapshot not found, use --update-snapshots to update it.") + img_a = Image.open(BytesIO(img)) + img_b = Image.open(file) + img_diff = Image.new("RGBA", img_a.size) + + mismatch = pixelmatch(img_a, img_b, img_diff, includeAA=True, threshold=threshold) + + if mismatch == 0: + "Snapshots match!" + else: + results_dir_name = "snapshots_tests_failures" + test_results_dir = ( + Path(request.node.fspath).parent.resolve() + / f'{results_dir_name}/{test_file_name}/{test_name}' + ) + test_results_dir.mkdir(parents=True, exist_ok=True) + img_diff.save(f'{test_results_dir}/Diff_{name}') + img_a.save(f'{test_results_dir}/Actual_{name}') + img_b.save(f'{test_results_dir}/Expected_{name}') + pytest.fail("Snapshots DO NOT match...") + + return compare + + +def pytest_addoption(parser: Any) -> None: + group = parser.getgroup("playwright-snapshot", "Playwright Snapshot") + group.addoption( + "--update-snapshots", + action="store_true", + default=False, + help="Update snapshots.", ) - assert not filepath.exists() - - result = testdir.runpytest("--browser", browser_name, "--update-snapshots") - result.assert_outcomes(passed=1) - assert filepath.exists() - - -@pytest.mark.parametrize( - "browser_name", - ["chromium", "firefox", "webkit"], -) -def test_snapshot_fail(browser_name: str, testdir: pytest.Testdir) -> None: - testdir.makepyfile( - """ - def test_snapshot(page, assert_snapshot): - page.goto("https://via.placeholder.com/250/000000") - element = page.query_selector('img') - assert_snapshot(element.screenshot(), "test-snapshot.png") - """ - ) - filepath = ( - Path(testdir.tmpdir) - / "__snapshots__" - / browser_name - / sys.platform - / "test-snapshot.png" - ).resolve() - - result = testdir.runpytest("--browser", browser_name, "--update-snapshots") - result.assert_outcomes(passed=1) - assert filepath.exists() - img = requests.get("https://via.placeholder.com/250/FFFFFF").content - filepath.write_bytes(img) - result = testdir.runpytest("--browser", browser_name) - result.assert_outcomes(failed=1) - assert "Snapshots does not match" in "".join(result.outlines) From c0f5eaf6c35b777ad398b48838299895de3936a0 Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Sun, 17 Apr 2022 12:04:03 -0400 Subject: [PATCH 02/16] new snapshot creation when file does not exist with pytest.fail(of_course) --- pytest_playwright_snapshot/plugin.py | 38 ++++++--- tests/test_plugin.py | 120 ++++++++++++++------------- 2 files changed, 92 insertions(+), 66 deletions(-) diff --git a/pytest_playwright_snapshot/plugin.py b/pytest_playwright_snapshot/plugin.py index a3c4057..f7a3632 100644 --- a/pytest_playwright_snapshot/plugin.py +++ b/pytest_playwright_snapshot/plugin.py @@ -1,8 +1,8 @@ import sys +import os from io import BytesIO from pathlib import Path from typing import Any, Callable - import pytest from PIL import Image from pixelmatch.contrib.PIL import pixelmatch @@ -10,13 +10,15 @@ @pytest.fixture def assert_snapshot(pytestconfig: Any, request: Any, browser_name: str) -> Callable: - def compare(img: bytes, name: str, *, threshold: float = 0.1) -> None: + test_name = f"{str(request.node.name)}[{str(sys.platform)}]" + + def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png') -> None: update_snapshot = pytestconfig.getoption("--update-snapshots") + test_file_name = str(os.path.basename(request.node.fspath)).strip('.py') filepath = ( Path(request.node.fspath).parent.resolve() - / "__snapshots__" - / browser_name - / sys.platform + / 'snapshots' + / test_file_name ) filepath.mkdir(parents=True, exist_ok=True) file = filepath / name @@ -24,11 +26,27 @@ def compare(img: bytes, name: str, *, threshold: float = 0.1) -> None: file.write_bytes(img) return if not file.exists(): - pytest.fail("Snapshot not found, use --update-snapshots to update it.") - image = Image.open(BytesIO(img)) - golden = Image.open(file) - diff_pixels = pixelmatch(image, golden, threshold=threshold) - assert diff_pixels == 0, "Snapshots does not match" + file.write_bytes(img) + pytest.fail("Snapshot not found, created new one. To update, use --update-snapshots") + img_a = Image.open(BytesIO(img)) + img_b = Image.open(file) + img_diff = Image.new("RGBA", img_a.size) + + mismatch = pixelmatch(img_a, img_b, img_diff, includeAA=True, threshold=threshold) + + if mismatch == 0: + "Snapshots match!" + else: + results_dir_name = "snapshots_tests_failures" + test_results_dir = ( + Path(request.node.fspath).parent.resolve() + / f'{results_dir_name}/{test_file_name}/{test_name}' + ) + test_results_dir.mkdir(parents=True, exist_ok=True) + img_diff.save(f'{test_results_dir}/Diff_{name}') + img_a.save(f'{test_results_dir}/Actual_{name}') + img_b.save(f'{test_results_dir}/Expected_{name}') + pytest.fail("Snapshots DO NOT match!") return compare diff --git a/tests/test_plugin.py b/tests/test_plugin.py index bfa5626..07cd605 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -1,60 +1,68 @@ import sys -import os -from io import BytesIO from pathlib import Path -from typing import Any, Callable + import pytest -from PIL import Image -from pixelmatch.contrib.PIL import pixelmatch - - -@pytest.fixture -def assert_snapshot(pytestconfig: Any, request: Any, browser_name: str) -> Callable: - test_name = f"{str(request.node.name)}[{str(sys.platform)}]" - - def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png') -> None: - update_snapshot = pytestconfig.getoption("--update-snapshots") - test_file_name = str(os.path.basename(request.node.fspath)).strip('.py') - filepath = ( - Path(request.node.fspath).parent.resolve() - / 'snapshots' - / test_file_name - ) - filepath.mkdir(parents=True, exist_ok=True) - file = filepath / name - if update_snapshot: - file.write_bytes(img) - return - if not file.exists(): - pytest.fail("Snapshot not found, use --update-snapshots to update it.") - img_a = Image.open(BytesIO(img)) - img_b = Image.open(file) - img_diff = Image.new("RGBA", img_a.size) - - mismatch = pixelmatch(img_a, img_b, img_diff, includeAA=True, threshold=threshold) - - if mismatch == 0: - "Snapshots match!" - else: - results_dir_name = "snapshots_tests_failures" - test_results_dir = ( - Path(request.node.fspath).parent.resolve() - / f'{results_dir_name}/{test_file_name}/{test_name}' - ) - test_results_dir.mkdir(parents=True, exist_ok=True) - img_diff.save(f'{test_results_dir}/Diff_{name}') - img_a.save(f'{test_results_dir}/Actual_{name}') - img_b.save(f'{test_results_dir}/Expected_{name}') - pytest.fail("Snapshots DO NOT match...") - - return compare - - -def pytest_addoption(parser: Any) -> None: - group = parser.getgroup("playwright-snapshot", "Playwright Snapshot") - group.addoption( - "--update-snapshots", - action="store_true", - default=False, - help="Update snapshots.", +import requests + + +@pytest.mark.parametrize( + "browser_name", + ["chromium", "firefox", "webkit"], +) +def test_snapshot_create(browser_name: str, testdir: pytest.Testdir) -> None: + testdir.makepyfile( + """ + def test_snapshot(page, assert_snapshot): + page.goto("https://example.com") + assert_snapshot(page.screenshot(), "test-snapshot.png") + """ + ) + filepath = ( + Path(testdir.tmpdir) + / "__snapshots__" + / browser_name + / sys.platform + / "test-snapshot.png" + ).resolve() + + result = testdir.runpytest("--browser", browser_name) + result.assert_outcomes(failed=1) + assert "Snapshot not found, use --update-snapshots to update it." in "".join( + result.outlines ) + assert not filepath.exists() + + result = testdir.runpytest("--browser", browser_name, "--update-snapshots") + result.assert_outcomes(passed=1) + assert filepath.exists() + + +@pytest.mark.parametrize( + "browser_name", + ["chromium", "firefox", "webkit"], +) +def test_snapshot_fail(browser_name: str, testdir: pytest.Testdir) -> None: + testdir.makepyfile( + """ + def test_snapshot(page, assert_snapshot): + page.goto("https://via.placeholder.com/250/000000") + element = page.query_selector('img') + assert_snapshot(element.screenshot(), "test-snapshot.png") + """ + ) + filepath = ( + Path(testdir.tmpdir) + / "__snapshots__" + / browser_name + / sys.platform + / "test-snapshot.png" + ).resolve() + + result = testdir.runpytest("--browser", browser_name, "--update-snapshots") + result.assert_outcomes(passed=1) + assert filepath.exists() + img = requests.get("https://via.placeholder.com/250/FFFFFF").content + filepath.write_bytes(img) + result = testdir.runpytest("--browser", browser_name) + result.assert_outcomes(failed=1) + assert "Snapshots does not match" in "".join(result.outlines) From e382315cbf4512361d826707fb82ad64ac845299 Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Sun, 17 Apr 2022 16:07:43 -0400 Subject: [PATCH 03/16] test_results_dir removal before test --- pytest_playwright_snapshot/plugin.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/pytest_playwright_snapshot/plugin.py b/pytest_playwright_snapshot/plugin.py index f7a3632..621ff6a 100644 --- a/pytest_playwright_snapshot/plugin.py +++ b/pytest_playwright_snapshot/plugin.py @@ -1,5 +1,6 @@ import sys import os +import shutil from io import BytesIO from pathlib import Path from typing import Any, Callable @@ -22,6 +23,17 @@ def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png') -> N ) filepath.mkdir(parents=True, exist_ok=True) file = filepath / name + + results_dir_name = (Path(request.node.fspath).parent.resolve() + / "snapshots_tests_failures" + ) + test_results_dir = ( + results_dir_name + /test_file_name/test_name + ) + + if test_results_dir.exists(): + shutil.rmtree(test_results_dir) if update_snapshot: file.write_bytes(img) return @@ -37,11 +49,7 @@ def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png') -> N if mismatch == 0: "Snapshots match!" else: - results_dir_name = "snapshots_tests_failures" - test_results_dir = ( - Path(request.node.fspath).parent.resolve() - / f'{results_dir_name}/{test_file_name}/{test_name}' - ) + test_results_dir.mkdir(parents=True, exist_ok=True) img_diff.save(f'{test_results_dir}/Diff_{name}') img_a.save(f'{test_results_dir}/Actual_{name}') From b82b23365538d3f22c4d37dc1a43fb68427b4841 Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Sun, 17 Apr 2022 17:21:50 -0400 Subject: [PATCH 04/16] linted and added comments --- pytest_playwright_snapshot/plugin.py | 29 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/pytest_playwright_snapshot/plugin.py b/pytest_playwright_snapshot/plugin.py index 621ff6a..3c7f6f6 100644 --- a/pytest_playwright_snapshot/plugin.py +++ b/pytest_playwright_snapshot/plugin.py @@ -4,6 +4,7 @@ from io import BytesIO from pathlib import Path from typing import Any, Callable + import pytest from PIL import Image from pixelmatch.contrib.PIL import pixelmatch @@ -17,21 +18,21 @@ def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png') -> N update_snapshot = pytestconfig.getoption("--update-snapshots") test_file_name = str(os.path.basename(request.node.fspath)).strip('.py') filepath = ( - Path(request.node.fspath).parent.resolve() - / 'snapshots' - / test_file_name + Path(request.node.fspath).parent.resolve() + / 'snapshots' + / test_file_name ) filepath.mkdir(parents=True, exist_ok=True) file = filepath / name - + # Create a dir where all snapshot test failures will go results_dir_name = (Path(request.node.fspath).parent.resolve() - / "snapshots_tests_failures" - ) + / "snapshots_tests_failures" + ) test_results_dir = ( results_dir_name - /test_file_name/test_name + / test_file_name / test_name ) - + # Remove a single test's past run dir with actual, diff and expected images if test_results_dir.exists(): shutil.rmtree(test_results_dir) if update_snapshot: @@ -43,18 +44,16 @@ def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png') -> N img_a = Image.open(BytesIO(img)) img_b = Image.open(file) img_diff = Image.new("RGBA", img_a.size) - mismatch = pixelmatch(img_a, img_b, img_diff, includeAA=True, threshold=threshold) - - if mismatch == 0: - "Snapshots match!" - else: - + try: + assert mismatch == 0 + except: + # Create new test_results folder test_results_dir.mkdir(parents=True, exist_ok=True) img_diff.save(f'{test_results_dir}/Diff_{name}') img_a.save(f'{test_results_dir}/Actual_{name}') img_b.save(f'{test_results_dir}/Expected_{name}') - pytest.fail("Snapshots DO NOT match!") + assert mismatch == 0, "Snapshots DO NOT match!" return compare From 08b617973a1c5ce24f53d640cf1a04bca58b93be Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Sun, 24 Apr 2022 17:20:13 -0400 Subject: [PATCH 05/16] added ci tests and fail on --update-snapshots --- pytest_playwright_snapshot/plugin.py | 33 +++-- tests/test_plugin.py | 175 +++++++++++++++++++++++---- 2 files changed, 167 insertions(+), 41 deletions(-) diff --git a/pytest_playwright_snapshot/plugin.py b/pytest_playwright_snapshot/plugin.py index 3c7f6f6..814de54 100644 --- a/pytest_playwright_snapshot/plugin.py +++ b/pytest_playwright_snapshot/plugin.py @@ -4,7 +4,6 @@ from io import BytesIO from pathlib import Path from typing import Any, Callable - import pytest from PIL import Image from pixelmatch.contrib.PIL import pixelmatch @@ -12,48 +11,48 @@ @pytest.fixture def assert_snapshot(pytestconfig: Any, request: Any, browser_name: str) -> Callable: - test_name = f"{str(request.node.name)}[{str(sys.platform)}]" + test_name = f"{str(Path(request.node.name))}[{str(sys.platform)}]" + test_dir = str(Path(request.node.name)).split('[', 1)[0] - def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png') -> None: + def compare(img: bytes, *, threshold: float = 0., name=f'{test_name}.png') -> None: update_snapshot = pytestconfig.getoption("--update-snapshots") - test_file_name = str(os.path.basename(request.node.fspath)).strip('.py') + test_file_name = str(os.path.basename(Path(request.node.fspath))).strip('.py') filepath = ( Path(request.node.fspath).parent.resolve() / 'snapshots' / test_file_name + / test_dir ) filepath.mkdir(parents=True, exist_ok=True) file = filepath / name # Create a dir where all snapshot test failures will go results_dir_name = (Path(request.node.fspath).parent.resolve() - / "snapshots_tests_failures" - ) - test_results_dir = ( - results_dir_name - / test_file_name / test_name - ) + / "snapshot_tests_failures") + test_results_dir = (results_dir_name + / test_file_name / test_name) # Remove a single test's past run dir with actual, diff and expected images if test_results_dir.exists(): shutil.rmtree(test_results_dir) if update_snapshot: file.write_bytes(img) - return + pytest.fail("--> Snapshots updated. Please review images") if not file.exists(): file.write_bytes(img) - pytest.fail("Snapshot not found, created new one. To update, use --update-snapshots") + # pytest.fail( + pytest.fail("--> New snapshot(s) created. Please review images") img_a = Image.open(BytesIO(img)) img_b = Image.open(file) img_diff = Image.new("RGBA", img_a.size) - mismatch = pixelmatch(img_a, img_b, img_diff, includeAA=True, threshold=threshold) - try: - assert mismatch == 0 - except: + mismatch = pixelmatch(img_a, img_b, img_diff, threshold=threshold) + if mismatch == 0: + return + else: # Create new test_results folder test_results_dir.mkdir(parents=True, exist_ok=True) img_diff.save(f'{test_results_dir}/Diff_{name}') img_a.save(f'{test_results_dir}/Actual_{name}') img_b.save(f'{test_results_dir}/Expected_{name}') - assert mismatch == 0, "Snapshots DO NOT match!" + pytest.fail("--> Snapshots DO NOT match!") return compare diff --git a/tests/test_plugin.py b/tests/test_plugin.py index 07cd605..4ad7f31 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -1,68 +1,195 @@ import sys from pathlib import Path - import pytest import requests +import os @pytest.mark.parametrize( "browser_name", ["chromium", "firefox", "webkit"], ) -def test_snapshot_create(browser_name: str, testdir: pytest.Testdir) -> None: +def test_filepath_exists(browser_name: str, testdir: pytest.Testdir) -> None: testdir.makepyfile( """ def test_snapshot(page, assert_snapshot): page.goto("https://example.com") - assert_snapshot(page.screenshot(), "test-snapshot.png") + assert_snapshot(page.screenshot()) """ ) filepath = ( - Path(testdir.tmpdir) - / "__snapshots__" - / browser_name - / sys.platform - / "test-snapshot.png" + Path(testdir.tmpdir) + / "snapshots" + / "test_filepath_exists" + / "test_snapshot" + / f"test_snapshot[{browser_name}][{sys.platform}].png" ).resolve() - result = testdir.runpytest("--browser", browser_name) + file_path_actual, file_name = "", "" + for dirpath, dirnames, filenames in os.walk("."): + for filename in [f for f in filenames + if f.endswith(".png")]: + file_path_actual = dirpath + file_name = filename result.assert_outcomes(failed=1) - assert "Snapshot not found, use --update-snapshots to update it." in "".join( - result.outlines + if not filepath.exists(): + pytest.fail(f"Filepath does not exist, but found this dir {file_path_actual} " + f"and filename :{file_name})") + + +@pytest.mark.parametrize( + "browser_name", + ["chromium", "firefox", "webkit"], +) +def test_compare_pass(browser_name: str, testdir: pytest.Testdir) -> None: + testdir.makepyfile( + """ + def test_snapshot(page, assert_snapshot): + page.goto("https://example.com") + assert_snapshot(page.screenshot()) + """ ) - assert not filepath.exists() + result = testdir.runpytest("--browser", browser_name) + result.assert_outcomes(failed=1) + assert "--> New snapshot(s) created. Please review images" in "".join(result.outlines) + result = testdir.runpytest("--browser", browser_name) + result.assert_outcomes(passed=1) - result = testdir.runpytest("--browser", browser_name, "--update-snapshots") + +@pytest.mark.parametrize( + "browser_name", + ["chromium", "firefox", "webkit"], +) +def test_custom_image_name_generated(browser_name: str, testdir: pytest.Testdir) -> None: + testdir.makepyfile( + """ + def test_snapshot(page, assert_snapshot): + page.goto("https://example.com") + assert_snapshot(page.screenshot(), name="test.png") + """ + ) + filepath = ( + Path(testdir.tmpdir) + / "snapshots" + / "test_custom_image_name_generated" + / "test_snapshot" + / f"test.png" + ).resolve() + result = testdir.runpytest("--browser", browser_name) + file_path_actual, file_name = "", "" + for dirpath, dirnames, filenames in os.walk("."): + for filename in [f for f in filenames + if f.endswith(".png")]: + file_path_actual = dirpath + file_name = filename + result.assert_outcomes(failed=1) + if not filepath.exists(): + pytest.fail(f"Filepath does not exist, but found this dir {file_path_actual} " + f"and filename :{file_name})") + result.assert_outcomes(failed=1) + result = testdir.runpytest("--browser", browser_name) result.assert_outcomes(passed=1) - assert filepath.exists() @pytest.mark.parametrize( "browser_name", ["chromium", "firefox", "webkit"], ) -def test_snapshot_fail(browser_name: str, testdir: pytest.Testdir) -> None: +def test_compare_fail(browser_name: str, testdir: pytest.Testdir) -> None: testdir.makepyfile( """ def test_snapshot(page, assert_snapshot): page.goto("https://via.placeholder.com/250/000000") element = page.query_selector('img') - assert_snapshot(element.screenshot(), "test-snapshot.png") + assert_snapshot(element.screenshot()) """ ) + # test_name = f"{str(Path(request.node.name))}[{str(sys.platform)}]" filepath = ( - Path(testdir.tmpdir) - / "__snapshots__" - / browser_name - / sys.platform - / "test-snapshot.png" + Path(testdir.tmpdir) + / "snapshots" + / "test_compare_fail" + / "test_snapshot" + / f"test_snapshot[{browser_name}][{sys.platform}].png" ).resolve() + result = testdir.runpytest("--browser", browser_name, "--update-snapshots") + result.assert_outcomes(failed=1) + assert "--> Snapshots updated. Please review images" in "".join(result.outlines) + img = requests.get("https://via.placeholder.com/250/FFFFFF").content + filepath.write_bytes(img) + result = testdir.runpytest("--browser", browser_name) + result.assert_outcomes(failed=1) + assert "--> Snapshots DO NOT match!" in "".join(result.outlines) + +@pytest.mark.parametrize( + "browser_name", + ["chromium", "firefox", "webkit"], +) +def test_actual_expected_diff_images_generated(browser_name: str, testdir: pytest.Testdir) -> None: + testdir.makepyfile( + """ + def test_snapshot(page, assert_snapshot): + page.goto("https://via.placeholder.com/250/000000") + element = page.query_selector('img') + assert_snapshot(element.screenshot()) + """ + ) + # test_name = f"{str(Path(request.node.name))}[{str(sys.platform)}]" + filepath = ( + Path(testdir.tmpdir) + / "snapshots" + / "test_actual_expected_diff_images_generated" + / "test_snapshot" + / f"test_snapshot[{browser_name}][{sys.platform}].png" + ).resolve() result = testdir.runpytest("--browser", browser_name, "--update-snapshots") - result.assert_outcomes(passed=1) - assert filepath.exists() + result.assert_outcomes(failed=1) + assert "--> Snapshots updated. Please review images" in "".join( + result.outlines + ) img = requests.get("https://via.placeholder.com/250/FFFFFF").content filepath.write_bytes(img) result = testdir.runpytest("--browser", browser_name) result.assert_outcomes(failed=1) - assert "Snapshots does not match" in "".join(result.outlines) + results_dir_name = (Path(testdir.tmpdir) + / "snapshot_tests_failures") + test_results_dir = (results_dir_name + / "test_actual_expected_diff_images_generated" + / f"test_snapshot[{browser_name}][{sys.platform}]") + actual_img = (test_results_dir / f"Actual_test_snapshot[{browser_name}][{sys.platform}].png") + expected_img = (test_results_dir / f"Expected_test_snapshot[{browser_name}][{sys.platform}].png") + diff_img = (test_results_dir / f"Diff_test_snapshot[{browser_name}][{sys.platform}].png") + + # Validate the actual image exists in results folder + file_path_actual, file_name_actual = "", "" + for dirpath, dirnames, filenames in os.walk("."): + for filename in [f for f in filenames + if f.startswith("Actual_")]: + file_path_actual = dirpath + file_name_actual = filename + if not actual_img.exists(): + pytest.fail(f"Filepath does not exist, but found this dir {file_path_actual} " + f"and filename :{file_name_actual})") + + # Validate the expected image exists in results folder + file_path_expected, file_name_expected = "", "" + for dirpath, dirnames, filenames in os.walk("."): + for filename in [f for f in filenames + if f.startswith("Expected_")]: + file_path_expected = dirpath + file_name_expected = filename + if not expected_img.exists(): + pytest.fail(f"Filepath does not exist, but found this dir {file_path_expected} " + f"and filename :{file_name_expected})") + + # Validate the difference image exists in results folder + file_path_diff, file_name_diff = "", "" + for dirpath, dirnames, filenames in os.walk("."): + for filename in [f for f in filenames + if f.startswith("Diff_")]: + file_path_diff = dirpath + file_name_diff = filename + if not diff_img.exists(): + pytest.fail(f"Filepath does not exist, but found this dir {file_path_diff} " + f"and filename :{file_name_diff})") From 901da0f3889a6182f4591b7afee30e9f646ccc1f Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Sun, 24 Apr 2022 17:24:04 -0400 Subject: [PATCH 06/16] updated ci.yml --- .github/workflows/ci.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 110b43b..f2bb1bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,7 @@ name: CI on: push: branches: - - main + - symon-storozhenko-ci-test pull_request: env: @@ -11,14 +11,14 @@ env: jobs: infra: - name: Lint + name: Install dependencies runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: 3.10.4 - name: Install dependencies run: | python -m pip install --upgrade pip @@ -26,8 +26,6 @@ jobs: pip install -e . python -m playwright install-deps python -m playwright install - - name: Lint - uses: pre-commit/action@v2.0.3 test: name: Test @@ -36,7 +34,7 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: [3.7, 3.8, 3.9] + python-version: [3.8, 3.9, 3.10.4] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 From 5a48c67dcc91ff8d1c56aebccfecd2406ec1f5ce Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Sun, 24 Apr 2022 21:03:29 -0400 Subject: [PATCH 07/16] updated ci.yml --- .github/workflows/ci.yml | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f2bb1bc..7f52ac5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,30 +3,13 @@ name: CI on: push: branches: - - symon-storozhenko-ci-test + - main pull_request: env: PLAYWRIGHT_BROWSERS_PATH: 0 jobs: - infra: - name: Install dependencies - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: 3.10.4 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - pip install -e . - python -m playwright install-deps - python -m playwright install - test: name: Test timeout-minutes: 30 From 7416ecc3bb23de943e6d1d3ef2ed10453a86ee1a Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Sun, 24 Apr 2022 23:04:34 -0400 Subject: [PATCH 08/16] added publish-to-test-pypi.yml --- .github/workflows/publish-to-test-pypi.yml | 42 +++++++++++++++++++++ README.md | 34 ++++++++++++----- img.png | Bin 0 -> 101562 bytes 3 files changed, 66 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/publish-to-test-pypi.yml create mode 100644 img.png diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml new file mode 100644 index 0000000..18f5941 --- /dev/null +++ b/.github/workflows/publish-to-test-pypi.yml @@ -0,0 +1,42 @@ +name: Publish Python 🐍 distributions 📦 to PyPI and TestPyPI + +on: + push: + branches: + - main + +jobs: + build-n-publish: + name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Set up Python 3.10.4 + uses: actions/setup-python@v1 + with: + python-version: 3.10.4 + - name: Install pypa/build + run: >- + python -m + pip install + build + --user + - name: Build a binary wheel and a source tarball + run: >- + python -m + build + --sdist + --wheel + --outdir dist/ + - name: Publish distribution 📦 to Test PyPI + uses: pypa/gh-action-pypi-publish@master + with: + user: __token__ + password: ${{ secrets.TEST_PYPI_API_TOKEN }} + repository_url: https://test.pypi.org/legacy/ + - name: Publish distribution 📦 to PyPI + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@release/v1 + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} diff --git a/README.md b/README.md index 1573ecf..f0bd1a0 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,17 @@ -# Pytest Plugin for Snapshot Testing with Playwright +# Pytest Plugin for Visual Testing with Playwright -This plugin enables snapshot testing in playwright like snapshotting screenshots of pages, element handles etc. +Forked from https://github.com/kumaraditya303/pytest-playwright-snapshot. +In addition to snapshot comparison that pytest-playwright-snapshot provides, this plugin enables: +- visual review of mismatches +- creation of snapshots on the first run +- failing on `--update-snapshots` to make users manually review images +- snapshot name argument is not required, `test_name[browser][os].png` is generated by default +- updated folder structure: `snapshots/file_name/test_name/test_name[browser][os].png` ## Installation ```bash -$ pip install pytest-playwright-snapshot +$ pip install pytest-playwright-visual ``` ## Usage @@ -17,24 +23,32 @@ Example: ```python def test_myapp(page, assert_snapshot): page.goto("https://example.com") - assert_snapshot(page.screenshot(), "example.png") + assert_snapshot(page.screenshot()) ``` - -Ths first time you run pytest, you will get error like +Then, run pytest: +```bash +$ pytest +``` +Ths first time you run pytest, snapshots will be created, and you will get the error: ```console -Failed: Snapshot not found, use --update-snapshots to create it. +Failed: --> New snapshot(s) created. Please review images ``` -As first you need to create golden snapshots to which this plugin will compare in future. +The next run, the snapshots comparison will take place. -To create snapshots run: +To update snapshots, run: ```bash $ pytest --update-snapshots ``` -This will create snapshots for your tests, after that you can run the tests are usual and this will compare the snapshots. +After updating, tests will fail and you will need to review images again +In case of a mismatch, `snapshot_tests_failures` folder will be created with Actual, Expected and Diff images generated. + +##Example + +![img.png](img.png) There is `threshold` kwarg only option which can be used to set the threshold for the comparison of the screenshots and by default it is `0.1` diff --git a/img.png b/img.png new file mode 100644 index 0000000000000000000000000000000000000000..6153fde5e774ca4fd6150e8559aebb7f13a8efe2 GIT binary patch literal 101562 zcmc$lXH=8z7N+&nPe4SPfPgfmh;%}c8fnr&KG;hj5oNR*Z2weQ@y zi@<*=6F$J-$*12MxpU{s9c6i$_ui)aIe*WaKs>4fmX?+p>|v~-Pn?`lj?+)3MB-$q zZ<%dvZPU2xGHAJNZKJtuYgi>nUTcg!gLqmh?X!AjzqTgWuJSqnAjUEQm|uLu-PSp$ zl1MSXi3;bB6S>Z_Sqpw^?+Yu^WInNDlObErizE5tZm-DLS!Ps6#&&ky#+PS|#`aUe zW7!|TV}Az9)gigJYQmA_T86n_hhIYhI0;Z%*3aiu0~iYy|Hdi7@xHn7U;XQRqPXW> z5q$UaRHLrc)X4M7XgC&*&_$F}B%uS!N}^AwId=42CaRyVwwnbEM`{kKOB2E>cwv7T zleq*w?|OV+(l;yNly1nU@Zo(DEiZb0{o(ek1QR9M{v37Nu`I_y&1_bmlA(Gsf0Y9N z0Lh}|(zQDP&l`E2#<$9M(kb>#8f}Z*TG7)`k;)rZW9-dVUtc&p>S|fM6)r2@)fL2; zguH7e_2ty#29Bgf;b@LCUo%nmnkaXadletsZ^op|RDnLtfu0()Y$YbKCoqq$1tS=kwOx76|ozmsYpbBCB@bA@bvF4VXbwiX)3 zz8A}0Ait6bRl<-w{kS~_c2+4e&eAKm9Wok)&&nM)CVSNSd@@Y3gYcS+_bNoIRr-<$ z@fy5kJD8F;Y@FVMr$MA1o4jbg>DmmQ5SDmU{GmU{+dDdX0Fm&|{{%)1!L*F_lqLe? zh1{={>I31n(?9G_Q@BKB2nz>e0H9fCArCsCF=lbSsg*?{OVdt+A>Vomp&}_w*lWc6 z$W7yt+Vt!}|2GYCp3V2w7FHa$t~#crxn*lVBHw>sZuqz|D`Y>ZJ*v~$pl0$r7Tm}` zZrG%q)KFw%G*zb4Z6TPGbRwSg)@o+5O*QwKC}?3($lht1ORpfC-@eYE-6^NF(06=( z@PUNYHn-dQue;M~BRa2=pRrT7tdz;s>sAT}%}JSlU>C5_rh(B3+3zJdwbBasHi!kn zLhNUnIyEx5Ip-YbhlHGG*b{Z<>*Bbqs#^Tr>jt(8lX-ZVavWUHJJ!*oiX2A9(&7uS zlgVLf#NPdLSF-EaFw#Ba(W@`HOuGH0@RcC5HDLGbk+SRded0>{XkFXWv;*7eG{=&B zG9hXfYq66D_!}uaO}%oGs=ym@VZu`%KEU|BUIi(m7@rx7vvr8`dcu!`@zI zvh;;1rq!8?dmU8SFi#XJ#%GmHmx7i^7zO`iivtU)u`jg`gxc`n|2MC0f_j4Car7w3c0<{vShzI+jrPvPJnBSKDz~q&}h7e29HXg;PMI!;%Nm z#+KL2*_MD%{5ir?#MZ=vgFdS-|b;sTC%?`8D4)Z8PBkHYOilI=(Y%^IH~;b zlPEG)%e6yQsX{L=P$eunofpvjq0)(Z*)86nIk2)THfFD4AXJgY4l{VW}@qh7$kqQ-EiO{bXD02!2t= zI?%*w94zNHqk1p3;4(^W8~5f43jV!Zsj+-2T2Zb6s)Jd8Z+`7E$+otA+m*H`?7i(@ z8!v1#$N;)R$hxk;HhItwPr0Y}R|*2`)B(L|;M#iXqSg+%O^4~eUSrOpX5RxtH@`-@ z5~B%I74OO=kKe-UjmTLrnwa{bmLAnNuq8BGs&LkGB`j7wcu-w!I<2x{d8dN>TkKHl zd!A22)sEpBzHw}^T+fIZnvbC-?N8i5sXvun*@I@6{m%B_O3ofeYrK?STqxPIr2H;2 zl1>&~P5abx#mAo|ONx8!+GYtkv-o(tKgs2#BpyO{-6L@CePd98q^FTij_kT6$mlCD zY7dkfZf>KvMxP?apD5QSk^z&S7+=o@95w}Q3v*i6R6F?VM_rB8$QDIRJmQl7&*dna zj4L|}A#s6Wdtk63v`sh5CTD?)4bdOQU!=Mwv#p_28>ZiNPMc zhk{rTbe|I2H)G2EBJ{WYE)S+XR;?iMMC7Z^wi7wXgi~Ls!{yF!Lj(evqtgt4Y~B?s zY_>z0>XgCzFGA zzR3Z@ahmDOVn)nGUnImIs&d=~e|~u{J=?`h)2MFH9SNLo*j*lv$rdzHdOcm7!)hlI z!nVAqWw_OL5gmPfC}1^yxY9lzp;h>zjwY#bGe%)7j5vb4cYrN+i^xFE{1m~*PcQ1I zEj3i_v2@Y)_)%?LehfS`nz}r6vCdJV-U^`saPIl*lnvtgKu>kbneBMJXD^J0<^7O1 z%zDTt-mrcX;EeUJ*Bn`?(y^N^2_Q&}D~V2!pcbUe$+EP7=kF|(Rv(Uaect%i3fg>` zb6jI{v?1zU8?)RV@D4+JHxSsVFQgNlh@sHo0WV-r)9{B%y_POLw1|Yiwq2a7tVtVhHp#lH|_-|wr*TzrQ*}Mbx+CM(e zO+ysRDz^4Z2#91INF|TH7}U9!9nLpxAVnSCUkV@_9R9LO7irIPVapTuSbW4JpyK5! z*BkzrLEB5{&_M}vwhQ<)4x`eqbxk#_svw73KA70%8p>>RIC05yy9gEZ*jrRT?XO%7 zIwErn|C^X*4}A>h7(=@u#xEEo-0PpR#usZmqdwW4E*;mXouwCb&X5O_AE<)+0> zR(Qx*xY=a|(cl3hXUQ&;ibqpg_#llYDFsi8Uow?Ek$uO~s&%9ST}WAZoy&Cr4`8?t zYS%iQEiqVnTw(yepq&!(S?&>Ys=n4wtZH%w4_c%qrT;xq2# z)_oXwYcRSUYk9pxbNI3LJN_}qr*=gJ-l{tehYNA?O&D6)kfy(`@DKqT&Vs?#|y`Y0fK|Y4n@;7Abaky~Q;Llm=9gwXPm@1?C^<^Ov>#ud=j@{2 z9$E(l%#gxgqa$?2{|wf}v?LAjj~qf?Iz?n_QkFcOM=)o+$;Ny$5bQ z;CO^wWYb}%5z#pHfc;uLStNS9C%~&5opWjsAy$9;usx7T-T#n;p2^X_#55bfy;|a_ zr33d{e7&1-)W_0;5J*z}ha>#ndj8Mn`S&*a=klppOt&t~Z8)``CX4zyHBxbEdC`Ta zg*Nn`2CM%x_pqgfE97$e6|9MmUDMhqg2Vw`qv1rS{kHPuKaubhfC-m zp0epQ3z1O=^AQcu9E-kM9auSQUWtFYiE29zdM!?krjHZm7Wcv>KfQcS9n>;)T!meG z-2$SmhKN$ET1I(`ZFj@2cGjez1SqSiGz5RARP{}WTR zcbxO}pI>%k<8kwD*xT1YY_b?Epo8AC@rY&Roj%LeyUbU_sKH>bzPgQom3J9b^nr~> z7u^x@kf7_I8+oZXJHXL1yS`HF^fB+C)Z69=O@{EJs?FZgDfGvU!W!?68JFWkh(*D>?$z!a~GieQcyPD)ppR2wGygYX52+AcvMKc{DO^L4(a+&g| zfJZKF$qXqg_YVffQWI`32`;!Iaq>8hF%C@eCMD4@0cx8n9q3wor2DW8r+62ontv6w ziBd7W!XA5@y^3l+o_i?Gqj8k>`xZYu*wF*4?n^H`(7QX~VzZuXF~`3;!wDnq!-yYt zGf{_^J`xS3aHCZD_E&K5OsCPS$C{AMG^4QSw0@)z;HcjR z{hk$99?P*04`57JhQO(MIZi!cyacGIY6R@IgO@(Jf9bxej0XOjUhDHLz4eN}Q(#f0(*PWybfo8mC8|CwX~f?@QIsG3wgtO^QUW5PAbi zfcu|d2QD_SfMdAqQ!@ype9J*odKyT%&kl!k`<(YM8Qo~-p$Ya zg6xL%Rz1nBF>cGRiGL`~+YzA&Y=R-t_;1T2C#VmR{k!Omz>J_=boM{Y0j@$s$XA` z)Zdt&b)Wo}vqgV(&Nw!zDPhu$_N{mbAqBfoU|Y4~Ieo6SAidYg((#-!tv)V+Zn%gR zW|g67K2rI!Qga5b*lYRumyR&>Wvy0MJXhMq9UYqyx9wokK)aHCOcy#&it$4QNP%Ot zWH;(VCbwIPX5%hjhU!FzoysPY<%vrbnIbwpFHm(eJd5$X(M3P6X+Kb0t5X}jR)GdO zl^o)_7A_mT#>_~31xf6d_~=?UJU4tbQN+4{qOlUpfl%9YFnLK6aF1&R8qpJA ze8LhSu~6&1r}}y>9%%)4=cqTQh>u#bQcIF>6PT)x*}Cnbt;&(axuH*Q(1jtT~Ei*iawi%{b)= zaCcH&P+gF`xLKA`rsa z`x=yZGDnewQ? zurBaxO-s`c!c`JJ7{DVMKd_7pBE%nWxNV`e`Z;*)fX|Iu=xL@b$ZqBm<1>V1p&*o$ zl{64Wep-6V{Eb6BPr*z?F^*C60O2ou4?(<1n|LZ`U*y2^5rblaUxa0wAk$_1=V$fC zNmtRoGS=wX22$;Ueu#evIWxW8z--6po9kQOvfJ4P7u)5>CYq#k-_2ZZH4g@3ms}G{{>MIZhMgfHhVs z+=8W#Rj=Z5(4Bw&)?PYJ#jo?ZTB`@SpJPMtkZ|kK=ERtD;HBRwcnxcc#3`_7o#=b+ z@thv=6`XWl!!J|MYI!-W;yu=cojVvBY0=KDtmx7Hb?Mp+;MF*4+?lP@Or`yIlbU$i zVuL&m(lC7}>i*XoY<}IXOEu(=l)7P33cC1@eWw0Jzq8*uB#Q&MXt$gzn$m#Njz~cQ zTp^(C_(|&zkb3AlUK z6Qej;&N6qD?~Gf%(WonUcBv{6AfuEmeM=H^vvsc$QLE$WCy4a zv01aLL|X3ta}woy6gb4BCU|e!jBFqEL6>+za}g6pv1}y!1NTx_7rpPy_4N>UEm1No zwKgfdZAQ3p)1HE$uDwx0a6CVa@31c+wg+_;V1RAXpB8!ilp}Y$^ZX`a7LVK7642_4 zmjUX2w`e9#F{d=wMuThZDHReEV6R^Vx+(!zJ>IM^hzeY}Img$g?>vd;oft0EkH4|! zG=aSRw?>Z1-PD$T>Je!2+6E&PuvYgPQSCG%4^5|a7dj^o%=GZ?M1t!YZ<;qeG!f*B z2?ox#U`=%u!(~QODT!;&14rK($)kNg z@%*do2C)##i&ov_i_ZKi2auQ?lxP2Ag|{BQFY~Bol`cZ%={;DTIqj2H@#fN_tloU4-Gp;_ z!<7D&DdYK0ssuEnGh8DB^H^@oO#Owe+44=L(NdKdf-B*)Tf*t!W5A`)DTw7aL7tE1 z%3^{CRc!`Vm+Cb3_aR=EW+_#X9d@{MfC5*)aTe&b#ig=f^2X4W963qQ9Z%YA3QJSf3#; zMOcI)vOLy-3I08K{+lLluwyS9?V}$Q?7G)9gOcSomL_K#G(i@Oep@tcg|u@5_h;RE zqE#e~X_{{x2x>Q4%K21s7|GE3nzPV6e%$Si-}Z;v8!%z*D(3aWqvQaW6II=paF?atb zr!Be{N^nOtsOMNT^|Kw*^;g5Gn4zsuPXM4Fp zZ{9PGbKeucZlRUAK+#r#v4cLB180xV3gLSwq^XpDgK3b|hDpwI?8tiLCA^AtmBbC_ zi0fQEcAB5*4Kf_uE85zB`_3DjKs=IWE+PpU&tpj0(|7S+;(W3Ol!qp^K=R$V5x66f zklJB{*;^?qCvs5ZTpKErGQO)Ee!yJ&#FP=rS)+c|(G z?k;_IDYBuZigu{`<)$&os6mC(tWa%#&0h=ZYLc5{hRE*NxQa>(BQpT0G(E{#vr=wL zqsxp2nd{)sP;*phHWRK4eNP$LqCZKty!O~fCGtM#vZ258>edVt@cD%tl!qojv9k9a zrnIp#%ptG)l^4thLkDM%$fCeJ^i!L0Lz!G1Z<99<4-7JW^ zi5&U2Cqs*Qp6dkLx~*@$qRyA!EH(y*1m9vTG&6C}PAh!%=5wG~0LpgU3rdRg?|^IP z=VOD%Oh55E(c^Sr$f9VwA#zD~5MjvAX*H^^V9$aVM z|2W_Mq{poiU@8ma$WBb4+(u#$P8m3F6=`o(D5!(P!lh_GslMHaeyUs)rEoeJ59Ch{ z)tBbGKV>IpEg;j-%s!N&*!$*F!&-pk~RGn&=pgh6dB_Efc;05<95MG_J3o7EZ#t`cLxFt^``i$&4zQB}Z zl8Mh*FYGq|`5CUpB6H%cUV%9*Hxnqhn zQ87*So3mJE8EAZ#)tZVUAu_8b#7-r%w#$*0`dN_bu;H))w}m*+<{F`;2^I}Hp+AkK z3ChQi&dYti+VC3h6ST0Hs=Xc~9oMnsfzR4CW3bhoR;#KBK>8Kg^W&wp+spIYQ`zHu zp_86dXM(?gv9iZb-YnjDCGFBf&H{Vf_$7XtBoqx{^6)2g6Fy=wezt8m5bgycRr|Ue zvf}16_O9e_IAwiUgFA)ykk8GmbC!o9VrEq`9m;!RrPDcHh2m(YUT+QoY7@If8y3 z8qP{y!r9Z9s9yp_>}r$odNi||C(o%BC2g7nW#W#{{*DVzKjSIT;G}@@hFP7F#IjVd zdkrfR<$bh}w;KjH0bVFs^MDq%F0Z_T%F_5jQ2l9d!mACBbr%8d(V{N-4cBe4kGXxG zqkX*IJmrM;=ZV9_j>mjfd6P8J?#5`9hWm*h-Pnn;buPP~o`qBqonBEL^o!p*m30TC zM3I=@v@km3_M63hdhvzTAlIBEC(vR|C=5*3JCnBwX=JQD^=RAy^Z9Zv+E;J1%*PtA zg;cgrbP|;YF|`CpH{l4dj>g&j8;;)6-rdPKgkr`}z`|*iDyhs#P(9liKH` zJu{nK8R+aEu~H}J%0z%i5rIZ?oCZrazqbucMBI1doQbU5rk>QcNmTnPR5lBW;bIc* zr=8%>w!_8ithUUByUX4^UIiX7`K~<5f*0MH1cBz_mNqJZ`i^-F*F|l=SPTM`-{N*M zmzTVATZ2LdLYLliZ7?w&09_ReO%%wyx=T~0M%qoy6=r3T;dAox zOX8NQ(48Zd1d(gU^v;U8G(@w@*QJwvS1c!A`xH)NgiOloS>wF}Q)%SiD>CDUpOrF2 zN+thvT3WJZQ1lgvk2qU+@K~t;o4iSGt`B>C~%4I)*H7LKSARhzaldjI}zp; z&vg$KX4FBiyWrhhr6=jic68Vp-^zHbi!kghH(Gk|8TP8!PDAwp>lpCjbWVsZC*GnllFDxF!n*G~2O3GEL3VK*SSG5@avk=v=WDa`nCwW% z8-9favO#v-(=a7ZOjxHa4(}%m#j1-NNrE1 zHKH)4Y55t(nQYqiGWO&z1O!CSQI(e_AT!1*-O9KlC0Fhn$={j#7#dc*kyFDJ=G6}~ zaXEI7TfWjXxfsAt$xj3*axZ&phZHOGs#L=T`bCJaL`rJ6&lfSkF1UzY9Ts$2WK+je@?U1@8 z_~L&`y1{bYZKX4FbtcH7-`9bTZjN3UPKm!fbsb>)*>Y2@CmB%v+`AtFIfs);r{HFK zmug0O&79DaZnaK6+^Z#2y_k9bBPVg`3*Uas?v*!_9-(v!>ikRTxVPB*3zV1yz!SL9 z(S@M@UG}JhKCt*$ze(Tt(3YDCwY>p99R@N<(maVybX}MFE$YAPV@+l2Kux^P$ANR$ zf=tDXP^AW+u#Se$(0?XJjI70~?%~}Lf5}w|Uc6AY%8~Wk#htNp`*jFuG0pV4b&OmfW)yZNTpP+nU2$et)B4#)!$bvwKX`t(NDA%ij4Z^U1)%;7C{2n?8+r;_2t&?%o|Wr( z7vtOIxj%#18ty+Yb-N*0Abwd;ILt9i&U5K!o~>8EYpdZ9Na$9ymj?_6-1GL!%X{8n~6LN7Qb1P|KIXIto$?tqR1pC)mw8Eaek+Y8nHhM&Cg z&!rg2Yx>N=y}-`T;?HuT^$Rdru7XLi9YiGgpO)f6t7N*aUjNICB0ow`erp4Fqzlw% z`8Ph%dQ`jljNtKq@G@P#Xzo=q>ADbjN2W*7!gE(EsC2Vj|yv zJgRJKHiQZdZOo^cO6R@db%YV=qxWP=c;F-Wo>iMuCM_2=ph(hhYp`g{pivns8llk1 zZ=uy*_dABNY^|a7ags=-1SlorZg6;(A2r|X&5Enm;|Gp(-y|tL??TP!<}w zl4bVkGi7$3hs!p$MLg|>g@Rh&HKci?Ufhm( zMzO1vwR}=Drnv1bDLfX|*)U++Nd4{Va~(3tUI>W+;6WgBI-z`0_9}%)p6=<{;>_9V zG|?9;Q$KL5y__Iq)4_Nx9J0x1E|{j+8m*lIGQPpIz5Abrb4%9hHxDI9`e=_{rGe$! zRjEOT#kv(Cr&ZYrBE6}^9;cH(yS4{m>Lt3J4-5!+A7~8CaUfWgjX=KV)VJ}_<{us_ zKNLWA<~*WXvW5V=2@wKPMj@W1hUC+0I_P)9YAvf;2Z@YpL5p?C5AoV8YhiSA4GLTg zEu2BhK8}FB!&;T50}0RB$Oz5*_6IB>zdP-m-8Of$9OEMhRR&x^MbsX6NGAz|+_5s5 zOZ2yAg3*iEm-J`7(#zybm*k|eLH%wm7xUcDNCNc#R*A^Bn6}Mgq%88qGmG|f!j%eZ z+j(lLajGCyxJL~*P(eE~ zeS9gePRp|Y<7O+$nfn~>yVQ{Rem1eq)uCDs5AK~C{?^-PEye4-ec_}a%-qlh=kY*y zHEa>65#^2Rh`98qQ)ZXe;Q;?*3iBT0`+Z{={)}w>$2hN7_37ABlNAxb0hwAUydUs9 zxQ+!kW$`R|?tFi0;Id^4+br8YnuM3&)>&jMJx?_gPtzV*LfQ3a6Y3j7SelfROEc>2 zCL*&xXfwP-uW40=(Ms;~vh2%kpJf8Jj}l+Vwple8KdM_9SX^m$&Jzo`Zm`5dAk{9x z;Us{6_?{k11}WQ$Kh?Hx(Ffg0ZhUxfha4}++>qfBMH#oZCsIBqDVY*MUpdLOEzHeY zKGqtv2X-!WS%vrKeOOMg=u0kI)f)0fbY5lwwA1CnAD3aCJpah;sF9;rZD2JRNAK)Z zZMdSACpPV{*fQ*}*kLd&9(dEz>bKuw&A^gaY1C{l#(afGxUyE-FL#RMDnFDmR@FG% zjdWV;>Kij_`Mtl=t~ov59n`%$(`=Sh6!w^@%7*o@KQh^NyJA5$s!_Nqk!H2N=$!D41D9@*EgIKH5)I4bAAe|s5j?! z{xP(r_+5&7Q*Se>oAW-AdJYv~jL}IVz`amh<7uIoZUuSO`%SEd5JYqt8jS+%N1hx= zgzy=4$ztxD7goC`D?jylyXns=1I@gZ)R4X9_=9!9S8bTI;njY??%w(e+pp)VkgI<% zo`?8?j&Cj>LG@YaMVtk|q2FsIA(~m1kBJ2Edt8a=RaJpV5F5haIL$2^|Kq{0<^L3T z7}dL@1=(Oda^bsoR&}}A9^4M7rtN(f*CeDkIh?8txAY>?dh=;V;0u7TFr1Ar@fpx_ zd0E&pMPI{lim=Zaxc7<2j*y5r`m6ue&zTa?Wv(r(Xn6ak^;DMbp1V264HknE)hSU2 zNcmj~7==iZKJ2kbwVc%EjR+$eJW4F|(7yXsfT#e^NbU>il&Xt1uNbH+1$FtXPu;V< z*l!IZ>iszb8Y|N&JzM;Z1&cW9%F;bgezIsYvD&!}3ym(ZN_VoSuHkF2uk<~~(;AzW z`&W^MfhW4!_!&V&`t#9ugF1)I-Koy-KXz>zAKM;k31(Ut+}S5Alf!)t_7HU4oniyL ziDT);<5|1bmOCad)NnGvY?b$H@kg!7p-Vvc=aDAgal?9Xqt)8*Z(Q0hwEg_3dHC3J)-~aE=TqOQO`- zpCG4nx1qm4wMOx#;{0CwQ!~$!?ouHigFtItx8hH|c9svC*}2cw$hNAolK45CB)H7 zSF|sb6`C!b%!)WzY6f%ayl@S3@H|*7b{z9**T@;))hShIF4oXzW>?B}cS=6<9kTv% zCgHQWZ}x()v?<|Kt8Ds=7C_~v*tl2X(f-&{Ay-%M1F1@M+FlbRY5zH8VuV9D7rKm! zk6L;Q=G$;Eue|57c$Pd&KT4(;&oFZWpL$!OmSd|SSeqbSY)z{pvIrJB@)SxEVc{9_ zzUhzLR{ikvl^CiUB~5~816X|N5VQSDUZQS;6a>cJ6`M|HM#KtcW(xQbLAmtvozod}N68dSu>P%ipZBwbLEpF<_=3i=n73j47*75;fAwZbgtSo@Qejfh z8?W3Pk$*k&2f|>pXSEH zW_Q8+yNN;EW3s7)@r-F1<}I&(>XgWgXkplJYP~&ygrbx1@Wr;O2p$#Ub7@;%3(SbW zeYq}otZ)+>*(`oTuu7I@_I#mN_SgmAJ-(CdeKYc93)MUBS@C+ZnotbmVmn`;>FufQgTj?&4II( zUjDY|^RS}kJvNxC@?t$XoD2G%BzkU9zf8pP zzKT}$t}%UubJgGAcEOSNxu()0EYM8RwF;AFjY`YKFM@hyrgC#A77KPmhl>JkHBaBO zLy&HTVR4!e{pLq6c0&EBltgtueBFIVoZ03y-=bx*#ZaW?EzGW-`E!({*fJ55R=*ZV zyEP&A|I|&(y34r=AOAZPkRGqm^jeQYgO7K4E^<1W_|gM*wtNI$rg_;y9{5+FCAO7G z_qFtjO*$=;a`yRpHA9;>za*na@er+`btjdmK=R+%iM1fpl@)dCJGSbcbDixo2P5XA zi-#?dl&LS7xhlqvDWA`M?7kc9PKFXSH_!5T^0S-GE+QspKH*oZ8-i--yS)y;<>ZOm z2224UXdzZjyYhUu&jh96F(|O^u-?_K|F}!xQ4N%^mL7F*N4SS+0RA-b1EkvTcrMDtG3L9hQZ|<`CKVdGqva;00Ko zV&XN@rQ^-^WR~0Y3#kJM4=qc}FAPGgbQQEmv@x2*_NNnZ<`J29sYEaEK>Cy5#x{JL z(`ecwBk%C8&3(5Z348FN+@4XlM*BcOH=oUJdC_A}R1hrUtfejKvsdKwyjQR(?R2pb z8S z9z&xCu(!Gk5LjphrCUH=gQu9UzXpeYk}$VNQNluMSo}kB{@B};C6bk9r#(^*f9}?9Cr+;Rol4bg~zQyK1H?8RW=`AS!QH!MNn6GX7aZ`@H{mhgk7pM(u8kB6L;Wt+`6BP4MGfg9a!JFCF_AV=A0pX? z>w9e)U&vYz)a95bXl$17&9!NF>mDpB*hlit?wjDt8M@|y0Wj<=)8CvEn$yf&sNuFf z4oDslgiwuTNj@F=xc;3b$|-HKl+x zhRC?)EU7N;6V*6sN^DR)W%jT-nSNiS1*3HhLCP+84}y{N1?olvAc;}oT2`jLrLOOk ze@10?MCqh|xbeX6`3B;J#yBqzJXw2V*jHL92I0iK0gfHEJRS^)xN;B||1HsL{&O?( zk6I`i5hyNlF!U`Zx3$TI?C$25zqi|&lU?EzY(pFLX$INiWMAN4VgjA_LP8i!>4vKt%1%X3RzKe4TUG1t3Icx0j6RqTt6wT)t4V}E)7J} zcqm>rIWEnt#DQDoBZ$kv<0hEP;<-p)eBR>2@WW{G^kaq(<>kT$UEB&t1MRAfrrVd% zSk={v56PGKaDs4Wy&d%DIrMb8sq);H$P}rP6Pj)C_*d`6lK88oyC$x`)ot^yb=Y|n z-FbFsvW=X-1my@S4uj{|a?SEYgvIUG0Rf*ATT_@b|dUqJdd(-Ij+u`LkJV%^e z{qOvi;V+}*R0t#}pC9PocApz@cG_~V9rz$MHa^+-${7FN|E<9N7a9J46XOhc5M;0M zG0%TVQU7}l|NnfG;_P3&z_1EbAu_q&@Y7pwEvF}(o9x8Hv2lDOv0Uj(UQSPLgm0zn z{>iNE`mT=_D#k94Yd}?1>V{K?fdEOffAjE25)_hVF;Jl+$h03LzQ9VESC*{)AFBO- z2^b4obhzC5_;Lry5J`udCjg5>OMugbl!hNvUKbX?1c406mc6Q^iE>#G-B<8s(@}!>Tvui zh)&K6z^+K&JAfS=9vjDpw(br{UG6sriIfrMu3V-h3%1bJt zU%rU1avnIHD7{&9&JIi=aYj||EUjkRZ}lQxv>qS(VA}K^o6TRw+`{Qem{g&Y$$bTC%D^YCz>N1$DtlME{U(IzPh?>TCawdvgJsJeP@!@(_%~gC*=s$Yi>Lsm+Kep3$ z7ezoe-XuIk94P(kx_GXVI zk%08JagGoK8{o{(^iN;=9(qv1<9Ir*FB}HnG=w0MxFV~S=(#?@Ky1|QOic3c@k4DcTd3P2=2W^RaECX^XWE1p3rV!+rkcIZ_yE| zI<*ad5C zi};J$xi!bqF;A{ZOnl&Uqat4)J*FbJv-Bgdd;;`|Mky1$?TuHhleeOfxYmBytEkKA zvLE;mFg_)$WV3Gd@6ot1MzKZgZFFdp&C+8w#x5awZ}+|wFs*A}wMn@$I3`IqnQ{~Vgr?O^&rY$H>WlhydC6+M-XR-r@bH=l1Ux~$X+p&vA5=vKN>Bkhq$Tvp3$%NRb9rIzvS{cK5t;`yxw8$MV;njDd*B<@ss@dzb5%SHz-G< z!+*PO+YmYPN0vxYM**W|R1Be^6QRg!HL$?wGfCI?+$CR!dwxMmr-+Q8Xr(^e$@E;M z@E-S(2K(#cpLo4GGnqpp>+U^*U3Ce31kvq1J}g6Z&TUzDb$}CzT%`yz9QvJz`V?OUtc%_ScFOVkYQ%C>$`$?MN?e^;)0X?}5St zfv$%G2v+>~Rm|)BfZ>5~g_*SE*Yn4Z3tGJ{85zbn0Ze`CyGn@R1eET$b44V zeOQ+yj~fM=JMbi7rl!20_X!Kh;vGRaQqL=L=4~glBKJ5Im)@>duKn6dJ8EY5!7hJ< zw%5Q(XicTjImq}Qq1o$wb^bl96DKg(S6R%lZlS`o{_X!@?5(5P`npAJC=@B$QrsO% zfC5E=7buisrL?$H90G*m?(Pl&TC^1R;I2W66iRRn?i%do_nvd!^WE{Cd&m8EjlI{- z&R%0>?m3_Nq%2Q%3$oF7m30%_P+!LIiS3=`c=n%4cW%QPx%q;kX+Ds!)CIy}cRxOHkQQF}Kn!WMKG9X>zoCoTz!1bEjZ$v-ytc zMP@yGe0$ydC2KQ#{t(SQAs)QFMVtw-P4e^nU3S$_LDZgN=7N@c(e;K!t}jLbflWFn zLe1-x^mVX9j%>GbXea@Fi8;L0JZeep+(3WJ8=0~cyAXL72pNCdvyQJ-D zcc^QW97*0gDtcriO>yj|96YBa;SQHa!r9I8FoNV1MFQ&y?7V7@+T316#%9K*%zw7C z|CAm;O4oP$Xa|PELS~PE^JqpxQda`Uardtu#l<9BBUtFGQB4fV+IXNKl;q$|?d}k& zlq9PVn~`H`eZ7|>X;}CYc9Zig{)}y^%43*yNIGbbNSHg9XrrY^o7S5(0^RH(Fa%lh zu06JwVX8@w$Yp~6Z+Ti*G%wl7kSvzPg0->bXih%H!paY~2-3+{zzG~&kZ^mv99&xo zUs;=XW3g1th<1Zx_E0e(S?-3>T< z@Obl=F8^F-JuHli0S_l)+=R!l`7`dbD>nL}bYZ`MhDCAfJ*6}rMcOn}p9oFCXt4yR zS4sT3A*G}B><_n?-}P$xY4OzNyMT>OgeW;KdOVrY%XLVXgeR}to#1!hI)Q`lvjv_J zl&{^ZUc5?rjWgI>&nW1_T@tL$-aem&h?Vh7;E`}1q=z#EA_;!+7bYtbTe!-cRa(i zM4luq9AY_^ne=u{yTldTGfC(|*MITCHe(2vm6OmQBI_5OI(0y1i*dZrelh`}C+f zToMd;h$7(?tGUb2obDK?gD58CA^j`6UlS^+lM>PRIEyO#1UvHNte1umfpE@92m|r1 zbHE=Fvi;1d-%%Eif|=6?jIb0tZC+RiBAwcHp)7c_b(np{Jp%(MmMYL~EM_wKwSLmE zoX`C&7+=Wyl(>;9XgncbVFZYExrCkfiob)nwwoKVA|o9y+BTu98= zY?P63yfJZ&iHW_^bBRnlRo zb5OWkVbQ12H;gKZ&^FsaI*CrMS))uWJkHJktiyJ;%>tFJOLRVOvm2zuqtDCY7ep3a zlrz~GuZ#L;y&@AyBGRwLpPA0(by`gbmpn-~@80p2jPIf>eK!6i3CAmD5`eHt5L+%9 zms2-r`a~$s>J54s6%&C;#<$s~0=Mbv4zW3qsUv=xM1>?UdhEU!No!?rpVV?I)z=ai zb~{sX1X?n~Ys_ITr>N+#De`qH)wZy^u9cqty)r%#o#@X)edOSTnL-N0ntU=BXj$Ax{g+=m{OGgEo^zEQoIo*hGk|yKB%uHt@h9s%6$?-Wk5xVAga3 zYN217qc5;#jpj8ERoHs#%2_SNDa_cF!z+5SzkEsa%HG>d63BV#$7FdM>37tx^xTho z#b;r2#W}H-_rH_4P<_#0XA*&MUcKt!a|_y6CQa9#z7*Zf0NXL=8Eu${EY|aZh(u>= zWN4M5MiIwbus|(gyVZ#)iY@|DI>v@yxG7@`m%W_nbwEi*v^8aW^CUP@$2@3*tJo;t zQ(R*WE7O1aYQUTINBIHgMlJd7sLic$YrObX2IgxHJ}X(#cmWI=O~K&MQlck1++@5P z;bM@ki0qnF2nA*ai!>;HMxXMUlWT^nK!GYA+Z?rZ)o;jk01A3Go(OyTRnu@1ZDxv?|7zZ>wwQ&jWDX0|n36?Z^kcH1@{5o{2>v-S zU@20aUpk2}Fr{y0guJ}!y_46}(m6qy20;Dv6PQpRyAh=Py6Lbyn8PY-!;*(230klz zF34ob=A;~YJyX}*24i+RvX_xNU$+{iBnQdKZF2K)bh2pWY$N z__-Y{JuGKbHJj|3!&>k`j|m##q>_(kvd;at*}kQyazhzePqG1U=~hZ)LCiVV#X?GL z^^p`wa$+U29Xz&3aNB&{(RZKFc1x+QW?$x1=dH|IR!e{ZPPQV$1vbWwZ5GSnh0{9w zc5vFm6S7h&q6zMQ@Nj(xq||{LwV=b|3=Pm*PS|s`X27}Y^eG($8{RqhZYm2RHrpjT zdy`$rch2`8J5<{&|6o%iD`LcJ`bez3cjx6viHOz!iY}-WydyZ1uoRB%io1|gGWA_@ zaz7s!YgQ2UyxGY5qG``h@FKNVMT`kiA~V)f572fx`}*6QZG40-&8%*xI7*jfVOm?> z+cW{)I8%EL%IxH@?5XgF1t^g3#*Gkp8>XO6;r<>&CW>y4LxtILIHGXae@X`HmpZ@y z+ut+rKmf%zhw{LXk1DXP?^>mXvM#sk@?|W$lQk}4_1~%>)x!$}CUbD3A&;fj!E$a* zvW?)7pFBQ{6K`chS-CBTOE$zg-i;x*BZ=8|)`a>FM(P=I{08x63sDXmuqF&em+UsM zmapQ1D;VwHsAB2k1V=pE=&zsS>6Q01u2o6Q^Gx9&+oPH6UMs*Ka*(UtI*1qe+F^46 z58kAbAXlL?XukLzqZEH&(v(A-%_{dk^|WdxViO;zp}IS|5z)LN(eggCEjgcMH{GLol;{lDL9ovu7i|0_Z|mERk{>E#JK zajXDyQ4ed*=k}6)7W-;YTGZt9s|zYOES0T&8&riPqRQJ#iGR_Xr>Q4TOIu@%T@I-< zY|)G$aHGY*b_s?!*$Vi}Flc8%gLLL?Q92;P585&K{`k}Jc($|3EZRYu;EH+a*<4Ny zBTDzVn5g-j3qzr$*WYhi>ILA-bA^&xgOrUzJReU(G2v{k3l#>9h7$M*n>1{eWwZ-% zWdf$$F_glF?9}_<4i@ungT2IB7h46;c=ga*GVoUBYpeANsbORTey_KZ=X`^Gb7+$y z4!81Hi8Jy^%Zb}Qyf8>KiRzN_+tHj}hb^s6^7H7Nt< zqC?7!RzY*%6ewO`XAc~p{7p4ivM?t!)gHbphj%2;&WU%T2(EaZaQ1=~A-J;vxNw~+ z=1sz;uC~&GQ!0_zx{NlvWR9VjiBVr`VO9hcE;to8?T{=CVxAYSAUD)x(G6ZAu7bq9 zqwfAo9A+7SDBEc%;|wZ1nnZYB?&N#ck$RE-t(WwkUWBJIzep9hdNC`en;2d}GD|ai z9}-1Al4w4W?|omuW5@Q@RKt)r6Q2v18$PHr3-JNx#7hCm3pw5!H@e!OaR%EtV0w!J zZ&@JkGz*VrSc+Hz`aT<@or*L;Xe^zb7|)%Z z1*-Tt-oC;ATPAEe8c&qy3US{`B+%E^FnTx*+J&1DPc)0B3Isi`&}VzTzir+q6!ao) zhdAsavL1Z64|L&Me-YB^WXqJ*XVc?})nPubx%kd*@#jo=jQM8jIIn;v7xi}luof2| zFCpeb-P2U+iVt*8&5T(H!41pqv4b8hGk8yWVpOuuAeSl;#4;<>I0sASdd#D)9^UB5X0EjD&<0L22P^I_mMhyQY4ljHQcBvAS0= z?9w=~#}G%X`eWmz{&@L;?%0$*%tN~yTv6%rHF2ok@`a*^l89X-Q}!F!T;kb;Su>!= zV~+*6KI$}sdK9YA`VysYYA!S1#&bK2ZeOK}`pC{gSbY<;j~b+EFtWkb&jIGZBh+qr z+JAA^S*Rp>W4seM#OITP%XPz)u<5OT6}Ql45UvCflsySWJg}0t8?IXvy`4%eYR7pb$ZT-z#j~||)Eg!+5@zNG$d(ny8Z^I3 z;ItlQ2O<{4UErf5Edh9WWj=?SVi}E+a>C>x)d>#>3mb17O z-Hi}}{l9D~lbtnPq&ul9xzFu?bMS?ymD;wsEk9tLcAF1jF~Eljm6JI=`h zG066yWf(HgTHp5+MX~0O+r#`r1@VXef`5ezexUuyMX`{08N%THLR;^Pa9%+asZvh- zXB0fgx*QrhrYcFyz1esW9P(~{t;G0y;o|v3)#Ntt;InT1H=p@b@>OWYbeiYXOgyP= zf3Jy3EfxX#1Yzyg$b@LqL0lCsA*{M$`&gWJa`*vOZ;9)Ferz1S^p(+aP#bV`|8Efl|G$1g@V(^UzgxG68?1sl8OX>vw z%_WHh%L(|Ruy`@NduwK%xh0L0|utY#r5+-KU)X8?Oy`<_cY zCQ!wDTmP`2`=o0I%{UEG6-)MUF4fdiNOxSSbj}C8lkFgku&go${09XQiUEkKm z?yn`c z9}-yR1E~IIX>C2IrM@=c|698MAIm;lctN6M#s{8u3`*}8u_CIlcBwA-7;!gA{~@PA zuayBLsJ4L=KQEe;c^84u_T8z6Sn%kqYvg+;6t&YALSUqlBSbZn^ zk=wwlKM)WUx@{b5ONaNj9gClS=*xrtzcB)oesr>5`(poDG3{S}(&t9!ri}W>0QM@* z*TLiL|3cWx;Bknml2zQ4OD&>7+fN|@}z2sCeI|l2>`!shg)7#** zA))B=JLs}%^)jV(Ht4s4UDKkiXa3;kWj6Iwqq`huLht6K`iOCq5)P%w+wknUMTRsO zJwM7NKWSGL8tS#&{Yvt0&6Lu=t5U9Jb_~J{^^0 zOP`x@X;%bSy8I)K z`j=t$U!}+IJtzw(ZA*G{Ojc$Ko2oDgf>)4ai%0RA~s!!0g3Yhwk-9Z=AU6IM@D=uw!4{ z_UmRXdZV0%xvAOF7&UUEE6-j%+J~TVAR_5~L)Axb2x{J!^u^TA@K9d2(EozJydgZ@ zwQ<~Hu7Xo(6?_C)jr{8f0RPzxNYGi!e&))ZxpkyhcSdq4bb=CODg4@GOe@Yiq9-g? z_C+MoznUK?Q?KFa^z_pNAqI@%_Jc4!8T$;Pr8uJ9RMyjzZvJD{hjtKvEvk11j=q#S zl!Lkh)WYtaEob}m4tbD0x#U)*u^e>;TVKDgf`Y@o)&4W-Z0Lx=ajW>@}0OAY*q5{peD!t?9#9tUQ9W}`C&r7&0+;yuINORH?v z3O;S9E|{MuIsL_UBV6`nJ{q(j{dljMtM^LtAsO_B^C!E<5omVdO{qa~C%?Y$14xu~ zK;i4#n{ih=YxxgeGE|am)RLsB23EP|+*#=*qg0%n<~_@t{7UB*;h!Tse#CguJc}Zk z%v!2T(0OJ4gNB((@HL{~unyfm0grx|>m^yDO`;pdj=&VlBSCpq=FX=Mta@8pkrP%X zTU|jxM4`CCeBKUbGPD*Y1Axmmr^xnOgV_Lact;m0~GeQU~q?s^zVO^V{LsF4(|;7U^Qjg7+(lsG+x^zDTL!0pk-;5hL2PZ$E-hH7+yC9CtXG2qit2|( zbgSPEdF=0d@h>f_KyPcF2>VT1e$1XItG>}Wy0ieD^$&F|jpmMZGB`M3VzveF#~+Z( zaP!82EY5G-#E1sk-}MmSIL)cj5n$GjCK=4j3F|+}Qg`wZaE2HNmJ=!1|F`10SlffGwAs@gLM!eYfUhIW|UUT0rm{;?wLg zcJ~@`xl6tBTkKQpy!z(&iw8HM_+`|(!hDS>1;y5VYu2Uq_L&*nlbVeQerw42H}`jT zDA03lXxRbJ-VC?n%jp&sO;SMOgLHNW0K*c`8sj+AbuG66*MNjAEEPY(ZN8^c>4gT> z^Rs*Y?|v;_dT0K`BQOd0EA;28kDN)KhKXnEpBm;SD{<8>8$UIQmkg~oHa7^lDbZSK zlzTBbT)~g&`*iaCE%$7#b1vzs%r)=jL_zmcYaIZ(mv-wS1mie8Z&J@wl*;TSA?9ys-v81`f@o{ddm) z-=bp_p5>|ER5JB5!nb<3J+7s|)xgDeynZ=a)%)VZBD}Cr4XC-CjuV%dRVO)U#6Tv{QPH9G9}C;TVd>n?FgnxRNWtW%3zlr z8SGzR`$kYAh*`2Ofx@aY+UiXl25bkRMF( z1RF56MDR!4<_Q4nJwCae)@;bnwKMt{2Ww}ZE3I+H5soF29dy>OK78+RE>DRkVX>HU z#`Z)?%(gq_Jjtcw1`vAS)IF(>I0=$!VsGQOKapi&x!7bv*>B%O4`$Ta{E0m6%`D=!yV?67 zm8aZLITe}=n+XtgQbjKC!lgD^H9fu&HKcjP`IRcb;SRg+?)xv_?oNL0?qJ=F90b-r zCb3&Pj(p8P##dhadTmH-ly@WVvidhREH%7|&X|+Leq6-L#V)6U7__dBYKoNVn7pPw z^&0clHeZ{&6Z{8wF)Z73Vxk$>Zx|aPKkx?wgFS88;l$DSd6vcudRxn?%?UtLtdkIQ(_gCWQKoiytG_0{-0h2R;sVZ?gqM zDf7uyWC&8Gu|d?M`!rFPMOg0U1C4PB4$(o ztg2Jp%?|6-|Du@H)e?Z;US3DY``+Wop85|)Bfy%kN{VYWzp%Z%RD|14(bfevs9Qk5 zCSv2RjED?`PohtY1o zaPGCca@WxsCGs1+3^eo4UmS9)R{olEL{`st=%t^pZ!|2WJlQl|okAGA5yTp0x#`qY zQ4r$NYixN-Ug0r`j7<*0WwH-Sq0fXA{)uQv^c9e;$gYnbW`#TiXJz3=u_8)Tm}jNT zE#nQi4y64G57iQ- zqIE0_%E{}jAVQRmXZ33XbM8_jaUF@*)R$gkO&dL3X<4{usp&%5Em@u_d6im>7rh@e zttS_z$xRSK)O~A9T`-15T@X?UOmZS=0RmuAgN#9TAkFaTw?$zK>G)sq`D;VoQ1~+{ zVl6R(G5Bl4zEK=Au!-{R^3cHQELvSGL4a;wr1ESc-30ctxrnwABxpyUGxBJSF~l;g%8- zC^?J0#msbRnz9wceMO>{j*i@m=@i$mj{OJ2ozh7BK@y6;FvpgL4}|H1i=TMPgm;7f zTvXA>4r;GKSt#YIep~6WA~Z8V_8pHO4Y6EMx|?4*6|=j1ob*X0grADqCS#Z51D*-L zo{bBL2J>~98W$Ss_wc63UHE>%GQ_DUJ;xrrZ~?Lt438tX%nab$D_Fp!@g9CgDkhQL z*tC!#N=#XJLA}f%T_97ruxG>6W{Cbq^lO~ugr8y_vV{0W_#@N6cVh{xDiorXAL#0U zo>_$k+X7`SpDfrM&M_8Rp}IS9@t8YTX_xN#3StHwMf=KME#BCdk%*PK?^ZRbXk>5j zT~CEE@?t$!PtGW_rN8IrTWQTL7;o#8+tF0a_1a@>BAmu9B{lFWx8@x*&8;JllTeb4AKaG+6AoTA3fY*jjTl-{^~DPa11hvYPb`9s z01<$ChoO~W{6zEs9Z6wekn1;%*~x&0j)m9TvTVzr!R6)IWPu^+`d~wzAfBL?7(9n; z7I0!xvLU9O{e|xZ;Fc$tG>i+b7?%UXacv~2Q!cE4x@x(_d)aRNT zQprb;b2ZKD!X&1_pc^>H+XHq|zcrjG-=1Y<*?=*i%tSujy4Mw(cDZt$;Cd2VB&H}y zp*Q#LT5Ne?Z?vRK@yNLWTLtj}+ECD?r9`&tk7(`YmIAs<FIXHPKWh2*er90`C& zoIa1%++2IJoZtrAG3yNg1@iqFT>o~^xnS0?8;KLar?Z!>?JQ3&!Pb!+gUg%q=3HmZ z6x?;eAu6!FbzH$_ z*}-~}b5o)~5)0d?KG&qNRIk9I9(!6u`nQI1J+=8Hp>7iN8?dUO7+l^ka>FIXD;>8$ zZLA522qVcgEW!tmrM!oH7Ftp(&O80Fs+8|H*rXmcv!%9WCy<-dKH+UK`O0}JGifUq zOYMzct9xZr;X5w@^+DiQ;5@ZeJif>XlyMu+l-s1fZKAfknSJN?NF?RTLe0e7P8AMq z&fD&a(YI`=UABUq^!wX{wXYk1IYQKTx0k5#+-}hbM+}Lkzjd!X%Kvp1s<2IEHD*odbG zZ#0nbpzOSMH60z#HOV|>h^(Z(#`~q_1_Q9`B3yfHBY-^oHW4>V_h;abTrhog78Q+> z^kuvG+EaA?uI~g0;kf>1Ekeroj0VF`b@=%#T1_A(dCscCJyTfI*lp}d8#LwY0+i-Y z-nH9VX@HCLQADAF?N~{Sji$&E>*{oe&Vd!+hot+4cP*2N%2KIE8 zZ_UR_y=1o8tK@UNewxW~uQFFmWpS-d-!_n|ck|cyT0gqxu7!WhHz;SHQzBlj5)U~& zJ6UC_bCl3lYOH~ZPAl)7AQW~8v+1yX6?Q=fcPehNQ{RQQo z4L?qQA{TQTO&vR+0i~pb0s>aHe&h?((#35qu+}7R*AW8*+!x+2eA{+BGc|AuG7jNG zTb1t>9rzXajlr@EF<4G}pn0)(keUlFOQsG%4|CxFF=5Gt(>J~m>(J@xcL51gyv@V^ zy#Rr(Ff=#u58hjj*02E0BA}XH?+0_y1BHzJGg-7BbaLNK3c-D@~l`-w9TQ0 z)(%*7Wi{_?d=zTE;IiCIoLri3Kz8uN<~lX#gNRy!b5iRN<@gio{PbkwAr0ROF0yAE z^el+U@YhF5+9KL3_?_qW!*PT&ps&DLerD=IfF&FGG%FK=gFE~g_~CKC4I7%R;Bs{E zIZ@jG_hiS>60h*GPok1lYK*y3amn6KdPSZ@0J-AfVk%&0G0{%2R6Eh@sEvGqLHdc1 zF`gT~5GWZ99Upfzy=kv;%fM?qN8;?z=UZ$6vsW%cXMFBxq-^I1Sy^wfM7c!=<2r6rt_vhff6o%t}U!l!&7$jlEZsa`+7S(^< z*Et73aO%2kO$y`#&Rt=e=Q_lT$!;T%-k$f!ZW)Qk=Cwr=Ul1Oapu|LG=G7eu^Ig$wyfsCOke$5iP*^? zXX?N)iR{8XnAC%@~x}Po^O_0_9Q6KGy`za#6LC6o>=t}AQ3ZPI@S5ie&I9b#U zPX3Vf45t3d{$GPm>29`aP6zD!Yog=Jb1o3!L6@B7DC(LcoT~^*Y-ksAKQts{kJ^#& zCZiXs{rnPbYJeq2G5pxVjDnZ*duYnjbbU6N;AMr#WAntdXXf{(?it5+e^;^$F(q2O zpASNh91YF_Ph_etF~gZ4j`Zm9+D~!RI{m(;VPokzqn47FeY4(THMA1_OYpNjIm<}a zVb%3@%x@pxIQB5Jv@>+0ZT2ka;!xGy#}SoGU;!s2bI%kZ2vCC}vHPBKo>nH>RVp?`$ zSDmfsL+h`~mWi=CPnJw2P6_#hrqSJAAF=zt^Gl#NtVUd2c!~ZE>G-(CzTUU+ud~8k zC;DeCZZDiBCptL#w-WMs>R0x;5idmsK=!-uZ|5#z*8P zG+ON?HP=6N596WS5EUW>A0UvAw5J_sBX2>2+d^(@iGQB0RO@Boj>}<*OiUg)3{NuEbl~p zH*4g-vjCoTqmM1UI?I}L&$u4-yJbtbzL)oyr8O^ko!sm|jNU15X!pQ8f@X28O_EPA zLpI!RlW%C%ubtEyk3$4c;94&8L=wN-YPnS@hk~9fCo71dsq1G%y$eT|A6__SB*Ektn@a&=ry_ z*%a?Rg8G;iEi=Y&CHP8HP>Gn)dcx-Lqo#R9edW5SqfV!23 z!T+7A?o1MTl;bGnv1!bC-<&T(+&NiPosf)0%zd<6#ft-DGxFLa{~n9Y-@lci6@vzX zA)UX#SLql=B|V{eDjfeKmjVyNGPzXmnWF`diObXgM-7Mch{EYp8cANcMfBXM{@Z$e z)B)?2BgZWp9#{|xh0cr`8Q5Hqv&(3PYrfp+1DY%JlG134=ELQzMNM2!5Ca|kns&|) zZ=vW3I_b2J{7i-Rg(-z~z(EPx(8i;DlT^ZkNxlY-ghYUa1O}N#>R6zvvqNv|0k@ ztNrhsizVww$zM_%|Gkgg)MO>%_s8*AZMUGMHpYcnOp*KB9x$q{5o@9`9dz~?eECqN z**u-ullPVTYEte7dVKw|*FPP}Oo8@fPii=iRyz*vmq?}*1b)u;3-HpKGgo9c$}-Sk z&klNWaj~4tWOcpJ+df+7eZN)1vv?Pz)X|Xp%f-^}F0(zR_|Y|!FI{xO&&}qZaDqBnV@867VaclCl6#h}tm>zBCE}|1k)im-I z5SkH+3QLnT+qa6-{nfQavnAp2H#GZL&;4Lt71@A1sPW0N?e*?GP^CHzST4R;Cf4hi zG$M)eL^jtX{2o`5vY@qg%-P|#q}J*W029UoEtmPG*y|Q2_gU>X@o+VMmP?3ZxEA1U zruYg-MIU9C9x;IfMD?iF%G%kmyU(yV!rC`7+}P?MB?2BVEaWkc@P~0-iit8xeb=+b z8$y*k6#L6j8(VB=2ELeBz<{`XMDzV;6it_Nc%HIu9>C~ zrE$fn8t3yCOTPx!`(V>N#Eh29VnzBna>1~kt|uuNKri;3V}rdM-QuUpEy<5otbL<~ zSG*>~x*~y@DlFbockfSfEdi9lDdR1fYW8zG8h#^rZ)}rotfJWIXBO|r;O7DAgMsb3AGh?y_ zE&gr~;#9SJ`$mWQu`f|GaBGi&3*nVo-(&0h=GQYsWMVBnC0wb5PyP^IclJ?TN%giG z`|iUHvw61;@exk~(_B;+(xAfV0!EEC_dP(Fk;dWl_7p7VwbWf8tz0$bV;Gy$WaW5lD z4_GVUMtzXt)~b;YlC*h{=;_T@t==5&cm1V51}3q@IV0zf9M>c??>bCslC`?P z>iKM`zTEjkH9szF`TVK}C+f@}?WdNN(fFJr;weRd3PwLYMSZE00S^KeU;RHH?4J%D zbzO=vOx2k_w5KjxJ}>}c*Fz#X@f~_|^FC+N`02aq`;L&G6?3E%bzJ{|wl}qZI4NHH zXHpCtZJ{#i%n&oDKSJ)WIc+s6yvsOF>&?SO+MoL|Q*GY`=VQ)gHlkM%UHQ;o-KKu5 zxU(qH@tri`)N4C1h`zxcuq8f2aBPKblVoL$AbU;h;A+(&3~- z;D(#vF=-hnoTR9u{Yo+oHEZNJ>H>vp&ZujZTl;2fcc*@5zlAFXYDi zchvkphSL8vIGt6;3D3MUcN#6=jIw1@(a}$5Q%<|h&bRMdZXWmWKlS<$@<$`GqjIzH zdT(me%J_KpLG}N4%X}G8VyG{HY$~>&9#NZrI{z3jNPkvvE#vF!!2PfhS|zf6t@B7u zCd0EHFl>Z-g#92=R(a=ZpAqx9=ln?&V>V=Qg#E)q^p^Zx3Uu3TWS;)+x+$WfXT22{n z{<)o@J_5SQt)hJi7y-T57;W42H@C@Q7tqO^?c&;|?S+(BgYy+|;B#t`P=%|^RuA~j z`jwK#|2C7;W1n?q+`qmQSsS!%`Q!uu!oELOxmNIoWM{4F0A}fKpK1oRtWj5YNVOuZCaNpzZz?|7r4v*5ZVY%J+B>f!l!FtCtoQ74PXSxH!bEfv(N z{pg(Q>@AbNIlv?5%6!^Zc4$MZ+fgdG0O|C5l*pGl98VS6C&7^LW?JJdG^~?SydN>T zS_nseY%j7;lpx^d3&}GP zy7Vzpc(%f#$5U3Xn;sS>B3V$y{m)z0((jqI@sO~SCMP)EUHL6UpsxJdjanD&41V@B z9DP+0)Rjnz^crd+|H6Si7EO=+9I#7Q-b>rF;NII9kPw$za(Rg=_1cD)pr z6(LfZIaPN3HDKOE#4wKeSmc7^&VpZ|$#tt6#&LJ(qIAtj!Vj5fu|9Zld z-C%F2TaxN%egj%R2<)uB|aRxqL&EDs#00FRhgF5m~@LHcH`0$6+e$9tI_4P(iq; znJC%) z(JeG3Z@%1?!2Mi@6QopzmNlpm4(!}>Uos%<1jo(=tO!>6Un~0_2h?VMOrP6U>Raz3 zRCgTSuAefVZpZ|rSzbZM$%@^bwwj*pyDrB;_C_{wXfn3du1+^KLSq%;>BD9|x)H)x z7VK@kv?cFEFH?MLg!x4!j4C)h&AM-{!-8rPwakwQ+^sXeFhYWmtuA)%L*uUfAE(rWBx>jg>j?y%UWV}Sv8dXWJ8c2s=N9OH0xqA9O( zk258*Y+>ssk`^-{bz3(=tx9<|+p9TWaa4L~Tc5iX$v>Dq2$>&!C+NPnc4OjF&A%E& zYR=VjrPbDma_$aS7FFhUeAM?<7L)h3pWp3lQfC9gm+qV-^*+pJ=8|-yZ6qv`B*Q~v z9P!f1FIQUMc6!L7kF5`PW$2lSD2Cad5yztOkz+X45c2}jhBNw(9YK6h|!&iMA_LG-+d zxF&XIH0;wBUe#~9Qxif1^@XFd6>*y1OlNQ z(^|ZO9Kosd)FozKX-m?DZlM}!u6{W}J3AVa^LLb}8g>C-j0KTM3NnYga3I8QPw#~a&AIhw^BBaQ3G+N3=Bnl1Pal>nG##4&)ah`}|nZEUN z0%BflP2##MDlI{%$3?&oLc+dIs&!KSz2oL?i1LT&l%}4WgI2S1zWd@Mi!48d zySb@{1+aTMQ9=H}ROqe1IyWui!1*oCS*SqA0nTS+T!YhG3^oGk(XFkL=qtTyYWGv^ zXRij`y^>^s89*M>+$tB3QPx6WoON-K$1k*r)2IokD}PL3^mr!hwri5pk-FOn^aZi7 ztUo&4HLQ)RGe5{rYdz3VK2ES_uaafA$ybKxL+w)ZzRlRUA>n5W8GF1Rm5|Cmk~e8C ziB_V~dYQI1w^-%BJDcI9;d|Ttl)|JFe#zVOg-P7#`442Cw)n!UzNlESxYr=f?$J<& zNI?VUQ-mffz`-4=Xwjs-hLbM)u2g=CJ(@ZW8X3#~d=QPFq1&VR7%cVXiGM2xc@({5 zi?Sq-FyQgr$?O869}Kl#S&;0x@NS7jgK8!d9j+Iu;;4^VZZ$9tZ?#)VqyJ_hXv8mx zcR1?|?<`P5Te&eCcv&URH-?7hkESU1_Or0#jb3p@nsE?_4w@1bMF1`6EK>*J%O?Dg!~yNb!CnSzJD9J@|4M)t zi501U8&z_D+9OlXd9fdz?~Ag{Vw9+&(x`txgZ*2&fMI`mw!-I4BquJ#;nVtn5KcT?w(Aye?)fVp* zVx8l_F`tN&OpI663Tn{N<3%vfX)}q%q#ftu}!684Xztw&i0Em54KEXtv=~ z4zTl!8$Mo8&Xxo9l->*rL7MaHnYxsdVu@C*jd3WrkO}r_dCnn|F2TcN9J9?L`7T2b zV(sTaB<$;f*4A-s!@%n27c?) z{!u~HhU`-&Gwcb4;*k;1G01*ArbiFm9HE^9IyN8$cyOeHpO2plKDjz~dKj|_7IoV< z)%iXs{z``EdjW6NFJfIBHq2KC^4f;%43YJrSAmj6DmZ$l?z-^dgAeD7>uMcz0v2_i zgpSnCi>w!&{Mggb+$>S2O5v-MNiA2rFUqUw?$VcM=&Ny!!OgFWqS0kOcj>?f1f)eZ zcB8w|-|O6~4?FH9Vtdh{DTCf*F`htsn~nqc(JUvKe#Rxc1NaY%w)k<-s6K9Z^PyR&sjK$>%1=^;Al4s6U0x~Zg%*tZVDAi9_3ehX4U``GFDP}g9J*Hobb8TGj zj4c#N!XJD{J4l$N3W=Y&b=+qc!j1Jm7m2*{`fh4VBtWyJzDIB-*;hl%!^Ru z?7=wujIg>R5c#9m@t*C75@DDBvs&`bVN!m0z3ri4W3)cXGf6+K!yywGnpfqKs`aFa zm!{Ca)cjqw)Bht`rI55L^1tGGmxy zR^t1_4n*2A7^PXR?R2;s7ICmkt^G$G;FDbQzuvDtbTz%x%Y}}6oChl&N<_`JNQon` zuCPlh-2Cd+Y_2LcwVI?1ed}+h|0;qe5=n<{A&d^dTd@zeT}`sW+f||cQ4z;IlbGSp zUs`>)lUW5B>sj8l;z$tYAvQT`Gt-S*daNZ=7BF{-=?>q%R5Xca{mJMfgFOf0}2@F^>PZdagEtAUk)O$wt zoDLJmHyGg3NlQSXPJYTnSNT*%gB$UJk>VL8;H!Sp`Tt_ey{-0AoEJ@+`C<9_b@ z-;5(ilIwGRuIqfi-tUuT@jhSwWh!OJ=kV37Gb%e>0^_URmk2@8gRZ%@{xp_|?sqkE zPUGFB>K(V~U&d%J(d;61-m5rp}4XA$DxR(Zgamo-HF_SfHfWV!opAMeyU#E z%iO{5?CIDXG|w(*n|I8<`_)zn#$74o7RA|cN=iBQE}mmdZtaUmKcRAO)eWWCS@p;; zSkB`BhLa^DnUlBj+~OLC2cZwn{ow%rWhLN&hIV*>c`f+isv!*77@PC6t-Z)5$t6E$Q~KhyQv!;6Z5= zCZc_#-GbtYDd?fUWn;gQaHMAwpsh!r)xJM{J)tesvo#jwS`YRu!W~|q=JhPJqGh_a zWId+7q1Y8$2xe#W`p;{)FzATkW?#5e3dXUIL1?a@Y5J9TjDjA zWYWh^8WWLiX~q35km8g~$to3+nk4JgIGsl{6^Z}$f+K$t?CqA;ju*E;N9~!d{EP=q zICk{JLc!!?>hwd2d%S%|u1tg3^*BO2alw*H45c+>l`UG{6X#WQaVDs`!&?4N!#xS$ zqVqy-vXQ9L-I3Z|>HxRz_YH0J)fMGwv8=V;)Qj;#EnTW?U4GHg-6DzJ{$Bv>1ZoXG zHGuQ-pP%ZTXpuyQP=(`RZ&COuM`xUG>zZ7zXsV12%S;#k7Tcc8F3^CE>3vvbNA5L( zkN42f+29;t4w4L0HechS)E+eby4c&ecHP;%fZTDpT1c8_S1c^j4+wxQBy}y$T~C#F zmlK(UjOQmk<3y6i73-(F9_+WAwOkU|kvdrWE(lfUrek35!YLt3HT(l%A@2Bvbe<5z1IgVzNJe%jXh+t4IR%%N*d&80iO@*4l zPsiRJyp+be5%fTIP1hcIt*fh7a%Y*NjWsXZn*#u?m%6me{dJORv!VhvIb4UOoKM+2 z5ymAd`Rr1>*w&2ZRtx$p^O_dRRtsRx`ZMlzuQZz5=>O_f7j?g_SZ zNz$fM4Q_$1sbgrB9YQm1=PgPF-w$qDy{H`6m*Jf;w$UoCcFPP=6?baVT35+5_yBx6 zRqC=pzUxG_hx;tM2^BUhs^S2VQDNcR6|V?);O@JWKR5gqGB8$%vs>tE3v^4Bmx19k zc4}N=VJ`);f&t<_$eL+**uA0smgP2M9hI6|D#_!wkB5jg3Bmm@IG-;#p4M?^{n+^` z;fSmbZVDz<<*1csQMsK)`Fl=X**O+7c*(_Qo-x+gP(@e9f56`vaX7i*q}}@ij=jf( zeH}nz4I)V?PdZNozTTUR>in8|K+BT`L%EV@%Fr%7)Y9YXU4 zAH>)hs>YFr>=ljs(|VU%mJi*%>_IDThG}D}vYznD@M_@Tck^q%gfiXla&)84qaOSa znZ0hN%P4v_&S)3Gu52AH&lkaddz?3S@UzI#EI6FeD~`z*e|4hi25YE(wz_g4omeUO zk&_C>-o%r8SF2o@QNsA=skyP_V*GGiYX3ow#nP|S5hs>3S@T8e%Qd`$^8{X9SzeYG+`{V^TThMXcRglF|8cqRvx1}Ic&=Hl z@-(Y=s+(E<{Vz1P09>1BKk1u`YPl4H^J>3ERTG=SF5w$DL5|xX`C5te?nb{zR@|S zPE6f!`R6S^-8u8CRVRuox*<0?ZB{x>oqv_Jy^}wBsDG^wua}d5qmpX(iHqz6Xh(&Q zJJZKC>dRETRH94Z!T+YUE=92*yF0Ub3-Hm`9UtA>M`@FMrRJwuc;{tO4>p*TyNM;t z_7Z<_o5AXP-k4Fuci9g)cr!SoC);2)?gPTBo<5$vinMC^!s=UN$#<&Sh!usuy*qDF z!u)ne^^9!IX-hRgk$lx3zoh!Yh8$6+*)+RG{Woo!oMP zPM=jCi=vy1LQmPdO4dIcY0XoC=hhjohSOLmJLU~k9^*iAo6jBqHZLu8;>@h(%rxCL zmWX?X)C?C^&0| z?&ZNkZcf}bQSv&ZVM^IPggp%hX8Qh~oyg)C2HXIgE+QzS#m?g`Qxt7^jg(T9PA@3k zYVomH+7Lz58M{0T+{TYhmZZs}pK$~HU}H&)b{qHnVcKTf9_}(t@VDHm*rMc^X?o zLu81zXPHmpJD9Z`T=;n&-tjR}jc7_m`Qn)Nsq@VRn4Vx?hA(S=sIQ<1PhZx_r{;of zpb4|)EdA&5pgYcrYg2b6CT`0-IP036xhMGQ#6$+gaf{uj=B}Z} zD)k)`@M)`}!u1s@8Za2uH!gMg)HD6-tnP+e@H+rSfF3f9qkfZY_Ho7eJZbkjTR7Xc zf+;H4sQ@!<$W{I|VzO&AT;lw3jY8+!ZqnvKXc8?}G>g$3Z( zH_DEryGGZ321g}IBF-b#k(KUx75%7Ll5M}{~ z>U=Pg%Q_z6|KjoNi=WH~v^HJ$u#OGDhqFhlAxnu93RplEO33yJc}(n(#_RXW%!K4nE{-G;0m1 zl%Rl$JH0NzCrYl%;;nZT$7{#n-EONsy1ZAIm!^ifKZ5+!%Uk@98`{M-1=)>n*}uL4 z$G~DF{)aFY%|`g}e^RzGOho6yCg$H6@zC=ISl*BJ1bu}L8-*jMSFZG_- z=t(*~^EVxr5dVlayNgt+7$xpy!-6n- zZwPxXV{or5W^xGjWx3YEse=nJ6%CRRdnf^uga&>>Taunw#|7B0n$PpC{sFFbqm1q3 zuG1QN*5)1 z!bKW^l#i5NLJMrl=c(tRpYW16j|z#L<^h?FI%<+48z1wZPd^b^)iy~zXKgbcZUU4FtE>aU%=fxQ%~2)|3gh7S$Ael;-}TM{)!Ui{R%{p z96bMYhmrW&i}mQ7-7@&F>Db^<|Hzr(W%l_qwpK3UJNE5lUpRjM!$PV7>OBMWBS}}{ zts`-X+%*m&%7MXnzA)(1|4Ejm3@lpy{P=$rDF0un^S_ka|IbSzTt2K{1)QoTfHIt} z9f*x~+DVfvNVoJTScu@Oe`=raEz*r@JbI6KeJFJ|YDk)N|Fg|M{Gddssu~YnvTHQt zuT{reo~Ss#3OtZ}a4%nJd~)BCcx2aTdx0jx=y^NCXxe>Wz$LWF~W)n_2)bkiP zm^2bl?jEYsif5i$Aga9XKu4eU=Hw>>ZE+kFad)2ZA944`oH^EdBh>?myjMr*J zxuhxq^+_VshJRii`jg8G8(kSKXoETyhxy?m&^?OU13}9#bQ~MK z7XG8mK1dA@8xGd&L4SETmr@Kv`MIk6(nFQ{--)=L9twCNWg6bKC_DT?ena zI|D|%s83`4sy}m1xYjYq+Z*nu>Hil{?UaZ13|;yO)VZXgMSAv444(?@Lni8Fgk{a% zrP`IbxSMypvly`Hz-6n~%_?e+#8>JY@6r6^D~Q{lBvJAI!5~H@QTFQ?OkZ;nW|glnIO)azXMbU?d~zMy%a>;9`HThYGaF+X zB-G{dl0UCaWguu$0L6Em3deu;WS)bR&};DjAj4U|yX@4KvesGPS*gdTeYc5C8~hJ? zi)~3CMc@q?3w2Una~}oa3!PR={oaGCvYQQ7gu3!{KWF9q%t|r_nVciHOska0zP3d; zD2o3&B4c!Av(-UwMN?_^rq#=99}PZW&d%QJ-FLf^Z}9c_@PpIV8*55joq^cc>Q z7?kaLmgEc<8sk*@rTjsmU;f7O*4oV!`pYfhXS%H4gEa|nCw&!~1LDln#g1L7!#o9XKeXkaU;CPTg8MM1GHAdFyh;T0_E;rxaE%(y}2a~@C zx49c-%@0-{TN^6%4e6&<*8eqgL7x)b4!RMK`;AK%3)`BeuF)l_{nan&f$INV< z?-Q=D`7B;BTrkG%(tq_?pe2~Y&4Csfso;XrPkv~y#gMq{M?F!{_UmzEqYh_ZB0r_E zBXc21;vbM{d~?2hWS(LL*pJ5TJ=t!5xZywBr)aa0>W2LNF$C%t+Bg zUiu|=Igj@sZ~8_aEB^%O*I3R&J$`O6XSE$rFE~taAuU#+jkh^Vw%;5T{sJ5X)>txo z5)ejl!^0n|)t-B5C@wK7)5tdMJsyP$`r>c5>RRYuTP8Y$Gfv_Ri_Cs^-d82*^m$r4`-maO-yLq;9k)&zxtrqtOhaAqlvtAjyUK}*;@e#=PvS_q8 z?cXnV(!(^bV21qX$0tu&%N?bPFMDNOcKbrX_?LR9vZ|rU;=4O8d}6jxVqgJu8@p4jTrTQzm=b zi6TNwgWEPSbGKZw7Q#B+-H#J#G_yRrRNJf;CuC)qnEYPWryM`cZ>jDxk zbpJFwXy`^3IT6lcb7hBi0kPZzb-nyfLmdj+A0#QG!BQ>Z>~E~XTf$cg?1UWbW>}sN z^?zRGj^pkNM?KsKS0FDplV+5|1;bYE`V)d})B{rGyH!6IKC!Mim1a#7l2Me+8e1&+ zVsaQd-yhMJSkJE^Yu8jV)u84J ztu93d#}GMc3FlvoXAYIT3Ix86JB&>8pIc~2tRp3>FcN)-#^ zZteS%J^?pFML|WDo6{S`Fi?MEXS645R1X1*P=!mHz3tiaD0wzpKB0IvOt|`&ie;YNRJ9uSuM5 zPP0SrMOOEKyXzsjt%8*L{W*E|$`?(qYSCaluvUmL;Z}}65C8&PSj~wfIonJ87I7PTuN2cdB-o(QrpiCVy=^nSk|O#twzeE@;#0D zR;TrR{GM#RtypiT@$``I^UrEP_6P@v@GHOqTI)FLFbwJE%xGwW=$l=>C@L(<&iOB1qxU3Nk5G(y+m3d6$nO{Kw^ zLNv08sr)5>-LDU%ioof16}H@v()3|z2L*FTc7Ev`W4BqJnjwAdhTJ65aG=}ZkLAoO z=AG-_+GpO1-ieYX-9LOUwcj{~b*7|}6a0TITIHDUxO~}#xM<9V0W}d-*o%`C*WBh7 z!Yr9lDtE9#h_>?=eL1w&NX{SWmdz9T1Mhb|P47znr2Ok?p(@-59@bsWF`8E#>5Uhk z2H3omvFrZ6Sg))Z&J%Ojq1rCtx)o&z$K~s7b@c#s(?+=%o?hKZ#TY&upHRyZC0!b9 zH5mmcLVSH_xG2h3T6v#+>L}do0`dmc%PJFEVQRY7>s61Scl4x;ZMOP~p7&8iVWC{x zXQlxWpU2kh+>9DC+BQp{9b)|mlTZ1JWF<8dzF^j*I0a5Q z?8rVG_ncI&A$f%nby4Y(LKTDM9!LY;frU9lTFh|gXTn#a%?+P|c>nx|-(K7cykfc$ z(&A9UZZ=_BOfaRw@~Yz&+kOt^HJ~>8+9JLGC@!RC6>oqZsXUiuVh9P%D z-U=-u7Xhtoj9#X?y>8kp*-M^Fu{xtdK`3E=>l^-t;8eBW%r=0(mmbGm>)u!} z?p-#?BTvCUGkM`Luq3pkar`Ucj{3XMHp{9P6z$`->G{BDR6I*8Q%gV@KrT4GrBh+Z z=i7K(4Gl@$y&bXSC#HioCnY`hY6AN=_(gQbZk^l{x4KY?dXUZ=TCr zukEaVVA~Nsh#>Ovq%0ZqDrX5p3877D$}|Y^+fqQ!e6ACd{FPf}$V;4(h!dvr4uzyk zgZwmRdJ=Xe+I`b48TGqQ;c{%nYz_ti$CZH5l395yuXf{&-~622m12p8bgV7*ZW@wL z_#y#MlrS-lNyMeA!v?H&3kklUTk#;e~Fr_5I^bS0Iuxn_?v8ve1sQ6BXv&=Cc(R9NWag zG7LVThhsCf#x7J7U!OdbEc3~^syZ!g@k=N$NB$nY>$|kbv?DK$JB+&FqTC{~yfRXA zP=iOxn`34-pPJnw1j|wq7stE(o^JXd3ltcpBQVP?wK4xe>30^U6xZGRVqOvqv~v z8}cY}Q)N}rJbNJjaCo>Vq}Y8~h}HJ~uxX2V_yva^NI31iWWO0`?zn&>(}`>&{ooo- z*N`rYS<`+_9M}nnh^Wtd{_{f(4SUI1Whx6B<{nBYd0H*pm5nNCxG;x(SKa=--8{d- z1kII&3n{mjxuZ32sGn=vjPtRZ-&h)FVGe#Uf*p^$O>wlmBo(wwiwBW88^7)VuBOPI zP6awK)xM<~4EK^2>SaH$?Bm>rdR492og~RCm6!g7Zv^fmM{r)BM&}&E z@H^eOF|EH&*UM*YzcpCV_wZ(jXUa+N{bNcx!509>}6E_u0_SElqHra{G7f_>3M8ZLbn|bzh3^ z2;Kfrp)G2ZlpPhYb7SYi$!O*Mw43sUDRZyxn|rdhUv*R)CSVTb{=1=4_kGwwhXih3 zSH=f;*Cqe#cNlbT2ZHQ7FVoh40~fk>9&=&LwMAtOE7Bs}P0u8CZ)fl)-Br;$CM$dl zPffKtYM8fgoAQKe^vK;o{2U&wr%zQ}mFnY^`MS=Q<6odAR?EmcVw-_K8yC25kZ?}X-M*GC+#`2`5G1G;6Bi`49uNpG6 zWDo~0tpZMDCP3#Qzci=KdS9Ktnw_X|`U~Sg%zcr65ze*!Rd(H##@X_Ke(G6j|2*|RYAk4g#nd44yONK_4>Wt-mzboIA9Lon;UxhEmtKL>1<0%+|M7?m@@%5?So9pJr z&lgcr6Vj=S0I#+wIb22CX?WT%0HiCf!d{|%XY0tZ{7oqPO0OYaHcJX%Vm8>Xu6F$` zkCH>UCVf`jdaPI5&Ag##?93Bfs)i%wj6B!C8R^hzdv0rPS8Um2-`&zHWj0+*30-c#G6D{{c&<;# z6d}{-EFaVVZT#hZm_G7-3NUDTa=gKAFO*S zkVLi4Yssk;81>g!(Jk*jCXvB*J+P7aw-D#$((tcMX@{H#uy3Z{&D!c|?%GUqtyd9dUW{C{Lb7xdw=INZ1#!+H zAu-Xm)Vn=>iuh|^IT%Iz*%!^89$(<$`vZ`i%OB6Ewx!H`WE=(Dc!ekdFC_+=h^l7Z zX6Iaq(OimnFwNLn*9=#E9^&nM3nyXqQk*749alWFANk|xp*7VdO4v+GeU8PSY^$iL z0$*-plGr6C!(al*@!>0BPqRQBb~C(|eXfU$)UAz(f?jwDj~W{~l~icM2t4J}Md+z8 zy3tC>=+cIOo72B>^Js>B>6p18dnY*D;qQb#hu8SKDsh&6Iw@67j*SO7&rV)^IO&cI z=;MuutZ=>vFrg9eeNe2WMcE5}rz}t)WuyUcb3w|P#(CDW3r?#nqZ2OZ`w(NUrD6}W zH>Cb$_A+-hYXiQyX&kFyq$$Y!A*lZoUzq#^50w9wx(nqv@i^{5Z=+aKsQmUFPsNs) z)@e>ltG@BfJ$dH1f@@t@mlCNvARA1cG_L`ij(o~Mkwv1cc9Y{^(R2DiKZlD!RBRiG z_A9OaVfE{mVM$U1+FMSO*6Nib?Zo1E6z4n_soxX z$bRxGdD!@%rf1-|_8IGrs;yfHW4Vz`;Ir{CnFYO;&mtE|@--G@gcq)GeZiZ4>reDE z&*RwP;5^0y1O;CyY38F(IcD9>@k`CVMVk&CkE*aU4=a$OxPI#se>zO#S~GmZRpjli zq(YPGca{nS;u&l}s5PtXcXf5Vmt4I4I7l+pSr{xb1nLN6eS;t)+~*SS=6 zPm?RT<~#+(g+IrUoUT^n&5 z6Iy;*wahfZ)JA{*VzHK<8{K(!0$X!E^QUdLJwo67D!hgaxliWy<5&6LL1Vwk_5!G1 zO+1q2XICt-qb82C=>nFb%I)Ukco04hY&25%teivS8{J~tE+zVkVWWp60eUvCtO6N5 zFY}jd3o%k5{r59{lqZrn6m?f3x@Q(e7_Q`8S_*DrWI2t3bsoVI)P!%b3sxl|+s9)O zB}~z^SxsM*YTx3l^8^654*&(B%?0xd%O{&HWwERA`Ne6=+5` zTmj7IZBm2vn(9H$T|>51>bEXz^E1{K8rxcXt?o%ivA+U_5U|Ta=L3y|*LLfHo?Rcx z=$upT_Ug3W5ZD}OG!Snr5x`7qx_nIxxgBCbg_Tis^zWN*$!ON7HyfkRqGIQCZk~3M z$r6w4znCHEb}2}&E5?_bZnTAW5iq=q+?Dyan!<7zoY_9~Q~9{oa`Cl^26{#^v{1R3 zU%e*#Hnp-SVy{K}LG~2O&>3ZmOa)QL7?KTFR=@cvF9yUut z>Fbt1#my)y_F2B~zWl@Zak-Z? zf)nz+Y>vXh?!r=hLjE~hfx)MX3NCzSVpFEMIX}OzZYd3QLFJD~o#b^kSW$Uc`G2=q zg@MxcG*`>QPiWx$6MQgXDd&l-D5h(^B|H`laYP;qF;p6>xAw!@hRbOsCZ44#*Gt56 zsC4jDA8IfuJdCYfeK=_&RASGKl~t#CW?QG_Us~^Y1T>c(yv$DJ88O&r#cFpHsjc05BvDvT7c{_Fo1-&d1QlBN~;dZ_8 z?w_k)1xwcL4L>(XzGzOMSt{wN(B=E0sI@#l0(0P_7TkOnV1%obC*W$tO&L9_=2sb& zI9W%9%b!uYwlxR*rlMiMK32PXyc>7R4j&IcG$AXZ4nseL-HTjoeO>re>Xj6HVwS@q zL^6=k&6o=_e%(ack@_2>dhdh3^1g^1g%{mC5uyGxWPc$|m6ULA{p7kRzLA~dlT>-l zi@U=br+`}`>R|}Aa&BJcmM^1ZyM~!_--_K)V2El+?oJrd$yb{2%(Oboke-2}fO4$Nt*C~3Cae|2O0(v??u?#Jbq_ACs* z*$Z<6Lb5rArgBTZh<_=$g$vw9oERY&}*0lWBE7v&IR#B+KniOzMn>SH67 z>~Y~R>)K1?nwy$<<&uXx$w7L#rcnBj4iiS*b=Jbq0N@Q=u=MjknM$SyA=nol(>O=h zmrF%niW?1o-$JiC%UJ8$aAIqAUYv&8M=UkH9*-eTt@JjoDy{$EYipFUd%X4Ooam%I zzboQ?W?#|uv!TLS-ZXB0#(m*Zv-T_w)u+SpMY^QGnEqGd4hkZh$~ILM9sj^khx@aa zNo&zxc*o*qk?f&*=KKidX(x6^j6?JKjFv{o7oNL%NRy&63BwF7TMp60Vi> zqz&BfaCq;hwdxNl0zL)k+a-}z~A!2bODv8pY8 zch^W`;#wQ1pJ7QK6wa-jD&u2c^7P8R5SEaK{7kff$l+rz4dC{s%+6J8<+bJCnYUmL zBjq;EJ_U*5w#4rFm=EEuJmq^7Ucba};tITFHdQoTY~c^O7#c=SdE9g{`4zAsDe&)! zke~*>C+_rsFNqF1vgVo2L!BH@`7x6ac|`Ln_t4Jn`b!mQnLp%^8xBv+``ynK8}Sfm zwtwVu0tB+1v0t*&M&u1V37n;8|=p~(V=mdUQZCJ7<6<4(Y$}~bp~X@lUY0Cv7J`>1QmW%#Jaux z=cIf2h0L2%^lwRxh<(>Vl7JH`3^pl+B8;<3@)fkz1|x5Z#TWH3S{{ENFBZQHn~CmB z`0&Vj{c>u`?v>&n>fd-?LM1O&?*782gDwm<6>7G4a2(0QOGnHp(<;TX>gKW=_pNIG zmMCyp@Dpv`9AEXF`K%WZJ!b(Y`nNb;e!U#MhdS+A;E+|7xfo{m>$m&$4Rw`^YK)QUu{Ey=c0tt$lUj=h%B6w*y4inqtybL< zJ6!Wqp_$AmW_{+(7@!qAmQ3c6)7GE5}21`CT)SBTlx$vFhO;Cr!)rIMD(FbJ`dK%`U;Q+MbZ}X!+1litllVtU9z~w^ zLdL-aH|Be`_9KfIS{-}lsszs-fv@NP+>MlF1}~d!FI9 zQ#^mE$E%4Ls-~%rcZQ<_9IPw*Lteyrr(HEh*Kpv5avAFuM4Eilz+z4x(C9pCdZ)P<7a37SP#I3rB-hBH&n_Ki;0<1IZ()Xz%vCK zvQiIl!p`-e=#g}q%>?S|1ZcI}1xgH-M%5BYQ(6W~J4`OTjGK2T?sEM}Ul^FI98}(a zWc`xFcFEquVm_wK<>7N3`PFum>wA>{-R1p0d^@@BA74-ft@v-;~!2$RO5X; zN!PL?l$O!!+6=If)xYh~=D!-sMSeBp&Yh$iqutNjfgdQg{L@Sj$HMXsn8en-XPJ?s zLWLSg5J*7JpsERv8BlA6U#mS=i+9PE>N|ktTD0mVRA(*TlIUf11x(0}Mz04msIPxH z0UoA|o-qZGTS*z@9o6(ZozSp&a`0EZJy+hNpxJO#G`!(}+-b4`Cj%Cf{MFE^*{F0S zIuHuYw_^F&*Yh_x#}vNTUaNpdgWGn_Ty+WOjr@#6wG$pVi|kVHlC%DC7^)d34U3B+ z<(b2lX4lUdg6Db9BZkjn(Z}ev_BW1p*HHyM|IGM!G-wFKM-jEf^)vI_2Y|^rD>EN^NG7e2cXPqMK$USaxldcEferX;`rMytLJk~@%Gk$X-8;)% zuRVwDRIajA7hjI01is20uxS14^|t)eV)2{0Aj%u7EYB7#y3+6HB|q*b+vJkHRxr5yZrBUW=z&WwY(fZSbk9IAqG|By zJ=aH{*p!D*hmsy2Lk>RPVdL4KG8mQ{Ocpo^Jk!8oMAWw6tJ%iVY4w+M1ZLA37i|cwW%JPmvPe)W z{>f=wGYkCYeRDh2o55B@gJbw^R^HWr869y13*wQBH&M=@k{DiuZ$G^P7AB<^b)xy< z{Hdo+KMC412%^M7Xjjfv^1|*(br8&<1IPKW@ODfN2ANJ)ha%oorou<80}s?a(g@%Y z=Vf!rE`g@MjSuGtlXE*HT)7zMZwFXlmwRxVNC=cGW%31J#&XQba2E0^|0@|Jrk1>15e-E=55$CgS{SU=m;&4J4#wz8Q?ef!9ErqNSwNOz4QDN3Ai!^x1eo z9~q^-ETQDHt=p@*zXfqYgb>gdAW6Fpnw#%JKs0KmgPRM-QW-}%-=Sa_YxN}!yX94=f^x|T{pzsY3TxVImpafZ#Ezn5ol&rEL z;oF;l_QClMN;jL<#+9|wcwn3*W*!fVSq$Z^x%UK;WWhX_d63D$;@D$nZ^Uog0 z-X59q3-TOvQt~B~W!B=xx`({1`gw|y{{3vSPk~)U-;{{OLCg5v>G1K?-G2!WkrDU2 zEe{UJ+g&+%q{Sq-C1PMVbL-LSA5)UD)PvbLbQ_e&G-!7}-7WzjZPnow>g9NI=m7Bs zF5D8>^?*%6bLTEujw)YlK1w7fB2)0K(tJRzE13A|k9Pw8XHZLz<)DP;;APwMAu+$c z>3s$%(*;8C$)*z88*)A&@ooOBgRg$!Y~47=7j#a5%#W23+nNZ4_kW`eNSn1D8}(`9 zmq^{1953=Q5$>W4hcvCu)t#JcYQ2dD?D2g#MvIWrP{)m^WO5v>XGJsB*d}Sa8&?ZC zA3Q&r>^f+^ZmX`Xd1P(xlCNfUJPma5KR)?A z27;2c0lso@;W$%H!BxF1{c>>Ee=B7td_6XdK zvZK`GZcPl9tbgrI{>AqGerir@2XID|~XpT4CT^azs+yWkrp=mbse0h80hm z6tXc`&|;Hj3$Ly+{URr?C(R&`%d<;b-v)5-SC23@xT6Y;vr`^?VY22DG;Z zZ4bUDqX~PEIkNd~$yrAmmh%z#e57oigl&>q4VpcF*4uRS1LUPT;5RqWw9B>Hw8jj2 zi!p)qNjIDaG9g#?-fJV?h@p3_PYMBt8A@=|%}^e|E!grZ7^xM9fClEAeF!{?LYXl0 z)%s0MI%1ruzerIkv^hz+v=cl8Y)`#m3glKuKYQAk}pIh4S z%WTl#dC3E*DFY_6^XF1?&a{n*NTR}I-3r|aTesTwf^0}lx64oi_vc(g?A$AGA<#{x#+3(DsgzkY>f9w;N1Mp z7I>}Mp;>Ef&(0(*@^KO!xro8-EgR?@T3zMBQ@V?Ota6zaNq)2uqd>yzlDC`5V`wC% zEOC@bF96 z4Jw!UTK6CI`z79O`rO0hQnNnd`|eLUWCQC!^7u0L%>bcev)Oo>GRL=LUU>21FwI}E z9}bHPE(snw;2ZLU!VUIM&x8@)`KCd})-xYXQGZEKN56zWwK~cRT%ILwFYMcRpC|aX zOjNY*xsH?f%&>S2mYZC&#OB}Tj7h?{`QMZ&lO^U7Uv&WMiJ7ZqDNS7X-0fE2C}rb? z9@w{>@nu4F7T_^=mY`Xs@u**xs)@HEnT+jCA+cg>lT4g^nF~Db!%z0YQ59K|u7gUG z@4OQ|U8DHg#QE44w56s|pk6WYWD8<8;(uJex$0iAZ`tayF_RVm1REY{kI>8|p)8=g->z^?0ttiS$ zV&uK*_?xl`D5?s-4Qt6zz#e!oyqV6HzOne@IkMU(swRRfe3dvtoz)X%@Wt%x{0IWW z%8)04bt8SKb$t%kR8)Rh(7<-kDD=`vs;UvC-@u#v(wdN4gnp)UqE4L(3c~35E=H6g z>v)>Cnva^mF?3s$anzaBZdPl|v@cK8$&R%IN(IWf@R#&1WTnbScD+klG2bvs;e-^G zdL|)paG5!Wi-`9tX1GXs|FJ*8nBy?zn|q@hl%r2KCK1K8@Qd#gV=`VvL`ei zt|X7ZEwR@HLV_8==>4YOw5bE(k<2IQ)BfG2h$3BDzJv5y)}<#^Ao8l)#hVkA6WydBk7aVq(;lD zR@a*)aj|P#qhJ2tra5AA1UGM*aN0W_$TXlcv`jp5_{O}O=HODyE zdkMOcr$O47thSPRyX?VTPWRM>>`i5_n6}68o2J8zj4UUk^AT^^;(U@^&mv{d%{F64 zwbY3+9@ysnW%#DEom=dWW9a$mlka5Xy{09D)jvF>o5_C~{u&d#NOJ6jFo-UtPPy)O z`ycVZ(+%QKogh!VD~MNsk@$6+g>t;2a@OTE6_@&=m_LJdq#VO4iNj!ln(6a_C709L zc2p^ue3#>-^_}ZMg@X)%-ft}u((tz8jzkh91mySoBM#0Ky+8f2`qNGtl@?;!>=>04 z*tOk65~)2aMh~-?kPp&}xYVK$OTMl^DU%J*5PV`=m>c(yN9~8}P%4>$6*gL(vlo^r zk-F<)L^@kL)z+PQrK17&_p6>meex#b#63j!hWN$r!BW%@4|%FskP|(biiT;eMM3Ss zPfGlHsjH?h=&N@{7wD^H4)vabvNXNwJ-7Psn2Om{;<4%{4_$(^+n0l=B}(D`Pw}R( z_*eln)D1w=v@(^^@&6w2D_5C)fyfGam<6*h06wOS4Vou(!B(+-*gE6L_tYE=D zDgCTIe0D$E?sNJS zZJWXG_^Yu4ZQa@a2B) zbI$ji=ahG?cfCJY340}3u=ixoT-VH8^Tl|;y1Q24l;3fV2&EIS>AifFMk)N4jNTVm z`GX3`X^1S){pT)O_?griyuh*H!s6SVEFh(3Z*TJR$rX72Uk?JILhZfQ9Gpebj_RmT z-X2C{7UZV}icpr!f7Mr%E_3-sIU^dJ?<8DY?i4l`Qaod}Qpa~G_8-lM_Dqjh{^~5b zJzaPZz{rwH=;bl}R{@(xW!YM*<+^{%il0KqrIQJl?(0W{+c&y|5P1HxJmder_&+I< z|J#SJAZ<)WQdfVo5I~j33X^T-e-?1;J)mr~)v;R9vG&TA!(_(p)_F-b_c~PioZs4K+E_>v95QHc9 zPPd7uiJQnv!_DDt9(|nsb8Zu(Krcd<$d*B)cXzMr=bsa?sZF(#mK)b(PoB=myiTT8 zs{L^;2?XyY=DtIgSV-P?njFtl~x6+!x8lnHbaEL``9zJZQf$u0VKw z&h0R}WoB`=W?0B8?|~cmEQ-Iv+aa@gYNw(9X9R&U4OL$)(v4Hx_4k|9mTK0w?H{~d znw1xOy1lwRtnPRl=vV_iUC~^q($7oM6m3TSm*W>GTwpwKbGVd--1&;Ugxxv)k5(~b z0hILpi#x#Wt1jgMyLrwFN-m|hUCAY`RbX`&3+VPOnOW`h28R?RDCs0jJOye;JfJz& zRvZD?o{O2yX~)YSQg;IK?hpDfywY{91OY82OiOZ|q1teK9;A@-`BI zoEgUEZkRtL>63fA&*2I&J#T^TwVNMi=Ti^h=-3xNN3)#EYRZmQ3O?j7F4|!38Sh(& zFo4WHW{yg}zIuRhjAn|TZ6S_9|E647DnEH50lT+j)jWZF_Nyq8wminc7X7pOF+2jI zsj6sz$c^N@ceM0c>h*{T{g{DJ2tkW%-3j{r^1I;2NTa!>?Y)3*k1Tng7U*i6Tz<^% zE%&%{VV>rT8;k7m^{<_R-%GqnYGHet)QF z<}p%>e+qZ%-gY}nJL_lM5+|^^e^h4ku9PkE zcSXoAcV=8S=@(tubtb==1wTH{0Ct9+5Mm;M^IbnM6dyOYU_yqH6bv$eKOPO*Xg_yc zM6f0W7PjnuPFj%8l{vcRJ6S-_e@676OII;@K|Dm43?)Z;+D|3Ts4mwRhkXuUnJ0DZ zPV-=Vj9+}+NxyU4p#lQKi+4SC!OchWisIO5(e!q#A`VEp`C@KgM~ksEq-Rsq_4`!% z1+UK5!H|-^@ld*$OH19+D=Axq^9(|!mG~!Aqvd*De+!;IbJc#g5oU(}#+mbbmk6eb zet*9Xl0Pn*bQ#~qY;$M1Tdrm%Cf)V4SX5O`Zff|+OG9%DhkO-+efU3KO49@nR$Tc~3e|Ak%xOWVbVt!;@ZqA51Xa^ZCxmJG+W)=X#B& zYlic9EVA-A9Uk15)$E;4y|X~7M-M!FSp96z13T{(-13=e4DfWsV%lr{U4MMyekg z0N#F!KB+-U=&;@xDZt$hPoB|&RLc#WMBkl@t%Ze&+A&|LdG|c%C60YQB#{-P==Hni zIc$WX7qCddaT)`~E(R5Fu(r&(!7QHyH+CfHsk?COyS5&v`CXo|7Jq$ax%c(tw$C4r zaPIkK9YxGzZ2CDcZzq^A(0-wrU2+pAeV{Ojy>Xcl419i3sEu;`eRNG`YDdhUUdqNG z9*Rbn7G%-Cy+R7$t5J&L{0JBMEAQRU%8~WYGd3VidTqClfg!$F1wZ~Oj^NGZ3CJ>qY+mRw6T@qo#QP(eZ7>7{*$0p+Urwd2+^SaNk?Y5o0WF6^rQWyecEohAeQkb{ z&g^cq-D(7_Jh9mc9vp=TaL*!Fbn~4O%`W74U%6bR zmtx4|ECfb}E1Hy1>0knSnAMOC4dyD5x`GBKoCq%L4?Vq`2=5B4%mfi>4 zu0vA_3s&bNiGh~<9YGMYVer6uB6hGSlV?f(mms4%`ImTU^i3)I3sRzNZfd2x0*)rE zBO{Ijqg5kL}tHEn1ndZRQk@U~x9aQ#iGEWdUW`1V3hCv;m}$Xeh{$2HayJa(aS z*LYUsZQ}y-2;it1jkwlfx{^|9vMdC>@Fa6N>@w?R1Z?VNOIiw=Fmer+CRMhN9J@* z2M%AH<#T^0m%jPu24=(^{jA z;Za!>AGYB&D7m@b>)-X#;eW;d2mgrw75_1{0rl6^hSR^MHr)POG5w#!)&CDKrmpmI zA_!X$bQyc;O}sy?2OK&&6n~B6m(fXDt^DA{)p*it>fX=_cqXY~87XI|6pmu%H!hhD zb7El?Q;K2!q)PKj3+WJHQp{Sq-}l{~@%mEB@GHQ9o?iy#MS^WV^K+#Te0L3&xeAb3 zUG?iJIbhXZ4ZP|LTI!@=Y9+YeEMe-==Xg5d?FH~%yHUkgaUWPx6xVCA>Aoxm5c-@E z72u;1lQH5ke&Z;z!1uO-x2m!p`w%KUZ#q(Nkb;{W;BCw?kF5k0m0b4H&k=lg)MW25 zXR0@w_sULje^6dt5ic-zZB}KzHA}TgRBVzU^$a)}?@zgZSMQorJwP0zX48y6k(;+5 zLRB;JHbc2N6#K|hB|H2^>t}v2TfK{YetYp+AMW&wW*$T__Vp5Ki6y7KK}PD%ql<=b zNOeGhfk$kxR*#cI=5JSJzt5elOPm6Wk@;#tV+`(>QxzYlYdg(=QH)2C1ePI!o!Y(6 zv*Lr7Q`C_8M*{>*!?G$N*!w$;=9P%V5X{OSwma#%sP z(2UvzbM}Wy8TYtn9Rc3NnXE#JgO zN>c)fKQ*YFNAXvB7ZtC|n;h9BrMmERe~p!6!wM>epPv(aj)$?eS8PQ+@k3{Hjf4Zb za_77Dk2hxoS4z{g5V-BqGLAkaqalr<_eiw{g&Uix#p#0!vv>uh^_db$79wIZ>axIG zLRj1Uwui(7UyxOyZR@dGqkfR<+Vr_(J7J=a1U2TxYT=*zfh#+{(=7G7j;wK1;H=L6 z_i~f^heGG@^t>n?vP`n4`qX;gcALZ9q9{a-ReR7FsZ$#|2C!Tzap-`(euj*a%i3T z1$Xw3#_Pb=lJ<8goR7#*jWjkcoKC!92MV_L)ObbJg&xicjMeGs+u~99w1^o60E!jxnHwUpN?2Bl{@f!G#74FGo zlFy0mgZVJTOTYGei{zcrvL4H?>rVzE7m#(3tfjK>8kJj1L>+JGt=_*xmH8G?ZB~Jz zN?D9$w)kDBE+^IY5F8~b-^=UKacFZ_ABvImQhevGS2BCo9&>?1>_y>Xmic)m^AO(#ceyAKpcV7H9;H?qF)^jFuc%)w<7`>|3YdDn)MUv- z!z4Tt&?odxX^!%J9GGGgz>l^&i-*XohMh9ekvu42U%o)#m@#hKe}3$nwLR-b$!;Xl zuM%mONrCd-enAL4M}(QuNa}SzS~I+_Q}en}EE~{4IdjQZlvM$-t5%VDFx$L4?^O@0 z%B=R@@+#9t#O^FztG`(g^O^XCb0)D;w{J}Y^!55X7m_Gi$g5>?b+&u-9oMVKHUoR8 z?e~bODTaxiJ)^hnd~68`^gl1o>wyKq^S>o|?*z@5sd3SJ)XO?gEvQe89`jHNjQ?H5h-!{;Jk zTy8Q+33e=3aQzEYqmf35v(Nmi*oxsF448`PN8#{|K#9&^F=AAn$fs`o9n-m)^a;;RG(XV|6JmkMu)E zz=zDkW{ze~tm_vGU!9UXi<8+U#mC*miW+e(eInE52<9Kf&eW06FwNFECduiR{eD>r zzs~K@YPRc4*-hq#sjj&c4stsYHuhLQ^E?N+LbG?<;Mhs57ZkVFYl}kBmQ7KB&-pOkxFRo zE>6?pBDlk4yngf#%p~F6txTphEW)ZO&Rp=suZvTSF!MJBa1J~!;U<5GEM~PXtG(%lA@|gKxXTCPX1cW7{~@l%}{8Q&f3XR+lD_{vB6xTnO4Z zHW4a}w!AWU##?R_s8#*v3=x^=H1^*3fgyie6$qN8n1%B&E3@u(LbJ~3>KVdHkW+4G zsqc`~EXR;&dSOKEn!&{uLQ0pimT6V%-9g!La#?TfgyCO*s4iij_!S5{_CGB;GYgCU z7PAvv?5%)2(;Y;t6bvNR`}5Vj`KN9F&r7U^U-<4jji3D#PBePj_dR_Aeib(<&}?E~ zc${S8(vCV)6^jXo-7(xy7x8wZxC1-_2 z=jlfOYLEcuRa`)|)!z@<+?UuT$ z=F-N_Jpb{Aw&fQlfW9%W5$SVGiNRs>yGun?kBiJM&nAT1WSPn}Sf}FyUON7+a0&7> zEN8{}2M%NN*{7Zd7{}RZrGT_zQ#dEJ(5$(dszC14mHy;J%>&!#g9WFe1%$&%Gw|dC zY4J5P0Sl8YqBsqo3&C|mDlu{eNr~~HMcxL72YdUbL}T@02Jf`@>FyX-;Bi^Dbc5aA`Xq*ZI#zDd=!_S73_ z=)X9d@CeNI7j!yGQJ>F~^F@3u=Ya<6Ug|N7wQStdh{LTV(v1mOw>qny$eIY^?|bKB zGN$r*EMwm6A{zXS0-qyROt<(;!d3n&?@8{~aG}vz4jFgdf zqRZ~aw^Z;@Y~%coRK-n9xGDQ8E^<#1(hx;OwKc?O8J8Wrk=`A6kK9-zQHRiaxQb1X zk-OdIX?>1M9TsSe#KwOlOmXk4zv>_=54C^=XN@BTmjafS?zP!ZZu`9jhWK;S5!o>M`?w>Y;@}{gVfO_7^z3#bD`e&Nkf8_X8xaFI<{h5 zE;G}j+eA6477~NPMM^d`B15bzMQHt=*lH2g7G2}?>5qeL&O%Lq6=ULGu$eCICu?n6 zX@K3!8`9@`l8bzeCT-`7L4o4T4o>H*N^=W0(jU$fA``P2J)yfD4?a@$Sz_mlq;6i1 zdMR?}wrBij<3Wk2+jfIrIQdiER%n2o`+W2=?Tma8-6( zj9ka|nY%$h(CvMf^6GuHMq0uxFPmA9(YE8zbhZe5zfsKiO`QP_eM~=poH$E=(!t|ZfT`=n~6T_Nn`Fq zlHA$~a&6^%4BcSm{WfFiepw^~P3;M_rF;AUMdV(1b@0V+2W0Uing4#!8&9R4+~hsK_MiN>y5DRs_#r3R z^P4sfVvZRh77~NaYZg`qBg@^prNS_8Na#tk)!6_hVZKRK;q5jBXK=Ay)yCy4p;%-3 zn^y2exse0Y6v`tgE#Hd~kvbuS3oif&o#yDKJz$zO@s0a?dna>&U*(1BKm%Naz5Z+4 z6Y9Q;X}Ig~ng6?kA^049E0#(oHyW@aW-Q2cTD$QR3Rf3o2u?o_Y|fKv7MJ1bILkF# z3jVcZchR0eM$NJI+3(uJ-T5~2O7~0#H`=>R%PHpbrbL-O^kseuE1g7fV3BNzyJVXH zJ%5nDQzZ?c+#)0ov6CAqg;wa$?CItrRDpWnRWblLRn1hs9Dthf7*wrwbej6lrXk#q zw5fYKNgWbmq_Q!e*&}E;pVs@7s7mf&VmPofoFgOseeH*gDahN7;mXz(j@hawKFw-} zf6{ALLe7Iywgbj;FR90ZIQ-7@caZJxDi*V7-&V97*w6f)*=ta&(FU9v5=}kH3d>@- zTQL7QJbHT4?uN2yvI+!*nKqv7_ixsE(-evOB2UASNvH!4@opg2)E~@dbe*3?=a_--mmX2uSD_(=+`tiyo=9x;W zF>9%=9O9orC%b+S>SwLEK8?m#%Qwirnjj8;O?xfslVmd1ZL`Tc(2v~{?r@w;5nQRy znvy+WuTl)b**3c3KkjD#A*Pb#^0$423fW(#Yf-z#kieSr0Y#W!0e)q2RIVy7 zZIRl9`pi4e?1gIX_uciZY&&WBKs_T){B~Yt^w!=bo}xzuKku^8pzZc<#cbfGx_=b6 zJIm|)opgp_jgG=K{Km+fd&?9Y!6r{$Jh4Vw&}1Ir_qt~ny|VLac8JStsZabC{2+6D z9kIqpsmI?#x)y%>Ei@WchCgs?#io+!If`=}dZb%y&W1E()21onN0t*&F(7~gk1o5U zi?8umo6+X2#*<4-V7vshWvf0UbEZo5>YyzMBV^x-KA!l1@7JzJehqv7FC0T#E^DiNjQaQ|On_05A+fb|yD z4mQ0(UE)IwyfM}Xdv13F@bj4Nn&UHe`hB$1#&#efm8q1BnZr}iw@j|+-}uI}Hd<~7 zn9y92af_BmVSzauAD>SpY~MCDFQQc*$IdqjQH&8(mMv!F*E`RmN>N+4j)D@Ayc6{P zr(uOeA@V-BL`vdCndKmKeZV#s`hd9M7};)-UY1pRay7EdB?D)3=Qz%;ojSY3(0}FO z^k4L!C{H};Sqzbtp>o=eAsHsCd}}%lJt}YLeW6)s^i8!o_+sw6*;V*yqpEhuITSPZ zUGoVH(Q~A{ZBB@>j`BjO2t7$xv>BO)ca5F`!Qz#=y-PGZBL3MI5mh%cn^8AAx@c%P zIC6doE(+H;OWwa2*{DWTaL|=Dc>6Y2EQ0*{v;3O(G8MKt7OTcX&VK~Bj%N8m=}D7K zyyzI?nl8^SxvrMSJ&2mIWEPyvuR@Wr0%>|x-{%<+_AWkef|cnlI=gu@q7RP>|it>9X-h-|14*vt{^)@1cAfcNhvogcPd1OS6G(j zP%4FBrc+&qx#s4Zc6D4aPT4XBReBx!IZr~aeV!Tk#&2T@Q1iP>>D+IOgg C@{f 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

+$b#5`t&W3L~kb=Lw3*%#AYfG_vma6u-F^3k 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 Date: Mon, 25 Apr 2022 22:07:50 -0400 Subject: [PATCH 09/16] Added publish_to_pypi.yml, redacted Readme, updated config.py --- .github/workflows/ci.yml | 5 +--- .github/workflows/publish-to-test-pypi.yml | 6 ++--- README.md | 24 ++++++++++++------- .../__init__.py | 0 .../plugin.py | 0 setup.py | 24 +++++++++---------- 6 files changed, 30 insertions(+), 29 deletions(-) rename {pytest_playwright_snapshot => pytest_playwright_visual}/__init__.py (100%) rename {pytest_playwright_snapshot => pytest_playwright_visual}/plugin.py (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f52ac5..5eadfe8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,7 @@ name: CI on: - push: - branches: - - main - pull_request: + push env: PLAYWRIGHT_BROWSERS_PATH: 0 diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 18f5941..cfa5d0e 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -1,9 +1,7 @@ name: Publish Python 🐍 distributions 📦 to PyPI and TestPyPI on: - push: - branches: - - main + push jobs: build-n-publish: @@ -29,7 +27,7 @@ jobs: --wheel --outdir dist/ - name: Publish distribution 📦 to Test PyPI - uses: pypa/gh-action-pypi-publish@master + uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.TEST_PYPI_API_TOKEN }} diff --git a/README.md b/README.md index f0bd1a0..a2c0fde 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ # Pytest Plugin for Visual Testing with Playwright -Forked from https://github.com/kumaraditya303/pytest-playwright-snapshot. -In addition to snapshot comparison that pytest-playwright-snapshot provides, this plugin enables: +Based on [pixelmatch-py](https://github.com/whtsky/pixelmatch-py) image comparison library. + +Expands `assert_snapshot` pytest fixture from [pytest-playwright-snapshot](https://github.com/kumaraditya303/pytest-playwright-snapshot) library + +## Main Features: +- snapshots creation on the first run - visual review of mismatches -- creation of snapshots on the first run - failing on `--update-snapshots` to make users manually review images -- snapshot name argument is not required, `test_name[browser][os].png` is generated by default +- snapshot name is optional, `test_name[browser][os].png` is generated by default - updated folder structure: `snapshots/file_name/test_name/test_name[browser][os].png` ## Installation @@ -29,7 +32,7 @@ Then, run pytest: ```bash $ pytest ``` -Ths first time you run pytest, snapshots will be created, and you will get the error: +The first time you run pytest, snapshots will be created, and you will get the error: ```console Failed: --> New snapshot(s) created. Please review images @@ -43,14 +46,17 @@ To update snapshots, run: $ pytest --update-snapshots ``` -After updating, tests will fail and you will need to review images again -In case of a mismatch, `snapshot_tests_failures` folder will be created with Actual, Expected and Diff images generated. +After updating, tests will fail and you will need to review images. + +In case of a mismatch, `snapshot_tests_failures` folder will be created with `Actual_..`, `Expected_..` and `Diff_..` images generated. -##Example +## Folder Structure Example ![img.png](img.png) -There is `threshold` kwarg only option which can be used to set the threshold for the comparison of the screenshots and by default it is `0.1` +## Threshold +There is `threshold` option which can be used to set the threshold for the comparison of the screenshots. +`0` to `1`, default it is `0.1` ## License diff --git a/pytest_playwright_snapshot/__init__.py b/pytest_playwright_visual/__init__.py similarity index 100% rename from pytest_playwright_snapshot/__init__.py rename to pytest_playwright_visual/__init__.py diff --git a/pytest_playwright_snapshot/plugin.py b/pytest_playwright_visual/plugin.py similarity index 100% rename from pytest_playwright_snapshot/plugin.py rename to pytest_playwright_visual/plugin.py diff --git a/setup.py b/setup.py index 720abe8..9fe94f2 100644 --- a/setup.py +++ b/setup.py @@ -1,35 +1,35 @@ from pathlib import Path - from setuptools import setup + setup( - name="pytest-playwright-snapshot", - author="Kumar Aditya", - author_email="", - description="A pytest wrapper for snapshot testing with playwright", + name="pytest-playwright-visual", + author="Symon Storozhenko", + author_email="symon.storozhenko@gmail.com", + description="A pytest fixture for visual testing with Playwright", long_description=Path("README.md").read_text(), long_description_content_type="text/markdown", - url="https://github.com/kumaraditya303/pytest-playwright-snapshot", - packages=["pytest_playwright_snapshot"], + url="https://github.com/symon-storozhenko/pytest-playwright-visual", + packages=["pytest_playwright_visual"], include_package_data=True, install_requires=[ "pytest_playwright>=0.1.2", "Pillow>=8.2.0", - "pixelmatch==0.2.3", + "pixelmatch>=0.3.0", ], entry_points={ - "pytest11": ["playwright_snapshot = pytest_playwright_snapshot.plugin"] + "pytest11": ["playwright_visual = pytest_playwright_visual.plugin"] }, classifiers=[ "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Framework :: Pytest", ], - python_requires=">=3.7", - use_scm_version=True, + python_requires=">=3.8", + version='2.0.0', setup_requires=["setuptools_scm"], ) From ad57c7cf8c90adbb45018397500c0640147d2606 Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Mon, 25 Apr 2022 22:26:56 -0400 Subject: [PATCH 10/16] redacted Readme, updated config.py --- .github/workflows/publish-to-test-pypi.yml | 12 ++++++------ README.md | 7 ++++--- img_2.png | Bin 0 -> 113984 bytes 3 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 img_2.png diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index cfa5d0e..bf08508 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -26,12 +26,12 @@ jobs: --sdist --wheel --outdir dist/ - - name: Publish distribution 📦 to Test PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - user: __token__ - password: ${{ secrets.TEST_PYPI_API_TOKEN }} - repository_url: https://test.pypi.org/legacy/ +# - name: Publish distribution 📦 to Test PyPI +# uses: pypa/gh-action-pypi-publish@release/v1 +# with: +# user: __token__ +# password: ${{ secrets.TEST_PYPI_API_TOKEN }} +# repository_url: https://test.pypi.org/legacy/ - name: Publish distribution 📦 to PyPI if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/README.md b/README.md index a2c0fde..ea49622 100644 --- a/README.md +++ b/README.md @@ -52,11 +52,12 @@ In case of a mismatch, `snapshot_tests_failures` folder will be created with `Ac ## Folder Structure Example -![img.png](img.png) +![img_2.png](img_2.png) ## Threshold -There is `threshold` option which can be used to set the threshold for the comparison of the screenshots. -`0` to `1`, default it is `0.1` +There is `threshold` option which can be used to set the threshold for the comparison of the screenshots: +`0` to `1`. +Default is `0.1` ## License diff --git a/img_2.png b/img_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5807be95176898a8d1708bdc2c816f0291675678 GIT binary patch literal 113984 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 p;c+rpaOdah&QY~~QDZEFBlA-HX&-~U|KZ Date: Wed, 27 Apr 2022 00:08:17 -0400 Subject: [PATCH 11/16] feat: add fail_fast option --- README.md | 2 +- pytest_playwright_visual/plugin.py | 4 ++-- setup.py | 2 +- tests/test_plugin.py | 37 +++++++++++++++++++++++++++++- 4 files changed, 40 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ea49622..cabfe30 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Based on [pixelmatch-py](https://github.com/whtsky/pixelmatch-py) image comparison library. -Expands `assert_snapshot` pytest fixture from [pytest-playwright-snapshot](https://github.com/kumaraditya303/pytest-playwright-snapshot) library +Expands `assert_snapshot` fixture from [pytest-playwright-snapshot](https://github.com/kumaraditya303/pytest-playwright-snapshot) library ## Main Features: - snapshots creation on the first run diff --git a/pytest_playwright_visual/plugin.py b/pytest_playwright_visual/plugin.py index 814de54..0f09131 100644 --- a/pytest_playwright_visual/plugin.py +++ b/pytest_playwright_visual/plugin.py @@ -14,7 +14,7 @@ def assert_snapshot(pytestconfig: Any, request: Any, browser_name: str) -> Calla test_name = f"{str(Path(request.node.name))}[{str(sys.platform)}]" test_dir = str(Path(request.node.name)).split('[', 1)[0] - def compare(img: bytes, *, threshold: float = 0., name=f'{test_name}.png') -> None: + def compare(img: bytes, *, threshold: float = 0., name=f'{test_name}.png', fail_fast=False) -> None: update_snapshot = pytestconfig.getoption("--update-snapshots") test_file_name = str(os.path.basename(Path(request.node.fspath))).strip('.py') filepath = ( @@ -43,7 +43,7 @@ def compare(img: bytes, *, threshold: float = 0., name=f'{test_name}.png') -> No img_a = Image.open(BytesIO(img)) img_b = Image.open(file) img_diff = Image.new("RGBA", img_a.size) - mismatch = pixelmatch(img_a, img_b, img_diff, threshold=threshold) + mismatch = pixelmatch(img_a, img_b, img_diff, threshold=threshold, fail_sat=fail_fast) if mismatch == 0: return else: diff --git a/setup.py b/setup.py index 9fe94f2..5f31f11 100644 --- a/setup.py +++ b/setup.py @@ -30,6 +30,6 @@ "Framework :: Pytest", ], python_requires=">=3.8", - version='2.0.0', + version='2.1', setup_requires=["setuptools_scm"], ) diff --git a/tests/test_plugin.py b/tests/test_plugin.py index 4ad7f31..dc723b5 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -93,7 +93,7 @@ def test_snapshot(page, assert_snapshot): @pytest.mark.parametrize( "browser_name", - ["chromium", "firefox", "webkit"], + ["chromium"], ) def test_compare_fail(browser_name: str, testdir: pytest.Testdir) -> None: testdir.makepyfile( @@ -112,6 +112,9 @@ def test_snapshot(page, assert_snapshot): / "test_snapshot" / f"test_snapshot[{browser_name}][{sys.platform}].png" ).resolve() + result = testdir.runpytest("--browser", browser_name) + result.assert_outcomes(failed=1) + assert "--> New snapshot(s) created. Please review images" in "".join(result.outlines) result = testdir.runpytest("--browser", browser_name, "--update-snapshots") result.assert_outcomes(failed=1) assert "--> Snapshots updated. Please review images" in "".join(result.outlines) @@ -122,6 +125,38 @@ def test_snapshot(page, assert_snapshot): assert "--> Snapshots DO NOT match!" in "".join(result.outlines) +@pytest.mark.parametrize( + "browser_name", + ["firefox", "webkit"], +) +def test_compare_with_fail_fast(browser_name: str, testdir: pytest.Testdir) -> None: + testdir.makepyfile( + """ + def test_snapshot(page, assert_snapshot): + page.goto("https://via.placeholder.com/250/000000") + element = page.query_selector('img') + assert_snapshot(element.screenshot(), fail_fast=True) + """ + ) + # test_name = f"{str(Path(request.node.name))}[{str(sys.platform)}]" + filepath = ( + Path(testdir.tmpdir) + / "snapshots" + / "test_compare_fail" + / "test_snapshot" + / f"test_snapshot[{browser_name}][{sys.platform}].png" + ).resolve() + result = testdir.runpytest("--browser", browser_name, "--update-snapshots") + result.assert_outcomes(failed=1) + assert "--> Snapshots updated. Please review images" in "".join(result.outlines) + img = requests.get("https://via.placeholder.com/250/FFFFFF").content + filepath.write_bytes(img) + result = testdir.runpytest("--browser", browser_name) + result.assert_outcomes(failed=1) + assert "--> Snapshots DO NOT match!" in "".join(result.outlines) + + + @pytest.mark.parametrize( "browser_name", ["chromium", "firefox", "webkit"], From 8e2302beb563ea6ceb59f1ad40c1dea48e13cf61 Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Wed, 27 Apr 2022 00:13:46 -0400 Subject: [PATCH 12/16] fail_fast typo fix --- pytest_playwright_visual/plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytest_playwright_visual/plugin.py b/pytest_playwright_visual/plugin.py index 0f09131..b421f1f 100644 --- a/pytest_playwright_visual/plugin.py +++ b/pytest_playwright_visual/plugin.py @@ -43,7 +43,7 @@ def compare(img: bytes, *, threshold: float = 0., name=f'{test_name}.png', fail_ img_a = Image.open(BytesIO(img)) img_b = Image.open(file) img_diff = Image.new("RGBA", img_a.size) - mismatch = pixelmatch(img_a, img_b, img_diff, threshold=threshold, fail_sat=fail_fast) + mismatch = pixelmatch(img_a, img_b, img_diff, threshold=threshold, fail_fast=fail_fast) if mismatch == 0: return else: From 065113630403611e6c62a746ff0624f575931887 Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Wed, 27 Apr 2022 00:22:29 -0400 Subject: [PATCH 13/16] fix: test_compare_with_fail_fast --- tests/test_plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_plugin.py b/tests/test_plugin.py index dc723b5..5394bf3 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -142,7 +142,7 @@ def test_snapshot(page, assert_snapshot): filepath = ( Path(testdir.tmpdir) / "snapshots" - / "test_compare_fail" + / "test_compare_with_fail_fast" / "test_snapshot" / f"test_snapshot[{browser_name}][{sys.platform}].png" ).resolve() From 05b2d5b9144d22b6d621cc47965376779dfe6ef0 Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Wed, 27 Apr 2022 16:59:17 -0400 Subject: [PATCH 14/16] chore: tag version tweak --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5f31f11..3b06746 100644 --- a/setup.py +++ b/setup.py @@ -30,6 +30,6 @@ "Framework :: Pytest", ], python_requires=">=3.8", - version='2.1', + use_scm_version=True, setup_requires=["setuptools_scm"], ) From 0f8769e22f34e99dda35c7452c97aaf8c57d21b6 Mon Sep 17 00:00:00 2001 From: symonstorozhenko Date: Wed, 27 Apr 2022 21:55:52 -0400 Subject: [PATCH 15/16] fix, chore: threshold default value, yml renaming, Readme --- ...sh-to-test-pypi.yml => publish-to-pypi.yml} | 0 README.md | 12 ++++++------ img.png | Bin 101562 -> 0 bytes pytest_playwright_visual/plugin.py | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename .github/workflows/{publish-to-test-pypi.yml => publish-to-pypi.yml} (100%) delete mode 100644 img.png diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-pypi.yml similarity index 100% rename from .github/workflows/publish-to-test-pypi.yml rename to .github/workflows/publish-to-pypi.yml diff --git a/README.md b/README.md index cabfe30..ed341a1 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Expands `assert_snapshot` fixture from [pytest-playwright-snapshot](https://gith - snapshots creation on the first run - visual review of mismatches - failing on `--update-snapshots` to make users manually review images -- snapshot name is optional, `test_name[browser][os].png` is generated by default +- snapshot name is optional, `test_name[browser][os].png` is auto-generated by default - updated folder structure: `snapshots/file_name/test_name/test_name[browser][os].png` ## Installation @@ -54,11 +54,11 @@ In case of a mismatch, `snapshot_tests_failures` folder will be created with `Ac ![img_2.png](img_2.png) -## Threshold -There is `threshold` option which can be used to set the threshold for the comparison of the screenshots: -`0` to `1`. -Default is `0.1` - +## API +**assert_snapshot(page.screenshot(), threshold: float = 0.1, name='test_name[browser][os].png', fail_fast=False)** +- `threshold` - sets the threshold for the comparison of the screenshots:`0` to `1`. Default is `0.1` +- `name` - `.png` extensions only. Default is `test_name[browser][os].png` (recommended) +- `fail_fast` - If `True`, will fail after first different pixel. `False` by default ## License Apache 2.0 LICENSE diff --git a/img.png b/img.png deleted file mode 100644 index 6153fde5e774ca4fd6150e8559aebb7f13a8efe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101562 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 C@{f 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

+$b#5`t&W3L~kb=Lw3*%#AYfG_vma6u-F^3k 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 Calla test_name = f"{str(Path(request.node.name))}[{str(sys.platform)}]" test_dir = str(Path(request.node.name)).split('[', 1)[0] - def compare(img: bytes, *, threshold: float = 0., name=f'{test_name}.png', fail_fast=False) -> None: + def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png', fail_fast=False) -> None: update_snapshot = pytestconfig.getoption("--update-snapshots") test_file_name = str(os.path.basename(Path(request.node.fspath))).strip('.py') filepath = ( From a3f67e9b9b92b421cc5e13ee94609aeee2630fe7 Mon Sep 17 00:00:00 2001 From: hgye Date: Wed, 18 May 2022 11:20:20 +0800 Subject: [PATCH 16/16] add diff_pixels, diff_ratio for acceptence, similar as playwright node.js version --- pytest_playwright_visual/plugin.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pytest_playwright_visual/plugin.py b/pytest_playwright_visual/plugin.py index d287e8b..e980907 100644 --- a/pytest_playwright_visual/plugin.py +++ b/pytest_playwright_visual/plugin.py @@ -1,6 +1,7 @@ import sys import os import shutil +import math from io import BytesIO from pathlib import Path from typing import Any, Callable @@ -14,7 +15,8 @@ def assert_snapshot(pytestconfig: Any, request: Any, browser_name: str) -> Calla test_name = f"{str(Path(request.node.name))}[{str(sys.platform)}]" test_dir = str(Path(request.node.name)).split('[', 1)[0] - def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png', fail_fast=False) -> None: + def compare(img: bytes, *, diff_pixels: int = 0, diff_ratio: float = 0.0, + threshold: float = 0.1, name=f'{test_name}.png', fail_fast=False) -> None: update_snapshot = pytestconfig.getoption("--update-snapshots") test_file_name = str(os.path.basename(Path(request.node.fspath))).strip('.py') filepath = ( @@ -46,12 +48,18 @@ def compare(img: bytes, *, threshold: float = 0.1, name=f'{test_name}.png', fail mismatch = pixelmatch(img_a, img_b, img_diff, threshold=threshold, fail_fast=fail_fast) if mismatch == 0: return + if mismatch <= diff_pixels: + return + if (mismatch/math.prod(img_a.size)) <= diff_ratio: + return else: # Create new test_results folder test_results_dir.mkdir(parents=True, exist_ok=True) img_diff.save(f'{test_results_dir}/Diff_{name}') img_a.save(f'{test_results_dir}/Actual_{name}') img_b.save(f'{test_results_dir}/Expected_{name}') + print(f"threshold is {threshold}") + print(f"number of mismatch pixels is {mismatch}") pytest.fail("--> Snapshots DO NOT match!") return compare