From e50c927fdc152c853b088072133aca2765d466f9 Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Sun, 22 Sep 2024 14:05:52 +0200 Subject: [PATCH 01/14] feat: Add Subtitulamos provider integration --- docs/api/providers.rst | 6 + pyproject.toml | 1 + subliminal/cli.py | 4 + subliminal/converters/subtitulamos.py | 51 +++++ subliminal/extensions.py | 1 + subliminal/providers/subtitulamos.py | 262 ++++++++++++++++++++++++++ tests/providers/test_providers.py | 16 +- 7 files changed, 339 insertions(+), 2 deletions(-) create mode 100644 subliminal/converters/subtitulamos.py create mode 100644 subliminal/providers/subtitulamos.py diff --git a/docs/api/providers.rst b/docs/api/providers.rst index c05ece8d..245fd570 100644 --- a/docs/api/providers.rst +++ b/docs/api/providers.rst @@ -45,6 +45,12 @@ Podnapisi :members: :private-members: +Subtitulamos +------------ +.. automodule:: subliminal.providers.subtitulamos + :members: + :private-members: + TVsubtitles ----------- .. automodule:: subliminal.providers.tvsubtitles diff --git a/pyproject.toml b/pyproject.toml index aec3cea6..b77f7730 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -101,6 +101,7 @@ opensubtitlesvip = "subliminal.providers.opensubtitles:OpenSubtitlesVipProvider" opensubtitlescom = "subliminal.providers.opensubtitlescom:OpenSubtitlesComProvider" opensubtitlescomvip = "subliminal.providers.opensubtitlescom:OpenSubtitlesComVipProvider" podnapisi = "subliminal.providers.podnapisi:PodnapisiProvider" +subtitulamos = "subliminal.providers.subtitulamos:SubtitulamosProvider" tvsubtitles = "subliminal.providers.tvsubtitles:TVsubtitlesProvider" [project.entry-points."subliminal.refiners"] diff --git a/subliminal/cli.py b/subliminal/cli.py index d7781751..3f4115cf 100644 --- a/subliminal/cli.py +++ b/subliminal/cli.py @@ -722,3 +722,7 @@ def download( if verbose == 0: click.echo(f"Downloaded {plural(total_subtitles, 'subtitle')}") + + +if __name__ == '__main__': + subliminal() diff --git a/subliminal/converters/subtitulamos.py b/subliminal/converters/subtitulamos.py new file mode 100644 index 00000000..2bf91595 --- /dev/null +++ b/subliminal/converters/subtitulamos.py @@ -0,0 +1,51 @@ +"""Language converter for Subtitulamos.""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +from babelfish import LanguageReverseConverter, language_converters + +if TYPE_CHECKING: + from . import LanguageTuple + + +class SubtitulamosConverter(LanguageReverseConverter): + """Language converter for Subtitulamos.""" + + def __init__(self) -> None: + self.name_converter = language_converters['name'] + self.from_subtitulamos: dict[str, LanguageTuple] = { + 'Español': ('spa',), + 'Español (España)': ('spa',), + 'Español (Latinoamérica)': ('spa', 'MX'), + 'Català': ('cat',), + 'English': ('eng',), + 'Galego': ('glg',), + 'Portuguese': ('por',), + 'English (US)': ('eng', 'US'), + 'English (UK)': ('eng', 'GB'), + 'Brazilian': ('por', 'BR'), + } + self.to_subtitulamos: dict[LanguageTuple, str] = { + ('cat',): 'Català', + ('glg',): 'Galego', + ('por', 'BR'): 'Brazilian', + } + self.codes = set(self.from_subtitulamos.keys()) + + def convert(self, alpha3: str, country: str | None = None, script: str | None = None) -> str: + """Convert an alpha3 language code with an alpha2 country code and a script code into a custom code.""" + if (alpha3, country) in self.to_subtitulamos: + return self.to_subtitulamos[(alpha3, country)] + if (alpha3,) in self.to_subtitulamos: + return self.to_subtitulamos[(alpha3,)] + + return self.name_converter.convert(alpha3, country, script) + + def reverse(self, code: str) -> LanguageTuple: + """Reverse a custom code into alpha3, country and script code.""" + if code in self.from_subtitulamos: + return self.from_subtitulamos[code] + + return self.name_converter.reverse(code) diff --git a/subliminal/extensions.py b/subliminal/extensions.py index 9ea34f30..244b8c16 100644 --- a/subliminal/extensions.py +++ b/subliminal/extensions.py @@ -133,6 +133,7 @@ def parse_entry_point(src: str, group: str) -> EntryPoint: 'opensubtitlescomvip = subliminal.providers.opensubtitlescom:OpenSubtitlesComVipProvider', 'opensubtitlesvip = subliminal.providers.opensubtitles:OpenSubtitlesVipProvider', 'podnapisi = subliminal.providers.podnapisi:PodnapisiProvider', + 'subtitulamos = subliminal.providers.subtitulamos:SubtitulamosProvider', 'tvsubtitles = subliminal.providers.tvsubtitles:TVsubtitlesProvider', ], ) diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py new file mode 100644 index 00000000..56b2cd01 --- /dev/null +++ b/subliminal/providers/subtitulamos.py @@ -0,0 +1,262 @@ +"""Provider for Subtitulamos.""" + +from __future__ import annotations + +import contextlib +import json +import logging +from typing import TYPE_CHECKING, Any, ClassVar + +from babelfish import Language, language_converters # type: ignore[import-untyped] +from guessit import guessit +from requests import Session + +from subliminal import __short_version__ +from subliminal.cache import SHOW_EXPIRATION_TIME, region +from subliminal.exceptions import ProviderError +from subliminal.matches import guess_matches +from subliminal.score import get_equivalent_release_groups +from subliminal.subtitle import Subtitle, fix_line_ending +from subliminal.utils import sanitize, sanitize_release_group +from subliminal.video import Episode + +from . import ParserBeautifulSoup, Provider + +if TYPE_CHECKING: + from collections.abc import Set + + from requests import Response + + from subliminal.video import Video + +logger = logging.getLogger(__name__) + +with contextlib.suppress(ValueError): + language_converters.register('subtitulamos = subliminal.converters.subtitulamos:SubtitulamosConverter') + + +class SubtitulamosSubtitle(Subtitle): + """Subtitulamos Subtitle.""" + + provider_name: ClassVar[str] = 'subtitulamos' + + def __init__( + self, + language: Language, + hearing_impaired: bool | None = None, + page_link: str | None = None, + series: str | None = None, + season: int | None = None, + episode: int | None = None, + title: str | None = None, + year: int | None = None, + release_group: str | None = None, + download_link: str | None = None, + ) -> None: + super().__init__(language=language, hearing_impaired=hearing_impaired, page_link=page_link) + self.page_link = page_link + self.series = series + self.season = season + self.episode = episode + self.title = title + self.year = year + self.release_group = release_group + self.download_link = download_link + + @property + def id(self) -> str: + """Unique identifier of the subtitle.""" + return self.download_link + + def get_matches(self, video: Video) -> set[str]: + """Get the matches against the `video`.""" + matches = set() + + # series + if video.series and sanitize(self.series) == sanitize(video.series): + matches.add('series') + # season + if video.season and self.season == video.season: + matches.add('season') + # episode + if video.episode and self.episode == video.episode: + matches.add('episode') + # title + if video.title and sanitize(self.title) == sanitize(video.title): + matches.add('title') + # year + if video.original_series and self.year is None or video.year and video.year == self.year: + matches.add('year') + # release_group + if ( + video.release_group + and self.release_group + and any( + r in sanitize_release_group(self.release_group) + for r in get_equivalent_release_groups(sanitize_release_group(video.release_group)) + ) + ): + matches.add('release_group') + # resolution + if video.resolution and self.release_group and video.resolution in self.release_group.lower(): + matches.add('resolution') + + # other properties + matches |= guess_matches(video, guessit(self.release_group), partial=True) + + return matches + + +class SubtitulamosProvider(Provider): + """Subtitulamos Provider.""" + + languages: ClassVar[Set[Language]] = {Language('por', 'BR')} | { + Language(lang) for lang in ['cat', 'eng', 'glg', 'por', 'spa'] + } + + video_types = (Episode,) + server_url = 'https://www.subtitulamos.tv' + search_url = server_url + '/search/query' + + def __init__(self) -> None: + self.session = None + + def initialize(self) -> None: + """Initialize the provider.""" + self.session = Session() + self.session.headers['User-Agent'] = f'Subliminal/{__short_version__}' + + def terminate(self) -> None: + """Terminate the provider.""" + self.session.close() + + def _session_request(self, *args: Any, **kwargs: Any) -> Response: + """Perform a GET request to the provider.""" + r = self.session.get(*args, **kwargs) + r.raise_for_status() + + if r.status_code != 200: + msg = 'Error requesting data' + raise ProviderError(msg) + + return r + + def _query_search(self, search_param: str) -> list[dict[str, str]]: + """Search Series/Series + Season using query search method.""" + r = self._session_request( + self.search_url, headers={'Referer': self.server_url}, params={'q': search_param}, timeout=10 + ) + return json.loads(r.text) + + def _read_series(self, series_url: str) -> ParserBeautifulSoup: + """Read series information from provider.""" + r = self._session_request(self.server_url + series_url, headers={'Referer': self.server_url}, timeout=10) + return ParserBeautifulSoup(r.content, ['lxml', 'html.parser']) + + def _get_episode_url(self, series_id: str, season: int, episode: int) -> str | None: + """Provides the URL for a specific episode of the series.""" + series_content = self._read_series(f'/shows/{series_id}') + + for season_element in series_content.select('#season-choices a.choice'): + if season == int(season_element.get_text()): + if 'selected' not in season_element.get('class'): + series_content = self._read_series(season_element['href']) + break + return None + + for episode_element in series_content.select('#episode-choices a.choice'): + if episode == int(episode_element.get_text()): + return episode_element['href'] + return None + + @region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME) + def _search_url_titles( + self, series: str | None = None, season: int | None = None, episode: int | None = None, year: int | None = None + ) -> str: + """Search the URL titles by kind for the given `title`, `season` and `episode`. + + :param str series: series to search for. + :param int season: season to search for. + :param int episode: episode to search for. + :param int year: year to search for. + :return: the episode URL. + :rtype: str + + """ + logger.info('Searching episode url for %s, season %d, episode %d', series, season, episode) + + # attempt first with year + series_response = self._query_search(f'{series} ({year})') + if len(series_response) == 0: + series_response = self._query_search(series) + + episode_url = self._get_episode_url(series_response[0]['show_id'], season, episode) + + return self.server_url + episode_url + + def query( + self, series: str | None = None, season: int | None = None, episode: int | None = None, year: int | None = None + ) -> list[SubtitulamosSubtitle]: + """Query the provider for subtitles.""" + # get the episode url + episode_url = self._search_url_titles(series, season, episode, year) + if episode_url is None: + logger.error('No episode url found for %s, season %d, episode %d', series, season, episode) + return [] + + r = self.session.get(episode_url, headers={'Referer': self.server_url}, timeout=10) + r.raise_for_status() + soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser']) + + # get episode title + title = soup.select('#episode-name h3')[0].get_text().strip().lower() + + subtitles = [] + for sub in soup.select('.download-button:not(unavailable)'): + # read the language + language = Language.fromsubtitulamos(sub.find_previous('div', class_='language-name').get_text().strip()) + + version_container = sub.find_previous('div', class_='version-container') + + hearing_impaired = False + + # modify spanish latino subtitle language to only spanish and set hearing_impaired = True + # because if exists spanish and spanish latino subtitle for the same episode, the score will be + # higher with spanish subtitle. Spanish subtitle takes priority. + if language == Language('spa', 'MX'): + language = Language('spa') + hearing_impaired = True + + # read the release subtitle + release_group = version_container.select('.version-container .text.spaced')[0].getText() + + # read the subtitle url + subtitle_url = self.server_url + sub.parent['href'] + subtitle = SubtitulamosSubtitle( + language, + hearing_impaired, + episode_url, + series, + season, + episode, + title, + year, + release_group, + subtitle_url, + ) + logger.debug('Found subtitle %r', subtitle) + subtitles.append(subtitle) + + return subtitles + + def list_subtitles(self, video: Video, languages: Set[Language]) -> list[SubtitulamosSubtitle]: + """List all the subtitles for the video.""" + return [s for s in self.query(video.series, video.season, video.episode, video.year) if s.language in languages] + + def download_subtitle(self, subtitle: SubtitulamosSubtitle) -> None: + """Download the content of the subtitle.""" + logger.info('Downloading subtitle %s', subtitle.download_link) + r = self.session.get(subtitle.download_link, headers={'Referer': subtitle.page_link}, timeout=10) + r.raise_for_status() + + subtitle.content = fix_line_ending(r.content) diff --git a/tests/providers/test_providers.py b/tests/providers/test_providers.py index d0cef19d..59b88630 100644 --- a/tests/providers/test_providers.py +++ b/tests/providers/test_providers.py @@ -73,6 +73,7 @@ def test_provider_pool_list_subtitles(episodes): 'opensubtitles', 'opensubtitlescom', 'podnapisi', + 'subtitulamos', 'tvsubtitles', ] for provider in subtitles: @@ -99,6 +100,7 @@ def test_async_provider_pool_list_subtitles(episodes): 'opensubtitles', 'opensubtitlescom', 'podnapisi', + 'subtitulamos', 'tvsubtitles', ] for provider in subtitles: @@ -136,7 +138,15 @@ def test_list_subtitles_episode(episodes): for name in ('addic7ed', 'napiprojekt', 'opensubtitlesvip'): assert not provider_manager[name].plugin.list_subtitles.called - for name in ('bsplayer', 'gestdown', 'opensubtitles', 'opensubtitlescom', 'podnapisi', 'tvsubtitles'): + for name in ( + 'bsplayer', + 'gestdown', + 'opensubtitles', + 'opensubtitlescom', + 'podnapisi', + 'subtitulamos', + 'tvsubtitles', + ): assert provider_manager[name].plugin.list_subtitles.called # test result @@ -147,6 +157,7 @@ def test_list_subtitles_episode(episodes): 'opensubtitles', 'opensubtitlescom', 'podnapisi', + 'subtitulamos', 'tvsubtitles', ] @@ -181,7 +192,7 @@ def test_list_subtitles_episode_no_hash(episodes): for name in ('addic7ed', 'napiprojekt', 'opensubtitlesvip'): assert not provider_manager[name].plugin.list_subtitles.called - for name in ('bsplayer', 'gestdown', 'opensubtitles', 'podnapisi', 'tvsubtitles'): + for name in ('bsplayer', 'gestdown', 'opensubtitles', 'podnapisi', 'subtitulamos', 'tvsubtitles'): assert provider_manager[name].plugin.list_subtitles.called # test result @@ -192,6 +203,7 @@ def test_list_subtitles_episode_no_hash(episodes): 'opensubtitles', 'opensubtitlescom', 'podnapisi', + 'subtitulamos', 'tvsubtitles', ] From ab963a6111a98f9011e0f186a67518f85473062e Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Sun, 6 Oct 2024 20:51:33 +0200 Subject: [PATCH 02/14] feat: Add Subtitulamos provider integration - Add some tests --- subliminal/cli.py | 4 - subliminal/converters/subtitulamos.py | 6 +- subliminal/providers/subtitulamos.py | 6 +- .../subtitulamos/test_download_subtitle.yaml | 6761 +++++++++++++++++ tests/conftest.py | 19 + tests/providers/test_subtitulamos.py | 84 + 6 files changed, 6869 insertions(+), 11 deletions(-) create mode 100644 tests/cassettes/subtitulamos/test_download_subtitle.yaml create mode 100644 tests/providers/test_subtitulamos.py diff --git a/subliminal/cli.py b/subliminal/cli.py index 3f4115cf..d7781751 100644 --- a/subliminal/cli.py +++ b/subliminal/cli.py @@ -722,7 +722,3 @@ def download( if verbose == 0: click.echo(f"Downloaded {plural(total_subtitles, 'subtitle')}") - - -if __name__ == '__main__': - subliminal() diff --git a/subliminal/converters/subtitulamos.py b/subliminal/converters/subtitulamos.py index 2bf91595..3fb557ef 100644 --- a/subliminal/converters/subtitulamos.py +++ b/subliminal/converters/subtitulamos.py @@ -27,11 +27,7 @@ def __init__(self) -> None: 'English (UK)': ('eng', 'GB'), 'Brazilian': ('por', 'BR'), } - self.to_subtitulamos: dict[LanguageTuple, str] = { - ('cat',): 'Català', - ('glg',): 'Galego', - ('por', 'BR'): 'Brazilian', - } + self.to_subtitulamos: dict[LanguageTuple, str] = {item[1]: item[0] for item in self.from_subtitulamos.items()} self.codes = set(self.from_subtitulamos.keys()) def convert(self, alpha3: str, country: str | None = None, script: str | None = None) -> str: diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index 56b2cd01..54e2532a 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -129,6 +129,7 @@ def initialize(self) -> None: def terminate(self) -> None: """Terminate the provider.""" self.session.close() + self.session = None def _session_request(self, *args: Any, **kwargs: Any) -> Response: """Perform a GET request to the provider.""" @@ -191,8 +192,9 @@ def _search_url_titles( series_response = self._query_search(series) episode_url = self._get_episode_url(series_response[0]['show_id'], season, episode) - - return self.server_url + episode_url + if episode_url: + return self.server_url + episode_url + return None def query( self, series: str | None = None, season: int | None = None, episode: int | None = None, year: int | None = None diff --git a/tests/cassettes/subtitulamos/test_download_subtitle.yaml b/tests/cassettes/subtitulamos/test_download_subtitle.yaml new file mode 100644 index 00000000..222130bb --- /dev/null +++ b/tests/cassettes/subtitulamos/test_download_subtitle.yaml @@ -0,0 +1,6761 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce587129dd56601-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:06:50 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ae8Mi6Z34ZNeKIubSsxphjeMtIR1PgfA1e5KUNC8%2FowcmNpntCYPdv18r865HTBPFEiU8A3SqDt9mBn5T2l87bu1YF550Sf79Ha9D3kfTVoNCAMYSWmYzwByZHTARwIX%2BHDyrq8N"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi; path=/; HttpOnly + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce587143d496617-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:06:50 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=dvwyvD4Ckh0d2xHbkLxXf%2BXgBqL7iyZWacsgIj%2FHo2lgQ0%2Fv4ME4CHLLGgx00cKLYQYHp24PJEd3LHBBrSLSFWYW4i8zeGGfRQRAdX4GGAA2f24jDCUue%2B2%2FTpT76whePfgWzjqa"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce587163e75668f-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:06:50 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Qwlz%2FzkL3zeKj1o98l3eeLxKIck3z0t%2BEKZdjXzoHJxvlE%2BSa%2ByqmZNZvBJhobk9Ay3zJYwlHgZA3kYA3OfakWIYABdx2xDSZtCTjKClxvZKvZvy1HfCnQgZOEG%2FNwaVBZFnl7U3"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce587182d1686c9-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:06:51 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=1lqmbz3wT8b6LrpVxl6JoLXtNWliivNQ1n%2BPXiB4Skw6GmxCzO%2FhjFnLwGJ0gH1gPV6cKT0BsFm%2BjK1Ae03pn06kI2LQQVFwR3RVGSjw8jF%2F2mgKIUxAl0DbcLJc940C25wF2wJV"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce5871a18cd2fb7-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:06:51 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=0wzmBBTgdCilSI5jbvXVwaIXKF%2BBWhN3juzoY0sZvgwKGgZQS%2BCML2r%2Bb2t6yFwoXkPgxklyy8oasb%2BoLcquoNFVBdB8Hu8QhSvIxBxQ91tfq4ay896Wf40oVZgHRHyiiyWgVq0L"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + content-length: + - '28387' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8ce58cc8080a6669-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:10:43 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=7J7uR6V4iGl3GchDRUCUroBV87hxzvDT5xxoq7UMhxMIQ8AoFPKFbqfqGtIYfhnjjrzU8kZgvRERAFQG19mqFrMK7JSGo0JVj6qsbrrXK%2BrF854vQlgDGx6uYgr2Hk%2Fr1N%2FBvxWg"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58cca1ec83846-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:10:44 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=JGorEWkwaGsd%2Fdiu86W5XCLMBCG6HnBcRkXxCY3ArqLXSMfi56rXgbhoIzlonb4YgmOLciRJ7eBx69uJ07Ur7er3DCwuZPMqCqM%2FawK2Qk1yrGTRuBXafrppP4q1RBYmBmb5JZRL"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce58ccc1c31664d-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:10:44 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=UUnRKSwpzIey7E4RhqvC17fU%2FGaoTlISOv6eil08yJCtjRBsd2vrS8R4XvIydlh%2FslBz8OuQ764DiQMqB%2F1ZwIYYNH42JkRlKk10OqRpLUA5u4gd9fKYkbv7PXvRrZR8Z4a3yRz%2B"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58cce5954cbe7-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:10:44 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=p1Y2JcKZq%2FWBUAkoYP3ARJK0Z9tI2seYb44KqxRKiPnpnOAJLlWowC17gz8gfZwf5i62F1hfA%2BUY1KcfJWQWyTBVhGYAKEegJoI3FQQ3i9A0B1X7GKkXmWXmRI1TQ%2F1Os%2BNqeZag"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce58cd08a6c2f97-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:10:45 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=gc5HxOamTxr0f%2FodPhO440UOApwYFKnZTWlu7kC0zaZltMMa1NFhB62qTi7%2F9OTlBPjgQBxbptbrTYih22GyQHdg271Th7ns0tbvSTBaTOZwWRb6aw0PpWq%2BX7FiUBPbvuVBV5Km"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '28387' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8ce58d38dca73851-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:02 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=vUo7O5ToJkktomcH6r0B8K9ImQy358JfH%2FJtE11cMRZSaMuCFwojrdRA1%2BUomxuCZVOUkVjAGQtgPu%2BBMwE%2FPsSQTzRlKX7b9DKZxz1huAX%2B7KBdiWuEjNpgVbAX9w2hjyyAXzqK"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-RAY: + - 8ce58d3ae8b6cc06-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:02 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=5nOIE2Gj3MzHr%2BWh0OBNwd6UNBQdnBzXiSoDp%2BElRh6Bx5QJ2f5rhSf7hp6KtK5Oei5%2FoTGZzJsfXnYZRqTFOl953AQDoIOF0M%2BSg98p%2BGyfSub6V60c954OWSFaY4LBoMY55NLa"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce58d3e196cc912-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:02 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=fhAPPWWF3LP04Wt%2F8M%2FusNVfbHMoZFqtX8qaiW8AQeTkMF7M%2F6gqAgcIwCI7nUXE9ZPavDDN3KFD44vbAZtYBBGBHVS8R79TEcglGMw9ImnBO6L9N5ihW3w4N%2FjdBHwyiAvwPBO7"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce58d4038c565f8-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:03 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=aeWdDRnJIp7LmDtUbEEBEpSzK2qdYJfW8hUvD8I3I3OY%2BtbTM5Vir9RvqErZbrPVy9ZmxR7AhpHdwDCS9qAb%2FT4Qlp9X7altGUjcOgB6Zs%2Fu9IWyM%2FRbB6KwtEcQ2GjYIxip6J7M"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce58d424b11cfcd-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:03 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=VpnanbfMPpbIUJWLNGCusnQHlCCxALDhok289Vsi%2BXoJaqWn3nbvT9VFUSGEYMymZcy4axhE4Q%2BYtwGBj1IJBmn7cLwa%2Fxqgf4hB5F1Laq6%2FnuqcinUx6ikcJbmzD4yfJ87gT8dX"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '28387' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8ce58d4c5998cbe2-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:05 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ym1kMhM%2Bl%2BcqQpbFirWq2qzK9NJznqvCPvVCxK%2B2SI3VDuPjfvNcxIIj1J7DZ6AyJp11Gn%2Bz9vQMzxuVw5ogc8JXbIVHNl%2BiphWPKLiK%2B%2B7t50MR6qzsUNLBjWdZJpZRw5eUAOla"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-RAY: + - 8ce58d501c7437cd-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:05 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=4DXqDUfr8slXSUmaRCkEH34a3IaNXaACmmTEZ546k8cpV42JDYmwJAQvKiJEscyIRXC3mOLtquYIL7BKJC%2Bynf4qfNhJDluu1Z9W%2FeR6YWF3MbzRILgQQ5xHJH4EStRI1yXIf5Jl"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58d5179d33147-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:05 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=svI0jxN0MBmBfFy%2Bt0%2FmsDjruStNWlpD%2FVc6fhYCc%2FkEzOrCE%2FMZctYLHAnd2yJs5C575L0jR7hVXm9BBunMrt%2BPblL%2Fr%2FLIgdjDOUkd42VuS%2FO%2BVKUwsfGrY%2FIpgGuUOVeDpb5C"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58d531dfa2148-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:06 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=pvi%2BDMgWRPd864PecUT6fJoh0DnIeRJ5zp9HzxzA0yzcSYScfgy9%2F1ciXiS3e%2BKir05zZuxkjpdM9dYeScViBGF0ZBCxo6w0lQ5q0%2B%2FH4cz5KmU2EeUE%2FPR1lII8LUTOhSUC2cBY"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce58d5529a4384a-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:06 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=wIdl1gyF9aAJGQQQbPu1yV9Q5SvfL5A2yZTS81JZGhFI5ucPNQ8Ua8YpyOkzdfTz93%2BM7Kr6bR6bxvffDZPo6tH5O2J6Iwk4nAA3XhmqWsrBFQJ3cLKF9zbZmgu8bJXra1%2FuUOpm"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '28387' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8ce58d5bdb47cbd3-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:07 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=SGKZ6J%2BlUSMgu9T4pduIZ2X%2BVFd299JId10iCyaGpSxKGXF6BHx5Cbz8YbLTizB7x2rOTC7RMxTU2OroUTMm7WJLlFZofwnw3%2F8JfXhuvjVS4QJ3fDYObeVSh2I1GXnBmYrsxHiZ"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-RAY: + - 8ce58d6228d8cfaa-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:08 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=G4cJrCm%2BN2TOGxTPIgxf2nrqw0JGwunKw4dDanYf%2BSfPF%2F8I%2BWDZFiFvVCKFFW5DFMrzN76XOTs7C9z2xlLDHzTyITMKnj8mHvFmP4LgayJjyknJ4Nk%2F9LMn9vh5A6eMMm53PUx7"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce58d643afd2f94-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:08 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=19TBxuP%2FX%2BKMSaEYX6U3new%2F2G2%2BACurn%2BGsGbCDn%2F%2FE71AlpCrjIEZs8JjiL79LEd1nGxs1Q4aDY0U%2BT42e6FXnP0EM1qSIoWNoyF1hLNal0xFvCPQEaeHRnbFlvm%2FGFe8H%2FVQ5"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce58d66482acc4b-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:09 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=xZ9N8NfDrwR1F3IUFcr6nhdh0Geoc8OzFtMQUHMlutl1BjDzg1a1WJVOZWwAU2PQCWjP5kyuOHTWZnpImifc3KTt8FvgAQCGnGbyI3dmxrXVHsPylbZywjl7jd8eC1mrHZNV1Q6R"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce58d688dd0c8f7-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:09 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=cAGDWRQA489mPFj7MbS1XwI9zgG1YAAEC0M1w60LPhiaF2xusWTkt6xpSDnnGoZqsJ28GVERKGl7snydxHoTGsqL28YnAQjWtg63V8dte4JGSWvFj6KLpi5CscT8YaR06VML7aT7"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '28387' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58d6c1896cfbd-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:10 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=w9o7eXavDVAr%2Fq81gugDjcD7EEdCIyHI%2FaV2ai3FAEFp3%2F6l3vOxheGqeHUTQV%2Bl%2FZIrrBW3j1iFFVVxMXNtjAkho8qS7B80X2lIW4ZNGoERCRd6%2FkAlhTiYIBB9Q%2F1PStyZITfs"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58d7338adc901-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:11 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=86eE3UA0lri8oD37DkhsM8ym71oApERMXD0jj1VrpyAxONBV5%2BZIBnfDBipB%2BFiygwfM4NebZEYmLF13O1YtIKEc%2B1%2FxH6sXsGS2kMl9qBaYdfslvvHTKKECLIueDK%2F%2FhuvNMNbj"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58d757c52d050-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:11 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=OXFjdGq1LxTpj%2FzhwQA5OGsbUVvU8rAhPOZTBD84cI%2F5Ax60T1UL3ljJmk51e07mnoQHma0RFPyOPdA3ZoYIZ0YxxoM%2BzeqXVCSUX3esDZvKz37kWYqyLfba6ZQwQjBJgaxC2UdA"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58d779a96cfb3-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:12 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=UJXoyr6%2F6ylIrIKuWhgVcpUEZzKpYEPlmYLIQsRHE9Zsv12D5Xr0NTPizhQKPOIH9oThIIXfqIHfF%2Fz9Z34aWW1L0qg3g7VDpIlNrevuM9c3LmZ%2FH7ysZzy3Lwksg4COgWAYYn1B"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce58d798b6dc902-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:12 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=O0BlZh8tyN9CF4Vqt3HnmXYOM6hO9E507ow9EBeDjG3J5YSN6aB2NmQSC1DG6uKhtCvVHSp8lXQnQf3SUwXoUPTYGNCSf3E9jbQGzSOIVfxYFDVlUA4zwaNPII9QQkzZ%2B2pd6RiF"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '28387' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58d834ef0cf98-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:13 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Ko7%2FC%2FhtLGcyGwRsmtYQZvgGzWNGx6P7TwdXEaS2hp2gBNCOcnnbfVclrhefmFdX%2FGew65wlejx2xY8a3qGw%2FEKT%2FLcxxal8ODcPtNa7pO%2Fg4sZ3hF2XoQvTPt2kDRZW0OfA7kHS"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-RAY: + - 8ce58d854fe6cfd7-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:14 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=tqmJQZKEXlGar0swIuZrKOWOz4Gg%2FmbajVZhf1cuyRQPtApZJqSX9JeHUH6yKnNov7N2k4aKBU9maYaaDtzF6mKUnyXEm%2BiIrtnVCBN%2B7q5zusKkPGk3WFxbKsX4MssX%2B3rTMTw0"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58d8c6b7ecfce-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:15 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=aSDaHF6jw%2FpvdWLVoQeMoD28Lym3712NVt1PnRX2eeqbMmxZYtH6Ywm7Pz2q%2FuQtOX4Abr16S4o%2FHHu8wzxzOlt7cC5Pn%2BE8xf1rhXgh3yrk44iyVeBQBPFaGnN8o7p28J9dK4%2Fs"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce58d8e1a7b2fca-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:15 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=T1wGfrjRXOVulmnmZCjENXClVgugIaBUSMqw3oZdkKRaI3%2FoPy4S310TFTXi2GI0wXFNjFk86Zl%2BCVIH530mhf4yBnWU5bGjRUQt7dqXd11Fkxle2r8wf3WUdqcOJBzugmim6zSb"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58d8f6fa26660-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:11:15 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=WyOZKopGzgTLCTyLBL4m4AU41%2FzrMlsMq1qJiCfLfIm4CpcQoONCHp4m5jfKrMoK3KodXvUhjvuA%2BtE3ysuhGu%2BiYmZ%2FPgV5XZWQt4krQvme%2FWIp5ra%2FBcbRRnvFmZRDk5cJtj8Y"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + content-length: + - '28387' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce58feb2f052fa0-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:12:52 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=pKmZPXD4d%2BDDkbQ8gHh2GzPtglETOxdmGDGryL52EfhQ5EC3Hpih70U50x2gD2g8FmhzcfHqfKSLqfJiyvMDNZESUx44UR%2B2C5aE7%2BVOAeEBnyfJxGR5nFX4080KLRd1u0QSHwIA"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce58fed6fd4cfe2-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:12:52 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=aqbQaHMaZd9l7VhRY%2FDJhNRosA7tt4NE%2FWith8t4JbnyY1CVmFDaVqewT1WKEQJ1w%2Bw61sBNRdpwLwU9ymmD9B2jxbL7IR7Zxv%2BIxB8GFHPtebSe6NIZYDDN%2BmojluVbrRUQjIcq"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce58ff0caafcfcb-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:12:53 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Sq7XNHmG56SyPHBg1vXrvKndL4X%2FSQTKAwcClrURQnVnQxhaDQuhgFtdozgNJd4SsD1JswuMD33FtxCSc6wf7G0mF8TDjI%2BOO3ypD%2BlpaAGLR%2FjS482LmKXri4r7dX6%2BveHswGFx"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + content-length: + - '28387' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8ce58ffeeafccf8c-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:12:55 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=0qoBRRGYopGzZCDHsojtEKD51aDF2jKx1dkUCTDDlVB4sHfbaRnhBuucC9or1CWqiJnQe142KrxZ%2BwF%2Fj33pU6E1lfuNlHpu9So0lAa7gDtteqvB%2BAViOYh6kgbvpiGB650vgF45"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce59000fa5b3148-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:12:55 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=un%2B7mGOnX0IBfsKdbxLYzpbwKglQBLMPWblrvZMbI7JqtP3sqcdGIkb5IhA0KxnISjyswbvCk33MF0KE22myGI6rUKOMySuictk%2B2tBh2yR3A%2Fx1zkarjK3qnRWAhmLJKXMN7drz"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce590153a096666-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:12:59 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=l7tJWIr%2BInKNXFnjhp%2BOK53UUJmybi%2Bkq8rNYJLKtNKnJZUuUEwuE%2FOzwEoTe0%2B50wrWP8LN0b4d2ageyfIxyuO9iDD8bneN3fR3Cw9vGQAknh5XX4HvYeztzb0wIuw5xVAcD5yf"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce5901748ffd050-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:12:59 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=jG9pb1cGZsiTIxx%2F0gbF%2BTYSGQmt6hHQAEW%2BivaKMkDeyXTPFLwsXTj7ZOiU5Pfnntn2d5G4CvtGVg1fkTtGBV5QWXn55X5J3fBh6Ppv423vEzKA4RAzTnPSsk%2F5ry5HpqDNrBxu"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce5901979b9215a-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:12:59 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=BNtPg%2F4OBHRRIy3Wg0%2B%2FBOrc%2BYOKUkqo8IC3F%2BKS%2BUyQWr9dQycjAXe3FXToyZhPDcYn2AG%2BWS6cuo7wtNOEYVA5h0JaGxBvf8pQVSpdom3cPpdhoQPVncWxkYS6BbFlTrPligk0"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '28387' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8ce5901cac18cbda-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:13:00 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=x%2FT7f8mbm7dq5W%2BQN7sKgF2fDiayJJa0pgeAuZQFJ1SPZpMWXArq%2BGysKe%2BTWubp07nLJT7Hb2UIpBqesGuZMJB31%2B2pabjGTh6O6eWoupnOGA1YQwUpRZnHZ9y09E26kgygyotK"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-RAY: + - 8ce5901f7e52cc06-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:13:00 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=h92oGsKMz4rl0LIBaD2W%2BmNrrIn1Hj%2FP2VCogJgu7aw17O5G6320hxkqc%2BEoinh1wwIg8YEnhiHdJrHcSE5%2Fw0qq%2Btnxg902nkVDm1O0zweQzHGOLw%2FHRbuTPUQRWs9q96hPV3Fv"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/440/the-big-bang-theory-11x01-the-proposal-proposal + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 11x01 - The Proposal Proposal - Subtitulamos.tv - Subt\xEDtulos de + series\n \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

The + Proposal Proposal

\n
(11x01)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n + \ EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 24\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n 3 956\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n \n + \
\n

versi\xF3n

\n

DIMENSION

\n + \
\n \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n Simpson12\n + \ \n
\n
\n \n + De addic7ed. Sin acotaciones. Sincronizado por elderman.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n \n\n + \
Espa\xF1ol + (Latinoam\xE9rica)
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

DIMENSION

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

DIMENSION

\n + \
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce5a4800987cfe0-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:26:55 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=YzHEo%2FyNHTKMh7iGvcJmqmgyP1GHfnYmv%2FwNrQcd3of2RBWFfmm2U6rkm0Ti764wiM3l%2BTRynjYF3Twji1pWIIOjNxfc4pBNwpZkjJmQNlnU6Gx2mLoFxetWwwIoCLzA8MEefY0e"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '28472' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/1722/the-big-bang-theory-11x16-the-neonatal-nomenclature + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 11x16 - The Neonatal Nomenclature - Subtitulamos.tv - Subt\xEDtulos + de series\n \n\n\n
\n
\n
\n \n
\n\n
\n + \
\n
\n
\n + \ \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

The + Neonatal Nomenclature

\n
(11x16)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n + \ EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 24\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n 5 652\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

AVS/SVA

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ Salba\n \n
\n + \
\n \n + DE Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

AVS/SVA

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

CRAVERS

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n canovas\n + \ \n
\n
\n \n + Gracias a los traductores de la V.O.\n \n
\n + \
\n
\n
\n + \ \n \n + \ \n
\n + \

versi\xF3n

\n

NTB

\n
\n \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n zev27\n + \ \n
\n
\n \n + Los subt\xEDtulos traducidos aqu\xED, sincronizados para NTB.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n \n\n + \
Espa\xF1ol + (Espa\xF1a)
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

AVS/SVA

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

CRAVERS

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n canovas\n + \ \n
\n
\n \n + Gracias a los traductores de la V.O.\n \n
\n + \
\n
\n
\n + \ \n \n \n + \
\n

versi\xF3n

\n

NTB

\n + \
\n \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n zev27\n + \ \n
\n
\n \n + Los subt\xEDtulos traducidos aqu\xED, sincronizados para NTB.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n\n + \
\n \n

Comentarios ({{comments.length}})

\n \n\n + \ \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce5a482dbddc911-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:26:55 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=3w2e2qJuXRRoAt37zYw3YtPot%2FFEQzBflQGaiPZlV0H6hBdOa1oajsEir5NNmlozd55dIfEyOpM6lRPCVipj4EPd0qkw9W8t0uKljTmq6JhsD6gHz5kaCTWbjRPDIK0BzFoXPAvA"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '42016' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + Referer: + - https://www.subtitulamos.tv/episodes/1722/the-big-bang-theory-11x16-the-neonatal-nomenclature + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/subtitles/4179/download + response: + body: + string: "1\r\n00:00:09,981 --> 00:00:12,348\r\nHowie? Howie, wake up.\r\n\r\n2\r\n00:00:12,350 + --> 00:00:13,649\r\nIt's time.\r\n\r\n3\r\n00:00:13,651 --> 00:00:15,318\r\nOh. + Did your water break?\r\n\r\n4\r\n00:00:15,320 --> 00:00:16,819\r\nNo.\r\n\r\n5\r\n00:00:16,821 + --> 00:00:18,721\r\nAre you feeling\r\nany contractions?\r\n\r\n6\r\n00:00:18,723 + --> 00:00:20,656\r\nNo.\r\n\r\n7\r\n00:00:20,658 --> 00:00:22,291\r\nWait. + Well,\r\nwhere are you going?\r\n\r\n8\r\n00:00:22,293 --> 00:00:23,659\r\nTo + the hospital.\r\n\r\n9\r\n00:00:23,661 --> 00:00:27,530\r\nToday's my due + date,\r\nand this crap needs to end now.\r\n\r\n10\r\n00:00:28,633 --> 00:00:32,068\r\nHoney, + babies don't\r\nalways come on their due date.\r\n\r\n11\r\n00:00:32,070 --> + 00:00:34,470\r\nHalley was two weeks late.\r\n\r\n12\r\n00:00:35,373 --> 00:00:37,774\r\nBut + this baby's a boy.\r\n\r\n13\r\n00:00:37,776 --> 00:00:39,876\r\nThey don't + take\r\nas long to get ready.\r\n\r\n14\r\n00:00:41,045 --> 00:00:42,645\r\nWhat + are you doing?\r\n\r\n15\r\n00:00:42,647 --> 00:00:45,081\r\nI'm making the + situation\r\nbetter with humor.\r\n\r\n16\r\n00:00:45,083 --> 00:00:47,550\r\nAre + you?\r\n\r\n17\r\n00:00:48,653 --> 00:00:51,587\r\nWould you rather me\r\nmake + it better with magic?\r\n\r\n18\r\n00:00:51,589 --> 00:00:54,323\r\n- Go back + to sleep.\r\n- Ta-da!\r\n\r\n19\r\n00:01:02,367 --> 00:01:04,834\r\nYou know, + I hear\r\nthat sex can induce labor.\r\n\r\n20\r\n00:01:04,836 --> 00:01:07,003\r\nAnything + for my family.\r\n\r\n21\r\n00:01:08,306 --> 00:01:11,941\r\n? Our whole universe\r\nwas + in a hot, dense state ?\r\n\r\n22\r\n00:01:11,943 --> 00:01:15,278\r\n? Then + nearly 14 billion years\r\nago expansion started... Wait! ?\r\n\r\n23\r\n00:01:15,280 + --> 00:01:16,813\r\n? The Earth began to cool ?\r\n\r\n24\r\n00:01:16,815 + --> 00:01:19,549\r\n? The autotrophs began to drool,\r\nNeanderthals developed + tools ?\r\n\r\n25\r\n00:01:19,551 --> 00:01:22,118\r\n? We built the Wall + ?\r\n? We built the pyramids ?\r\n\r\n26\r\n00:01:22,120 --> 00:01:24,787\r\n? + Math, Science, History,\r\nunraveling the mystery ?\r\n\r\n27\r\n00:01:24,789 + --> 00:01:26,689\r\n? That all started\r\nwith a big bang ?\r\n\r\n28\r\n00:01:26,691 + --> 00:01:26,758\r\n? Bang! ?\r\n\r\n29\r\n00:01:26,759 --> 00:01:30,759\r\n? + The Big Bang Theory 11x16 ?\r\nThe Neonatal Nomenclature\r\n\r\n30\r\n00:01:30,760 + --> 00:01:32,560\r\n== sync, corrected by elderman ==\r\n@elder_man\r\n\r\n31\r\n00:01:32,624 + --> 00:01:35,019\r\nI believe today is\r\nBernadette's due date.\r\n\r\n32\r\n00:01:35,021 + --> 00:01:36,487\r\nYeah.\r\n\r\n33\r\n00:01:36,489 --> 00:01:37,689\r\nHow + do you know that?\r\n\r\n34\r\n00:01:37,691 --> 00:01:41,159\r\nEasy. 40 weeks + from the date\r\nof her last period.\r\n\r\n35\r\n00:01:42,796 --> 00:01:44,896\r\nAnd + why do you know that?\r\n\r\n36\r\n00:01:44,898 --> 00:01:48,099\r\nWell, + excuse me for taking\r\nan interest in people.\r\n\r\n37\r\n00:01:49,235 --> + 00:01:51,135\r\nSo, any day now.\r\n\r\n38\r\n00:01:51,137 --> 00:01:52,437\r\nOh, + I don't know.\r\n\r\n39\r\n00:01:52,439 --> 00:01:53,771\r\nWe went to the + doctor\r\nthis morning,\r\n\r\n40\r\n00:01:53,773 --> 00:01:56,040\r\nand + she said it could still\r\nbe another week or two.\r\n\r\n41\r\n00:01:56,042 + --> 00:01:58,009\r\nHow's Bernadette holding up?\r\n\r\n42\r\n00:01:58,011 + --> 00:01:59,977\r\nIt's pretty rough.\r\n\r\n43\r\n00:01:59,979 --> 00:02:02,780\r\nShe's + having a hard time.\r\n\r\n44\r\n00:02:04,250 --> 00:02:05,883\r\nWhy are + you smiling?\r\n\r\n45\r\n00:02:05,885 --> 00:02:08,586\r\nI had sex twice\r\nlast + night.\r\n\r\n46\r\n00:02:08,588 --> 00:02:10,388\r\nThat's not fair!\r\nShe's + on bed rest.\r\n\r\n47\r\n00:02:10,390 --> 00:02:12,190\r\nShe can't run away.\r\n\r\n48\r\n00:02:12,192 + --> 00:02:14,192\r\nIt was her idea.\r\n\r\n49\r\n00:02:14,194 --> 00:02:16,160\r\nShe + read that it\r\ncan start labor.\r\n\r\n50\r\n00:02:16,162 --> 00:02:17,628\r\nHmm. + Is that true?\r\n\r\n51\r\n00:02:17,630 --> 00:02:18,963\r\nWell, I would + have Googled it,\r\n\r\n52\r\n00:02:18,965 --> 00:02:21,399\r\nbut I was busy\r\ntaking + my pants off.\r\n\r\n53\r\n00:02:22,969 --> 00:02:25,770\r\nYeah, not to brag, + but\r\nAmy's last birthday\r\n\r\n54\r\n00:02:25,772 --> 00:02:28,139\r\nbrought + my coital tally\r\nup to four.\r\n\r\n55\r\n00:02:29,109 --> 00:02:31,409\r\nWhatever + you're doing,\r\nit's not bragging.\r\n\r\n56\r\n00:02:32,812 --> 00:02:33,978\r\n- + Hey, guys.\r\n- Hey. - Hey.\r\n\r\n57\r\n00:02:33,980 --> 00:02:35,279\r\n- + Hey.\r\n- Hey, I was just\r\n\r\n58\r\n00:02:35,281 --> 00:02:36,347\r\ntalking + about you.\r\n\r\n59\r\n00:02:36,349 --> 00:02:37,715\r\nOh, should I ask?\r\n\r\n60\r\n00:02:37,717 + --> 00:02:39,817\r\nYou should not.\r\n\r\n61\r\n00:02:39,819 --> 00:02:42,153\r\nI'm + trying to get\r\nour grant proposal together.\r\n\r\n62\r\n00:02:42,155 --> + 00:02:43,721\r\nAny chance you've finished up\r\nthose mechanical drawings?\r\n\r\n63\r\n00:02:43,723 + --> 00:02:45,656\r\nOh, sorry.\r\nI was gonna do it last night,\r\n\r\n64\r\n00:02:45,658 + --> 00:02:46,891\r\nbut I got kind of busy.\r\n\r\n65\r\n00:02:46,893 --> + 00:02:48,960\r\nYeah, you did.\r\n\r\n66\r\n00:02:50,497 --> 00:02:52,096\r\nWhat + are they talking about?\r\n\r\n67\r\n00:02:52,098 --> 00:02:53,364\r\nI'll + give\r\nyou a hint.\r\n\r\n68\r\n00:02:53,366 --> 00:02:56,434\r\nIt's something\r\nthat + we have done four times.\r\n\r\n69\r\n00:02:56,436 --> 00:02:58,136\r\nWatched + La La Land?\r\n\r\n70\r\n00:02:58,138 --> 00:03:00,772\r\nWhat? No. No.\r\n\r\n71\r\n00:03:00,774 + --> 00:03:03,107\r\nI've not watched\r\nLa La Land four times.\r\n\r\n72\r\n00:03:03,109 + --> 00:03:05,076\r\nIf you find the\r\nsoundtrack on my phone,\r\n\r\n73\r\n00:03:05,078 + --> 00:03:07,712\r\nthat's just 'cause\r\nour iTunes accounts are linked.\r\n\r\n74\r\n00:03:08,848 + --> 00:03:10,515\r\nLooks like I might have\r\na little more time\r\n\r\n75\r\n00:03:10,517 + --> 00:03:11,783\r\nbefore the baby gets here,\r\n\r\n76\r\n00:03:11,785 --> + 00:03:13,651\r\nso why don't we just stay late\r\nand get it done?\r\n\r\n77\r\n00:03:13,653 + --> 00:03:15,953\r\nWell, I don't want you\r\nto leave Bernadette alone.\r\n\r\n78\r\n00:03:15,955 + --> 00:03:17,755\r\nOh, we can hang out\r\nand keep her company.\r\n\r\n79\r\n00:03:17,757 + --> 00:03:20,158\r\n- Yeah, absolutely.\r\n- See, see. Look at my Netflix + queue.\r\n\r\n80\r\n00:03:20,160 --> 00:03:21,125\r\nThere's two documentaries\r\n\r\n81\r\n00:03:21,127 + --> 00:03:22,693\r\nand the movie\r\nFriends with Benefits,\r\n\r\n82\r\n00:03:22,695 + --> 00:03:24,162\r\nwhich I thought\r\nwas a documentary\r\n\r\n83\r\n00:03:24,164 + --> 00:03:26,764\r\nabout employer\r\nhealth care plans.\r\n\r\n84\r\n00:03:28,668 + --> 00:03:31,068\r\nHey, Bernie, it's me.\r\n\r\n85\r\n00:03:31,070 --> 00:03:32,970\r\nI + let myself in.\r\n\r\n86\r\n00:03:32,972 --> 00:03:35,573\r\nHey.\r\n\r\n87\r\n00:03:35,575 + --> 00:03:36,741\r\nWhat are you doing?\r\n\r\n88\r\n00:03:36,743 --> 00:03:38,910\r\nI + thought you were supposed\r\nto be on bed rest.\r\n\r\n89\r\n00:03:38,912 + --> 00:03:40,545\r\nThat's done,\r\nbut I've been on stair rest\r\n\r\n90\r\n00:03:40,547 + --> 00:03:42,246\r\nfor the last 45 minutes.\r\n\r\n91\r\n00:03:42,248 --> + 00:03:44,148\r\nHere, let me help you.\r\nYeah.\r\n\r\n92\r\n00:03:44,150 + --> 00:03:46,484\r\nIf you really want to help,\r\nput on a rubber glove,\r\n\r\n93\r\n00:03:46,486 + --> 00:03:48,886\r\nreach on up there\r\nand start pulling.\r\n\r\n94\r\n00:03:48,888 + --> 00:03:51,088\r\nI know you're joking,\r\nbut I grew up on a farm.\r\n\r\n95\r\n00:03:51,090 + --> 00:03:52,089\r\nI'll do it.\r\n\r\n96\r\n00:03:52,091 --> 00:03:54,592\r\nOh, + I just want\r\nthis to be over.\r\n\r\n97\r\n00:03:54,594 --> 00:03:56,661\r\nYou + know, when\r\nmy yoga instructor was pregnant,\r\n\r\n98\r\n00:03:56,663 --> + 00:03:58,596\r\nshe told me\r\nthere are tons of poses\r\n\r\n99\r\n00:03:58,598 + --> 00:03:59,997\r\nthat put her right into labor.\r\n\r\n100\r\n00:03:59,999 + --> 00:04:01,332\r\nI'll try,\r\n\r\n101\r\n00:04:01,334 --> 00:04:04,735\r\nbut + I feel like bendy poses\r\nare what got me into this mess.\r\n\r\n102\r\n00:04:06,172 + --> 00:04:09,507\r\nOkay, we're gonna start with\r\nsome nice breathing exercises.\r\n\r\n103\r\n00:04:11,411 + --> 00:04:15,813\r\nSorry. I can't think of anything\r\nexcept how flat your + belly is.\r\n\r\n104\r\n00:04:15,815 --> 00:04:17,648\r\nOh, thank you.\r\n\r\n105\r\n00:04:17,650 + --> 00:04:20,418\r\nGo put on some more clothes,\r\nyou bitch.\r\n\r\n106\r\n00:04:25,658 + --> 00:04:28,726\r\nOkay, we go down...\r\n\r\n107\r\n00:04:28,728 --> 00:04:30,928\r\nand + back up.\r\n\r\n108\r\n00:04:35,168 --> 00:04:36,234\r\nAnd back up!\r\n\r\n109\r\n00:04:36,236 + --> 00:04:38,536\r\nYeah, hearing you\r\nis not the problem.\r\n\r\n110\r\n00:04:41,307 + --> 00:04:42,940\r\nPut that phone away!\r\n\r\n111\r\n00:04:42,942 --> 00:04:44,108\r\nSmile.\r\n\r\n112\r\n00:04:46,512 + --> 00:04:48,846\r\nI'm telling you,\r\nthere's an acupressure point\r\n\r\n113\r\n00:04:48,848 + --> 00:04:51,816\r\nright above your ankle\r\nthat can induce contractions.\r\n\r\n114\r\n00:04:51,818 + --> 00:04:53,684\r\nAll right, but\r\njust a warning.\r\n\r\n115\r\n00:04:53,686 + --> 00:04:55,286\r\nMy feet are a little swollen.\r\n\r\n116\r\n00:04:55,288 + --> 00:04:56,687\r\nOh, please, Bernadette.\r\n\r\n117\r\n00:04:56,689 --> + 00:04:58,990\r\nI'm sure this-- okay.\r\n\r\n118\r\n00:05:00,260 --> 00:05:01,459\r\nWhat?\r\n\r\n119\r\n00:05:01,461 + --> 00:05:04,829\r\nNothing. Your ankles look fine,\r\nand not at all\r\n\r\n120\r\n00:05:04,831 + --> 00:05:07,531\r\nlike I just popped open\r\na can of crescent rolls.\r\n\r\n121\r\n00:05:09,602 + --> 00:05:12,169\r\nMy mother believes that if\r\nyou're not prepared mentally,\r\n\r\n122\r\n00:05:12,171 + --> 00:05:14,372\r\nit can delay your body\r\nfrom going into labor.\r\n\r\n123\r\n00:05:14,374 + --> 00:05:16,741\r\nSo what are you trying to say?\r\nIt's my fault?\r\n\r\n124\r\n00:05:18,244 + --> 00:05:20,878\r\nRaj is crazy.\r\n\r\n125\r\n00:05:20,880 --> 00:05:22,980\r\nYour + ankles aren't that gross.\r\n\r\n126\r\n00:05:27,854 --> 00:05:29,820\r\nHello.\r\n\r\n127\r\n00:05:29,822 + --> 00:05:32,924\r\nLet me guess. You're here to\r\ntry to get me to go into + labor.\r\n\r\n128\r\n00:05:32,926 --> 00:05:35,893\r\nOh, please. I'm disgusted\r\nwhen + people sneeze,\r\n\r\n129\r\n00:05:35,895 --> 00:05:38,296\r\nand that's just + stuff\r\ncoming out of their nose.\r\n\r\n130\r\n00:05:38,298 --> 00:05:40,531\r\nNo.\r\n\r\n131\r\n00:05:40,533 + --> 00:05:43,467\r\nI am here to sit with you\r\nand keep you company.\r\n\r\n132\r\n00:05:43,469 + --> 00:05:44,902\r\nOh, that's nice.\r\n\r\n133\r\n00:05:44,904 --> 00:05:47,872\r\nYeah, + by playing\r\nthe most complicated board game\r\n\r\n134\r\n00:05:47,874 --> + 00:05:52,243\r\never invented:\r\nCampaign for North Africa.\r\n\r\n135\r\n00:05:52,245 + --> 00:05:53,811\r\nI bought it off eBay.\r\n\r\n136\r\n00:05:53,813 --> 00:05:57,114\r\nIt + smells a little like chili,\r\nbut all the pieces are there.\r\n\r\n137\r\n00:05:58,751 + --> 00:06:00,618\r\nCome on, baby.\r\n\r\n138\r\n00:06:00,620 --> 00:06:03,721\r\nGet + out here right now\r\nand I'll buy you a pony.\r\n\r\n139\r\n00:06:06,192 + --> 00:06:09,226\r\nAre there any engineers\r\non the grant committee?\r\n\r\n140\r\n00:06:09,228 + --> 00:06:10,895\r\nI don't know. Why?\r\n\r\n141\r\n00:06:10,897 --> 00:06:12,396\r\nI + didn't have time to figure out\r\n\r\n142\r\n00:06:12,398 --> 00:06:13,664\r\nthe + three-input\r\nhydraulic manifold,\r\n\r\n143\r\n00:06:13,666 --> 00:06:15,900\r\nso + this diagram is really just\r\na flux capacitor\r\n\r\n144\r\n00:06:15,902 + --> 00:06:17,635\r\nfrom Back to the Future.\r\n\r\n145\r\n00:06:17,637 --> + 00:06:21,005\r\nI'm sorry this is\r\non such short notice.\r\n\r\n146\r\n00:06:21,007 + --> 00:06:23,641\r\nHey, I just wish I could be\r\nthere when you present + it.\r\n\r\n147\r\n00:06:23,643 --> 00:06:25,076\r\nThat's okay.\r\n\r\n148\r\n00:06:25,078 + --> 00:06:27,278\r\nIt's more important that\r\nyou spend time with Michael.\r\n\r\n149\r\n00:06:27,280 + --> 00:06:29,447\r\nWho's Michael?\r\n\r\n150\r\n00:06:30,616 --> 00:06:31,649\r\nUh, + your son?\r\n\r\n151\r\n00:06:31,651 --> 00:06:33,451\r\nNo, it's not.\r\n\r\n152\r\n00:06:33,453 + --> 00:06:35,653\r\nMy son doesn't have a name yet.\r\n\r\n153\r\n00:06:39,359 + --> 00:06:41,625\r\nOkay, well, then,\r\nBernadette's son.\r\n\r\n154\r\n00:06:43,496 + --> 00:06:44,862\r\nI can't believe her.\r\n\r\n155\r\n00:06:44,864 --> 00:06:48,032\r\nShe + knows I don't want\r\nto name the baby after her dad.\r\n\r\n156\r\n00:06:48,034 + --> 00:06:50,368\r\n- What did you want to name him?\r\n- I don't know.\r\n\r\n157\r\n00:06:50,370 + --> 00:06:52,703\r\nWe were gonna wait until\r\nwe saw what he looked like.\r\n\r\n158\r\n00:06:52,705 + --> 00:06:54,638\r\nWell, it's a baby.\r\n\r\n159\r\n00:06:54,640 --> 00:06:56,173\r\nHer + dad's\r\na wrinkly bald man.\r\n\r\n160\r\n00:06:56,175 --> 00:06:58,309\r\nThat + wasn't gonna\r\nbreak your way.\r\n\r\n161\r\n00:07:07,420 --> 00:07:09,820\r\nAh, + come on!\r\n\r\n162\r\n00:07:11,557 --> 00:07:15,192\r\nWelcome to the next + five to\r\neight weeks of your life.\r\n\r\n163\r\n00:07:15,194 --> 00:07:17,795\r\nSheldon, + I said\r\nI didn't want to play your game.\r\n\r\n164\r\n00:07:17,797 --> + 00:07:20,231\r\nWell, then don't\r\nthink of it as a game.\r\n\r\n165\r\n00:07:20,233 + --> 00:07:21,565\r\nThink of it\r\n\r\n166\r\n00:07:21,567 --> 00:07:23,501\r\nas + a source of information\r\n\r\n167\r\n00:07:23,503 --> 00:07:27,171\r\nabout + one of the lesser known\r\ncampaigns of World War II.\r\n\r\n168\r\n00:07:27,173 + --> 00:07:28,906\r\nYou're right.\r\n\r\n169\r\n00:07:28,908 --> 00:07:30,875\r\nThat's + so much better.\r\n\r\n170\r\n00:07:30,877 --> 00:07:32,843\r\nI know, right?\r\n\r\n171\r\n00:07:32,845 + --> 00:07:36,047\r\nOkay, first, we need to roll\r\nto determine the weather.\r\n\r\n172\r\n00:07:36,049 + --> 00:07:39,183\r\nIt's a desert.\r\nIsn't it gonna be hot?\r\n\r\n173\r\n00:07:53,866 + --> 00:07:56,267\r\nYes.\r\n\r\n174\r\n00:07:59,572 --> 00:08:02,306\r\nMichael? + Really, you think\r\nwe're naming him Michael?\r\n\r\n175\r\n00:08:02,308 + --> 00:08:03,941\r\nNot now, Howard.\r\n\r\n176\r\n00:08:03,943 --> 00:08:06,911\r\nI'm + in the middle of a game.\r\n\r\n177\r\n00:08:06,913 --> 00:08:10,247\r\nYou + wish. You are hundreds\r\nof hours away from the middle.\r\n\r\n178\r\n00:08:15,338 + --> 00:08:18,973\r\nI can't believe you're trying\r\nto hijack our son's name.\r\n\r\n179\r\n00:08:19,198 + --> 00:08:21,765\r\nBernie?\r\n\r\n180\r\n00:08:22,768 --> 00:08:25,969\r\nThis + is as fast\r\nas I move! Calm down!\r\n\r\n181\r\n00:08:33,746 --> 00:08:35,679\r\nSo + you're just gonna\r\nname him Michael?\r\n\r\n182\r\n00:08:35,681 --> 00:08:37,547\r\nWere + you even\r\ngonna tell me?\r\n\r\n183\r\n00:08:37,549 --> 00:08:38,949\r\nI + told you.\r\n\r\n184\r\n00:08:38,951 --> 00:08:40,517\r\nWhen?\r\n\r\n185\r\n00:08:40,519 + --> 00:08:43,320\r\nOh, right. That was Amy.\r\n\r\n186\r\n00:08:44,757 --> + 00:08:47,424\r\nWhat's wrong with Michael?\r\nIt's my dad's name.\r\n\r\n187\r\n00:08:47,426 + --> 00:08:50,827\r\nI don't want to name our son\r\nafter your father.\r\n\r\n188\r\n00:08:54,066 + --> 00:08:56,733\r\nI didn't want to say\r\nthis, but he's dying.\r\n\r\n189\r\n00:08:56,735 + --> 00:08:59,236\r\nHe is?\r\n\r\n190\r\n00:08:59,238 --> 00:09:02,739\r\nEventually. + I mean, you\r\nsee the way the man eats.\r\n\r\n191\r\n00:09:03,809 --> 00:09:05,709\r\nOkay, + is this the hormones,\r\n\r\n192\r\n00:09:05,711 --> 00:09:08,245\r\nor have + you always been\r\na lunatic?\r\n\r\n193\r\n00:09:08,247 --> 00:09:10,747\r\nI + don't even know anymore.\r\n\r\n194\r\n00:09:12,618 --> 00:09:14,851\r\nBernie, + this is our kid's name.\r\n\r\n195\r\n00:09:14,853 --> 00:09:18,121\r\nI think + we should both agree.\r\n\r\n196\r\n00:09:18,123 --> 00:09:20,390\r\nYou're + right. We\r\nboth made this baby.\r\n\r\n197\r\n00:09:20,392 --> 00:09:22,392\r\nThank + you.\r\n\r\n198\r\n00:09:22,394 --> 00:09:24,294\r\nAnd I carried it, had + to\r\nstay in bed for four months,\r\n\r\n199\r\n00:09:24,296 --> 00:09:25,662\r\nsacrificed + my body and my job,\r\n\r\n200\r\n00:09:25,664 --> 00:09:27,631\r\nand soon + it's gonna\r\nburst its way out of me\r\n\r\n201\r\n00:09:27,633 --> 00:09:30,400\r\nlike + the Kool-Aid Man.\r\n\r\n202\r\n00:09:30,402 --> 00:09:33,103\r\nExactly. + Fifty-fifty.\r\n\r\n203\r\n00:09:36,375 --> 00:09:38,842\r\nI think I got\r\nBernadette + in trouble.\r\n\r\n204\r\n00:09:38,844 --> 00:09:39,876\r\nMaybe we should + go.\r\n\r\n205\r\n00:09:39,878 --> 00:09:41,111\r\nI-I can't.\r\n\r\n206\r\n00:09:41,113 + --> 00:09:43,413\r\nShe and I are playing\r\nCampaign for North Africa.\r\n\r\n207\r\n00:09:44,583 + --> 00:09:47,551\r\nShe doesn't want to play that.\r\nHmm?\r\n\r\n208\r\n00:09:47,553 + --> 00:09:49,886\r\nNeither did the Egyptians,\r\nbut that didn't stop Rommel.\r\n\r\n209\r\n00:09:51,123 + --> 00:09:54,091\r\nHey! I brought Chinese.\r\n\r\n210\r\n00:09:54,093 --> + 00:09:56,293\r\nAnd I brought Indian.\r\n\r\n211\r\n00:09:57,930 --> 00:09:59,529\r\nWhat + are you guys\r\ndoing here?\r\n\r\n212\r\n00:09:59,531 --> 00:10:00,497\r\nSheldon + texted and said\r\n\r\n213\r\n00:10:00,499 --> 00:10:02,199\r\nBernadette + wanted us all\r\nto come over.\r\n\r\n214\r\n00:10:05,437 --> 00:10:09,039\r\nThe + game's best with\r\nfive to ten players.\r\n\r\n215\r\n00:10:11,210 --> 00:10:14,144\r\nOkay, + if it's not Michael, then\r\nwhat do you want to name him?\r\n\r\n216\r\n00:10:14,146 + --> 00:10:17,314\r\nHarry, like Potter or Houdini.\r\n\r\n217\r\n00:10:18,851 + --> 00:10:20,384\r\nIt doesn't bother you that\r\nI have an old boyfriend\r\n\r\n218\r\n00:10:20,386 + --> 00:10:21,618\r\nnamed Harry?\r\n\r\n219\r\n00:10:22,421 --> 00:10:24,688\r\nOkay.\r\n\r\n220\r\n00:10:24,690 + --> 00:10:27,724\r\nHow 'bout Al or Max or...\r\n\r\n221\r\n00:10:27,726 --> + 00:10:29,893\r\nTed or Kevin?\r\n\r\n222\r\n00:10:29,895 --> 00:10:31,561\r\nSame + answer.\r\n\r\n223\r\n00:10:32,598 --> 00:10:34,297\r\nHey, Bernadette,\r\nit's + your turn.\r\n\r\n224\r\n00:10:34,299 --> 00:10:35,499\r\nPenny's air force\r\n\r\n225\r\n00:10:35,501 + --> 00:10:38,802\r\nis strafing\r\nyour supply line in Tobruk.\r\n\r\n226\r\n00:10:38,804 + --> 00:10:40,103\r\nWe're kind of busy.\r\n\r\n227\r\n00:10:40,105 --> 00:10:42,773\r\nOh. + 'Kay.\r\nBut you're being pretty rude.\r\n\r\n228\r\n00:10:42,775 --> 00:10:45,208\r\nEveryone + did come over\r\nto play this game with you.\r\n\r\n229\r\n00:10:47,946 --> + 00:10:51,148\r\nYou know, I always thought\r\nChristian was a nice name.\r\n\r\n230\r\n00:10:51,150 + --> 00:10:52,149\r\nI don't know.\r\n\r\n231\r\n00:10:52,151 --> 00:10:55,886\r\nSounds + a little\r\ntoo uncircumcised.\r\n\r\n232\r\n00:10:56,855 --> 00:10:58,321\r\nBernadette, + it's your turn.\r\n\r\n233\r\n00:10:58,323 --> 00:10:59,289\r\nWhat about + Greg?\r\n\r\n234\r\n00:10:59,291 --> 00:11:00,791\r\nAll right,\r\nI'll just + roll for you.\r\n\r\n235\r\n00:11:02,327 --> 00:11:04,294\r\nOoh! That is + a good one!\r\n\r\n236\r\n00:11:04,296 --> 00:11:06,696\r\nYour troops' morale + rating\r\nis pretty high.\r\n\r\n237\r\n00:11:06,698 --> 00:11:08,432\r\nNow, + Leonard, as the defender,\r\n\r\n238\r\n00:11:08,434 --> 00:11:10,500\r\nwe + need to subtract\r\nyour morale rating\r\n\r\n239\r\n00:11:10,502 --> 00:11:11,902\r\nfrom + Bernadette's\r\nto get a final\r\n\r\n240\r\n00:11:11,904 --> 00:11:13,703\r\nadjusted + morale rating\r\nfor the assault.\r\n\r\n241\r\n00:11:13,705 --> 00:11:16,740\r\nAnd + I will just check\r\nthe assault differential column.\r\n\r\n242\r\n00:11:16,742 + --> 00:11:19,743\r\nOoh! Who said war was hell?\r\n\r\n243\r\n00:11:20,813 + --> 00:11:21,845\r\nYeah, that's\r\na rhetorical question.\r\n\r\n244\r\n00:11:21,847 + --> 00:11:23,647\r\nSherman said it.\r\n\r\n245\r\n00:11:23,649 --> 00:11:24,648\r\nWhat + about Sherman?\r\n\r\n246\r\n00:11:24,650 --> 00:11:26,550\r\nLike, Sherman + Wolowitz.\r\n\r\n247\r\n00:11:26,552 --> 00:11:30,120\r\nYeah, that's a kid + who's gonna\r\ntake his mother to prom.\r\n\r\n248\r\n00:11:31,356 --> 00:11:33,323\r\nHey, + Howard,\r\nyou did that, right?\r\n\r\n249\r\n00:11:34,259 --> 00:11:37,227\r\nI + didn't take her.\r\nShe chaperoned.\r\n\r\n250\r\n00:11:37,229 --> 00:11:40,397\r\nWe + slow-danced once.\r\n\r\n251\r\n00:11:41,467 --> 00:11:43,200\r\nWhat about + Paul?\r\n\r\n252\r\n00:11:43,202 --> 00:11:46,169\r\nPaul. Paul Wolowitz.\r\n\r\n253\r\n00:11:46,171 + --> 00:11:47,671\r\nI like it.\r\n\r\n254\r\n00:11:47,673 --> 00:11:49,639\r\nOoh, + like \"Koothra-Paul-i.\"\r\n\r\n255\r\n00:11:51,076 --> 00:11:53,510\r\nOkay, + you ruined it.\r\n\r\n256\r\n00:11:54,713 --> 00:11:57,380\r\nAll right, that + moves us on\r\nto the tactical shipping phase.\r\n\r\n257\r\n00:11:57,382 + --> 00:12:00,383\r\nPenny, I believe, as\r\nlogistics commander, that's you.\r\n\r\n258\r\n00:12:00,385 + --> 00:12:03,520\r\nOkay. I surrender.\r\n\r\n259\r\n00:12:03,522 --> 00:12:05,021\r\nNice + try, Penny.\r\n\r\n260\r\n00:12:05,023 --> 00:12:07,090\r\nIt takes more\r\nthan + everybody not enjoying it\r\n\r\n261\r\n00:12:07,092 --> 00:12:09,493\r\nto + stop a game\r\nwith Sheldon Cooper.\r\n\r\n262\r\n00:12:10,762 --> 00:12:12,596\r\nSheldon, + we're talking\r\nabout something important here.\r\n\r\n263\r\n00:12:12,598 + --> 00:12:13,964\r\nFine.\r\n\r\n264\r\n00:12:13,966 --> 00:12:16,500\r\nIf + you pick a baby name,\r\ncan we get back to playing?\r\n\r\n265\r\n00:12:16,502 + --> 00:12:17,300\r\nSure.\r\n\r\n266\r\n00:12:17,302 --> 00:12:18,435\r\nAll + right, here we go.\r\n\r\n267\r\n00:12:18,437 --> 00:12:19,970\r\nRanatanata.\r\n\r\n268\r\n00:12:22,407 + --> 00:12:24,341\r\nYou can't name him Ranatanata.\r\n\r\n269\r\n00:12:24,343 + --> 00:12:26,576\r\nOh, right, it's a boy.\r\nThat'd be ridiculous.\r\n\r\n270\r\n00:12:27,513 + --> 00:12:29,646\r\nWhat about Ozymandias?\r\n\r\n271\r\n00:12:29,648 --> + 00:12:33,783\r\nAre you making these up\r\nor having a stroke?\r\n\r\n272\r\n00:12:33,785 + --> 00:12:37,320\r\nOzymandias is from a poem\r\nby Percy Bysshe Shelley.\r\n\r\n273\r\n00:12:37,322 + --> 00:12:39,289\r\nOh, oh! Bysshe Wolowitz.\r\n\r\n274\r\n00:12:39,291 --> + 00:12:40,891\r\nSolved. Back to the game.\r\n\r\n275\r\n00:12:42,394 --> 00:12:44,394\r\nHeyo! + Sandstorm!\r\n\r\n276\r\n00:12:46,165 --> 00:12:48,598\r\nSome people name + their\r\nkids after places.\r\n\r\n277\r\n00:12:48,600 --> 00:12:51,568\r\nLike + what, Walla\r\nWalla Wolowitz?\r\n\r\n278\r\n00:12:53,505 --> 00:12:56,540\r\nIf + you think that is better\r\nthan Ozymandias Wolowitz,\r\n\r\n279\r\n00:12:56,542 + --> 00:12:58,108\r\nthen you have been breathing in\r\nthe poisonous gas\r\n\r\n280\r\n00:12:58,110 + --> 00:12:59,976\r\nthat my troops\r\nillegally dispersed.\r\n\r\n281\r\n00:12:59,978 + --> 00:13:01,545\r\nOoh!\r\n\r\n282\r\n00:13:01,547 --> 00:13:02,779\r\nYou + okay?\r\n\r\n283\r\n00:13:02,781 --> 00:13:04,447\r\nUh, I think that was\r\na + contraction.\r\n\r\n284\r\n00:13:04,449 --> 00:13:07,450\r\nIs it time? Do + we need\r\nto go to the hospital?\r\n\r\n285\r\n00:13:07,452 --> 00:13:08,485\r\nNo. + We've been\r\nthrough this before.\r\n\r\n286\r\n00:13:08,487 --> 00:13:10,554\r\nMy + water\r\nhasn't even broken yet.\r\n\r\n287\r\n00:13:10,556 --> 00:13:11,755\r\nNever + mind your water.\r\n\r\n288\r\n00:13:11,757 --> 00:13:14,191\r\nHas your mucus + plug popped out?\r\n\r\n289\r\n00:13:15,127 --> 00:13:16,326\r\nEw, no!\r\n\r\n290\r\n00:13:16,328 + --> 00:13:17,460\r\nOh, you're right.\r\n\r\n291\r\n00:13:17,462 --> 00:13:19,496\r\nWe + probably would've heard that.\r\n\r\n292\r\n00:13:19,498 --> 00:13:20,697\r\nIt's + not a champagne cork.\r\n\r\n293\r\n00:13:20,699 --> 00:13:24,768\r\nAlthough + that\r\nwould be festive.\r\n\r\n294\r\n00:13:24,770 --> 00:13:26,269\r\nYou + know what,\r\nmaybe we should go.\r\n\r\n295\r\n00:13:26,271 --> 00:13:28,004\r\nDid + you have\r\nanother contraction?\r\n\r\n296\r\n00:13:28,006 --> 00:13:29,606\r\nNo. + I'm just worried\r\nthat Sheldon's gonna say\r\n\r\n297\r\n00:13:29,608 --> + 00:13:31,942\r\n\"mucus plug\" again.\r\n\r\n298\r\n00:13:31,944 --> 00:13:35,679\r\nAnd + I'm worried\r\none's gonna hit me in the eye.\r\n\r\n299\r\n00:13:35,681 --> + 00:13:36,680\r\nYep, it's time.\r\n\r\n300\r\n00:13:36,682 --> 00:13:38,215\r\nShould + we take\r\ntwo cars?\r\n\r\n301\r\n00:13:38,217 --> 00:13:40,250\r\nUh, actually, + could you\r\nstay here and watch Halley?\r\n\r\n302\r\n00:13:40,252 --> 00:13:42,352\r\nThat + way we don't have to wait\r\nfor Bernadette's parents.\r\n\r\n303\r\n00:13:42,354 + --> 00:13:43,553\r\nYeah, you guys go.\r\nWe'll take care of her.\r\n\r\n304\r\n00:13:43,555 + --> 00:13:45,522\r\nYou have nothing\r\nto worry about.\r\n\r\n305\r\n00:13:45,524 + --> 00:13:47,958\r\nWell, not nothing.\r\nThere are U-boats approaching\r\n\r\n306\r\n00:13:47,960 + --> 00:13:50,393\r\nthe Suez Canal.\r\n\r\n307\r\n00:13:50,395 --> 00:13:51,962\r\nIt's + too late for us.\r\nGo, go!\r\n\r\n308\r\n00:13:51,964 --> 00:13:54,130\r\nSave + yourselves!\r\n\r\n309\r\n00:13:55,200 --> 00:13:58,268\r\nSuez? Birth?\r\nIt's + a big night for canals.\r\n\r\n310\r\n00:14:02,241 --> 00:14:04,241\r\nHow + you feeling?\r\n\r\n311\r\n00:14:04,243 --> 00:14:05,508\r\nEh.\r\n\r\n312\r\n00:14:05,510 + --> 00:14:09,112\r\nBut I am really excited\r\nto meet our son.\r\n\r\n313\r\n00:14:09,114 + --> 00:14:11,948\r\nMe, too. I thought\r\nI'd be super freaked out.\r\n\r\n314\r\n00:14:11,950 + --> 00:14:15,252\r\nBut I'm ready for this.\r\n\r\n315\r\n00:14:15,254 --> + 00:14:17,487\r\nWell, not the part\r\nwhere you're in labor\r\n\r\n316\r\n00:14:17,489 + --> 00:14:20,557\r\nand you squeeze my fingers\r\ntill they turn blue.\r\n\r\n317\r\n00:14:20,559 + --> 00:14:22,092\r\nI'm sorry.\r\n\r\n318\r\n00:14:22,094 --> 00:14:25,795\r\nThat + must be\r\nreally painful for you.\r\n\r\n319\r\n00:14:26,632 --> 00:14:27,797\r\nIt + is.\r\n\r\n320\r\n00:14:27,799 --> 00:14:29,266\r\nI mean, last time, I...\r\n\r\n321\r\n00:14:29,268 + --> 00:14:30,267\r\nOkay,\r\n\r\n322\r\n00:14:30,269 --> 00:14:32,102\r\nI + see what you're doing.\r\n\r\n323\r\n00:14:32,938 --> 00:14:35,338\r\nOoh, + ooh, ooh.\r\n\r\n324\r\n00:14:35,340 --> 00:14:36,906\r\nIt's a big one.\r\n\r\n325\r\n00:14:36,908 + --> 00:14:38,875\r\nJust breathe.\r\n\r\n326\r\n00:14:38,877 --> 00:14:41,811\r\nOkay.\r\n\r\n327\r\n00:14:41,813 + --> 00:14:44,114\r\nOkay, I'm good.\r\n\r\n328\r\n00:14:45,183 --> 00:14:48,351\r\nI'm + sorry I tried\r\nto sneak the name past you.\r\n\r\n329\r\n00:14:48,353 --> + 00:14:49,552\r\nThat's okay.\r\n\r\n330\r\n00:14:49,554 --> 00:14:53,423\r\nI'm + sorry I used up\r\nso many good names in college.\r\n\r\n331\r\n00:14:54,793 + --> 00:14:58,528\r\nI was really competitive\r\nwith my roommate.\r\n\r\n332\r\n00:15:00,065 + --> 00:15:02,132\r\nForget about it.\r\n\r\n333\r\n00:15:02,134 --> 00:15:04,434\r\nPlease.\r\n\r\n334\r\n00:15:06,204 + --> 00:15:07,370\r\nYou know what,\r\n\r\n335\r\n00:15:07,372 --> 00:15:09,306\r\nmaybe + we're putting\r\ntoo much pressure on this.\r\n\r\n336\r\n00:15:09,308 --> + 00:15:10,674\r\nIt doesn't matter\r\nwhat we name him.\r\n\r\n337\r\n00:15:10,676 + --> 00:15:12,275\r\nHe's gonna be amazing.\r\n\r\n338\r\n00:15:12,277 --> + 00:15:13,777\r\nYou're right.\r\n\r\n339\r\n00:15:13,779 --> 00:15:17,080\r\nThis + kid is part\r\nyou and part me.\r\n\r\n340\r\n00:15:17,082 --> 00:15:21,051\r\nYeah. + He's gonna be smart\r\nand kind and funny.\r\n\r\n341\r\n00:15:21,053 --> + 00:15:23,286\r\nIf he cracks five-foot-six,\r\nit'll be a miracle.\r\n\r\n342\r\n00:15:25,857 + --> 00:15:27,824\r\nI've always liked\r\nthe name Elliott.\r\n\r\n343\r\n00:15:27,826 + --> 00:15:30,393\r\nSorry, can't have it.\r\nThat's my boy name.\r\n\r\n344\r\n00:15:30,395 + --> 00:15:31,728\r\nI said it first.\r\n\r\n345\r\n00:15:31,730 --> 00:15:33,697\r\nIt's + not like calling dibs.\r\n\r\n346\r\n00:15:33,699 --> 00:15:35,532\r\nYes, + it is.\r\nIt's exactly like that.\r\n\r\n347\r\n00:15:35,534 --> 00:15:37,534\r\nDibs + on Elliott.\r\n\r\n348\r\n00:15:37,536 --> 00:15:40,170\r\nI-I'm just saying,\r\nwe + might get there first.\r\n\r\n349\r\n00:15:40,172 --> 00:15:41,671\r\nYou + only have sex\r\nonce a year.\r\n\r\n350\r\n00:15:41,673 --> 00:15:43,340\r\nI'll + probably\r\nhave sex tonight.\r\n\r\n351\r\n00:15:44,743 --> 00:15:47,410\r\nFine, + you can have Elliott.\r\n\r\n352\r\n00:15:48,380 --> 00:15:51,281\r\nWhen + did you pick out\r\nour kids' names?\r\n\r\n353\r\n00:15:51,283 --> 00:15:53,283\r\nRemember + that day\r\nyou moved into the building?\r\n\r\n354\r\n00:15:53,285 --> 00:15:54,951\r\nYes.\r\n\r\n355\r\n00:15:55,854 + --> 00:16:00,056\r\nA non-creepy amount of time\r\nafter that.\r\n\r\n356\r\n00:16:01,226 + --> 00:16:02,892\r\nYeah, I like the name Elliott.\r\n\r\n357\r\n00:16:02,894 + --> 00:16:04,728\r\nThat wasn't on my\r\nlist, but I like it.\r\n\r\n358\r\n00:16:04,730 + --> 00:16:07,697\r\nWe've heard your names.\r\nThey're ridiculous.\r\n\r\n359\r\n00:16:07,699 + --> 00:16:10,700\r\nAnd I have a cousin named Dilip.\r\n\r\n360\r\n00:16:10,702 + --> 00:16:13,436\r\nWell, I wasn't going to give\r\nthem any of the good names.\r\n\r\n361\r\n00:16:13,438 + --> 00:16:15,205\r\nI'm saving those for us.\r\n\r\n362\r\n00:16:15,207 --> + 00:16:18,274\r\nReally? You've thought\r\nabout our kids?\r\n\r\n363\r\n00:16:18,276 + --> 00:16:21,678\r\nOf course. I think you and I\r\nwill have exceptional + children.\r\n\r\n364\r\n00:16:21,680 --> 00:16:23,380\r\nAw.\r\n\r\n365\r\n00:16:23,382 + --> 00:16:25,648\r\nWell, I think so, too.\r\n\r\n366\r\n00:16:25,650 --> + 00:16:27,350\r\nHow many kids do you guys want?\r\n\r\n367\r\n00:16:27,352 + --> 00:16:29,819\r\n- Two.\r\n- 15.\r\n\r\n368\r\n00:16:31,590 --> 00:16:32,956\r\n- + What?\r\n- Don't worry.\r\n\r\n369\r\n00:16:32,958 --> 00:16:34,991\r\nI don't + expect you\r\nto bear them all.\r\n\r\n370\r\n00:16:34,993 --> 00:16:38,395\r\nI'm + sure we can find a\r\nsuitable uterus to rent.\r\n\r\n371\r\n00:16:39,598 + --> 00:16:42,365\r\n- No!\r\n- Uh-uh!\r\n\r\n372\r\n00:16:42,367 --> 00:16:44,434\r\nWe + weren't thinking\r\nabout you.\r\n\r\n373\r\n00:16:44,436 --> 00:16:45,769\r\nOf + course not.\r\n\r\n374\r\n00:16:45,771 --> 00:16:47,203\r\nI am going to\r\nthe + kitchen.\r\n\r\n375\r\n00:16:47,205 --> 00:16:48,505\r\nCan I get anybody + anything?\r\n\r\n376\r\n00:16:48,507 --> 00:16:49,939\r\nPenny, nice glass + of milk\r\n\r\n377\r\n00:16:49,941 --> 00:16:52,342\r\nand a multivitamin?\r\n\r\n378\r\n00:17:01,834 + --> 00:17:03,734\r\nGuys.\r\n\r\n379\r\n00:17:03,736 --> 00:17:05,402\r\nGuys, + wake up.\r\n\r\n380\r\n00:17:05,404 --> 00:17:06,303\r\nTerrible news.\r\n\r\n381\r\n00:17:06,305 + --> 00:17:07,605\r\nOh, my God.\r\nWhat, what, what?\r\n\r\n382\r\n00:17:07,607 + --> 00:17:08,572\r\nIs it the baby?\r\n\r\n383\r\n00:17:08,574 --> 00:17:10,007\r\nNo. + No, no, we miscalculated\r\n\r\n384\r\n00:17:10,009 --> 00:17:11,742\r\nour + unassigned\r\narmor class units.\r\n\r\n385\r\n00:17:11,744 --> 00:17:13,377\r\nWe + need to start over.\r\n\r\n386\r\n00:17:13,880 --> 00:17:15,079\r\nWhat?\r\n\r\n387\r\n00:17:15,081 + --> 00:17:16,313\r\nOh, no, no, no,\r\nnot from the beginning.\r\n\r\n388\r\n00:17:16,315 + --> 00:17:18,048\r\nJust from when the tanks\r\nstarted moving.\r\n\r\n389\r\n00:17:18,050 + --> 00:17:20,651\r\nThat was five hours ago.\r\n\r\n390\r\n00:17:20,653 --> + 00:17:23,220\r\nMm, no.\r\nNo, that was two hours ago.\r\n\r\n391\r\n00:17:23,222 + --> 00:17:25,823\r\nIt only feels like five.\r\n\r\n392\r\n00:17:25,825 --> + 00:17:27,024\r\nWhat time is it?\r\n\r\n393\r\n00:17:27,026 --> 00:17:28,492\r\nIt's + almost 2:30.\r\n\r\n394\r\n00:17:28,494 --> 00:17:30,027\r\nDon't you think\r\nwe + should've heard something?\r\n\r\n395\r\n00:17:30,029 --> 00:17:31,529\r\nI'm + sure they're fine.\r\n\r\n396\r\n00:17:31,531 --> 00:17:33,197\r\nI'm calling + them.\r\n\r\n397\r\n00:17:35,835 --> 00:17:36,901\r\nHey!\r\n\r\n398\r\n00:17:36,903 + --> 00:17:37,968\r\nHey, everything okay?\r\n\r\n399\r\n00:17:37,970 --> 00:17:41,405\r\nYeah! + The baby was born\r\nabout an hour ago.\r\n\r\n400\r\n00:17:41,407 --> 00:17:44,341\r\nDude, + why didn't\r\nyou call me?!\r\n\r\n401\r\n00:17:44,343 --> 00:17:47,177\r\nThe + only way I would\r\nsee my son for the first time\r\n\r\n402\r\n00:17:47,179 + --> 00:17:49,346\r\nand immediately think\r\n\"I need to call Raj\"\r\n\r\n403\r\n00:17:49,348 + --> 00:17:51,815\r\nis if he came out brown.\r\n\r\n404\r\n00:17:52,885 --> + 00:17:55,586\r\nYou know, it can take some time\r\nfor pigment to form.\r\n\r\n405\r\n00:17:55,588 + --> 00:17:57,221\r\nYou're still not\r\nout of the woods.\r\n\r\n406\r\n00:17:57,223 + --> 00:17:58,219\r\nCongratulations!\r\n\r\n407\r\n00:17:58,243 --> 00:17:59,640\r\nYeah. + Hey,\r\nwhat'd you name him?\r\n\r\n408\r\n00:18:00,326 --> 00:18:01,859\r\nNeil + Michael.\r\n\r\n409\r\n00:18:01,861 --> 00:18:03,861\r\nNeil for Armstrong,\r\n\r\n410\r\n00:18:03,863 + --> 00:18:05,229\r\nGaiman, and Diamond.\r\n\r\n411\r\n00:18:05,231 --> 00:18:08,999\r\nMichael + because Bernie\r\nhad to get six stitches.\r\n\r\n412\r\n00:18:09,001 --> + 00:18:11,335\r\nNeil-- that's cute.\r\n\r\n413\r\n00:18:11,337 --> 00:18:12,970\r\nBut + we're calling him Michael!\r\n\r\n414\r\n00:18:12,972 --> 00:18:14,838\r\nI'm + not gonna fight her.\r\n\r\n415\r\n00:18:14,840 --> 00:18:17,608\r\nThat kid's + head was the size\r\nof a cantaloupe.\r\n\r\n416\r\n00:18:19,277 --> 00:18:26,177\r\n== + sync, corrected by elderman ==\r\n@elder_man\r\n\r\n" + headers: + CF-RAY: + - 8ce5aa1ffa72c90e-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Disposition: + - attachment; filename="The Big Bang Theory 11x16 - The Neonatal Nomenclature.AVS/SVA.en-en.srt" + Content-Type: + - text/srt;charset=UTF-8 + Date: + - Sun, 06 Oct 2024 12:30:46 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ivlmJJBv3lkqH9PE52cMovCd3N7WFyChsiI0sIn10qmOyJQ7sY5qJUCBkOP65rCFNh2SNpbJP3ZIBJ7M2iwdDZj0eWNJSs824wwlBcuigv4azPgiuKsmbvhdqA4lglHZtYfHrU0P"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + X-Robots-Tag: + - noindex + cf-cache-status: + - DYNAMIC + status: + code: 200 + message: OK +version: 1 diff --git a/tests/conftest.py b/tests/conftest.py index c74a958e..061d269f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -112,6 +112,25 @@ def episodes() -> dict[str, Episode]: 'thesubdb': '9dbbfb7ba81c9a6237237dae8589fccc', }, ), + 'bbt_s11e16': Episode( + os.path.join('The Big Bang Theory', 'Season 11', 'The.Big.Bang.Theory.S11E16.720p.HDTV.x264-AVS.mkv'), + 'The Big Bang Theory', + 11, + 16, + title='The Neonatal Nomenclature', + year=2007, + tvdb_id=6498115, + series_tvdb_id=80379, + series_imdb_id='tt0898266', + source='HDTV', + release_group='AVS', + resolution='720p', + video_codec='H.264', + audio_codec='Dolby Digital', + imdb_id='tt6674448', + size=505152010, + hashes={}, + ), 'got_s03e10': Episode( os.path.join( 'Game of Thrones', 'Season 03', 'Game.of.Thrones.S03E10.Mhysa.720p.WEB-DL.DD5.1.H.264-NTb.mkv' diff --git a/tests/providers/test_subtitulamos.py b/tests/providers/test_subtitulamos.py new file mode 100644 index 00000000..1c96e724 --- /dev/null +++ b/tests/providers/test_subtitulamos.py @@ -0,0 +1,84 @@ +import os + +import pytest +from babelfish import Language, language_converters # type: ignore[import-untyped] +from subliminal.providers.subtitulamos import SubtitulamosProvider +from vcr import VCR # type: ignore[import-untyped] + +vcr = VCR( + path_transformer=lambda path: path + '.yaml', + record_mode=os.environ.get('VCR_RECORD_MODE', 'once'), + decode_compressed_response=True, + match_on=['method', 'scheme', 'host', 'port', 'path', 'query', 'body'], + cassette_library_dir=os.path.realpath(os.path.join('tests', 'cassettes', 'subtitulamos')), +) + + +@pytest.mark.integration() +@vcr.use_cassette +def test_login(): + provider = SubtitulamosProvider() + assert provider.session is None + provider.initialize() + assert provider.session is not None + + +@pytest.mark.integration() +@vcr.use_cassette +def test_logout(): + provider = SubtitulamosProvider() + provider.initialize() + provider.terminate() + assert provider.session is None + + +@pytest.mark.integration() +@vcr.use_cassette +def test_download_subtitle(episodes): + video = episodes['bbt_s11e16'] + languages = {Language('eng'), Language('spa')} + with SubtitulamosProvider() as provider: + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) >= 1 + subtitle = subtitles[0] + + provider.download_subtitle(subtitle) + assert subtitle.content is not None + assert subtitle.is_valid() is True + + +@pytest.mark.converter() +def test_converter_convert_alpha3(): + assert language_converters['subtitulamos'].convert('cat') == 'Català' + + +@pytest.mark.converter() +def test_converter_convert_alpha3_country(): + assert language_converters['subtitulamos'].convert('spa', 'MX') == 'Español (Latinoamérica)' + assert language_converters['subtitulamos'].convert('por', 'BR') == 'Brazilian' + + +@pytest.mark.converter() +def test_converter_convert_alpha3_name_converter(): + assert ( + language_converters['subtitulamos'].convert( + 'fra', + ) + == 'French' + ) + + +@pytest.mark.converter() +def test_converter_reverse(): + assert language_converters['subtitulamos'].reverse('Español') == ('spa',) + + +@pytest.mark.converter() +def test_converter_reverse_country(): + assert language_converters['subtitulamos'].reverse('Español (España)') == ('spa',) + assert language_converters['subtitulamos'].reverse('Español (Latinoamérica)') == ('spa', 'MX') + + +@pytest.mark.converter() +def test_converter_reverse_name_converter(): + assert language_converters['subtitulamos'].reverse('French') == ('fra', None, None) From 942b697dbcae8b03736b40de0877d5eda9bb0957 Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Sun, 6 Oct 2024 21:42:29 +0200 Subject: [PATCH 03/14] feat: Add Subtitulamos provider integration - mypy fixes --- subliminal/converters/subtitulamos.py | 6 +- subliminal/providers/subtitulamos.py | 101 ++++++++++++-------------- 2 files changed, 50 insertions(+), 57 deletions(-) diff --git a/subliminal/converters/subtitulamos.py b/subliminal/converters/subtitulamos.py index 3fb557ef..e96febd9 100644 --- a/subliminal/converters/subtitulamos.py +++ b/subliminal/converters/subtitulamos.py @@ -4,7 +4,7 @@ from typing import TYPE_CHECKING -from babelfish import LanguageReverseConverter, language_converters +from babelfish import LanguageReverseConverter, language_converters # type: ignore[import-untyped] if TYPE_CHECKING: from . import LanguageTuple @@ -37,11 +37,11 @@ def convert(self, alpha3: str, country: str | None = None, script: str | None = if (alpha3,) in self.to_subtitulamos: return self.to_subtitulamos[(alpha3,)] - return self.name_converter.convert(alpha3, country, script) + return self.name_converter.convert(alpha3, country, script) # type: ignore[no-any-return] def reverse(self, code: str) -> LanguageTuple: """Reverse a custom code into alpha3, country and script code.""" if code in self.from_subtitulamos: return self.from_subtitulamos[code] - return self.name_converter.reverse(code) + return self.name_converter.reverse(code) # type: ignore[no-any-return] diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index 54e2532a..9c7c8b05 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -5,19 +5,17 @@ import contextlib import json import logging -from typing import TYPE_CHECKING, Any, ClassVar +from typing import TYPE_CHECKING, Any, ClassVar, cast from babelfish import Language, language_converters # type: ignore[import-untyped] -from guessit import guessit +from guessit import guessit # type: ignore[import-untyped] from requests import Session from subliminal import __short_version__ from subliminal.cache import SHOW_EXPIRATION_TIME, region -from subliminal.exceptions import ProviderError +from subliminal.exceptions import NotInitializedProviderError, ProviderError from subliminal.matches import guess_matches -from subliminal.score import get_equivalent_release_groups from subliminal.subtitle import Subtitle, fix_line_ending -from subliminal.utils import sanitize, sanitize_release_group from subliminal.video import Episode from . import ParserBeautifulSoup, Provider @@ -63,40 +61,20 @@ def __init__( self.release_group = release_group self.download_link = download_link - @property - def id(self) -> str: - """Unique identifier of the subtitle.""" - return self.download_link - def get_matches(self, video: Video) -> set[str]: """Get the matches against the `video`.""" - matches = set() - - # series - if video.series and sanitize(self.series) == sanitize(video.series): - matches.add('series') - # season - if video.season and self.season == video.season: - matches.add('season') - # episode - if video.episode and self.episode == video.episode: - matches.add('episode') - # title - if video.title and sanitize(self.title) == sanitize(video.title): - matches.add('title') - # year - if video.original_series and self.year is None or video.year and video.year == self.year: - matches.add('year') - # release_group - if ( - video.release_group - and self.release_group - and any( - r in sanitize_release_group(self.release_group) - for r in get_equivalent_release_groups(sanitize_release_group(video.release_group)) - ) - ): - matches.add('release_group') + matches = guess_matches( + video, + { + 'title': self.series, + 'season': self.season, + 'episode': self.episode, + 'episode_title': self.title, + 'year': self.year, + 'release_group': self.release_group, + }, + ) + # resolution if video.resolution and self.release_group and video.resolution in self.release_group.lower(): matches.add('resolution') @@ -117,6 +95,7 @@ class SubtitulamosProvider(Provider): video_types = (Episode,) server_url = 'https://www.subtitulamos.tv' search_url = server_url + '/search/query' + session: Session | None def __init__(self) -> None: self.session = None @@ -128,11 +107,16 @@ def initialize(self) -> None: def terminate(self) -> None: """Terminate the provider.""" + if not self.session: + raise NotInitializedProviderError self.session.close() self.session = None def _session_request(self, *args: Any, **kwargs: Any) -> Response: """Perform a GET request to the provider.""" + if not self.session: + raise NotInitializedProviderError + r = self.session.get(*args, **kwargs) r.raise_for_status() @@ -147,7 +131,8 @@ def _query_search(self, search_param: str) -> list[dict[str, str]]: r = self._session_request( self.search_url, headers={'Referer': self.server_url}, params={'q': search_param}, timeout=10 ) - return json.loads(r.text) + data = json.loads(r.text) + return cast(list[dict[str, str]], data) def _read_series(self, series_url: str) -> ParserBeautifulSoup: """Read series information from provider.""" @@ -160,28 +145,25 @@ def _get_episode_url(self, series_id: str, season: int, episode: int) -> str | N for season_element in series_content.select('#season-choices a.choice'): if season == int(season_element.get_text()): - if 'selected' not in season_element.get('class'): - series_content = self._read_series(season_element['href']) + if 'selected' not in (list[str], season_element.get('class', [])): + series_content = self._read_series(cast(str, season_element.get('href', ''))) break return None for episode_element in series_content.select('#episode-choices a.choice'): if episode == int(episode_element.get_text()): - return episode_element['href'] + return cast(str, episode_element.get('href', '')) return None @region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME) - def _search_url_titles( - self, series: str | None = None, season: int | None = None, episode: int | None = None, year: int | None = None - ) -> str: + def _search_url_titles(self, series: str, season: int, episode: int, year: int | None = None) -> str | None: """Search the URL titles by kind for the given `title`, `season` and `episode`. - :param str series: series to search for. - :param int season: season to search for. - :param int episode: episode to search for. - :param int year: year to search for. - :return: the episode URL. - :rtype: str + :param str series: Series to search for. + :param int season: Season to search for. + :param int episode: Episode to search for. + :param int year: Year to search for. + :return: The episode URL. """ logger.info('Searching episode url for %s, season %d, episode %d', series, season, episode) @@ -192,14 +174,16 @@ def _search_url_titles( series_response = self._query_search(series) episode_url = self._get_episode_url(series_response[0]['show_id'], season, episode) - if episode_url: - return self.server_url + episode_url - return None + + return self.server_url + episode_url if episode_url else None def query( self, series: str | None = None, season: int | None = None, episode: int | None = None, year: int | None = None ) -> list[SubtitulamosSubtitle]: """Query the provider for subtitles.""" + if not self.session: + raise NotInitializedProviderError + # get the episode url episode_url = self._search_url_titles(series, season, episode, year) if episode_url is None: @@ -233,7 +217,7 @@ def query( release_group = version_container.select('.version-container .text.spaced')[0].getText() # read the subtitle url - subtitle_url = self.server_url + sub.parent['href'] + subtitle_url = self.server_url + cast(str, sub.parent.get('href', '')) subtitle = SubtitulamosSubtitle( language, hearing_impaired, @@ -253,10 +237,19 @@ def query( def list_subtitles(self, video: Video, languages: Set[Language]) -> list[SubtitulamosSubtitle]: """List all the subtitles for the video.""" + if not isinstance(video, Episode): + return [] + return [s for s in self.query(video.series, video.season, video.episode, video.year) if s.language in languages] def download_subtitle(self, subtitle: SubtitulamosSubtitle) -> None: """Download the content of the subtitle.""" + if not self.session: + raise NotInitializedProviderError + + if not subtitle.download_link: + return + logger.info('Downloading subtitle %s', subtitle.download_link) r = self.session.get(subtitle.download_link, headers={'Referer': subtitle.page_link}, timeout=10) r.raise_for_status() From 27a1afd5b415beda3c0f20c7e54aaa64efa3da7d Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Mon, 7 Oct 2024 00:29:33 +0200 Subject: [PATCH 04/14] feat: Add Subtitulamos provider integration - mypy fixes --- subliminal/providers/subtitulamos.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index 9c7c8b05..79be2ff1 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -8,6 +8,7 @@ from typing import TYPE_CHECKING, Any, ClassVar, cast from babelfish import Language, language_converters # type: ignore[import-untyped] +from bs4 import Tag from guessit import guessit # type: ignore[import-untyped] from requests import Session @@ -200,9 +201,16 @@ def query( subtitles = [] for sub in soup.select('.download-button:not(unavailable)'): # read the language - language = Language.fromsubtitulamos(sub.find_previous('div', class_='language-name').get_text().strip()) + if ( + sub.parent is None + or (lang_name_element := sub.find_previous('div', class_='language-name')) is None + or (version_container := sub.find_previous('div', class_='version-container')) is None + or not isinstance(version_container, Tag) + or (release_group_element := version_container.select('.version-container .text.spaced')) is None + ): + continue - version_container = sub.find_previous('div', class_='version-container') + language = Language.fromsubtitulamos(lang_name_element.get_text().strip()) hearing_impaired = False @@ -214,7 +222,7 @@ def query( hearing_impaired = True # read the release subtitle - release_group = version_container.select('.version-container .text.spaced')[0].getText() + release_group = release_group_element[0].getText() # read the subtitle url subtitle_url = self.server_url + cast(str, sub.parent.get('href', '')) From 2cdd1ba9a9938de850c229c50d904476805f6c2d Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Mon, 7 Oct 2024 02:15:34 +0200 Subject: [PATCH 05/14] feat: Add Subtitulamos provider integration - Tweaks and add more tests --- subliminal/providers/subtitulamos.py | 109 +- .../subtitulamos/test_download_subtitle.yaml | 4880 +---------------- .../test_download_subtitle_last_season.yaml | 2354 ++++++++ .../test_download_subtitle_not_exist.yaml | 608 ++ tests/conftest.py | 8 +- tests/providers/test_subtitulamos.py | 62 +- 6 files changed, 3150 insertions(+), 4871 deletions(-) create mode 100644 tests/cassettes/subtitulamos/test_download_subtitle_last_season.yaml create mode 100644 tests/cassettes/subtitulamos/test_download_subtitle_not_exist.yaml diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index 79be2ff1..4dfaa78c 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -76,10 +76,6 @@ def get_matches(self, video: Video) -> set[str]: }, ) - # resolution - if video.resolution and self.release_group and video.resolution in self.release_group.lower(): - matches.add('resolution') - # other properties matches |= guess_matches(video, guessit(self.release_group), partial=True) @@ -140,24 +136,10 @@ def _read_series(self, series_url: str) -> ParserBeautifulSoup: r = self._session_request(self.server_url + series_url, headers={'Referer': self.server_url}, timeout=10) return ParserBeautifulSoup(r.content, ['lxml', 'html.parser']) - def _get_episode_url(self, series_id: str, season: int, episode: int) -> str | None: - """Provides the URL for a specific episode of the series.""" - series_content = self._read_series(f'/shows/{series_id}') - - for season_element in series_content.select('#season-choices a.choice'): - if season == int(season_element.get_text()): - if 'selected' not in (list[str], season_element.get('class', [])): - series_content = self._read_series(cast(str, season_element.get('href', ''))) - break - return None - - for episode_element in series_content.select('#episode-choices a.choice'): - if episode == int(episode_element.get_text()): - return cast(str, episode_element.get('href', '')) - return None - @region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME) - def _search_url_titles(self, series: str, season: int, episode: int, year: int | None = None) -> str | None: + def _read_episode_page( + self, series: str, season: int, episode: int, year: int | None = None + ) -> tuple[ParserBeautifulSoup, str]: """Search the URL titles by kind for the given `title`, `season` and `episode`. :param str series: Series to search for. @@ -174,26 +156,40 @@ def _search_url_titles(self, series: str, season: int, episode: int, year: int | if len(series_response) == 0: series_response = self._query_search(series) - episode_url = self._get_episode_url(series_response[0]['show_id'], season, episode) + """Provides the URL for a specific episode of the series.""" + page_content = self._read_series(f'/shows/{series_response[0]['show_id']}') - return self.server_url + episode_url if episode_url else None + # Select season + season_element = next( + (el for el in page_content.select('#season-choices a.choice') if str(season) in el.text), None + ) + if season_element is None: + raise SeasonEpisodeNotExists - def query( + if 'selected' not in (list[str], season_element.get('class', [])): + page_content = self._read_series(cast(str, season_element.get('href', ''))) + + # Select episode + episode_element = next( + (el for el in page_content.select('#episode-choices a.choice') if str(episode) in el.text), None + ) + if episode_element is None: + raise SeasonEpisodeNotExists + + episode_url = cast(str, episode_element.get('href', '')) + if 'selected' not in (list[str], episode_element.get('class', [])): + page_content = self._read_series(episode_url) + + # logger.error('No episode url found for %s, season %d, episode %d', series, season, episode) + + return page_content, episode_url + + def _query_provider( self, series: str | None = None, season: int | None = None, episode: int | None = None, year: int | None = None ) -> list[SubtitulamosSubtitle]: """Query the provider for subtitles.""" - if not self.session: - raise NotInitializedProviderError - - # get the episode url - episode_url = self._search_url_titles(series, season, episode, year) - if episode_url is None: - logger.error('No episode url found for %s, season %d, episode %d', series, season, episode) - return [] - - r = self.session.get(episode_url, headers={'Referer': self.server_url}, timeout=10) - r.raise_for_status() - soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser']) + # get the episode page content + soup, episode_url = self._read_episode_page(series, season, episode, year) # get episode title title = soup.select('#episode-name h3')[0].get_text().strip().lower() @@ -227,22 +223,31 @@ def query( # read the subtitle url subtitle_url = self.server_url + cast(str, sub.parent.get('href', '')) subtitle = SubtitulamosSubtitle( - language, - hearing_impaired, - episode_url, - series, - season, - episode, - title, - year, - release_group, - subtitle_url, + language=language, + hearing_impaired=hearing_impaired, + page_link=self.server_url + episode_url, + series=series, + season=season, + episode=episode, + title=title, + year=year, + release_group=release_group, + download_link=subtitle_url, ) logger.debug('Found subtitle %r', subtitle) subtitles.append(subtitle) return subtitles + def query( + self, series: str | None = None, season: int | None = None, episode: int | None = None, year: int | None = None + ) -> list[SubtitulamosSubtitle]: + """Query the provider for subtitles.""" + try: + return self._query_provider(series, season, episode, year) + except SeasonEpisodeNotExists: + return [] + def list_subtitles(self, video: Video, languages: Set[Language]) -> list[SubtitulamosSubtitle]: """List all the subtitles for the video.""" if not isinstance(video, Episode): @@ -263,3 +268,15 @@ def download_subtitle(self, subtitle: SubtitulamosSubtitle) -> None: r.raise_for_status() subtitle.content = fix_line_ending(r.content) + + +class SubtitulamosError(ProviderError): + """Base class for non-generic :class:`SubtitulamosProvider` exceptions.""" + + pass + + +class SeasonEpisodeNotExists(SubtitulamosError): + """Exception raised when the season and/or the episode does not exist on provider.""" + + pass diff --git a/tests/cassettes/subtitulamos/test_download_subtitle.yaml b/tests/cassettes/subtitulamos/test_download_subtitle.yaml index 222130bb..8bc2564a 100644 --- a/tests/cassettes/subtitulamos/test_download_subtitle.yaml +++ b/tests/cassettes/subtitulamos/test_download_subtitle.yaml @@ -21,7 +21,7 @@ interactions: CF-Cache-Status: - DYNAMIC CF-RAY: - - 8ce587129dd56601-MAD + - 8ce9945a3de087cc-SIN Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -29,7 +29,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 12:06:50 GMT + - Sun, 06 Oct 2024 23:54:57 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -37,4683 +37,17 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ae8Mi6Z34ZNeKIubSsxphjeMtIR1PgfA1e5KUNC8%2FowcmNpntCYPdv18r865HTBPFEiU8A3SqDt9mBn5T2l87bu1YF550Sf79Ha9D3kfTVoNCAMYSWmYzwByZHTARwIX%2BHDyrq8N"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=P2PksPO1GLUsscF%2Brofh4zRmGP3BH6E9gLQgwho0OxSn7Rf3ED8ryF%2BqcRWGeYkt4na4zlssYzplZZbjmJmlMoCwuL7NUaO7137YCELsl27iAn48dNqloxtbbv7ZZKVXOCslXLot"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Set-Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi; path=/; HttpOnly - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - content-length: - - '2' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory - response: - body: - string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce587143d496617-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:06:50 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=dvwyvD4Ckh0d2xHbkLxXf%2BXgBqL7iyZWacsgIj%2FHo2lgQ0%2Fv4ME4CHLLGgx00cKLYQYHp24PJEd3LHBBrSLSFWYW4i8zeGGfRQRAdX4GGAA2f24jDCUue%2B2%2FTpT76whePfgWzjqa"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - content-length: - - '50' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/shows/97 - response: - body: - string: '' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce587163e75668f-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:06:50 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768 - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Qwlz%2FzkL3zeKj1o98l3eeLxKIck3z0t%2BEKZdjXzoHJxvlE%2BSa%2ByqmZNZvBJhobk9Ay3zJYwlHgZA3kYA3OfakWIYABdx2xDSZtCTjKClxvZKvZvy1HfCnQgZOEG%2FNwaVBZFnl7U3"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768 - response: - body: - string: '' - headers: - CF-RAY: - - 8ce587182d1686c9-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:06:51 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=1lqmbz3wT8b6LrpVxl6JoLXtNWliivNQ1n%2BPXiB4Skw6GmxCzO%2FhjFnLwGJ0gH1gPV6cKT0BsFm%2BjK1Ae03pn06kI2LQQVFwR3RVGSjw8jF%2F2mgKIUxAl0DbcLJc940C25wF2wJV"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - status: - code: 301 - message: Moved Permanently -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - response: - body: - string: "\n\n\n \n\n - \ \n - \ \n - \ \n\n\n\n\n\n\n\n \n - \ \n\n - \ \n - \ \n \n \n\n\n \n The Big Bang - Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv - - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n - \
\n
\n
\n - \
\n \n
\n \n
\n - \ \n - \ \n - \ \n subtitulamos.tv\n - \
\n
\n \n
\n
\n - \ \n - \
\n \n
\n - \
\n

The - Big Bang Theory

\n
\n
\n
\n

Unraveling - the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n - \ \n
\n
\n - \
\n TEMPORADA\n - \
\n 11\n 12\n
\n
\n
\n EPISODIO\n - \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n - \
\n
\n

Versiones

\n - \
\n \n 2 473\n descargas\n - \
\n
\n
\n - \ \n\n
English
\n\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n \n - \ ORIGINAL\n \n - \ \n \n \n - \ nemesiscb\n \n
\n - \
\n \n - De Addic7ed. Sin acotaciones.\n \n
\n - \
\n
\n
\n - \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n - \
\n \n \n \n - \
\n

versi\xF3n

\n

REAL - WEB TBS

\n
\n \n - \
\n
\n
\n - \
\n
\n
\n \n 100%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n - \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n - \
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n
\n - \
\n
\n
\n \n 2%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n\n
\n - \ \n

Comentarios ({{comments.length}})

\n - \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n - \
\n
\n \n - \
\n
\n
\n
\n\n\n\n\n\n - \ \n
\n
\n\n \n\n \n\n - \ \n \n - \ \n \n \n \n \n\n\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce5871a18cd2fb7-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:06:51 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=0wzmBBTgdCilSI5jbvXVwaIXKF%2BBWhN3juzoY0sZvgwKGgZQS%2BCML2r%2Bb2t6yFwoXkPgxklyy8oasb%2BoLcquoNFVBdB8Hu8QhSvIxBxQ91tfq4ay896Wf40oVZgHRHyiiyWgVq0L"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - content-length: - - '28387' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 - response: - body: - string: '[]' - headers: - CF-RAY: - - 8ce58cc8080a6669-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:10:43 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=7J7uR6V4iGl3GchDRUCUroBV87hxzvDT5xxoq7UMhxMIQ8AoFPKFbqfqGtIYfhnjjrzU8kZgvRERAFQG19mqFrMK7JSGo0JVj6qsbrrXK%2BrF854vQlgDGx6uYgr2Hk%2Fr1N%2FBvxWg"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '2' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory - response: - body: - string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58cca1ec83846-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:10:44 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=JGorEWkwaGsd%2Fdiu86W5XCLMBCG6HnBcRkXxCY3ArqLXSMfi56rXgbhoIzlonb4YgmOLciRJ7eBx69uJ07Ur7er3DCwuZPMqCqM%2FawK2Qk1yrGTRuBXafrppP4q1RBYmBmb5JZRL"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - content-length: - - '50' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/shows/97 - response: - body: - string: '' - headers: - CF-RAY: - - 8ce58ccc1c31664d-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:10:44 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768 - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=UUnRKSwpzIey7E4RhqvC17fU%2FGaoTlISOv6eil08yJCtjRBsd2vrS8R4XvIydlh%2FslBz8OuQ764DiQMqB%2F1ZwIYYNH42JkRlKk10OqRpLUA5u4gd9fKYkbv7PXvRrZR8Z4a3yRz%2B"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768 - response: - body: - string: '' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58cce5954cbe7-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:10:44 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=p1Y2JcKZq%2FWBUAkoYP3ARJK0Z9tI2seYb44KqxRKiPnpnOAJLlWowC17gz8gfZwf5i62F1hfA%2BUY1KcfJWQWyTBVhGYAKEegJoI3FQQ3i9A0B1X7GKkXmWXmRI1TQ%2F1Os%2BNqeZag"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - status: - code: 301 - message: Moved Permanently -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - response: - body: - string: "\n\n\n \n\n - \ \n - \ \n - \ \n\n\n\n\n\n\n\n \n - \ \n\n - \ \n - \ \n \n \n\n\n \n The Big Bang - Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv - - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n - \
\n
\n
\n - \
\n \n
\n \n
\n - \ \n - \ \n - \ \n subtitulamos.tv\n - \
\n
\n \n
\n
\n - \ \n - \
\n \n
\n - \
\n

The - Big Bang Theory

\n
\n
\n
\n

Unraveling - the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n - \ \n
\n
\n - \
\n TEMPORADA\n - \
\n 11\n 12\n
\n
\n
\n EPISODIO\n - \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n - \
\n
\n

Versiones

\n - \
\n \n 2 473\n descargas\n - \
\n
\n
\n - \ \n\n
English
\n\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n \n - \ ORIGINAL\n \n - \ \n \n \n - \ nemesiscb\n \n
\n - \
\n \n - De Addic7ed. Sin acotaciones.\n \n
\n - \
\n
\n
\n - \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n - \
\n \n \n \n - \
\n

versi\xF3n

\n

REAL - WEB TBS

\n
\n \n - \
\n
\n
\n - \
\n
\n
\n \n 100%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n - \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n - \
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n
\n - \
\n
\n
\n \n 2%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n\n
\n - \ \n

Comentarios ({{comments.length}})

\n - \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n - \
\n
\n \n - \
\n
\n
\n
\n\n\n\n\n\n - \ \n
\n
\n\n \n\n \n\n - \ \n \n - \ \n \n \n \n \n\n\n" - headers: - CF-RAY: - - 8ce58cd08a6c2f97-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:10:45 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=gc5HxOamTxr0f%2FodPhO440UOApwYFKnZTWlu7kC0zaZltMMa1NFhB62qTi7%2F9OTlBPjgQBxbptbrTYih22GyQHdg271Th7ns0tbvSTBaTOZwWRb6aw0PpWq%2BX7FiUBPbvuVBV5Km"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '28387' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 - response: - body: - string: '[]' - headers: - CF-RAY: - - 8ce58d38dca73851-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:02 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=vUo7O5ToJkktomcH6r0B8K9ImQy358JfH%2FJtE11cMRZSaMuCFwojrdRA1%2BUomxuCZVOUkVjAGQtgPu%2BBMwE%2FPsSQTzRlKX7b9DKZxz1huAX%2B7KBdiWuEjNpgVbAX9w2hjyyAXzqK"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '2' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory - response: - body: - string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' - headers: - CF-RAY: - - 8ce58d3ae8b6cc06-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:02 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=5nOIE2Gj3MzHr%2BWh0OBNwd6UNBQdnBzXiSoDp%2BElRh6Bx5QJ2f5rhSf7hp6KtK5Oei5%2FoTGZzJsfXnYZRqTFOl953AQDoIOF0M%2BSg98p%2BGyfSub6V60c954OWSFaY4LBoMY55NLa"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - alt-svc: - - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC - content-length: - - '50' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/shows/97 - response: - body: - string: '' - headers: - CF-RAY: - - 8ce58d3e196cc912-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:02 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768 - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=fhAPPWWF3LP04Wt%2F8M%2FusNVfbHMoZFqtX8qaiW8AQeTkMF7M%2F6gqAgcIwCI7nUXE9ZPavDDN3KFD44vbAZtYBBGBHVS8R79TEcglGMw9ImnBO6L9N5ihW3w4N%2FjdBHwyiAvwPBO7"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768 - response: - body: - string: '' - headers: - CF-RAY: - - 8ce58d4038c565f8-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:03 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=aeWdDRnJIp7LmDtUbEEBEpSzK2qdYJfW8hUvD8I3I3OY%2BtbTM5Vir9RvqErZbrPVy9ZmxR7AhpHdwDCS9qAb%2FT4Qlp9X7altGUjcOgB6Zs%2Fu9IWyM%2FRbB6KwtEcQ2GjYIxip6J7M"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - status: - code: 301 - message: Moved Permanently -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - response: - body: - string: "\n\n\n \n\n - \ \n - \ \n - \ \n\n\n\n\n\n\n\n \n - \ \n\n - \ \n - \ \n \n \n\n\n \n The Big Bang - Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv - - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n - \
\n
\n
\n - \
\n \n
\n \n
\n - \ \n - \ \n - \ \n subtitulamos.tv\n - \
\n
\n \n
\n
\n - \ \n - \
\n \n
\n - \
\n

The - Big Bang Theory

\n
\n
\n
\n

Unraveling - the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n - \ \n
\n
\n - \
\n TEMPORADA\n - \
\n 11\n 12\n
\n
\n
\n EPISODIO\n - \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n - \
\n
\n

Versiones

\n - \
\n \n 2 473\n descargas\n - \
\n
\n
\n - \ \n\n
English
\n\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n \n - \ ORIGINAL\n \n - \ \n \n \n - \ nemesiscb\n \n
\n - \
\n \n - De Addic7ed. Sin acotaciones.\n \n
\n - \
\n
\n
\n - \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n - \
\n \n \n \n - \
\n

versi\xF3n

\n

REAL - WEB TBS

\n
\n \n - \
\n
\n
\n - \
\n
\n
\n \n 100%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n - \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n - \
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n
\n - \
\n
\n
\n \n 2%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n\n
\n - \ \n

Comentarios ({{comments.length}})

\n - \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n - \
\n
\n \n - \
\n
\n
\n
\n\n\n\n\n\n - \ \n
\n
\n\n \n\n \n\n - \ \n \n - \ \n \n \n \n \n\n\n" - headers: - CF-RAY: - - 8ce58d424b11cfcd-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:03 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=VpnanbfMPpbIUJWLNGCusnQHlCCxALDhok289Vsi%2BXoJaqWn3nbvT9VFUSGEYMymZcy4axhE4Q%2BYtwGBj1IJBmn7cLwa%2Fxqgf4hB5F1Laq6%2FnuqcinUx6ikcJbmzD4yfJ87gT8dX"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '28387' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 - response: - body: - string: '[]' - headers: - CF-RAY: - - 8ce58d4c5998cbe2-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:05 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ym1kMhM%2Bl%2BcqQpbFirWq2qzK9NJznqvCPvVCxK%2B2SI3VDuPjfvNcxIIj1J7DZ6AyJp11Gn%2Bz9vQMzxuVw5ogc8JXbIVHNl%2BiphWPKLiK%2B%2B7t50MR6qzsUNLBjWdZJpZRw5eUAOla"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - alt-svc: - - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC - content-length: - - '2' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory - response: - body: - string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' - headers: - CF-RAY: - - 8ce58d501c7437cd-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:05 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=4DXqDUfr8slXSUmaRCkEH34a3IaNXaACmmTEZ546k8cpV42JDYmwJAQvKiJEscyIRXC3mOLtquYIL7BKJC%2Bynf4qfNhJDluu1Z9W%2FeR6YWF3MbzRILgQQ5xHJH4EStRI1yXIf5Jl"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '50' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/shows/97 - response: - body: - string: '' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58d5179d33147-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:05 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768 - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=svI0jxN0MBmBfFy%2Bt0%2FmsDjruStNWlpD%2FVc6fhYCc%2FkEzOrCE%2FMZctYLHAnd2yJs5C575L0jR7hVXm9BBunMrt%2BPblL%2Fr%2FLIgdjDOUkd42VuS%2FO%2BVKUwsfGrY%2FIpgGuUOVeDpb5C"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768 - response: - body: - string: '' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58d531dfa2148-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:06 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=pvi%2BDMgWRPd864PecUT6fJoh0DnIeRJ5zp9HzxzA0yzcSYScfgy9%2F1ciXiS3e%2BKir05zZuxkjpdM9dYeScViBGF0ZBCxo6w0lQ5q0%2B%2FH4cz5KmU2EeUE%2FPR1lII8LUTOhSUC2cBY"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - status: - code: 301 - message: Moved Permanently -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - response: - body: - string: "\n\n\n \n\n - \ \n - \ \n - \ \n\n\n\n\n\n\n\n \n - \ \n\n - \ \n - \ \n \n \n\n\n \n The Big Bang - Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv - - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n - \
\n
\n
\n - \
\n \n
\n \n
\n - \ \n - \ \n - \ \n subtitulamos.tv\n - \
\n
\n \n
\n
\n - \ \n - \
\n \n
\n - \
\n

The - Big Bang Theory

\n
\n
\n
\n

Unraveling - the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n - \ \n
\n
\n - \
\n TEMPORADA\n - \
\n 11\n 12\n
\n
\n
\n EPISODIO\n - \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n - \
\n
\n

Versiones

\n - \
\n \n 2 473\n descargas\n - \
\n
\n
\n - \ \n\n
English
\n\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n \n - \ ORIGINAL\n \n - \ \n \n \n - \ nemesiscb\n \n
\n - \
\n \n - De Addic7ed. Sin acotaciones.\n \n
\n - \
\n
\n
\n - \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n - \
\n \n \n \n - \
\n

versi\xF3n

\n

REAL - WEB TBS

\n
\n \n - \
\n
\n
\n - \
\n
\n
\n \n 100%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n - \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n - \
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n
\n - \
\n
\n
\n \n 2%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n\n
\n - \ \n

Comentarios ({{comments.length}})

\n - \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n - \
\n
\n \n - \
\n
\n
\n
\n\n\n\n\n\n - \ \n
\n
\n\n \n\n \n\n - \ \n \n - \ \n \n \n \n \n\n\n" - headers: - CF-RAY: - - 8ce58d5529a4384a-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:06 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=wIdl1gyF9aAJGQQQbPu1yV9Q5SvfL5A2yZTS81JZGhFI5ucPNQ8Ua8YpyOkzdfTz93%2BM7Kr6bR6bxvffDZPo6tH5O2J6Iwk4nAA3XhmqWsrBFQJ3cLKF9zbZmgu8bJXra1%2FuUOpm"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '28387' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 - response: - body: - string: '[]' - headers: - CF-RAY: - - 8ce58d5bdb47cbd3-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:07 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=SGKZ6J%2BlUSMgu9T4pduIZ2X%2BVFd299JId10iCyaGpSxKGXF6BHx5Cbz8YbLTizB7x2rOTC7RMxTU2OroUTMm7WJLlFZofwnw3%2F8JfXhuvjVS4QJ3fDYObeVSh2I1GXnBmYrsxHiZ"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '2' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory - response: - body: - string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' - headers: - CF-RAY: - - 8ce58d6228d8cfaa-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:08 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=G4cJrCm%2BN2TOGxTPIgxf2nrqw0JGwunKw4dDanYf%2BSfPF%2F8I%2BWDZFiFvVCKFFW5DFMrzN76XOTs7C9z2xlLDHzTyITMKnj8mHvFmP4LgayJjyknJ4Nk%2F9LMn9vh5A6eMMm53PUx7"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '50' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/shows/97 - response: - body: - string: '' - headers: - CF-RAY: - - 8ce58d643afd2f94-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:08 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768 - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=19TBxuP%2FX%2BKMSaEYX6U3new%2F2G2%2BACurn%2BGsGbCDn%2F%2FE71AlpCrjIEZs8JjiL79LEd1nGxs1Q4aDY0U%2BT42e6FXnP0EM1qSIoWNoyF1hLNal0xFvCPQEaeHRnbFlvm%2FGFe8H%2FVQ5"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768 - response: - body: - string: '' - headers: - CF-RAY: - - 8ce58d66482acc4b-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:09 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=xZ9N8NfDrwR1F3IUFcr6nhdh0Geoc8OzFtMQUHMlutl1BjDzg1a1WJVOZWwAU2PQCWjP5kyuOHTWZnpImifc3KTt8FvgAQCGnGbyI3dmxrXVHsPylbZywjl7jd8eC1mrHZNV1Q6R"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - status: - code: 301 - message: Moved Permanently -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - response: - body: - string: "\n\n\n \n\n - \ \n - \ \n - \ \n\n\n\n\n\n\n\n \n - \ \n\n - \ \n - \ \n \n \n\n\n \n The Big Bang - Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv - - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n - \
\n
\n
\n - \
\n \n
\n \n
\n - \ \n - \ \n - \ \n subtitulamos.tv\n - \
\n
\n \n
\n
\n - \ \n - \
\n \n
\n - \
\n

The - Big Bang Theory

\n
\n
\n
\n

Unraveling - the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n - \ \n
\n
\n - \
\n TEMPORADA\n - \
\n 11\n 12\n
\n
\n
\n EPISODIO\n - \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n - \
\n
\n

Versiones

\n - \
\n \n 2 473\n descargas\n - \
\n
\n
\n - \ \n\n
English
\n\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n \n - \ ORIGINAL\n \n - \ \n \n \n - \ nemesiscb\n \n
\n - \
\n \n - De Addic7ed. Sin acotaciones.\n \n
\n - \
\n
\n
\n - \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n - \
\n \n \n \n - \
\n

versi\xF3n

\n

REAL - WEB TBS

\n
\n \n - \
\n
\n
\n - \
\n
\n
\n \n 100%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n - \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n - \
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n
\n - \
\n
\n
\n \n 2%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n\n
\n - \ \n

Comentarios ({{comments.length}})

\n - \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n - \
\n
\n \n - \
\n
\n
\n
\n\n\n\n\n\n - \ \n
\n
\n\n \n\n \n\n - \ \n \n - \ \n \n \n \n \n\n\n" - headers: - CF-RAY: - - 8ce58d688dd0c8f7-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:09 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=cAGDWRQA489mPFj7MbS1XwI9zgG1YAAEC0M1w60LPhiaF2xusWTkt6xpSDnnGoZqsJ28GVERKGl7snydxHoTGsqL28YnAQjWtg63V8dte4JGSWvFj6KLpi5CscT8YaR06VML7aT7"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '28387' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 - response: - body: - string: '[]' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58d6c1896cfbd-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:10 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=w9o7eXavDVAr%2Fq81gugDjcD7EEdCIyHI%2FaV2ai3FAEFp3%2F6l3vOxheGqeHUTQV%2Bl%2FZIrrBW3j1iFFVVxMXNtjAkho8qS7B80X2lIW4ZNGoERCRd6%2FkAlhTiYIBB9Q%2F1PStyZITfs"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - content-length: - - '2' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory - response: - body: - string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58d7338adc901-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:11 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=86eE3UA0lri8oD37DkhsM8ym71oApERMXD0jj1VrpyAxONBV5%2BZIBnfDBipB%2BFiygwfM4NebZEYmLF13O1YtIKEc%2B1%2FxH6sXsGS2kMl9qBaYdfslvvHTKKECLIueDK%2F%2FhuvNMNbj"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - content-length: - - '50' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/shows/97 - response: - body: - string: '' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58d757c52d050-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:11 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768 - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=OXFjdGq1LxTpj%2FzhwQA5OGsbUVvU8rAhPOZTBD84cI%2F5Ax60T1UL3ljJmk51e07mnoQHma0RFPyOPdA3ZoYIZ0YxxoM%2BzeqXVCSUX3esDZvKz37kWYqyLfba6ZQwQjBJgaxC2UdA"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768 - response: - body: - string: '' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58d779a96cfb3-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:12 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=UJXoyr6%2F6ylIrIKuWhgVcpUEZzKpYEPlmYLIQsRHE9Zsv12D5Xr0NTPizhQKPOIH9oThIIXfqIHfF%2Fz9Z34aWW1L0qg3g7VDpIlNrevuM9c3LmZ%2FH7ysZzy3Lwksg4COgWAYYn1B"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - status: - code: 301 - message: Moved Permanently -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - response: - body: - string: "\n\n\n \n\n - \ \n - \ \n - \ \n\n\n\n\n\n\n\n \n - \ \n\n - \ \n - \ \n \n \n\n\n \n The Big Bang - Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv - - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n - \
\n
\n
\n - \
\n \n
\n \n
\n - \ \n - \ \n - \ \n subtitulamos.tv\n - \
\n
\n \n
\n
\n - \ \n - \
\n \n
\n - \
\n

The - Big Bang Theory

\n
\n
\n
\n

Unraveling - the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n - \ \n
\n
\n - \
\n TEMPORADA\n - \
\n 11\n 12\n
\n
\n
\n EPISODIO\n - \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n - \
\n
\n

Versiones

\n - \
\n \n 2 473\n descargas\n - \
\n
\n
\n - \ \n\n
English
\n\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n \n - \ ORIGINAL\n \n - \ \n \n \n - \ nemesiscb\n \n
\n - \
\n \n - De Addic7ed. Sin acotaciones.\n \n
\n - \
\n
\n
\n - \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n - \
\n \n \n \n - \
\n

versi\xF3n

\n

REAL - WEB TBS

\n
\n \n - \
\n
\n
\n - \
\n
\n
\n \n 100%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n - \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n - \
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n
\n - \
\n
\n
\n \n 2%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n\n
\n - \ \n

Comentarios ({{comments.length}})

\n - \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n - \
\n
\n \n - \
\n
\n
\n
\n\n\n\n\n\n - \ \n
\n
\n\n \n\n \n\n - \ \n \n - \ \n \n \n \n \n\n\n" - headers: - CF-RAY: - - 8ce58d798b6dc902-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:12 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=O0BlZh8tyN9CF4Vqt3HnmXYOM6hO9E507ow9EBeDjG3J5YSN6aB2NmQSC1DG6uKhtCvVHSp8lXQnQf3SUwXoUPTYGNCSf3E9jbQGzSOIVfxYFDVlUA4zwaNPII9QQkzZ%2B2pd6RiF"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '28387' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 - response: - body: - string: '[]' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58d834ef0cf98-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:13 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Ko7%2FC%2FhtLGcyGwRsmtYQZvgGzWNGx6P7TwdXEaS2hp2gBNCOcnnbfVclrhefmFdX%2FGew65wlejx2xY8a3qGw%2FEKT%2FLcxxal8ODcPtNa7pO%2Fg4sZ3hF2XoQvTPt2kDRZW0OfA7kHS"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - content-length: - - '2' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory - response: - body: - string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' - headers: - CF-RAY: - - 8ce58d854fe6cfd7-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:14 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=tqmJQZKEXlGar0swIuZrKOWOz4Gg%2FmbajVZhf1cuyRQPtApZJqSX9JeHUH6yKnNov7N2k4aKBU9maYaaDtzF6mKUnyXEm%2BiIrtnVCBN%2B7q5zusKkPGk3WFxbKsX4MssX%2B3rTMTw0"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '50' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/shows/97 - response: - body: - string: '' - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58d8c6b7ecfce-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:15 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768 - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=aSDaHF6jw%2FpvdWLVoQeMoD28Lym3712NVt1PnRX2eeqbMmxZYtH6Ywm7Pz2q%2FuQtOX4Abr16S4o%2FHHu8wzxzOlt7cC5Pn%2BE8xf1rhXgh3yrk44iyVeBQBPFaGnN8o7p28J9dK4%2Fs"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768 - response: - body: - string: '' - headers: - CF-RAY: - - 8ce58d8e1a7b2fca-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:15 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=T1wGfrjRXOVulmnmZCjENXClVgugIaBUSMqw3oZdkKRaI3%2FoPy4S310TFTXi2GI0wXFNjFk86Zl%2BCVIH530mhf4yBnWU5bGjRUQt7dqXd11Fkxle2r8wf3WUdqcOJBzugmim6zSb"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - status: - code: 301 - message: Moved Permanently -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - response: - body: - string: "\n\n\n \n\n - \ \n - \ \n - \ \n\n\n\n\n\n\n\n \n - \ \n\n - \ \n - \ \n \n \n\n\n \n The Big Bang - Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv - - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n - \
\n
\n
\n - \
\n \n
\n \n
\n - \ \n - \ \n - \ \n subtitulamos.tv\n - \
\n
\n \n
\n
\n - \ \n - \
\n \n
\n - \
\n

The - Big Bang Theory

\n
\n
\n
\n

Unraveling - the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n - \ \n
\n
\n - \
\n TEMPORADA\n - \
\n 11\n 12\n
\n
\n
\n EPISODIO\n - \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n - \
\n
\n

Versiones

\n - \
\n \n 2 473\n descargas\n - \
\n
\n
\n - \ \n\n
English
\n\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n \n - \ ORIGINAL\n \n - \ \n \n \n - \ nemesiscb\n \n
\n - \
\n \n - De Addic7ed. Sin acotaciones.\n \n
\n - \
\n
\n
\n - \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n - \
\n \n \n \n - \
\n

versi\xF3n

\n

REAL - WEB TBS

\n
\n \n - \
\n
\n
\n - \
\n
\n
\n \n 100%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n - \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n - \
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n
\n - \
\n
\n
\n \n 2%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n\n
\n - \ \n

Comentarios ({{comments.length}})

\n - \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n - \
\n
\n \n - \
\n
\n
\n
\n\n\n\n\n\n - \ \n
\n
\n\n \n\n \n\n - \ \n \n - \ \n \n \n \n \n\n\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58d8f6fa26660-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:11:15 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=WyOZKopGzgTLCTyLBL4m4AU41%2FzrMlsMq1qJiCfLfIm4CpcQoONCHp4m5jfKrMoK3KodXvUhjvuA%2BtE3ysuhGu%2BiYmZ%2FPgV5XZWQt4krQvme%2FWIp5ra%2FBcbRRnvFmZRDk5cJtj8Y"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - content-length: - - '28387' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/shows/97 - response: - body: - string: '' - headers: - CF-RAY: - - 8ce58feb2f052fa0-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:12:52 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768 - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=pKmZPXD4d%2BDDkbQ8gHh2GzPtglETOxdmGDGryL52EfhQ5EC3Hpih70U50x2gD2g8FmhzcfHqfKSLqfJiyvMDNZESUx44UR%2B2C5aE7%2BVOAeEBnyfJxGR5nFX4080KLRd1u0QSHwIA"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - status: - code: 302 - message: Found -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768 - response: - body: - string: '' - headers: - CF-RAY: - - 8ce58fed6fd4cfe2-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:12:52 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - Location: - - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=aqbQaHMaZd9l7VhRY%2FDJhNRosA7tt4NE%2FWith8t4JbnyY1CVmFDaVqewT1WKEQJ1w%2Bw61sBNRdpwLwU9ymmD9B2jxbL7IR7Zxv%2BIxB8GFHPtebSe6NIZYDDN%2BmojluVbrRUQjIcq"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - status: - code: 301 - message: Moved Permanently -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell - response: - body: - string: "\n\n\n \n\n - \ \n - \ \n - \ \n\n\n\n\n\n\n\n \n - \ \n\n - \ \n - \ \n \n \n\n\n \n The Big Bang - Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv - - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n - \
\n
\n
\n - \
\n \n
\n \n
\n - \ \n - \ \n - \ \n subtitulamos.tv\n - \
\n
\n \n
\n
\n - \ \n - \
\n \n
\n - \
\n

The - Big Bang Theory

\n
\n
\n
\n

Unraveling - the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n - \ \n
\n
\n - \
\n TEMPORADA\n - \
\n 11\n 12\n
\n
\n
\n EPISODIO\n - \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n - \
\n
\n

Versiones

\n - \
\n \n 2 473\n descargas\n - \
\n
\n
\n - \ \n\n
English
\n\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n \n - \ ORIGINAL\n \n - \ \n \n \n - \ nemesiscb\n \n
\n - \
\n \n - De Addic7ed. Sin acotaciones.\n \n
\n - \
\n
\n
\n - \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n - \
\n \n \n \n - \
\n

versi\xF3n

\n

REAL - WEB TBS

\n
\n \n - \
\n
\n
\n - \
\n
\n
\n \n 100%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n - \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n - \
\n \n \n - \ \n
\n - \

versi\xF3n

\n

REAL WEB TBS

\n
\n - \ \n - \
\n
\n
\n - \
\n
\n
\n \n 2%\n \n - \
\n
\n - \
\n
\n
\n - \
\n
\n\n
\n - \ \n

Comentarios ({{comments.length}})

\n - \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n - \
\n
\n \n - \
\n
\n
\n
\n\n\n\n\n\n - \ \n
\n
\n\n \n\n \n\n - \ \n \n - \ \n \n \n \n \n\n\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8ce58ff0caafcfcb-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:12:53 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Sq7XNHmG56SyPHBg1vXrvKndL4X%2FSQTKAwcClrURQnVnQxhaDQuhgFtdozgNJd4SsD1JswuMD33FtxCSc6wf7G0mF8TDjI%2BOO3ypD%2BlpaAGLR%2FjS482LmKXri4r7dX6%2BveHswGFx"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - content-length: - - '28387' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 - response: - body: - string: '[]' - headers: - CF-RAY: - - 8ce58ffeeafccf8c-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:12:55 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=0qoBRRGYopGzZCDHsojtEKD51aDF2jKx1dkUCTDDlVB4sHfbaRnhBuucC9or1CWqiJnQe142KrxZ%2BwF%2Fj33pU6E1lfuNlHpu9So0lAa7gDtteqvB%2BAViOYh6kgbvpiGB650vgF45"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare + - PHPSESSID=ive103k42cnfs2kqb0suklhl2n; path=/; HttpOnly Speculation-Rules: - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked X-Powered-By: - PHP/7.4.14 - cf-cache-status: - - DYNAMIC content-length: - '2' status: @@ -4729,7 +63,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + - PHPSESSID=ive103k42cnfs2kqb0suklhl2n Referer: - https://www.subtitulamos.tv User-Agent: @@ -4740,10 +74,8 @@ interactions: body: string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce59000fa5b3148-MAD + - 8ce9945d7c883147-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -4751,7 +83,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 12:12:55 GMT + - Sun, 06 Oct 2024 23:54:57 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -4759,15 +91,17 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=un%2B7mGOnX0IBfsKdbxLYzpbwKglQBLMPWblrvZMbI7JqtP3sqcdGIkb5IhA0KxnISjyswbvCk33MF0KE22myGI6rUKOMySuictk%2B2tBh2yR3A%2Fx1zkarjK3qnRWAhmLJKXMN7drz"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=%2BOJMm22w3eA5cRC3otJdecn5nySddvR2YaGDgdkPzIBhpVxhWOoI3Whglyp4pGqTbnU04bvuZ9t7vBPQ7eXNtdiqr2mVq%2BSlpziaH84dThtiW96JSY1YtBx0WnJ4Lih9phuDAlK0"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked X-Powered-By: - PHP/7.4.14 - alt-svc: - - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC content-length: - '50' status: @@ -4783,7 +117,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + - PHPSESSID=ive103k42cnfs2kqb0suklhl2n Referer: - https://www.subtitulamos.tv User-Agent: @@ -4795,7 +129,7 @@ interactions: string: '' headers: CF-RAY: - - 8ce590153a096666-MAD + - 8ce9945eca15384a-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -4803,7 +137,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 12:12:59 GMT + - Sun, 06 Oct 2024 23:54:57 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT Location: @@ -4813,11 +147,13 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=l7tJWIr%2BInKNXFnjhp%2BOK53UUJmybi%2Bkq8rNYJLKtNKnJZUuUEwuE%2FOzwEoTe0%2B50wrWP8LN0b4d2ageyfIxyuO9iDD8bneN3fR3Cw9vGQAknh5XX4HvYeztzb0wIuw5xVAcD5yf"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=zgosl5SjhcSuvGjhlx9P334zEDSRJadWMu4rbK9aG0Da2st7vZqEE4rd0RKVuT6cGeEdxHG%2FO1AUNTaNlsSDglXrgW3wmaYORuOg4nki%2BqW%2BolPE0fOE1a6jwmy2kxy6aCVG0AR2"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked X-Powered-By: - PHP/7.4.14 cf-cache-status: @@ -4835,7 +171,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + - PHPSESSID=ive103k42cnfs2kqb0suklhl2n Referer: - https://www.subtitulamos.tv User-Agent: @@ -4846,8 +182,10 @@ interactions: body: string: '' headers: + CF-Cache-Status: + - DYNAMIC CF-RAY: - - 8ce5901748ffd050-MAD + - 8ce994600e4cc902-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -4855,7 +193,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 12:12:59 GMT + - Sun, 06 Oct 2024 23:54:58 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT Location: @@ -4865,15 +203,15 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=jG9pb1cGZsiTIxx%2F0gbF%2BTYSGQmt6hHQAEW%2BivaKMkDeyXTPFLwsXTj7ZOiU5Pfnntn2d5G4CvtGVg1fkTtGBV5QWXn55X5J3fBh6Ppv423vEzKA4RAzTnPSsk%2F5ry5HpqDNrBxu"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ds7cQurCFsVAbV6T6d38amfxWfxbfHxcyx4Al%2BmfXczq6f%2F0AV%2Bc5dOnFaDM22YJCQsDPYYmEAjvZFFZmAJP0oiYSaFqxS2E34jn3ePq2qejmJjJE3w%2FS8b03PPLqdd%2BDuUo6sra"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked X-Powered-By: - PHP/7.4.14 - cf-cache-status: - - DYNAMIC status: code: 301 message: Moved Permanently @@ -4887,7 +225,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + - PHPSESSID=ive103k42cnfs2kqb0suklhl2n Referer: - https://www.subtitulamos.tv User-Agent: @@ -4906,7 +244,7 @@ interactions: href=\"/safari-pinned-tab.svg?v=lkvlWOG2Qx\" color=\"#607dcd\">\n\n\n\n \n - \ \n\n + \ \n\n \ \n \ \n \n\n\n" headers: CF-RAY: - - 8ce5901979b9215a-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:12:59 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=BNtPg%2F4OBHRRIy3Wg0%2B%2FBOrc%2BYOKUkqo8IC3F%2BKS%2BUyQWr9dQycjAXe3FXToyZhPDcYn2AG%2BWS6cuo7wtNOEYVA5h0JaGxBvf8pQVSpdom3cPpdhoQPVncWxkYS6BbFlTrPligk0"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '28387' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 - response: - body: - string: '[]' - headers: - CF-RAY: - - 8ce5901cac18cbda-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 12:13:00 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=x%2FT7f8mbm7dq5W%2BQN7sKgF2fDiayJJa0pgeAuZQFJ1SPZpMWXArq%2BGysKe%2BTWubp07nLJT7Hb2UIpBqesGuZMJB31%2B2pabjGTh6O6eWoupnOGA1YQwUpRZnHZ9y09E26kgygyotK"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - Transfer-Encoding: - - chunked - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '2' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory - response: - body: - string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' - headers: - CF-RAY: - - 8ce5901f7e52cc06-MAD + - 8ce994619fb0cfc7-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -5349,7 +581,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 12:13:00 GMT + - Sun, 06 Oct 2024 23:54:58 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -5357,7 +589,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=h92oGsKMz4rl0LIBaD2W%2BmNrrIn1Hj%2FP2VCogJgu7aw17O5G6320hxkqc%2BEoinh1wwIg8YEnhiHdJrHcSE5%2Fw0qq%2Btnxg902nkVDm1O0zweQzHGOLw%2FHRbuTPUQRWs9q96hPV3Fv"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=7s0QcYuFUxnm7GWDLQiHtlo7JhoZ0m252fbOKE1vngfqZHT3ks3uvfjjJnaQ4i0jBtzzi%2FW9LTvuKFOdVD8AifyLcobLgU8pjU%2BCHJVV%2F0X0Dm%2F5qZCBq6Mn7cCpvP%2BX8Rdm%2BeEt"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -5366,12 +598,10 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 - alt-svc: - - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC content-length: - - '50' + - '28387' status: code: 200 message: OK @@ -5385,7 +615,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + - PHPSESSID=ive103k42cnfs2kqb0suklhl2n Referer: - https://www.subtitulamos.tv User-Agent: @@ -5404,7 +634,7 @@ interactions: href=\"/safari-pinned-tab.svg?v=lkvlWOG2Qx\" color=\"#607dcd\">\n\n\n\n \n - \ \n\n + \ \n\n \ \n \ \n \n\n\n" headers: CF-RAY: - - 8ce5a4800987cfe0-MAD + - 8ce99467fa18880e-SIN Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -5742,7 +972,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 12:26:55 GMT + - Sun, 06 Oct 2024 23:54:59 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -5750,11 +980,13 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=YzHEo%2FyNHTKMh7iGvcJmqmgyP1GHfnYmv%2FwNrQcd3of2RBWFfmm2U6rkm0Ti764wiM3l%2BTRynjYF3Twji1pWIIOjNxfc4pBNwpZkjJmQNlnU6Gx2mLoFxetWwwIoCLzA8MEefY0e"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=F4Rfu0%2BX4NnuYfmWit%2FULY5AzrAxBCPeJJWSStJAmICssmdAQRl7YoDzOFzGHCGhe%2FCqVXqKXZ75T%2FqSEXJrVgOay1d1y4%2BaR0gzZVnFUT6opXFR2ABWoPlXxy%2FcWJS8tabMYwjQ"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked X-Powered-By: - PHP/7.4.14 cf-cache-status: @@ -5774,7 +1006,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + - PHPSESSID=ive103k42cnfs2kqb0suklhl2n Referer: - https://www.subtitulamos.tv User-Agent: @@ -5793,7 +1025,7 @@ interactions: href=\"/safari-pinned-tab.svg?v=lkvlWOG2Qx\" color=\"#607dcd\">\n\n\n\n \n - \ \n\n + \ \n\n \ \n \ \n \n
\n

Versiones

\n \
\n \n 5 652\n descargas\n + id=\"count\" class=\"text bold\">5 655\n descargas\n \
\n
\n
\n \ \n\n
\n \n\n\n" headers: + CF-Cache-Status: + - DYNAMIC CF-RAY: - - 8ce5a482dbddc911-MAD + - 8ce9946e0cfa2fb7-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -6295,7 +1529,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 12:26:55 GMT + - Sun, 06 Oct 2024 23:55:00 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -6303,15 +1537,15 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=3w2e2qJuXRRoAt37zYw3YtPot%2FFEQzBflQGaiPZlV0H6hBdOa1oajsEir5NNmlozd55dIfEyOpM6lRPCVipj4EPd0qkw9W8t0uKljTmq6JhsD6gHz5kaCTWbjRPDIK0BzFoXPAvA"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=6cJv9HOj3vBK6BsfdHgFaKVRm2GXUx0kZAI8NyDyshxSO8RTBvvFCMMeb4LP5MhZuYf92FiikU%2Bdy8drEaA6XRcpI0%2BUdqqmZfxlxTIBEooUSavKTlg2qgKM9se%2FsJ9NhjD0aUZR"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked X-Powered-By: - PHP/7.4.14 - cf-cache-status: - - DYNAMIC content-length: - '42016' status: @@ -6327,9 +1561,9 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=fu83lcl12tddcgak0qeog7q8bi + - PHPSESSID=ive103k42cnfs2kqb0suklhl2n Referer: - - https://www.subtitulamos.tv/episodes/1722/the-big-bang-theory-11x16-the-neonatal-nomenclature + - /episodes/1722/the-big-bang-theory-11x16-the-neonatal-nomenclature User-Agent: - Subliminal/2.2 method: GET @@ -6726,7 +1960,7 @@ interactions: sync, corrected by elderman ==\r\n@elder_man\r\n\r\n" headers: CF-RAY: - - 8ce5aa1ffa72c90e-MAD + - 8ce994703d842156-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -6736,7 +1970,7 @@ interactions: Content-Type: - text/srt;charset=UTF-8 Date: - - Sun, 06 Oct 2024 12:30:46 GMT + - Sun, 06 Oct 2024 23:55:00 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -6744,7 +1978,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ivlmJJBv3lkqH9PE52cMovCd3N7WFyChsiI0sIn10qmOyJQ7sY5qJUCBkOP65rCFNh2SNpbJP3ZIBJ7M2iwdDZj0eWNJSs824wwlBcuigv4azPgiuKsmbvhdqA4lglHZtYfHrU0P"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=JaBiUEWhCc8LeZru%2Fd9ERoeCI2Ofr2BstaESN%2FVhZVEknDsrYCV%2FR%2FB7GQDPZCOdkZASeNlFsyxCEqFSH9V8ixEAd9Jux%2FRDDFzMacBRucTV4mFm3m1yvA09Ld6kakX2KWFArg1O"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Transfer-Encoding: diff --git a/tests/cassettes/subtitulamos/test_download_subtitle_last_season.yaml b/tests/cassettes/subtitulamos/test_download_subtitle_last_season.yaml new file mode 100644 index 00000000..0e5706c1 --- /dev/null +++ b/tests/cassettes/subtitulamos/test_download_subtitle_last_season.yaml @@ -0,0 +1,2354 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Doctor+Who+%282005%29 + response: + body: + string: '[]' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce99475da439d18-SIN + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:01 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Z511MEyZaEbsrcAh8sRJf9l5iheuYB20xNteW4bjO9REfuozLLAIhyc4Q%2BQtUABhpJQISNUQkWm8gUHTW27ACBQruH%2BkpgUqv0T0Adjvw0aEtatFjZypY0l28ukLLjkjJRdS%2B8zp"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=1a7813bnqe272lndfpes8ohdf5; path=/; HttpOnly + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Doctor+Who + response: + body: + string: '[{"show_id":233,"show_name":"Doctor Who"}]' + headers: + CF-RAY: + - 8ce9947aadb2cfe2-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:02 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Vv%2Ff40VnAzCJScNpiEE6Yy%2FVkJxHKiCsDI9rE1trteI1a8WqQ9xbGKeAaarBPf42sm1bNkMVV%2BkjqY68Sq5UEfYhPKzOXw%2B645CjQAu%2F6LOqoKnJlsqEyhfRTfDoxSv4K3Luke2V"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '42' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/233 + response: + body: + string: '' + headers: + CF-RAY: + - 8ce9947e7bd86689-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:02 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/9689 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=N1LewNCzuJxhRZm2DM7JtlouMd2oA3kcLR7baByBbrgQsJ4LT7wHXTOapNZka7LISKehjE2suwXmJFTsvOkh7xW0wpsG8Hga3MDIRSqacyRaLVTJJPBhaf2ynMS8Hpv4nS7YGh1n"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/9689 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce9947fea176683-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:03 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/9689/doctor-who-13x99-the-power-of-the-doctor + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=iz3HBmPVhoxEPN3rc3BDeYIVENTCiz9vFX1gtK8%2BVYzIovob1F5t2Ti3LYgGDY%2F4JKxauQz%2BZ9WuqZ2488%2FUljPC4HU%2FM10uZ%2F5MiFh7YVxvYOano%2FYft5bAxh9MASbeQBf8AIoS"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/9689/doctor-who-13x99-the-power-of-the-doctor + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Doctor Who + 13x99 - The Power of the Doctor - Subtitulamos.tv - Subt\xEDtulos de series\n + \ \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Doctor + Who

\n
\n
\n
\n

The Power of the Doctor

\n + \
(13x99)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n 13\n
\n
\n
\n EPISODIO\n + \
\n 0\n 1\n 2\n 3\n 4\n 5\n 6\n 97\n 98\n 99\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 498\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n \n + \
\n

versi\xF3n

\n

KETTLE/MiNX/MeGusta

\n + \
\n \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n grimya\n + \ \n
\n
\n \n + De Addic7ed, sin acotaciones. Sincro de firefly.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n \n\n + \
Espa\xF1ol + (Espa\xF1a)
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

KETTLE/MiNX/MeGusta

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

GGEZ/ION10

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n carochristie\n + \ \n
\n
\n \n + Los traducidos aqu\xED, tiempos de Addic7ed. Gracias a Se7enOfNin9.\n \n + \
\n
\n
\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

NTb

\n + \
\n \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n marilynbrown2\n + \ \n
\n
\n \n + Subt\xEDtulos traducidos aqu\xED, sincronizados para AMZN WEBRip NTb (720p + y 1080p).\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

KETTLE/MiNX/MeGusta

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 3%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce994852bf48219-SIN + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:04 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=1VagzZZkl7TA8j8h4nVNoPtTZ3Ka%2Bb68LtkFlRedAcnnZgloiI%2BT0%2BdiHDw%2Byl6%2Be%2BWyrPcMp587Fy24mmW89Kr7hGy3rOj2FiShx6onA4Q19G7FACzi0WjLPcMe2I4zYNB0JerD"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '33745' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/7196/doctor-who-13x00-revolution-of-the-daleks + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Doctor Who + 13x00 - Revolution of the Daleks - Subtitulamos.tv - Subt\xEDtulos de series\n + \ \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Doctor + Who

\n
\n
\n
\n

Revolution of the Daleks

\n + \
(13x00)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n 13\n
\n
\n
\n EPISODIO\n + \
\n 0\n 1\n 2\n 3\n 4\n 5\n 6\n 97\n 98\n 99\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n + \ 3 453\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

FoV/TENNANT

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n ClaraTL\n + \ \n
\n
\n \n + De addic7ed, sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

FoV/TENNANT

\n + \
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

AMZN NTb/ION10

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n ClaraTL\n + \ \n
\n
\n \n + Los traducidos aqu\xED sincronizados para las versiones AMZN NTb y WEBRip + ION10.\n \n
\n + \
\n
\n
\n + \ \n \n + \ \n
\n + \

versi\xF3n

\n

BLUTONiUM

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n ClaraTL\n + \ \n
\n
\n \n + Los traducidos aqu\xED sincronizados para la versi\xF3n 4k BLUTONiUM.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n\n + \
\n \n

Comentarios ({{comments.length}})

\n \n\n + \ \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce99489fcdc3153-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:04 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=%2BO5x2GPuL%2F3ZHswuZ2WaPf3rUGFW8v3HkAUyx3qeqjzBmsH94H%2F5Xvi2tQ2ibgd1O%2F41oiHx%2FqUL1YbVMTPrmUc3FcFwYLUZUWQD9Z5Qc%2BbDJff6Xse5Aj00sGfBBn03u33EGYDP"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '30206' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/8685/doctor-who-13x03-chapter-three-once-upon-time + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Doctor Who + 13x03 - Chapter Three: Once, Upon Time - Subtitulamos.tv - Subt\xEDtulos de + series\n \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Doctor + Who

\n
\n
\n
\n

Chapter Three: Once, Upon + Time

\n
(13x03)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n 13\n
\n
\n
\n EPISODIO\n + \
\n 0\n 1\n 2\n 3\n 4\n 5\n 6\n 97\n 98\n 99\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n + \ 3 090\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

UKTV/TORRENTGALAXY

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n ClaraTL\n + \ \n
\n
\n \n + De iPlayer, sin colores, sin acotaciones, l\xEDneas de dialogo y para cr\xE9ditos + a\xF1adidas.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

UKTV/TORRENTGALAXY

\n + \
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

ION10/GOSSIP

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n marilynbrown2\n + \ \n
\n
\n \n + Subt\xEDtulos traducidos aqu\xED, sincronizados para WEBRip ION10 y GOSSIP + (720p y 1080p).\n \n
\n + \
\n
\n
\n + \
\n
\n
\n\n
\n \n

Comentarios + ({{comments.length}})

\n \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n
\n + \
\n \n
\n
\n + \
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce9948e4f3e86bc-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:05 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=qwxujZebo6lUfNCLeJ0i6eVbTfvlQNV1hHtYNHrSz6ylV6ks8JZJ%2FCiogK0mkkdxEEFOTG6Qx85mRPAlCSPyf59pbeXA9mdKhMQfSgzjyDHiSGry0aahJHL%2BSprCNdDl4crnJFXU"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + content-length: + - '26976' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + Referer: + - /episodes/8685/doctor-who-13x03-chapter-three-once-upon-time + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/subtitles/21994/download + response: + body: + string: "1\r\n00:00:02,000 --> 00:00:04,838\r\n- What in the name of the saints?\r\n- + But what is it you are saving them from?\r\n\r\n2\r\n00:00:04,840 --> 00:00:06,878\r\n- + The Flux.\r\n- What's the Flux?\r\n\r\n3\r\n00:00:06,880 --> 00:00:10,598\r\nThis + is Serving Commander\r\nInston-Vee Vinder leaving his post.\r\n\r\n4\r\n00:00:10,600 + --> 00:00:12,478\r\nSo, we still on\r\nfor Halloween drinks?\r\n\r\n5\r\n00:00:12,480 + --> 00:00:14,478\r\n- Eight o'clock.\r\n- Don't keep me waiting, you.\r\n\r\n6\r\n00:00:14,480 + --> 00:00:16,198\r\nDiane. Come on in.\r\n\r\n7\r\n00:00:16,200 --> 00:00:17,278\r\nFour...\r\n\r\n8\r\n00:00:17,280 + --> 00:00:19,478\r\n- Hello again, Doctor.\r\n- Who are you?\r\n\r\n9\r\n00:00:19,480 + --> 00:00:20,678\r\n..three...\r\n\r\n10\r\n00:00:20,680 --> 00:00:23,798\r\nExplain + Mouri. Explain Atropos.\r\n\r\n11\r\n00:00:23,800 --> 00:00:25,678\r\nBefore + Atropos, time ran wild.\r\n\r\n12\r\n00:00:25,680 --> 00:00:27,798\r\nAll + time passes through the Mouri.\r\n\r\n13\r\n00:00:27,800 --> 00:00:31,198\r\nIf + the Mouri are broken,\r\ntime shall run unstoppable.\r\n\r\n14\r\n00:00:31,200 + --> 00:00:32,558\r\n..two...\r\n\r\n15\r\n00:00:32,560 --> 00:00:34,158\r\nThe + Temple of Atropos is broken...\r\n\r\n16\r\n00:00:34,160 --> 00:00:35,918\r\nYou + know how to fix this?\r\n\r\n17\r\n00:00:35,920 --> 00:00:38,198\r\n- ..so + I made a short term repair.\r\n- Yaz!\r\n\r\n18\r\n00:00:38,200 --> 00:00:40,038\r\n- + Tell me what you want.\r\n- ..one.\r\n\r\n19\r\n00:00:40,040 --> 00:00:42,120\r\nAll + in good time.\r\n\r\n20\r\n00:00:45,057 --> 00:00:49,768\r\n_\r\n\r\n21\r\n00:00:51,840 + --> 00:00:55,918\r\nWhat I learned in the immediate\r\naftermath of the Flux\r\n\r\n22\r\n00:00:55,920 + --> 00:00:57,678\r\nseems obvious now.\r\n\r\n23\r\n00:00:57,680 --> 00:01:00,040\r\nBut + it's only obvious\r\nonce you've lived it.\r\n\r\n24\r\n00:01:02,400 --> 00:01:05,318\r\nThe + biggest changes\r\nto our lives start small.\r\n\r\n25\r\n00:01:05,320 --> + 00:01:08,998\r\nCatastrophes creep in quietly.\r\n\r\n26\r\n00:01:09,000 --> + 00:01:10,998\r\nAnd by the time you realise,\r\n\r\n27\r\n00:01:11,000 --> + 00:01:14,800\r\nthe life you once had\r\nis already behind you.\r\n\r\n28\r\n00:01:20,440 + --> 00:01:22,198\r\nThe Dalek Sector is growing.\r\n\r\n29\r\n00:01:22,200 + --> 00:01:24,038\r\nI thought I'd made it out,\r\n\r\n30\r\n00:01:24,040 --> + 00:01:25,958\r\nbut they just keep spreading.\r\n\r\n31\r\n00:01:25,960 --> + 00:01:28,198\r\nBecause since what\r\nsome people keep calling\r\n\r\n32\r\n00:01:28,200 + --> 00:01:30,518\r\nthe Beginning of the End,\r\n\r\n33\r\n00:01:30,520 --> + 00:01:33,360\r\nwho is there left to stop them?\r\n\r\n34\r\n00:01:35,760 + --> 00:01:37,838\r\nOf course,\r\nI call it the Dalek Sector,\r\n\r\n35\r\n00:01:37,840 + --> 00:01:39,958\r\nI don't know for certain.\r\n\r\n36\r\n00:01:39,960 --> + 00:01:42,598\r\nBut it helps me understand,\r\n\r\n37\r\n00:01:42,600 --> + 00:01:45,558\r\nbecause the maps definitely don't\r\nmake any sense any more.\r\n\r\n38\r\n00:01:45,560 + --> 00:01:48,998\r\nOr the days.\r\n\r\n39\r\n00:01:49,000 --> 00:01:51,758\r\nEverything + is disrupted.\r\n\r\n40\r\n00:01:51,760 --> 00:01:53,638\r\nBut this isn't + about Daleks.\r\n\r\n41\r\n00:01:53,640 --> 00:01:55,918\r\nFor once, they're + not\r\nwhat worries me.\r\n\r\n42\r\n00:01:55,920 --> 00:01:57,558\r\nAt least + we understand them,\r\n\r\n43\r\n00:01:57,560 --> 00:01:59,640\r\nyou and + me, my love.\r\nWe've fought them.\r\n\r\n44\r\n00:02:03,120 --> 00:02:05,758\r\nIt's + the other things...\r\n\r\n45\r\n00:02:05,760 --> 00:02:08,080\r\n..whatever + they are.\r\n\r\n46\r\n00:02:18,040 --> 00:02:19,838\r\nAppearing from nowhere.\r\n\r\n47\r\n00:02:19,840 + --> 00:02:21,878\r\nFeasting on the wreckage.\r\n\r\n48\r\n00:02:21,880 --> + 00:02:25,718\r\nComing for survivors of the Flux.\r\n\r\n49\r\n00:02:25,720 + --> 00:02:28,358\r\nI must admit, some days\r\nI feel like...\r\n\r\n50\r\n00:02:28,360 + --> 00:02:30,480\r\n..they want to stop me\r\nfrom getting to you.\r\n\r\n51\r\n00:02:33,520 + --> 00:02:36,600\r\nBut nothing is going to stop me\r\ngetting to you.\r\n\r\n52\r\n00:02:54,653 + --> 00:02:58,653\r\nCREDITS\r\n\r\n53\r\n00:03:13,240 --> 00:03:15,278\r\nI + spend my life walking into\r\nnew places\r\n\r\n54\r\n00:03:15,280 --> 00:03:16,798\r\nand + weighing things up fast.\r\n\r\n55\r\n00:03:16,820 --> 00:03:18,718\r\nWho's + who? Who has the power?\r\nWho's in danger?\r\n\r\n56\r\n00:03:18,720 --> + 00:03:20,478\r\nHow fast danger is coming?\r\n\r\n57\r\n00:03:20,480 --> 00:03:23,358\r\nAlso, + how likely my friends are\r\nto die.\r\n\r\n58\r\n00:03:23,360 --> 00:03:25,638\r\nI've + got good at figuring\r\nall of that out at speed.\r\n\r\n59\r\n00:03:25,640 + --> 00:03:26,998\r\nThree...\r\n\r\n60\r\n00:03:27,000 --> 00:03:29,198\r\nRight + now, big danger.\r\nNo obvious solutions.\r\n\r\n61\r\n00:03:29,200 --> 00:03:31,958\r\nWell, + one solution,\r\none massive risk.\r\n\r\n62\r\n00:03:31,960 --> 00:03:33,958\r\n- + All in good time.\r\n- You don't mess with time.\r\n\r\n63\r\n00:03:33,960 + --> 00:03:36,038\r\nYou don't put yourself\r\nand your friends\r\n\r\n64\r\n00:03:36,040 + --> 00:03:38,678\r\nin the midst of a time storm\r\nunless there's no alternative.\r\n\r\n65\r\n00:03:38,680 + --> 00:03:42,118\r\nJohn Burroughs once said to me,\r\n\"Leap and the net + will appear.\"\r\n\r\n66\r\n00:03:42,120 --> 00:03:44,438\r\nHe was talking + metaphorically,\r\n\r\n67\r\n00:03:44,440 --> 00:03:46,358\r\nwhereas right + now...\r\n\r\n68\r\n00:04:06,480 --> 00:04:07,918\r\nI'm sorry.\r\n\r\n69\r\n00:04:07,920 + --> 00:04:10,078\r\nI had to buy us time. Literally.\r\n\r\n70\r\n00:04:10,080 + --> 00:04:12,998\r\nWe're in the heart\r\nof the time storm,\r\n\r\n71\r\n00:04:13,000 + --> 00:04:15,438\r\nsheltering in broken time.\r\n\r\n72\r\n00:04:15,440 --> + 00:04:17,120\r\nNo! Yaz...\r\n\r\n73\r\n00:04:18,440 --> 00:04:20,158\r\nDan!\r\n\r\n74\r\n00:04:20,160 + --> 00:04:22,478\r\nTime is pulling you back.\r\nI'm coming to get you.\r\n\r\n75\r\n00:04:22,480 + --> 00:04:24,400\r\nNo!\r\n\r\n76\r\n00:04:27,760 --> 00:04:30,238\r\nHow + did you get in here?\r\n\r\n77\r\n00:04:30,240 --> 00:04:32,518\r\nBroken + and disrupted time.\r\n\r\n78\r\n00:04:32,520 --> 00:04:35,318\r\nEverything + is corrupted.\r\n\r\n79\r\n00:04:35,320 --> 00:04:36,880\r\nI have to rescue + them.\r\n\r\n80\r\n00:04:39,640 --> 00:04:42,598\r\nNo. Not me as well,\r\nI + have too much to do...\r\n\r\n81\r\n00:04:50,640 --> 00:04:52,278\r\nWhat's + the update, boss?\r\n\r\n82\r\n00:04:52,280 --> 00:04:56,238\r\nTrubial Monument + is down.\r\nOnly the central temple left.\r\n\r\n83\r\n00:04:56,240 --> 00:04:59,638\r\n- + Where are the hostages?\r\n- We don't know. No traces.\r\n\r\n84\r\n00:04:59,640 + --> 00:05:02,958\r\nThe only information we have is five\r\nPassenger forms + in main temple.\r\n\r\n85\r\n00:05:02,960 --> 00:05:05,758\r\n- Where are + we on aerial?\r\n- Aerial shelling now complete.\r\n\r\n86\r\n00:05:05,760 + --> 00:05:08,438\r\nShould've weakened primary defences\r\nto give us a way + in.\r\n\r\n87\r\n00:05:08,440 --> 00:05:10,238\r\nJust give the word.\r\n\r\n88\r\n00:05:10,240 + --> 00:05:12,558\r\nEnough equipment remaining\r\nto breach the entrance?\r\n\r\n89\r\n00:05:12,560 + --> 00:05:13,758\r\nYou said come prepared.\r\n\r\n90\r\n00:05:13,760 --> + 00:05:15,958\r\nWe also have temporal erasure\r\noptions,\r\n\r\n91\r\n00:05:15,960 + --> 00:05:17,680\r\nshould we require them.\r\n\r\n92\r\n00:05:21,320 --> + 00:05:23,520\r\nWhere is this?\r\n\r\n93\r\n00:05:26,240 --> 00:05:27,718\r\nWhy...?\r\n\r\n94\r\n00:05:27,720 + --> 00:05:29,758\r\nWhat are you wearing?\r\n\r\n95\r\n00:05:29,760 --> 00:05:30,998\r\nTemporal + hazing?\r\n\r\n96\r\n00:05:31,000 --> 00:05:32,678\r\nHappens to the best + of us.\r\n\r\n97\r\n00:05:32,680 --> 00:05:34,118\r\nWhen is this?\r\n\r\n98\r\n00:05:34,120 + --> 00:05:36,598\r\nOw! What did you do that for?\r\n\r\n99\r\n00:05:36,600 + --> 00:05:39,358\r\n- She loves doing that.\r\n- She so loves doing that.\r\n\r\n100\r\n00:05:39,360 + --> 00:05:42,598\r\nI do love doing that.\r\nShould block the temporal hazing.\r\n\r\n101\r\n00:05:42,600 + --> 00:05:44,318\r\nYou back with us?\r\n\r\n102\r\n00:05:44,320 --> 00:05:47,558\r\nWe + need to get this job done\r\nand end the siege of Atropos.\r\n\r\n103\r\n00:05:47,560 + --> 00:05:49,958\r\nAtropos.\r\n\r\n104\r\n00:05:49,960 --> 00:05:51,560\r\nThat's + where I found you.\r\n\r\n105\r\n00:05:56,560 --> 00:05:59,478\r\nTell psy-ops + to alert the Mouri\r\nskeins, they should be on standby,\r\n\r\n106\r\n00:05:59,480 + --> 00:06:03,558\r\nand tell the fleet to ramp up\r\nsecond wave of aerial + shelling.\r\n\r\n107\r\n00:06:03,560 --> 00:06:06,038\r\nWe all know why we're + here.\r\n\r\n108\r\n00:06:06,040 --> 00:06:09,398\r\nWe rescue those hostages,\r\nend + the siege, reset time\r\n\r\n109\r\n00:06:09,400 --> 00:06:12,158\r\nso the + universe can function again.\r\n\r\n110\r\n00:06:12,160 --> 00:06:14,758\r\nThe + only way in's through the front,\r\n\r\n111\r\n00:06:14,760 --> 00:06:16,798\r\nrisking + our lives to save others'.\r\n\r\n112\r\n00:06:16,800 --> 00:06:18,398\r\nThe + usual.\r\n\r\n113\r\n00:06:18,400 --> 00:06:19,920\r\nOn my command.\r\n\r\n114\r\n00:06:21,640 + --> 00:06:23,280\r\nThe universe is relying on us.\r\n\r\n115\r\n00:06:36,000 + --> 00:06:38,078\r\nWhat are you doing here?\r\n\r\n116\r\n00:06:38,080 --> + 00:06:39,638\r\nI seem to have two coffees\r\n\r\n117\r\n00:06:39,640 --> + 00:06:42,758\r\nand one of them's a skinny latte\r\nwith an extra shot.\r\n\r\n118\r\n00:06:42,760 + --> 00:06:44,958\r\nWeird. That's the way I have it.\r\n\r\n119\r\n00:06:44,960 + --> 00:06:46,758\r\nIs it?\r\n\r\n120\r\n00:06:46,760 --> 00:06:48,840\r\nThat's + lucky...\r\n\r\n121\r\n00:06:52,360 --> 00:06:54,638\r\nYou all right?\r\n\r\n122\r\n00:06:54,640 + --> 00:06:56,438\r\nYeah, sorry.\r\n\r\n123\r\n00:06:56,440 --> 00:06:58,438\r\nJust + lost me bearings.\r\n\r\n124\r\n00:06:58,440 --> 00:07:01,278\r\n- So how + was your date?\r\n- It wasn't a date.\r\n\r\n125\r\n00:07:01,280 --> 00:07:04,438\r\nAll + right, so, how was your thing\r\nthat wasn't a date?\r\n\r\n126\r\n00:07:04,440 + --> 00:07:06,518\r\nI fell asleep in front of him.\r\n\r\n127\r\n00:07:06,520 + --> 00:07:08,038\r\nI thought you were going for pizza.\r\n\r\n128\r\n00:07:08,040 + --> 00:07:10,318\r\nI fell asleep, in me pizza,\r\nin front of him.\r\n\r\n129\r\n00:07:10,320 + --> 00:07:11,718\r\nNo!\r\n\r\n130\r\n00:07:11,720 --> 00:07:15,078\r\nHe + was so boring. I woke up with him\r\npicking bits of mozzarella\r\n\r\n131\r\n00:07:15,080 + --> 00:07:17,398\r\noff me cheek and asking the waiter\r\nto call an ambulance.\r\n\r\n132\r\n00:07:17,400 + --> 00:07:19,558\r\nI had to lie and tell him\r\nI was narcoleptic.\r\n\r\n133\r\n00:07:19,560 + --> 00:07:21,680\r\nI mean, I obviously am,\r\nin reaction to him.\r\n\r\n134\r\n00:07:23,240 + --> 00:07:24,598\r\nAm I boring you?\r\n\r\n135\r\n00:07:24,600 --> 00:07:26,840\r\nNo. + Just thought I saw...\r\n\r\n136\r\n00:07:28,800 --> 00:07:30,558\r\nDoesn't + matter.\r\n\r\n137\r\n00:07:30,560 --> 00:07:32,718\r\nWhy aren't you married?\r\n\r\n138\r\n00:07:32,720 + --> 00:07:35,758\r\nYou're taking no prisoners tonight,\r\nare you?\r\n\r\n139\r\n00:07:35,760 + --> 00:07:38,798\r\nYou're not a kid and you're not\r\nthe ugliest fella in + this city,\r\n\r\n140\r\n00:07:38,800 --> 00:07:40,958\r\nso what's wrong + with you?\r\n\r\n141\r\n00:07:40,960 --> 00:07:43,120\r\nWhy aren't you married\r\nwith + triplets?\r\n\r\n142\r\n00:07:47,800 --> 00:07:49,718\r\nIt nearly happened, + once.\r\n\r\n143\r\n00:07:49,720 --> 00:07:51,198\r\n15 years ago?\r\n\r\n144\r\n00:07:51,200 + --> 00:07:53,038\r\nLost count now.\r\n\r\n145\r\n00:07:53,040 --> 00:07:54,958\r\nI + was engaged to get married.\r\n\r\n146\r\n00:07:54,960 --> 00:07:57,038\r\nTwo + days before,\r\nshe changed her mind.\r\n\r\n147\r\n00:07:57,040 --> 00:07:58,478\r\nOuch.\r\n\r\n148\r\n00:07:58,480 + --> 00:07:59,998\r\nSaid she'd been thinking about it,\r\n\r\n149\r\n00:08:00,000 + --> 00:08:02,758\r\nproperly couldn't bear spending\r\nthe rest of her life + with me.\r\n\r\n150\r\n00:08:02,760 --> 00:08:04,838\r\nSo, thought she could + do better.\r\n\r\n151\r\n00:08:04,840 --> 00:08:06,118\r\nOh, my God. Brutal.\r\n\r\n152\r\n00:08:06,120 + --> 00:08:08,558\r\nThat's life, innit?\r\n\r\n153\r\n00:08:08,560 --> 00:08:10,760\r\nNobody + gets by without some bruises.\r\n\r\n154\r\n00:08:14,320 --> 00:08:15,880\r\nGod, + I loved her.\r\n\r\n155\r\n00:08:19,560 --> 00:08:21,998\r\nWhen is this?\r\n\r\n156\r\n00:08:22,000 + --> 00:08:23,600\r\nWhat?\r\n\r\n157\r\n00:08:28,200 --> 00:08:29,558\r\nDid + we move?\r\n\r\n158\r\n00:08:29,560 --> 00:08:31,878\r\nHave we done this + before?\r\n\r\n159\r\n00:08:31,880 --> 00:08:33,518\r\nWhy am I here?\r\n\r\n160\r\n00:08:33,520 + --> 00:08:35,398\r\nI was waiting.\r\n\r\n161\r\n00:08:35,400 --> 00:08:36,598\r\nYou + didn't come.\r\n\r\n162\r\n00:08:36,600 --> 00:08:38,080\r\nWhere were you, + Dan?\r\n\r\n163\r\n00:08:39,840 --> 00:08:41,320\r\nWhere were you, Dan?\r\n\r\n164\r\n00:08:54,440 + --> 00:08:55,718\r\nFound you...\r\n\r\n165\r\n00:08:55,720 --> 00:08:56,918\r\nDoctor, + what are you doing?\r\n\r\n166\r\n00:08:56,920 --> 00:08:59,958\r\nI can't + hold on to everything...\r\n\r\n167\r\n00:08:59,960 --> 00:09:01,280\r\nEr...\r\n\r\n168\r\n00:09:06,720 + --> 00:09:09,278\r\nBut if you go three doors down,\r\nthey've got them half + the price.\r\n\r\n169\r\n00:09:09,280 --> 00:09:11,838\r\nSo I was like, \"Have + you not seen\r\nwhat they're charging there?\"\r\n\r\n170\r\n00:09:11,840 + --> 00:09:15,638\r\nAnd they were like \"No, we don't care\". So I said,\r\n\"Well, + why would I buy them here for this price\r\n\r\n171\r\n00:09:15,640 --> 00:09:18,998\r\n\"when + they're half the price three doors down?\"\r\nAnd she said, and she was so + snotty,\r\n\r\n172\r\n00:09:19,000 --> 00:09:22,878\r\n\"It's up to you, isn't + it?\" And I said, \"Yes, it is\"\r\nand I've never stepped inside that shop + since,\r\n\r\n173\r\n00:09:22,880 --> 00:09:26,398\r\nand who's the loser + now? It's not even\r\nlike I'm that bothered about satsumas.\r\n\r\n174\r\n00:09:26,400 + --> 00:09:27,800\r\nDoctor?\r\n\r\n175\r\n00:09:30,720 --> 00:09:32,720\r\nYou + all right?\r\n\r\n176\r\n00:09:34,400 --> 00:09:36,080\r\nYeah.\r\n\r\n177\r\n00:09:44,840 + --> 00:09:46,480\r\nWhat is that?\r\n\r\n178\r\n00:09:52,840 --> 00:09:54,920\r\nOh, + you've got a bit of\r\nsalad dressing.\r\n\r\n179\r\n00:10:01,160 --> 00:10:03,918\r\nYaz, + I'm trying to break through\r\nto your time stream,\r\n\r\n180\r\n00:10:03,920 + --> 00:10:08,758\r\nbut there's a barrier, like\r\nsomething's trying to keep + me out...\r\n\r\n181\r\n00:10:08,760 --> 00:10:11,800\r\nThere we are. All + gone now.\r\n\r\n182\r\n00:10:13,840 --> 00:10:16,078\r\nQualified highest + in all streams.\r\n\r\n183\r\n00:10:16,080 --> 00:10:17,598\r\nExceptional + honours award\r\n\r\n184\r\n00:10:17,600 --> 00:10:20,318\r\nand a commendation + for saving\r\nthe life of three colleagues\r\n\r\n185\r\n00:10:20,320 --> + 00:10:21,838\r\non your most recent mission.\r\n\r\n186\r\n00:10:21,840 --> + 00:10:23,598\r\nAny pilot would have done the same.\r\n\r\n187\r\n00:10:23,600 + --> 00:10:26,278\r\nNo. Because they didn't.\r\n\r\n188\r\n00:10:26,280 --> + 00:10:28,838\r\nYou were the only one\r\nto fly into the blaze.\r\n\r\n189\r\n00:10:28,840 + --> 00:10:30,918\r\nYour training craft received\r\nfatal damage.\r\n\r\n190\r\n00:10:30,920 + --> 00:10:32,758\r\nYou were lucky to escape\r\nwith your life.\r\n\r\n191\r\n00:10:32,760 + --> 00:10:38,038\r\nYes and no. Yes, the damage\r\nto the craft was bad.\r\n\r\n192\r\n00:10:38,040 + --> 00:10:41,518\r\nNo, I don't believe I was lucky.\r\nI made a judgment + call\r\n\r\n193\r\n00:10:41,520 --> 00:10:42,878\r\nand it came off.\r\n\r\n194\r\n00:10:42,880 + --> 00:10:44,400\r\nThat's what we train for.\r\n\r\n195\r\n00:10:49,120 --> + 00:10:50,840\r\nI remember this.\r\n\r\n196\r\n00:10:52,080 --> 00:10:53,718\r\nBut + it wasn't you.\r\n\r\n197\r\n00:10:53,720 --> 00:10:55,878\r\nYou weren't + here.\r\n\r\n198\r\n00:10:55,880 --> 00:10:57,958\r\nCommander.\r\n\r\n199\r\n00:10:57,960 + --> 00:11:00,038\r\nYes. Sorry.\r\n\r\n200\r\n00:11:00,040 --> 00:11:03,238\r\nNo + record of post-traumatic\r\npsycho disturbance.\r\n\r\n201\r\n00:11:03,240 + --> 00:11:07,318\r\nI've taken all offers of counselling\r\nand term-coming.\r\n\r\n202\r\n00:11:07,320 + --> 00:11:08,638\r\nNo problems.\r\n\r\n203\r\n00:11:08,640 --> 00:11:11,958\r\nDon't + mind me.\r\nI'm trying not to be distracting.\r\n\r\n204\r\n00:11:11,960 --> + 00:11:13,358\r\nLet me just...\r\n\r\n205\r\n00:11:13,360 --> 00:11:15,318\r\nDid + you...?\r\n\r\n206\r\n00:11:15,320 --> 00:11:17,880\r\nDid I what?\r\n\r\n207\r\n00:11:20,880 + --> 00:11:22,440\r\nNothing.\r\n\r\n208\r\n00:11:24,880 --> 00:11:27,958\r\nYou + do realise this is\r\na prestigious posting\r\n\r\n209\r\n00:11:27,960 --> + 00:11:30,958\r\nwith the highest level\r\nof security clearance?\r\n\r\n210\r\n00:11:30,960 + --> 00:11:32,358\r\nI understand.\r\n\r\n211\r\n00:11:32,360 --> 00:11:35,118\r\nYou'll + be permanently at the side of\r\nthe Grand Serpent.\r\n\r\n212\r\n00:11:35,120 + --> 00:11:36,758\r\nIt will be arduous.\r\n\r\n213\r\n00:11:36,760 --> 00:11:40,278\r\nThe + Grand Serpent is demanding.\r\n\r\n214\r\n00:11:40,280 --> 00:11:43,118\r\n- + Yes. - Absolute discretion\r\nand absolute fidelity\r\n\r\n215\r\n00:11:43,120 + --> 00:11:45,118\r\n- are the minimum expected.\r\n- I understand.\r\n\r\n216\r\n00:11:45,120 + --> 00:11:47,798\r\nDon't make me regret this.\r\n\r\n217\r\n00:11:47,800 + --> 00:11:49,600\r\nMeaning?\r\n\r\n218\r\n00:11:51,000 --> 00:11:52,680\r\nThe + posting is yours.\r\n\r\n219\r\n00:11:56,960 --> 00:11:59,878\r\nThank you, + sir. It's an honour.\r\n\r\n220\r\n00:11:59,880 --> 00:12:01,638\r\nIt is.\r\n\r\n221\r\n00:12:01,640 + --> 00:12:03,638\r\nMake sure you remember that.\r\n\r\n222\r\n00:12:03,640 + --> 00:12:05,920\r\nDo not let the Grand Serpent down.\r\n\r\n223\r\n00:12:22,200 + --> 00:12:23,720\r\nBlow the doors in.\r\n\r\n224\r\n00:12:33,880 --> 00:12:36,438\r\nI've + got about 11 nitros\r\nof reducer left.\r\n\r\n225\r\n00:12:36,440 --> 00:12:38,158\r\nWe + use it soon as the doors go.\r\n\r\n226\r\n00:12:38,160 --> 00:12:41,238\r\nKeeps + us at normal speed but slows\r\ndown the rest of the environment.\r\n\r\n227\r\n00:12:41,240 + --> 00:12:43,120\r\nWe've gotta make\r\nthe most of it...\r\n\r\n228\r\n00:12:44,960 + --> 00:12:48,680\r\nOur entire focus is\r\nlocate the Ravagers.\r\n\r\n229\r\n00:13:02,160 + --> 00:13:04,598\r\nOh, wow, supersized Mouri.\r\n\r\n230\r\n00:13:04,600 + --> 00:13:06,838\r\nHey, where was I?\r\nThat wasn't my time stream.\r\n\r\n231\r\n00:13:06,840 + --> 00:13:09,318\r\nAnd why were Dan, Yaz\r\nand that lad there?\r\n\r\n232\r\n00:13:09,320 + --> 00:13:12,038\r\nYou have put yourself at risk\r\nin here, Doctor.\r\n\r\n233\r\n00:13:12,040 + --> 00:13:14,558\r\nTime is playing games with you all.\r\n\r\n234\r\n00:13:14,560 + --> 00:13:18,558\r\nYou understand what I'm trying\r\nto do by throwing myself + in here.\r\n\r\n235\r\n00:13:18,560 --> 00:13:22,678\r\nThe pressure of the + time storm\r\nwill be too much, even for you...\r\n\r\n236\r\n00:13:22,680 + --> 00:13:24,480\r\nI will not let them die.\r\n\r\n237\r\n00:13:25,680 --> + 00:13:28,318\r\nI can do this.\r\n\r\n238\r\n00:13:28,320 --> 00:13:29,878\r\nI + can absorb it...\r\n\r\n239\r\n00:13:29,880 --> 00:13:32,758\r\nHelp me with + it and I can help you.\r\n\r\n240\r\n00:13:32,760 --> 00:13:34,798\r\nTime + resists,\r\nit is pulling you back.\r\n\r\n241\r\n00:13:34,800 --> 00:13:36,600\r\nAgh!\r\n\r\n242\r\n00:13:38,240 + --> 00:13:40,358\r\nListen up, Ravagers.\r\n\r\n243\r\n00:13:40,360 --> 00:13:43,798\r\nYou + are intruders in\r\nthe Temple of Atropos.\r\n\r\n244\r\n00:13:43,800 --> + 00:13:45,558\r\nThe Temple is surrounded.\r\n\r\n245\r\n00:13:45,560 --> 00:13:47,318\r\nThere's + no way out of here,\r\n\r\n246\r\n00:13:47,320 --> 00:13:48,798\r\nand no + way off this planet.\r\n\r\n247\r\n00:13:48,800 --> 00:13:51,598\r\nWe've + come to reclaim what you took.\r\n\r\n248\r\n00:13:51,600 --> 00:13:54,158\r\nYou + do not belong here,\r\n\r\n249\r\n00:13:54,160 --> 00:13:56,158\r\nso you + might as well surrender\r\n\r\n250\r\n00:13:56,160 --> 00:13:58,280\r\nto + save matters getting\r\ntoo unpleasant.\r\n\r\n251\r\n00:14:00,920 --> 00:14:02,878\r\nI + know you can hear me.\r\n\r\n252\r\n00:14:02,880 --> 00:14:05,878\r\nTell + your remaining troops\r\nto surrender now,\r\n\r\n253\r\n00:14:05,880 --> + 00:14:08,040\r\nor they'll have me\r\nto answer to.\r\n\r\n254\r\n00:14:15,120 + --> 00:14:17,358\r\nWho the hell are you?\r\n\r\n255\r\n00:14:17,360 --> 00:14:19,638\r\nAnd + what are you doing\r\nin my reflection?\r\n\r\n256\r\n00:14:19,640 --> 00:14:21,718\r\nWhat + are you doing here?\r\n\r\n257\r\n00:14:21,720 --> 00:14:24,398\r\nIs this + the Atropos\r\ndefence systems?\r\n\r\n258\r\n00:14:24,400 --> 00:14:25,798\r\nI'm + you.\r\n\r\n259\r\n00:14:25,800 --> 00:14:27,278\r\nWhich means...\r\n\r\n260\r\n00:14:27,280 + --> 00:14:29,478\r\n..this is my past.\r\n\r\n261\r\n00:14:29,480 --> 00:14:30,718\r\nI'm + in a memory.\r\n\r\n262\r\n00:14:30,720 --> 00:14:32,238\r\nWhat do you mean, + you're me?\r\n\r\n263\r\n00:14:32,240 --> 00:14:33,878\r\nNah, I don't think + so.\r\n\r\n264\r\n00:14:33,880 --> 00:14:35,038\r\nI'm your future.\r\n\r\n265\r\n00:14:35,040 + --> 00:14:37,518\r\nI threw myself into a time storm\r\nhere in the future\r\n\r\n266\r\n00:14:37,520 + --> 00:14:39,278\r\nto protect myself and my friends.\r\n\r\n267\r\n00:14:39,280 + --> 00:14:41,198\r\nBut it's thrown me down\r\ninto my own time stream,\r\n\r\n268\r\n00:14:41,200 + --> 00:14:42,878\r\nin the middle of a memory\r\nthat I've lost.\r\n\r\n269\r\n00:14:42,880 + --> 00:14:44,478\r\nI'm losing control of it all...\r\n\r\n270\r\n00:14:44,480 + --> 00:14:46,838\r\nNo time to admire yourself, boss!\r\n\r\n271\r\n00:14:46,840 + --> 00:14:49,998\r\nBit of praise for the effective\r\nreducer wouldn't go + amiss.\r\n\r\n272\r\n00:14:50,000 --> 00:14:52,398\r\nYeah. You're pretty + smart\r\nfor a dog.\r\n\r\n273\r\n00:14:52,400 --> 00:14:55,718\r\n- Oi! Language.\r\n- + What did you call him?\r\n\r\n274\r\n00:14:55,720 --> 00:14:57,958\r\nTell + me who you are.\r\nAll of you.\r\n\r\n275\r\n00:14:57,960 --> 00:14:59,718\r\nIf + this temporal hazing gets\r\nany worse,\r\n\r\n276\r\n00:14:59,720 --> 00:15:02,798\r\nwe'll + have to relieve her of\r\ncommand. We can't risk the mission.\r\n\r\n277\r\n00:15:02,800 + --> 00:15:05,038\r\nWe're your team.\r\n\r\n278\r\n00:15:05,040 --> 00:15:06,640\r\nMy + team...\r\n\r\n279\r\n00:15:08,800 --> 00:15:11,440\r\nYou talk to her. We'll + cover.\r\n\r\n280\r\n00:15:12,520 --> 00:15:15,638\r\nIt's all right, boss,\r\nwe + understand the pressure.\r\n\r\n281\r\n00:15:15,640 --> 00:15:19,318\r\nFinal + push, we do this,\r\nyou're clear.\r\n\r\n282\r\n00:15:19,320 --> 00:15:20,678\r\nClear?\r\n\r\n283\r\n00:15:20,680 + --> 00:15:23,438\r\nThey promised,\r\nthey'll stick to it. Final attack.\r\n\r\n284\r\n00:15:23,440 + --> 00:15:25,638\r\nRetake the chamber,\r\nretake the planet.\r\n\r\n285\r\n00:15:25,640 + --> 00:15:28,518\r\nAnd you'll be free of all this.\r\nThat's the point, isn't + it?\r\n\r\n286\r\n00:15:28,520 --> 00:15:30,280\r\nIf you say so...\r\n\r\n287\r\n00:15:32,400 + --> 00:15:34,958\r\nWhy don't I know?\r\n\r\n288\r\n00:15:34,960 --> 00:15:37,118\r\nWhy + don't I remember how this ends?\r\n\r\n289\r\n00:15:37,120 --> 00:15:39,798\r\nIf + you've thrown yourself into\r\na time storm\r\n\r\n290\r\n00:15:39,800 --> + 00:15:42,358\r\nand that storm's thrown you\r\nin here,\r\n\r\n291\r\n00:15:42,360 + --> 00:15:43,998\r\nyou might never get back.\r\n\r\n292\r\n00:15:44,000 --> + 00:15:46,278\r\nAnd my friends will die\r\n\r\n293\r\n00:15:46,280 --> 00:15:48,120\r\nsubmerged + in their own time stream.\r\n\r\n294\r\n00:15:49,400 --> 00:15:51,240\r\nThen + you've got a lot\r\nto figure out.\r\n\r\n295\r\n00:16:02,920 --> 00:16:06,118\r\n- + What am I running from?\r\n- We've got him!\r\n\r\n296\r\n00:16:06,120 --> + 00:16:07,438\r\nDon't shoot.\r\n\r\n297\r\n00:16:07,440 --> 00:16:09,798\r\nWhy + are you dallying here?\r\n\r\n298\r\n00:16:09,800 --> 00:16:12,078\r\nI'm + not dallying,\r\nI'm trying to get out.\r\n\r\n299\r\n00:16:12,080 --> 00:16:15,918\r\nLast + I knew, I was somewhere else.\r\nAnd now I'm not. Again.\r\n\r\n300\r\n00:16:15,920 + --> 00:16:17,518\r\nWhy do you disobey the task?\r\n\r\n301\r\n00:16:17,520 + --> 00:16:19,038\r\nWhat task?\r\n\r\n302\r\n00:16:19,040 --> 00:16:20,758\r\nBack, + vile demons!\r\n\r\n303\r\n00:16:20,760 --> 00:16:22,400\r\nI spite you all.\r\n\r\n304\r\n00:16:24,360 + --> 00:16:26,078\r\nNow, what is this?\r\n\r\n305\r\n00:16:26,080 --> 00:16:27,958\r\nHas + your mind deserted you?\r\n\r\n306\r\n00:16:27,960 --> 00:16:29,998\r\nAre + you now a fool?\r\n\r\n307\r\n00:16:30,000 --> 00:16:32,158\r\nIt's really + beginning\r\nto feel that way.\r\n\r\n308\r\n00:16:32,160 --> 00:16:34,238\r\nSo + where've you come from?\r\n\r\n309\r\n00:16:34,240 --> 00:16:35,918\r\nMason + Street, clearly.\r\n\r\n310\r\n00:16:35,920 --> 00:16:37,798\r\nMason Street, + Edge Hill?\r\n\r\n311\r\n00:16:37,800 --> 00:16:40,958\r\nWell, of course, + Edge Hill.\r\nWhere else?\r\n\r\n312\r\n00:16:40,960 --> 00:16:44,160\r\nThat's + right by where I live,\r\nare we near there now?\r\n\r\n313\r\n00:16:45,440 + --> 00:16:47,518\r\nNo, sir.\r\n\r\n314\r\n00:16:47,520 --> 00:16:49,518\r\nVery + far.\r\n\r\n315\r\n00:16:49,520 --> 00:16:52,080\r\nVery, very far!\r\n\r\n316\r\n00:17:09,960 + --> 00:17:11,558\r\nIs that what you were firing at?\r\n\r\n317\r\n00:17:11,560 + --> 00:17:13,358\r\nNo.\r\n\r\n318\r\n00:17:13,360 --> 00:17:14,998\r\nThose + mites,\r\n\r\n319\r\n00:17:15,000 --> 00:17:17,278\r\nI have seen them remove + people\r\n\r\n320\r\n00:17:17,280 --> 00:17:20,118\r\nand objects from this + mortal plane.\r\n\r\n321\r\n00:17:20,120 --> 00:17:21,680\r\nWait, wait, they + return!\r\n\r\n322\r\n00:17:23,000 --> 00:17:25,038\r\nRight, stay put, don't + move.\r\n\r\n323\r\n00:17:25,040 --> 00:17:26,438\r\nI'm coming in.\r\n\r\n324\r\n00:17:26,440 + --> 00:17:28,598\r\nQuantum disruption,\r\nnot exactly helping,\r\n\r\n325\r\n00:17:28,600 + --> 00:17:30,838\r\nbut you should be safe\r\nfrom those particles here.\r\n\r\n326\r\n00:17:30,840 + --> 00:17:33,958\r\nI'm trying to hide you, but you keep\r\nfidgeting out + of your time stream.\r\n\r\n327\r\n00:17:33,960 --> 00:17:35,278\r\nI'm over + here.\r\n\r\n328\r\n00:17:35,280 --> 00:17:36,718\r\nHang on, pushing through.\r\n\r\n329\r\n00:17:36,720 + --> 00:17:38,120\r\nWait.\r\n\r\n330\r\n00:17:39,440 --> 00:17:40,718\r\nIt's + not me.\r\n\r\n331\r\n00:17:40,720 --> 00:17:42,278\r\nThe world keeps moving.\r\n\r\n332\r\n00:17:42,280 + --> 00:17:44,318\r\nI'm hiding you here,\r\nin your own time stream,\r\n\r\n333\r\n00:17:44,320 + --> 00:17:45,998\r\nwhile I try and get the Mouri\r\ninto place.\r\n\r\n334\r\n00:17:46,000 + --> 00:17:48,238\r\nBut it's hard. I mean,\r\nborderline impossible.\r\n\r\n335\r\n00:17:48,240 + --> 00:17:49,878\r\nTime is breaking,\r\n\r\n336\r\n00:17:49,880 --> 00:17:51,598\r\nhunting + down anomalies.\r\n\r\n337\r\n00:17:51,600 --> 00:17:53,118\r\nWhich means + there's a problem.\r\n\r\n338\r\n00:17:53,120 --> 00:17:55,358\r\nAnother + problem. A lot of problems.\r\n\r\n339\r\n00:17:55,360 --> 00:17:58,438\r\nNot + that I want to worry you,\r\ncos I don't, but I have. So, sorry.\r\n\r\n340\r\n00:17:58,440 + --> 00:18:01,320\r\nI'll fix this.\r\nJust don't disappear...\r\n\r\n341\r\n00:18:03,623 + --> 00:18:07,084\r\n_\r\n\r\n342\r\n00:18:07,680 --> 00:18:10,038\r\nGood + news. I found a ship.\r\n\r\n343\r\n00:18:10,040 --> 00:18:11,518\r\nOne lone + ship.\r\n\r\n344\r\n00:18:11,520 --> 00:18:13,198\r\nThe last relic of the + Lupari,\r\n\r\n345\r\n00:18:13,200 --> 00:18:15,838\r\nwho seem to have just + vanished\r\nfrom their home galaxy.\r\n\r\n346\r\n00:18:15,840 --> 00:18:17,838\r\nDo + you think the Flux got them, too?\r\n\r\n347\r\n00:18:17,840 --> 00:18:21,118\r\nAnyway, + we got out the space port\r\nbefore it blew up,\r\n\r\n348\r\n00:18:21,120 + --> 00:18:23,758\r\nmade it through the outer\r\nbarriers of the Dalek Sector\r\n\r\n349\r\n00:18:23,760 + --> 00:18:26,758\r\nwithout being exterminated, just.\r\n\r\n350\r\n00:18:26,760 + --> 00:18:29,398\r\nThere are bodies and wreckage\r\neverywhere.\r\n\r\n351\r\n00:18:29,400 + --> 00:18:32,158\r\nIt feels like the last days of\r\nthe universe.\r\n\r\n352\r\n00:18:32,160 + --> 00:18:34,558\r\nAnd here I am, still doing\r\nwhat I do best,\r\n\r\n353\r\n00:18:34,560 + --> 00:18:36,158\r\npiloting a ship.\r\n\r\n354\r\n00:18:36,160 --> 00:18:38,958\r\nOnly + now I'm watching\r\nplanets crumble,\r\n\r\n355\r\n00:18:38,960 --> 00:18:40,878\r\nand + space lanes fill with debris.\r\n\r\n356\r\n00:18:40,880 --> 00:18:43,800\r\nWho'd + have thought that one thing\r\ncould do so much damage?\r\n\r\n357\r\n00:18:45,200 + --> 00:18:47,318\r\nAnd any time I think we've found\r\na brief sanctuary,\r\n\r\n358\r\n00:18:47,320 + --> 00:18:49,000\r\nlife proves me wrong.\r\n\r\n359\r\n00:18:51,640 --> 00:18:55,478\r\nBecause + apparently, this is\r\nthe Cyber Sector now.\r\n\r\n360\r\n00:18:55,480 --> + 00:18:57,478\r\nCyber Armies ransacking what's left,\r\n\r\n361\r\n00:18:57,480 + --> 00:18:58,878\r\nconverting the few who remain,\r\n\r\n362\r\n00:18:58,880 + --> 00:19:01,798\r\nand in the dark moments,\r\nI think...\r\n\r\n363\r\n00:19:01,800 + --> 00:19:04,918\r\n..the bad guys have won.\r\n\r\n364\r\n00:19:04,920 --> + 00:19:06,718\r\nBut I know what you'd say -\r\n\r\n365\r\n00:19:06,720 --> + 00:19:10,478\r\n\"Challenges are temporary,\r\nlife is constant.\r\n\r\n366\r\n00:19:10,480 + --> 00:19:14,318\r\n\"Don't overthink it,\r\njust move forward.\"\r\n\r\n367\r\n00:19:14,320 + --> 00:19:16,838\r\nAnd I can still hear you\r\ntelling me that.\r\n\r\n368\r\n00:19:16,840 + --> 00:19:20,398\r\nSo I am. We are.\r\n\r\n369\r\n00:19:20,400 --> 00:19:23,438\r\nMe + and Tigmi, moving forward.\r\n\r\n370\r\n00:19:23,440 --> 00:19:25,598\r\nHoping + that you're right.\r\n\r\n371\r\n00:19:25,600 --> 00:19:27,518\r\nHoping we'll + see you soon.\r\n\r\n372\r\n00:19:27,520 --> 00:19:30,438\r\nAnd I'm ignoring + the creature\r\nin a bar who told me,\r\n\r\n373\r\n00:19:30,440 --> 00:19:33,078\r\n\"Atropos + is falling,\r\nthe Mouri are compromised,\r\n\r\n374\r\n00:19:33,080 --> 00:19:35,078\r\n\"and + time is beginning to run wild.\"\r\n\r\n375\r\n00:19:35,080 --> 00:19:37,278\r\nBecause + if the Flux\r\nis eroding space,\r\n\r\n376\r\n00:19:37,280 --> 00:19:39,078\r\nand + time is breaking down,\r\n\r\n377\r\n00:19:39,080 --> 00:19:42,080\r\nthen + what hope do we ever have\r\nof finding each other again?\r\n\r\n378\r\n00:19:47,440 + --> 00:19:49,318\r\nTake in that view.\r\n\r\n379\r\n00:19:49,320 --> 00:19:51,558\r\nYou + know who would never\r\nget in here?\r\n\r\n380\r\n00:19:51,560 --> 00:19:52,838\r\nFrey + Sampor.\r\n\r\n381\r\n00:19:52,840 --> 00:19:56,198\r\nCos they don't let + losers in.\r\n\r\n382\r\n00:19:56,200 --> 00:19:59,638\r\nYou have two tasks + as guardian\r\nof the Grand Serpent,\r\n\r\n383\r\n00:19:59,640 --> 00:20:01,318\r\nprotect + me\r\n\r\n384\r\n00:20:01,320 --> 00:20:06,478\r\nand record the meeting\r\nso + there's no...\r\n\r\n385\r\n00:20:06,480 --> 00:20:09,718\r\n..misunderstandings + later.\r\n\r\n386\r\n00:20:09,720 --> 00:20:12,158\r\nOur guest today comes\r\nseeking + a deal.\r\n\r\n387\r\n00:20:12,160 --> 00:20:13,678\r\nThe Alforia want an + alliance\r\n\r\n388\r\n00:20:13,680 --> 00:20:17,078\r\nwhere we shelter them\r\nunder + our security protocols.\r\n\r\n389\r\n00:20:17,080 --> 00:20:19,798\r\nIn + return,\r\n\r\n390\r\n00:20:19,800 --> 00:20:22,958\r\nthey provide our population\r\nwith + food and safety\r\n\r\n391\r\n00:20:22,960 --> 00:20:24,598\r\nfor generations + to come.\r\n\r\n392\r\n00:20:24,600 --> 00:20:26,400\r\nEverybody wins.\r\n\r\n393\r\n00:20:37,120 + --> 00:20:39,278\r\nWhat did you say?\r\n\r\n394\r\n00:20:39,280 --> 00:20:41,198\r\nI + mean, I can see...\r\n\r\n395\r\n00:20:41,200 --> 00:20:44,638\r\n..that there + are benefits\r\nfor both sides.\r\n\r\n396\r\n00:20:44,640 --> 00:20:47,480\r\nOh. + You can see that?\r\n\r\n397\r\n00:20:51,960 --> 00:20:54,480\r\nYou understand + this.\r\n\r\n398\r\n00:20:56,640 --> 00:20:58,598\r\nSupremacy, I didn't mean...\r\n\r\n399\r\n00:20:58,600 + --> 00:21:00,998\r\nYou want my seat?\r\n\r\n400\r\n00:21:01,000 --> 00:21:03,280\r\nDo + you want to be me?\r\n\r\n401\r\n00:21:08,960 --> 00:21:13,918\r\nI was only + expressing solidarity,\r\nSupremacy, my apologies.\r\n\r\n402\r\n00:21:13,920 + --> 00:21:17,118\r\nI don't need solidarity\r\nfrom a grunt.\r\n\r\n403\r\n00:21:17,120 + --> 00:21:21,880\r\nWhat I need is for you to be silent\r\nand do as you're + ordered.\r\n\r\n404\r\n00:21:23,560 --> 00:21:25,760\r\nUnderstood.\r\n\r\n405\r\n00:21:32,040 + --> 00:21:33,920\r\nThey've docked.\r\n\r\n406\r\n00:21:35,600 --> 00:21:37,480\r\nBe + ready.\r\n\r\n407\r\n00:21:39,840 --> 00:21:41,280\r\nI don't want to relive + this.\r\n\r\n408\r\n00:21:42,720 --> 00:21:44,240\r\nI don't want to relive + this.\r\n\r\n409\r\n00:21:46,120 --> 00:21:50,838\r\nYaz, again, what are + you doing here?\r\n\r\n410\r\n00:21:50,840 --> 00:21:52,758\r\nCome on, you + are so bad at this.\r\n\r\n411\r\n00:21:52,760 --> 00:21:54,838\r\nI don't + even like playing\r\nvideo games.\r\n\r\n412\r\n00:21:54,840 --> 00:21:56,518\r\nNobody + calls them video games.\r\n\r\n413\r\n00:21:56,520 --> 00:21:58,678\r\nWhatever + you wanna call them,\r\nI'm not good at them.\r\n\r\n414\r\n00:21:58,680 --> + 00:22:01,198\r\nBut you're helping me, cos this lad\r\nain't gonna look at + me\r\n\r\n415\r\n00:22:01,200 --> 00:22:03,318\r\nif I don't know my way\r\naround + a controller.\r\n\r\n416\r\n00:22:03,320 --> 00:22:04,958\r\nI'm going to + learn to be\r\nace at this,\r\n\r\n417\r\n00:22:04,960 --> 00:22:06,558\r\nso + the next time I'm in a room\r\nwith him,\r\n\r\n418\r\n00:22:06,560 --> 00:22:08,198\r\nhe's + going to look at me and think,\r\n\r\n419\r\n00:22:08,200 --> 00:22:10,398\r\n\"Who's + the sexy girl\r\nwith the nimble fingers?\"\r\n\r\n420\r\n00:22:10,400 --> + 00:22:14,000\r\nNo human being is ever gonna look\r\nat you and think those + words.\r\n\r\n421\r\n00:22:16,240 --> 00:22:18,478\r\nAll right, I'm super\r\nfreaking + out now...\r\n\r\n422\r\n00:22:18,480 --> 00:22:21,798\r\nTo save you and + that lad on Atropos,\r\nwho I've not even met yet,\r\n\r\n423\r\n00:22:21,800 + --> 00:22:23,638\r\nfrom being overwhelmed by time,\r\n\r\n424\r\n00:22:23,640 + --> 00:22:27,278\r\nI took it upon myself to jump into\r\none of the burned + out Mouris' place,\r\n\r\n425\r\n00:22:27,280 --> 00:22:30,638\r\nto divert + you from having\r\nto absorb the Time Force...\r\n\r\n426\r\n00:22:30,640 + --> 00:22:35,398\r\nBut if time would've overwhelmed me,\r\nwhat's it gonna + do to you?\r\n\r\n427\r\n00:22:35,400 --> 00:22:37,118\r\nYeah, well, I've + got\r\na bit more practice,\r\n\r\n428\r\n00:22:37,120 --> 00:22:39,518\r\nnot + to mention an entirely\r\ndifferent biology.\r\n\r\n429\r\n00:22:39,520 --> + 00:22:41,118\r\nMe and the Mouri are connected.\r\n\r\n430\r\n00:22:41,120 + --> 00:22:44,198\r\nWe're hiding all of you\r\nin your own time streams.\r\n\r\n431\r\n00:22:44,200 + --> 00:22:49,318\r\nIn your own memories, past,\r\npresent or even future.\r\n\r\n432\r\n00:22:49,320 + --> 00:22:51,958\r\nWhat you looking at me\r\nlike that for?\r\n\r\n433\r\n00:22:51,960 + --> 00:22:54,878\r\nSorry. I'm split across\r\nmultiple events,\r\n\r\n434\r\n00:22:54,880 + --> 00:22:56,118\r\nmultiple time streams.\r\n\r\n435\r\n00:22:56,120 --> + 00:22:58,478\r\nI can't be constant. Multiple crisis\r\n\r\n436\r\n00:22:58,480 + --> 00:23:01,878\r\nand I'm still trying to work out\r\nthe plan. You're camouflaged + here,\r\n\r\n437\r\n00:23:01,880 --> 00:23:03,638\r\nbecause this is where + you belong.\r\n\r\n438\r\n00:23:03,640 --> 00:23:06,678\r\nThe best place + to hide you all\r\nis in your own lives.\r\n\r\n439\r\n00:23:06,680 --> 00:23:10,238\r\nExcept + it's not.\r\nThese things haven't happened to me.\r\n\r\n440\r\n00:23:10,240 + --> 00:23:13,998\r\nThis isn't my house,\r\nthe details are wrong.\r\n\r\n441\r\n00:23:14,000 + --> 00:23:17,158\r\nYes, I think there's something's\r\nwrong with your time + stream.\r\n\r\n442\r\n00:23:17,160 --> 00:23:18,920\r\nYaz?\r\n\r\n443\r\n00:23:22,640 + --> 00:23:23,998\r\nDon't blink.\r\n\r\n444\r\n00:23:24,000 --> 00:23:26,840\r\nThere + are Angels disrupting\r\nyour time stream.\r\n\r\n445\r\n00:23:29,160 --> + 00:23:31,638\r\nIt's stalking me.\r\n\r\n446\r\n00:23:31,640 --> 00:23:33,158\r\nWhat + is it?!\r\n\r\n447\r\n00:23:33,160 --> 00:23:35,440\r\nQuit the game.\r\n\r\n448\r\n00:23:38,240 + --> 00:23:39,718\r\nYou have to keep your eyes on it.\r\n\r\n449\r\n00:23:39,720 + --> 00:23:42,678\r\nIf the Angel gets you,\r\nit will propel you back in time.\r\n\r\n450\r\n00:23:42,680 + --> 00:23:45,478\r\nI won't know where you are,\r\nyou could be lost forever\r\n\r\n451\r\n00:23:45,480 + --> 00:23:46,958\r\nand I won't be able to find you.\r\n\r\n452\r\n00:23:46,960 + --> 00:23:49,480\r\nYaz, I'm being pulled away...\r\n\r\n453\r\n00:23:55,560 + --> 00:23:57,400\r\nDo you want me to be\r\nsingle forever?\r\n\r\n454\r\n00:24:00,400 + --> 00:24:02,158\r\nNo.\r\n\r\n455\r\n00:24:02,160 --> 00:24:03,878\r\nCome + on, Doctor.\r\n\r\n456\r\n00:24:03,880 --> 00:24:05,678\r\nYou're in here + for a reason,\r\n\r\n457\r\n00:24:05,680 --> 00:24:08,078\r\nfix the future, + fix Atropos,\r\n\r\n458\r\n00:24:08,080 --> 00:24:10,078\r\nprotect Yaz and + that lad.\r\n\r\n459\r\n00:24:10,080 --> 00:24:12,158\r\nI'm being pulled + away again,\r\n\r\n460\r\n00:24:12,160 --> 00:24:14,000\r\ndragged back to + Atropos in the past.\r\n\r\n461\r\n00:24:18,160 --> 00:24:21,198\r\nOf course + you've made yourselves\r\nthrones.\r\n\r\n462\r\n00:24:21,200 --> 00:24:23,238\r\nYou've + no shame.\r\n\r\n463\r\n00:24:23,240 --> 00:24:25,078\r\nOnly pride.\r\n\r\n464\r\n00:24:25,080 + --> 00:24:27,438\r\nYou should know that by now.\r\n\r\n465\r\n00:24:27,440 + --> 00:24:31,440\r\nSurrender now and your sentences\r\nwill be merciful.\r\n\r\n466\r\n00:24:32,480 + --> 00:24:34,558\r\nBanishment...\r\n\r\n467\r\n00:24:34,560 --> 00:24:36,478\r\n..or + execution?\r\n\r\n468\r\n00:24:36,480 --> 00:24:38,638\r\nSurrender?\r\n\r\n469\r\n00:24:38,640 + --> 00:24:40,518\r\nTo the four of you?\r\n\r\n470\r\n00:24:40,520 --> 00:24:42,038\r\nDon't + underestimate me.\r\n\r\n471\r\n00:24:42,040 --> 00:24:46,158\r\nIt's a difficult + moral high ground\r\nyou occupy.\r\n\r\n472\r\n00:24:46,160 --> 00:24:48,758\r\nIf + you don't stop killing things,\r\n\r\n473\r\n00:24:48,760 --> 00:24:50,318\r\nwe'll + kill you.\r\n\r\n474\r\n00:24:50,320 --> 00:24:52,918\r\nIf there's further + death\r\nor bloodshed,\r\n\r\n475\r\n00:24:52,920 --> 00:24:54,638\r\nyour + punishments will be worse.\r\n\r\n476\r\n00:24:54,640 --> 00:24:57,078\r\nErasure + of identity.\r\n\r\n477\r\n00:24:57,080 --> 00:25:01,918\r\nIsolation prison + terms for the\r\ninfinite duration of the universe.\r\n\r\n478\r\n00:25:01,920 + --> 00:25:05,598\r\nWorking for the Division must be\r\nso compromising.\r\n\r\n479\r\n00:25:05,600 + --> 00:25:07,998\r\nYou've already lost.\r\nI'm just trying to reason with + you.\r\n\r\n480\r\n00:25:08,000 --> 00:25:12,120\r\nHow can we have lost\r\nwith + so many hostages?\r\n\r\n481\r\n00:25:14,920 --> 00:25:19,198\r\nYou understand + what Passenger is?\r\n\r\n482\r\n00:25:19,200 --> 00:25:23,318\r\nThe Passenger + is\r\na long forbidden form.\r\n\r\n483\r\n00:25:23,320 --> 00:25:27,318\r\nBarred + from this dimension,\r\nfor good reason.\r\n\r\n484\r\n00:25:27,320 --> 00:25:30,438\r\nA + thing of beauty.\r\n\r\n485\r\n00:25:30,440 --> 00:25:32,398\r\nA holding + entity,\r\n\r\n486\r\n00:25:32,400 --> 00:25:35,320\r\nable to store what + it has\r\ncaptured within.\r\n\r\n487\r\n00:25:36,920 --> 00:25:39,878\r\nA + living prison,\r\n\r\n488\r\n00:25:39,880 --> 00:25:42,798\r\nwith endless + capacity.\r\n\r\n489\r\n00:25:42,800 --> 00:25:48,558\r\nHundreds of thousands + of life forms\r\nlocked away within each Passenger.\r\n\r\n490\r\n00:25:48,560 + --> 00:25:51,158\r\nFive Passengers,\r\n\r\n491\r\n00:25:51,160 --> 00:25:53,598\r\nmillions + of lives.\r\n\r\n492\r\n00:25:53,600 --> 00:25:55,958\r\nKept a list, have + we?\r\n\r\n493\r\n00:25:55,960 --> 00:25:57,560\r\nKept the numbers?\r\n\r\n494\r\n00:26:07,440 + --> 00:26:10,318\r\nOne Passenger destroyed.\r\nWe need the Mouri now...\r\n\r\n495\r\n00:26:10,320 + --> 00:26:11,678\r\nI'm trying...\r\n\r\n496\r\n00:26:11,680 --> 00:26:14,678\r\nYou + think we would cower\r\nbefore the Division\r\n\r\n497\r\n00:26:14,680 --> + 00:26:18,480\r\nwhen we have taken control\r\nof its dirty secret?\r\n\r\n498\r\n00:26:20,320 + --> 00:26:24,918\r\nA planet called Time.\r\n\r\n499\r\n00:26:24,920 --> 00:26:29,518\r\nThinking + this could bring\r\nthe Dark Times to an end.\r\n\r\n500\r\n00:26:29,520 --> + 00:26:33,238\r\nTime is not controllable, Doctor.\r\n\r\n501\r\n00:26:33,240 + --> 00:26:37,118\r\nIt will not do as other beings bid.\r\n\r\n502\r\n00:26:37,120 + --> 00:26:38,678\r\nIt will.\r\n\r\n503\r\n00:26:38,680 --> 00:26:40,238\r\nIt + must.\r\n\r\n504\r\n00:26:40,240 --> 00:26:46,040\r\nHere we are, still engaged\r\nin + the Founding Conflict.\r\n\r\n505\r\n00:26:47,600 --> 00:26:49,718\r\nThere + is no greater battle\r\n\r\n506\r\n00:26:49,720 --> 00:26:55,158\r\nthan this + the battle between\r\nTime and Space.\r\n\r\n507\r\n00:26:55,160 --> 00:26:59,038\r\nAnd + Time shall not lose.\r\n\r\n508\r\n00:26:59,040 --> 00:27:03,798\r\nTime shall + never surrender to Space.\r\n\r\n509\r\n00:27:03,800 --> 00:27:07,118\r\nNo + planetary mass,\r\nhowever sophisticated,\r\n\r\n510\r\n00:27:07,120 --> 00:27:10,878\r\ncan + imprison the force of Time.\r\n\r\n511\r\n00:27:10,880 --> 00:27:12,478\r\nThis + planet,\r\n\r\n512\r\n00:27:12,480 --> 00:27:16,958\r\nthis construction\r\nis + not just a fallacy,\r\n\r\n513\r\n00:27:16,960 --> 00:27:20,358\r\nnot just + futile hubris,\r\n\r\n514\r\n00:27:20,360 --> 00:27:22,278\r\nit is heresy.\r\n\r\n515\r\n00:27:22,280 + --> 00:27:24,918\r\nAnd see how many lives it has cost.\r\n\r\n516\r\n00:27:24,920 + --> 00:27:26,200\r\nKeep away from it...\r\n\r\n517\r\n00:27:28,520 --> 00:27:31,598\r\nThat's + the second.\r\nIt's a massacre in there...\r\n\r\n518\r\n00:27:31,600 --> + 00:27:34,118\r\nWe can't let her lose any more.\r\n\r\n519\r\n00:27:34,120 + --> 00:27:37,758\r\nThe Mouri are ready,\r\nthe Mouri are connected.\r\n\r\n520\r\n00:27:37,760 + --> 00:27:41,118\r\nOh...\r\n\r\n521\r\n00:27:41,120 --> 00:27:43,518\r\n..is + that Passenger meant\r\nto glow like that?\r\n\r\n522\r\n00:27:43,520 --> + 00:27:44,760\r\nMouri...\r\n\r\n523\r\n00:27:47,320 --> 00:27:50,838\r\nTell + me you did not\r\nbring them here.\r\n\r\n524\r\n00:27:50,840 --> 00:27:51,998\r\nYou + were warned...\r\n\r\n525\r\n00:27:52,000 --> 00:27:53,678\r\nThey shall not + have this!\r\n\r\n526\r\n00:27:53,680 --> 00:27:55,798\r\nYou know the thing + about\r\na Passenger form?\r\n\r\n527\r\n00:27:55,800 --> 00:27:57,958\r\nYou'd + better be sure\r\nyou know where they've been,\r\n\r\n528\r\n00:27:57,960 + --> 00:28:00,358\r\nor everything that's held\r\ninside them,\r\n\r\n529\r\n00:28:00,360 + --> 00:28:03,158\r\nmaybe even hidden,\r\n\r\n530\r\n00:28:03,160 --> 00:28:05,798\r\nready + to be summoned.\r\n\r\n531\r\n00:28:05,800 --> 00:28:09,358\r\nCos that one\r\ninfiltrated + your temple,\r\n\r\n532\r\n00:28:09,360 --> 00:28:12,038\r\nsubstituted for + one of yours,\r\n\r\n533\r\n00:28:12,040 --> 00:28:16,798\r\nand inside waiting + for my command...\r\n\r\n534\r\n00:28:16,800 --> 00:28:18,918\r\nOut you come, + Mouri.\r\n\r\n535\r\n00:28:18,920 --> 00:28:21,078\r\nThis is your time.\r\n\r\n536\r\n00:28:21,080 + --> 00:28:23,638\r\nNo! The Mouri must not be allowed\r\nback in.\r\n\r\n537\r\n00:28:23,640 + --> 00:28:24,998\r\nThey are banished.\r\n\r\n538\r\n00:28:25,000 --> 00:28:26,760\r\nTime + is not their prisoner!\r\n\r\n539\r\n00:28:28,000 --> 00:28:30,040\r\nStasis + fields, now.\r\n\r\n540\r\n00:28:35,920 --> 00:28:38,598\r\nWe shall not be + contained!\r\n\r\n541\r\n00:28:38,600 --> 00:28:41,360\r\nGet them transported\r\nout + of here, now.\r\n\r\n542\r\n00:28:42,960 --> 00:28:45,678\r\nMission accomplished, + boss.\r\n\r\n543\r\n00:28:45,680 --> 00:28:47,558\r\nYes.\r\n\r\n544\r\n00:28:47,560 + --> 00:28:49,278\r\nI need your help.\r\n\r\n545\r\n00:28:49,280 --> 00:28:50,718\r\nYou + and me together.\r\n\r\n546\r\n00:28:50,720 --> 00:28:52,158\r\nWe save my + friends in the future\r\n\r\n547\r\n00:28:52,160 --> 00:28:54,398\r\nby replicating + what happened\r\nin the past.\r\n\r\n548\r\n00:28:54,400 --> 00:28:56,278\r\nSame + problem, same solution.\r\n\r\n549\r\n00:28:56,280 --> 00:28:59,798\r\nEmbed + yourselves in the Temple\r\nas you did before.\r\n\r\n550\r\n00:28:59,800 + --> 00:29:01,558\r\nThe Passenger is there.\r\n\r\n551\r\n00:29:01,560 --> + 00:29:04,598\r\nWe need four of you to replace\r\nthe burned-out Mouri,\r\n\r\n552\r\n00:29:04,600 + --> 00:29:06,558\r\nlet four be waiting.\r\n\r\n553\r\n00:29:06,560 --> 00:29:08,678\r\nYou + have to do this\r\nor time will fracture\r\n\r\n554\r\n00:29:08,680 --> 00:29:10,680\r\nacross + all of the space. Please.\r\n\r\n555\r\n00:29:13,664 --> 00:29:15,164\r\n_\r\n\r\n556\r\n00:29:20,480 + --> 00:29:22,198\r\nCome on.\r\n\r\n557\r\n00:29:22,200 --> 00:29:24,398\r\nCome + on, make hyper for me.\r\n\r\n558\r\n00:29:24,400 --> 00:29:26,760\r\nWhoooo!\r\n\r\n559\r\n00:29:29,000 + --> 00:29:30,040\r\nOh, I miss that rush.\r\n\r\n560\r\n00:29:32,200 --> 00:29:33,520\r\nYeah...\r\n\r\n561\r\n00:29:34,960 + --> 00:29:37,278\r\nHow you doing, Tigmi? Huh?\r\n\r\n562\r\n00:29:37,280 + --> 00:29:40,360\r\nSlightly elevated, but that's\r\nto be expected, right?\r\n\r\n563\r\n00:29:42,680 + --> 00:29:46,240\r\nRight, I'm hoping\r\nthe nav charts are up-to-date.\r\n\r\n564\r\n00:29:49,000 + --> 00:29:50,998\r\nThey are, but they're not good.\r\n\r\n565\r\n00:29:51,000 + --> 00:29:53,118\r\nThe Dalek Empire expanding\r\nover here.\r\n\r\n566\r\n00:29:53,120 + --> 00:29:55,238\r\nSontarans starting\r\nto spread over here.\r\n\r\n567\r\n00:29:55,240 + --> 00:30:00,478\r\nAnd us, exiting the Cyber Zone\r\nas fast as we can.\r\n\r\n568\r\n00:30:00,480 + --> 00:30:03,598\r\nWait, what's that?\r\n\r\n569\r\n00:30:03,600 --> 00:30:04,880\r\nDid + we make it out or...?\r\n\r\n570\r\n00:30:06,000 --> 00:30:07,278\r\nGuess + not.\r\n\r\n571\r\n00:30:07,280 --> 00:30:09,558\r\nPrepare to convert\r\norganic + life forms.\r\n\r\n572\r\n00:30:09,560 --> 00:30:11,038\r\nYeah?\r\n\r\n573\r\n00:30:11,040 + --> 00:30:12,600\r\nConvert this.\r\n\r\n574\r\n00:30:55,840 --> 00:30:58,158\r\nHow + many Cybermen\r\nin this part of the galaxy?\r\n\r\n575\r\n00:30:58,160 --> + 00:31:02,438\r\n7,000,313,409.\r\n\r\n576\r\n00:31:02,440 --> 00:31:04,478\r\nI + like our odds, Tigmi.\r\n\r\n577\r\n00:31:04,480 --> 00:31:06,558\r\nSo what + is happening to Time?\r\n\r\n578\r\n00:31:06,560 --> 00:31:08,998\r\nI mean,\r\nI + get what happened with the Flux,\r\n\r\n579\r\n00:31:09,000 --> 00:31:10,878\r\nbut + something has started\r\naffecting Time.\r\n\r\n580\r\n00:31:10,880 --> 00:31:14,158\r\nCorrect.\r\nFlux + event affected the planet Time.\r\n\r\n581\r\n00:31:14,160 --> 00:31:15,918\r\nTemporal + centre cannot hold.\r\n\r\n582\r\n00:31:15,920 --> 00:31:17,438\r\nI have + no idea what that means.\r\n\r\n583\r\n00:31:17,440 --> 00:31:19,000\r\nBut + it doesn't sound good.\r\n\r\n584\r\n00:31:22,520 --> 00:31:25,438\r\nOK, + so, what is the strategic aim\r\n\r\n585\r\n00:31:25,440 --> 00:31:27,318\r\nof + the Cyber race post-Flux?\r\n\r\n586\r\n00:31:27,320 --> 00:31:29,478\r\nSecure + territorial advance.\r\n\r\n587\r\n00:31:29,480 --> 00:31:32,558\r\nConvert + all organic life forms\r\nremaining.\r\n\r\n588\r\n00:31:32,560 --> 00:31:36,038\r\nAnd + then what?\r\nWe shall command. We shall rule.\r\n\r\n589\r\n00:31:36,040 + --> 00:31:38,078\r\nOver what?\r\n\r\n590\r\n00:31:38,080 --> 00:31:40,038\r\nThere's + barely anything left.\r\n\r\n591\r\n00:31:40,040 --> 00:31:41,438\r\nThe universe + is disappearing.\r\n\r\n592\r\n00:31:41,440 --> 00:31:43,278\r\nAll that is + left shall be ours.\r\n\r\n593\r\n00:31:43,280 --> 00:31:45,598\r\nThe Cyber + victory shall be ultimate.\r\n\r\n594\r\n00:31:45,600 --> 00:31:47,598\r\nIt + shall be hollow.\r\n\r\n595\r\n00:31:47,600 --> 00:31:49,398\r\nPointless.\r\n\r\n596\r\n00:31:49,400 + --> 00:31:54,078\r\nSo you guys, Daleks and Sontarans,\r\nall fighting for + the spoils,\r\n\r\n597\r\n00:31:54,080 --> 00:31:56,958\r\nas if nothing has + changed.\r\n\r\n598\r\n00:31:56,960 --> 00:31:59,318\r\nIn the end, it'll + come down\r\nto you fighting each other\r\n\r\n599\r\n00:31:59,320 --> 00:32:02,078\r\nand + wiping each other out.\r\n\r\n600\r\n00:32:02,080 --> 00:32:05,000\r\nActually,\r\nthat's + quite a good thing.\r\n\r\n601\r\n00:32:08,160 --> 00:32:10,080\r\nWhat is + your mission?\r\n\r\n602\r\n00:32:13,720 --> 00:32:14,958\r\nWhat?\r\n\r\n603\r\n00:32:14,960 + --> 00:32:16,478\r\nWhat is your mission?\r\n\r\n604\r\n00:32:16,480 --> 00:32:19,598\r\nI'm + one person,\r\nout here in the broken universe.\r\n\r\n605\r\n00:32:19,600 + --> 00:32:21,718\r\nMy mission doesn't impinge on you.\r\n\r\n606\r\n00:32:21,720 + --> 00:32:24,118\r\nI must record.\r\n\r\n607\r\n00:32:24,120 --> 00:32:25,240\r\nFine.\r\n\r\n608\r\n00:32:27,160 + --> 00:32:29,158\r\nJust put...\r\n\r\n609\r\n00:32:29,160 --> 00:32:31,158\r\n..love.\r\n\r\n610\r\n00:32:31,160 + --> 00:32:32,800\r\nIncorrect.\r\n\r\n611\r\n00:32:34,880 --> 00:32:36,478\r\nWhat?\r\n\r\n612\r\n00:32:36,480 + --> 00:32:38,278\r\nLove is not a mission.\r\n\r\n613\r\n00:32:38,280 --> + 00:32:42,798\r\nLove is an emotion.\r\nEmotions are not missions.\r\n\r\n614\r\n00:32:42,800 + --> 00:32:44,598\r\nAnd that's why you're dead on floor,\r\n\r\n615\r\n00:32:44,600 + --> 00:32:46,160\r\nand I put you there.\r\n\r\n616\r\n00:32:47,760 --> 00:32:49,638\r\nLove + is the only mission.\r\n\r\n617\r\n00:32:49,640 --> 00:32:51,040\r\nIdiot.\r\n\r\n618\r\n00:32:53,360 + --> 00:32:55,000\r\nRight?\r\n\r\n619\r\n00:32:57,560 --> 00:33:00,198\r\nI'm + gonna get us\r\nto where we need to be\r\n\r\n620\r\n00:33:00,200 --> 00:33:01,560\r\nand + who we need to be with.\r\n\r\n621\r\n00:33:02,800 --> 00:33:04,600\r\nThat's + my promise to you.\r\n\r\n622\r\n00:33:16,560 --> 00:33:19,438\r\nThank you,\r\nmy + valued Alforian friends.\r\n\r\n623\r\n00:33:19,440 --> 00:33:22,638\r\nWell, + it looks like we've come\r\nto an agreement,\r\n\r\n624\r\n00:33:22,640 --> + 00:33:24,800\r\non one condition.\r\n\r\n625\r\n00:33:26,640 --> 00:33:28,760\r\nYou + can stop the recording now,\r\nVinder.\r\n\r\n626\r\n00:33:31,000 --> 00:33:32,838\r\nSupremacy, + I'm duty-bound...\r\n\r\n627\r\n00:33:32,840 --> 00:33:35,680\r\nShut it off.\r\n\r\n628\r\n00:33:38,640 + --> 00:33:41,160\r\nWas my order unclear?\r\n\r\n629\r\n00:33:45,800 --> 00:33:47,640\r\nStopping + recording, sir.\r\n\r\n630\r\n00:33:58,120 --> 00:34:01,640\r\nYou're sheltering + a number of\r\ndissidents on Alforus Extant.\r\n\r\n631\r\n00:34:02,760 --> + 00:34:05,160\r\nI'm going to give you\r\na list of nine people.\r\n\r\n632\r\n00:34:06,320 + --> 00:34:10,918\r\nFive of them are to be returned\r\nto us, to face justice.\r\n\r\n633\r\n00:34:10,920 + --> 00:34:14,120\r\nThey must face the consequences\r\nfor their treasonous + actions.\r\n\r\n634\r\n00:34:16,440 --> 00:34:19,318\r\nThe other four,\r\n\r\n635\r\n00:34:19,320 + --> 00:34:25,118\r\nthe other four are family members\r\nof my dear opponent\r\n\r\n636\r\n00:34:25,120 + --> 00:34:27,080\r\nand vocal critic, Frey Sampor.\r\n\r\n637\r\n00:34:30,400 + --> 00:34:33,278\r\nThey need to have an accident.\r\n\r\n638\r\n00:34:33,280 + --> 00:34:37,518\r\nIt's important they're involved\r\nin an unexpected tragedy.\r\n\r\n639\r\n00:34:37,520 + --> 00:34:40,038\r\nNatural disaster.\r\n\r\n640\r\n00:34:40,040 --> 00:34:42,078\r\nLandslide.\r\n\r\n641\r\n00:34:42,080 + --> 00:34:43,838\r\nHunting accident.\r\n\r\n642\r\n00:34:43,840 --> 00:34:45,638\r\nYou + decide.\r\n\r\n643\r\n00:34:45,640 --> 00:34:47,598\r\nYou don't need to tell + me.\r\n\r\n644\r\n00:34:47,600 --> 00:34:49,520\r\nBut they have to die.\r\n\r\n645\r\n00:34:52,560 + --> 00:34:54,320\r\nAnd those are my final conditions.\r\n\r\n646\r\n00:34:57,600 + --> 00:34:59,318\r\nAnd you want to make this official?\r\n\r\n647\r\n00:34:59,320 + --> 00:35:02,238\r\nThey're dead. You saw the reports.\r\n\r\n648\r\n00:35:02,240 + --> 00:35:04,038\r\nAn accident on the lunar range.\r\n\r\n649\r\n00:35:04,040 + --> 00:35:06,998\r\nYou want to report that\r\nthe Grand Serpent is responsible?\r\n\r\n650\r\n00:35:07,000 + --> 00:35:09,198\r\nIt was his condition\r\nfor the alliance.\r\n\r\n651\r\n00:35:09,200 + --> 00:35:11,238\r\nThere's no evidence\r\non the recording.\r\n\r\n652\r\n00:35:11,240 + --> 00:35:13,120\r\nNo, he asked me to stop\r\nthe recording.\r\n\r\n653\r\n00:35:18,040 + --> 00:35:20,998\r\nWhat do you want to achieve here,\r\nCommander Vinder?\r\n\r\n654\r\n00:35:21,000 + --> 00:35:22,678\r\nHe needs to be held to account.\r\n\r\n655\r\n00:35:22,680 + --> 00:35:25,238\r\nYou understand this report\r\nwill reach him, if filed?\r\n\r\n656\r\n00:35:25,240 + --> 00:35:27,598\r\nThere are processes,\r\nthough, right?\r\n\r\n657\r\n00:35:27,600 + --> 00:35:30,438\r\nOther people see it.\r\nThere are whistle-blower protocols.\r\n\r\n658\r\n00:35:30,440 + --> 00:35:32,960\r\nEstablished by the Grand Serpent.\r\n\r\n659\r\n00:35:34,000 + --> 00:35:37,518\r\nHave you spoken\r\nto your family about any of this?\r\n\r\n660\r\n00:35:37,520 + --> 00:35:41,160\r\nNo. You're the first,\r\nas my commanding officer.\r\n\r\n661\r\n00:35:42,920 + --> 00:35:45,278\r\nI took an oath.\r\n\r\n662\r\n00:35:45,280 --> 00:35:49,198\r\nI + swore my loyalty\r\nto our constitution.\r\n\r\n663\r\n00:35:49,200 --> 00:35:51,198\r\nNot + to any one person.\r\n\r\n664\r\n00:35:51,200 --> 00:35:53,960\r\nTo something + bigger.\r\nMore important.\r\n\r\n665\r\n00:35:56,080 --> 00:35:57,798\r\nSo...\r\n\r\n666\r\n00:35:57,800 + --> 00:36:00,598\r\n..here's a choice.\r\n\r\n667\r\n00:36:00,600 --> 00:36:02,120\r\nI + can submit this...\r\n\r\n668\r\n00:36:04,640 --> 00:36:06,240\r\n..or I can + not submit this.\r\n\r\n669\r\n00:36:13,360 --> 00:36:15,560\r\nDon't make + me relive this bit.\r\n\r\n670\r\n00:36:22,400 --> 00:36:24,080\r\nPeople + need to know the truth.\r\n\r\n671\r\n00:36:29,680 --> 00:36:31,240\r\nSubmit + it.\r\n\r\n672\r\n00:36:32,640 --> 00:36:34,720\r\nSit down, Commander.\r\n\r\n673\r\n00:36:56,720 + --> 00:36:58,520\r\nHi, it's me.\r\n\r\n674\r\n00:37:01,200 --> 00:37:03,600\r\nI + won't be coming back off tour\r\nwhen I expected.\r\n\r\n675\r\n00:37:05,640 + --> 00:37:08,998\r\nIt may be a lot longer\r\nbefore I see you again.\r\n\r\n676\r\n00:37:09,000 + --> 00:37:11,638\r\nNow, I don't want you to worry,\r\n\r\n677\r\n00:37:11,640 + --> 00:37:13,998\r\nbut there was an incident.\r\n\r\n678\r\n00:37:14,000 + --> 00:37:16,720\r\nI was immediately reposted.\r\n\r\n679\r\n00:37:20,440 + --> 00:37:23,120\r\nLook, I can't say any more,\r\nbecause...\r\n\r\n680\r\n00:37:26,760 + --> 00:37:29,318\r\nI'm sorry.\r\n\r\n681\r\n00:37:29,320 --> 00:37:31,960\r\nI + was doing the right thing.\r\n\r\n682\r\n00:37:35,440 --> 00:37:39,718\r\nI'm + permitted one message,\r\nI hope it gets to you.\r\n\r\n683\r\n00:37:39,720 + --> 00:37:41,600\r\nI love you.\r\n\r\n684\r\n00:37:55,760 --> 00:37:59,118\r\nTime's + correcting.\r\nI'll file the report for Division.\r\n\r\n685\r\n00:37:59,120 + --> 00:38:01,198\r\nI've seen that before.\r\n\r\n686\r\n00:38:01,200 --> + 00:38:03,198\r\nOi.\r\n\r\n687\r\n00:38:03,200 --> 00:38:07,358\r\nYou know + the rules,\r\ndon't touch what you can't afford.\r\n\r\n688\r\n00:38:07,360 + --> 00:38:09,998\r\nWe know each other.\r\n\r\n689\r\n00:38:10,000 --> 00:38:12,518\r\nTemporal + hazing's getting\r\nto the boss again...\r\n\r\n690\r\n00:38:12,520 --> 00:38:14,158\r\nTime + to move.\r\n\r\n691\r\n00:38:14,160 --> 00:38:15,678\r\nBring the Passengers,\r\n\r\n692\r\n00:38:15,680 + --> 00:38:18,798\r\nwe'll extract the hostages back\r\nonboard the ship.\r\n\r\n693\r\n00:38:18,800 + --> 00:38:20,678\r\nWe have done as you asked, Doctor.\r\n\r\n694\r\n00:38:20,680 + --> 00:38:23,438\r\nWe have returned four Mouri\r\nto your time.\r\n\r\n695\r\n00:38:23,440 + --> 00:38:25,238\r\nNow you must return.\r\n\r\n696\r\n00:38:25,240 --> 00:38:28,438\r\nYou + must not linger\r\nin your own time stream.\r\n\r\n697\r\n00:38:28,440 --> + 00:38:30,838\r\nNot yet. Not just yet...\r\n\r\n698\r\n00:38:30,840 --> 00:38:33,758\r\nThe + force of Time will break you.\r\n\r\n699\r\n00:38:33,760 --> 00:38:36,318\r\nBut + this is my only chance\r\nto find out more...\r\n\r\n700\r\n00:38:36,320 --> + 00:38:39,358\r\n- More?\r\n- Who I was. Who I am.\r\n\r\n701\r\n00:38:39,360 + --> 00:38:41,358\r\nIt's all in here,\r\nif I can just find it...\r\n\r\n702\r\n00:38:41,360 + --> 00:38:44,998\r\nYour body is breaking, Doctor.\r\nWe can sense it. You + must leave.\r\n\r\n703\r\n00:38:45,000 --> 00:38:46,838\r\nOne more memory.\r\n\r\n704\r\n00:38:46,840 + --> 00:38:49,160\r\nOne more piece of my past.\r\n\r\n705\r\n00:38:50,240 + --> 00:38:51,798\r\nLet me have some...\r\n\r\n706\r\n00:38:51,800 --> 00:38:53,358\r\n..some + explanation.\r\n\r\n707\r\n00:38:53,360 --> 00:38:55,198\r\nYou will die in + here.\r\n\r\n708\r\n00:38:55,200 --> 00:38:56,878\r\nJust give me something!\r\n\r\n709\r\n00:38:56,880 + --> 00:38:59,478\r\nGive me the end,\r\ngive me the end of what I was in...\r\n\r\n710\r\n00:38:59,480 + --> 00:39:00,798\r\nNo.\r\n\r\n711\r\n00:39:00,800 --> 00:39:02,920\r\nYou + can't force me out!\r\n\r\n712\r\n00:39:09,400 --> 00:39:11,160\r\nStop fighting + now, Doctor.\r\n\r\n713\r\n00:39:12,360 --> 00:39:13,600\r\nWho are you?\r\n\r\n714\r\n00:39:16,040 + --> 00:39:17,798\r\nWhere am I?\r\n\r\n715\r\n00:39:17,800 --> 00:39:20,678\r\nYou + think you can navigate\r\nall those time streams\r\n\r\n716\r\n00:39:20,680 + --> 00:39:22,478\r\nwithout anyone noticing?\r\n\r\n717\r\n00:39:22,480 --> + 00:39:24,758\r\nYou're fighting a lost cause.\r\n\r\n718\r\n00:39:24,760 --> + 00:39:26,198\r\nYou need to stop.\r\n\r\n719\r\n00:39:26,200 --> 00:39:27,998\r\nLost + causes are my speciality.\r\n\r\n720\r\n00:39:28,000 --> 00:39:29,518\r\nNot + this time.\r\n\r\n721\r\n00:39:29,520 --> 00:39:31,918\r\nThere'll be no glory + awaiting you\r\non this one.\r\n\r\n722\r\n00:39:31,920 --> 00:39:33,918\r\nYou + seem to think\r\nyou're very well informed.\r\n\r\n723\r\n00:39:33,920 --> + 00:39:37,998\r\nI'm telling you, the damage\r\nto Time is already done.\r\n\r\n724\r\n00:39:38,000 + --> 00:39:39,198\r\nAs intended.\r\n\r\n725\r\n00:39:39,200 --> 00:39:40,398\r\nIntended?\r\n\r\n726\r\n00:39:40,400 + --> 00:39:43,198\r\nHm. The Flux event was spatial.\r\n\r\n727\r\n00:39:43,200 + --> 00:39:45,558\r\nBut it was possible\r\nit wouldn't be enough.\r\n\r\n728\r\n00:39:45,560 + --> 00:39:46,838\r\nThe Ravagers,\r\n\r\n729\r\n00:39:46,840 --> 00:39:49,998\r\nSwarm + and Azure,\r\nare rare and useful creatures.\r\n\r\n730\r\n00:39:50,000 --> + 00:39:52,398\r\nNow they have been reintroduced.\r\n\r\n731\r\n00:39:52,400 + --> 00:39:55,238\r\nThink of them as\r\na temporal poison,\r\n\r\n732\r\n00:39:55,240 + --> 00:39:56,518\r\nor contagion.\r\n\r\n733\r\n00:39:56,520 --> 00:39:59,038\r\nI'm + sorry, I'm normally very good\r\nat keeping up with things,\r\n\r\n734\r\n00:39:59,040 + --> 00:40:01,198\r\nbut you lost me quite early on.\r\nWhere are we?\r\n\r\n735\r\n00:40:01,200 + --> 00:40:03,198\r\nAnd how do you know me\r\nand I don't know you?\r\n\r\n736\r\n00:40:03,200 + --> 00:40:05,078\r\nAlways the wrong questions.\r\n\r\n737\r\n00:40:05,080 + --> 00:40:08,800\r\nThis universe is over, Doctor.\r\nHm?\r\n\r\n738\r\n00:40:09,960 + --> 00:40:11,318\r\nAnd you get to call it, do you?\r\n\r\n739\r\n00:40:11,320 + --> 00:40:12,598\r\nEverything has its time.\r\n\r\n740\r\n00:40:12,600 --> + 00:40:14,438\r\nNothing is forever.\r\nNothing is certain.\r\n\r\n741\r\n00:40:14,440 + --> 00:40:17,758\r\nNot you and not this universe\r\nyou seem to love so much.\r\n\r\n742\r\n00:40:17,760 + --> 00:40:20,598\r\nThis universe is home to innumerable\r\nspecies and life + forms.\r\n\r\n743\r\n00:40:20,600 --> 00:40:22,318\r\nDon't lecture me, Doctor.\r\n\r\n744\r\n00:40:22,320 + --> 00:40:24,440\r\nNot when you should look\r\nto yourself.\r\n\r\n745\r\n00:40:26,280 + --> 00:40:27,918\r\nThe Flux wasn't an accident.\r\n\r\n746\r\n00:40:27,920 + --> 00:40:29,838\r\nIt wasn't a naturally occurring\r\nevent.\r\n\r\n747\r\n00:40:29,840 + --> 00:40:31,680\r\nIt was made. It was placed.\r\n\r\n748\r\n00:40:33,600 + --> 00:40:34,638\r\nWhat?\r\n\r\n749\r\n00:40:34,640 --> 00:40:36,398\r\nBecause + of you.\r\n\r\n750\r\n00:40:36,400 --> 00:40:38,158\r\nWhat are you talking + about?\r\n\r\n751\r\n00:40:38,160 --> 00:40:40,240\r\nAll is ending.\r\n\r\n752\r\n00:40:42,040 + --> 00:40:43,960\r\nAnd don't come looking for this.\r\n\r\n753\r\n00:40:45,960 + --> 00:40:47,878\r\nYou can go.\r\n\r\n754\r\n00:40:47,880 --> 00:40:49,680\r\nI + will not go.\r\n\r\n755\r\n00:40:52,360 --> 00:40:53,798\r\nNo, no, no.\r\n\r\n756\r\n00:40:53,800 + --> 00:40:55,158\r\nPut me back, put me back.\r\n\r\n757\r\n00:40:55,160 --> + 00:40:57,158\r\nI want to go back in there.\r\nI have to get back in.\r\n\r\n758\r\n00:40:57,160 + --> 00:40:58,958\r\n- Doctor, it's OK...\r\n- It's not OK!\r\n\r\n759\r\n00:40:58,960 + --> 00:41:00,598\r\nNot for me!\r\n\r\n760\r\n00:41:00,600 --> 00:41:02,118\r\nYou + don't understand anything.\r\n\r\n761\r\n00:41:02,120 --> 00:41:06,238\r\n- + All right.\r\n- I had a chance while it was broken.\r\n\r\n762\r\n00:41:06,240 + --> 00:41:07,518\r\nWell, it's not now.\r\n\r\n763\r\n00:41:07,520 --> 00:41:08,798\r\nThe + Mouri, they're all back.\r\n\r\n764\r\n00:41:08,800 --> 00:41:11,278\r\nYou + saved our lives.\r\n\r\n765\r\n00:41:11,280 --> 00:41:13,558\r\nWell done, + Doctor.\r\n\r\n766\r\n00:41:13,560 --> 00:41:18,080\r\nDid you have fun in + there,\r\ndiscovering the past you've lost?\r\n\r\n767\r\n00:41:20,360 --> + 00:41:23,998\r\nYou may have forgotten,\r\nbut we did not.\r\n\r\n768\r\n00:41:24,000 + --> 00:41:26,600\r\nWe brought you here\r\nknowing what you would do.\r\n\r\n769\r\n00:41:28,040 + --> 00:41:30,438\r\nThis is only the beginning.\r\n\r\n770\r\n00:41:30,440 + --> 00:41:32,678\r\nUgh...\r\n\r\n771\r\n00:41:32,680 --> 00:41:34,198\r\nI've + seen this stuff before.\r\n\r\n772\r\n00:41:34,200 --> 00:41:36,518\r\nParticles + of the Time Force.\r\n\r\n773\r\n00:41:36,520 --> 00:41:39,198\r\nTiny fragments + of\r\ntemporal destruction,\r\n\r\n774\r\n00:41:39,200 --> 00:41:41,958\r\nwhich + will erode whatever\r\nthey touch.\r\n\r\n775\r\n00:41:41,960 --> 00:41:43,558\r\nYou + may have repaired,\r\n\r\n776\r\n00:41:43,560 --> 00:41:45,478\r\nbut Time + was unleashed\r\nfor long enough.\r\n\r\n777\r\n00:41:45,480 --> 00:41:47,598\r\nThe + damage is done.\r\n\r\n778\r\n00:41:47,600 --> 00:41:51,078\r\nAnd if the + Flux wrecked Space,\r\n\r\n779\r\n00:41:51,080 --> 00:41:54,038\r\nthen we + have disrupted\r\nthe flow of Time,\r\n\r\n780\r\n00:41:54,040 --> 00:41:55,518\r\nhowever + briefly.\r\n\r\n781\r\n00:41:55,520 --> 00:41:58,960\r\nNo, you haven't.\r\nAnd + we're gonna stop you. Right?\r\n\r\n782\r\n00:42:00,520 --> 00:42:01,878\r\nRight, + Doctor?\r\n\r\n783\r\n00:42:01,880 --> 00:42:03,638\r\nDan Lewis.\r\n\r\n784\r\n00:42:03,640 + --> 00:42:05,958\r\nWe have something of yours.\r\n\r\n785\r\n00:42:05,960 + --> 00:42:09,440\r\nYou're not the only one who can hide\r\nthings in Passenger, + Doctor.\r\n\r\n786\r\n00:42:11,640 --> 00:42:13,118\r\nWhere am I now?\r\n\r\n787\r\n00:42:13,120 + --> 00:42:15,118\r\n- Di.\r\n- Dan...\r\n\r\n788\r\n00:42:15,120 --> 00:42:16,198\r\nI + can't get to you.\r\n\r\n789\r\n00:42:16,200 --> 00:42:18,518\r\nWhat happened + to you?\r\nWhat're you doing here?\r\n\r\n790\r\n00:42:18,520 --> 00:42:20,358\r\n- + Stay there, Dan...\r\n- I've gotta get her...\r\n\r\n791\r\n00:42:20,360 --> + 00:42:22,838\r\n- You can't, you mustn't.\r\n- Course I can. Get off me.\r\n\r\n792\r\n00:42:22,840 + --> 00:42:26,278\r\nDo as you're told. You have no idea\r\nwhat you're dealing + with, I do.\r\n\r\n793\r\n00:42:26,280 --> 00:42:28,198\r\nStay there.\r\n\r\n794\r\n00:42:28,200 + --> 00:42:30,718\r\nI'll help you get her back.\r\nPromise.\r\n\r\n795\r\n00:42:30,720 + --> 00:42:33,638\r\nNo, she's our toy now.\r\n\r\n796\r\n00:42:35,080 --> + 00:42:36,318\r\nWhat do you want?\r\n\r\n797\r\n00:42:36,320 --> 00:42:39,040\r\nTo + reign in hell.\r\n\r\n798\r\n00:43:21,160 --> 00:43:23,278\r\nSorry, what + is this?\r\n\r\n799\r\n00:43:23,280 --> 00:43:24,840\r\nStick your head in.\r\n\r\n800\r\n00:43:26,920 + --> 00:43:28,160\r\nGo on.\r\n\r\n801\r\n00:43:34,640 --> 00:43:36,400\r\nWhat?!\r\n\r\n802\r\n00:43:39,520 + --> 00:43:41,680\r\nIs this a TARDIS?\r\n\r\n803\r\n00:43:43,440 --> 00:43:45,398\r\nIt + is, isn't it?\r\n\r\n804\r\n00:43:45,400 --> 00:43:47,998\r\nI didn't even + think these were real.\r\n\r\n805\r\n00:43:48,000 --> 00:43:52,318\r\nWait, + this can get me home.\r\n\r\n806\r\n00:43:52,320 --> 00:43:56,838\r\nAfter + all this time.\r\n\r\n807\r\n00:43:56,840 --> 00:43:59,078\r\nCan I pilot + it?\r\nWill you show me?\r\n\r\n808\r\n00:43:59,080 --> 00:44:00,760\r\nNo. + Get in.\r\n\r\n809\r\n00:44:03,520 --> 00:44:05,798\r\nDoctor, seriously.\r\nWe + can't leave here without her.\r\n\r\n810\r\n00:44:05,800 --> 00:44:07,318\r\nShe's + not here, Dan.\r\n\r\n811\r\n00:44:07,320 --> 00:44:09,038\r\nBut we'll get + her back, I promise.\r\n\r\n812\r\n00:44:09,040 --> 00:44:11,558\r\nWe'll + get Vinder home,\r\nwe'll rescue Diane,\r\n\r\n813\r\n00:44:11,560 --> 00:44:13,918\r\nwe'll + find out\r\nwho's behind the Flux,\r\n\r\n814\r\n00:44:13,920 --> 00:44:15,998\r\nand + what it's got to do with me.\r\n\r\n815\r\n00:44:16,000 --> 00:44:18,638\r\nWhy + would it have anything\r\nto do with you?\r\n\r\n816\r\n00:44:18,640 --> 00:44:20,958\r\nDoes + everything have to be\r\na discussion?\r\n\r\n817\r\n00:44:20,960 --> 00:44:24,120\r\nGo + on... in.\r\n\r\n818\r\n00:44:30,960 --> 00:44:33,038\r\nDid you repair?\r\n\r\n819\r\n00:44:33,040 + --> 00:44:35,438\r\nCan you repair?\r\n\r\n820\r\n00:44:35,440 --> 00:44:37,040\r\nI + really hope so.\r\n\r\n821\r\n00:44:42,800 --> 00:44:44,998\r\nI'm sorry.\r\n\r\n822\r\n00:44:45,000 + --> 00:44:47,518\r\nI was doing the right thing.\r\n\r\n823\r\n00:44:47,520 + --> 00:44:49,638\r\nI'm only permitted one message.\r\n\r\n824\r\n00:44:49,640 + --> 00:44:53,318\r\nI hope it gets to you.\r\n\r\n825\r\n00:44:53,320 --> + 00:44:54,560\r\nI love you.\r\n\r\n826\r\n00:44:55,560 --> 00:44:57,520\r\nI + love you, too.\r\n\r\n827\r\n00:44:59,920 --> 00:45:01,440\r\nDon't we, Tigmi?\r\n\r\n828\r\n00:45:03,600 + --> 00:45:05,238\r\nYou know,\r\n\r\n829\r\n00:45:05,240 --> 00:45:07,880\r\nwe'll + break it if it we watch it\r\ntoo many more times.\r\n\r\n830\r\n00:45:14,400 + --> 00:45:15,800\r\nI wonder if he looks different.\r\n\r\n831\r\n00:45:18,560 + --> 00:45:22,318\r\nWe're coming, Vinder.\r\n\r\n832\r\n00:45:22,320 --> 00:45:26,118\r\nWe + waited and now we're looking\r\nand we're close.\r\n\r\n833\r\n00:45:26,120 + --> 00:45:28,318\r\nWe'll be there soon.\r\n\r\n834\r\n00:45:34,000 --> 00:45:37,600\r\nMe + and your beautiful\r\nas yet unborn child.\r\n\r\n835\r\n00:45:52,000 --> + 00:45:53,440\r\nThis is your home?\r\n\r\n836\r\n00:45:55,040 --> 00:45:56,240\r\nIt + was.\r\n\r\n837\r\n00:45:57,880 --> 00:46:01,438\r\nLooks like the Flux ripped\r\nthrough + here, too.\r\n\r\n838\r\n00:46:01,440 --> 00:46:03,358\r\nI can take you anywhere.\r\n\r\n839\r\n00:46:03,360 + --> 00:46:06,198\r\nNo. I have to find someone...\r\n\r\n840\r\n00:46:06,200 + --> 00:46:09,318\r\nMate, it's a lost cause...\r\n\r\n841\r\n00:46:09,320 + --> 00:46:10,718\r\nNo.\r\n\r\n842\r\n00:46:10,720 --> 00:46:12,518\r\nI know + she would've been here.\r\n\r\n843\r\n00:46:12,520 --> 00:46:14,600\r\nI need + to find her.\r\n\r\n844\r\n00:46:16,280 --> 00:46:17,478\r\nStay in touch.\r\n\r\n845\r\n00:46:17,480 + --> 00:46:19,598\r\nWhenever you need us, press 0.\r\n\r\n846\r\n00:46:19,600 + --> 00:46:21,398\r\nIt's a direct line to us.\r\n\r\n847\r\n00:46:21,400 --> + 00:46:23,200\r\nBe safe.\r\n\r\n848\r\n00:46:55,480 --> 00:46:57,638\r\nI'm + back home.\r\n\r\n849\r\n00:46:57,640 --> 00:47:00,478\r\nI came looking for + you.\r\n\r\n850\r\n00:47:00,480 --> 00:47:02,680\r\nBut there's no home left.\r\n\r\n851\r\n00:47:04,120 + --> 00:47:06,080\r\nThe Flux took that, too.\r\n\r\n852\r\n00:47:14,640 --> + 00:47:15,880\r\nBut I'm not giving up.\r\n\r\n853\r\n00:47:17,960 --> 00:47:19,878\r\nI'll + find you...\r\n\r\n854\r\n00:47:19,880 --> 00:47:21,560\r\n..whatever it takes.\r\n\r\n855\r\n00:47:34,400 + --> 00:47:36,080\r\nDoctor!\r\n\r\n856\r\n00:47:37,160 --> 00:47:38,358\r\nOh, + no...\r\n\r\n857\r\n00:47:38,360 --> 00:47:39,398\r\nThat you yelling?\r\n\r\n858\r\n00:47:39,400 + --> 00:47:41,358\r\nWhat's the matter?\r\n\r\n859\r\n00:47:41,360 --> 00:47:42,638\r\nWhat's + that?\r\n\r\n860\r\n00:47:42,640 --> 00:47:44,558\r\nA Weeping Angel. Don't + blink.\r\n\r\n861\r\n00:47:44,560 --> 00:47:45,758\r\nWhy not?\r\n\r\n862\r\n00:47:45,760 + --> 00:47:48,718\r\nKeep your eyes on the Angel,\r\nstay behind by me...\r\n\r\n863\r\n00:47:48,720 + --> 00:47:50,878\r\nI think I just blinked.\r\n\r\n864\r\n00:47:50,880 --> + 00:47:54,280\r\nIt's at the controls. Doctor.\r\n\r\n865\r\n00:47:57,960 --> + 00:47:59,720\r\nThe Angel has the TARDIS.\r\n\r\n866\r\n00:48:32,440 --> 00:48:34,398\r\nCan + you state your name, please?\r\n\r\n867\r\n00:48:34,400 --> 00:48:36,358\r\nClaire + Brown.\r\n\r\n868\r\n00:48:36,360 --> 00:48:39,078\r\nWe're missing a little + girl.\r\nTen years old.\r\n\r\n869\r\n00:48:39,080 --> 00:48:40,758\r\nMaggie! + Maggie! Maggie!\r\n\r\n870\r\n00:48:40,760 --> 00:48:42,638\r\nIt's happening + again.\r\n\r\n871\r\n00:48:42,640 --> 00:48:46,158\r\nWas that scarecrow there\r\na + minute ago?\r\n\r\n872\r\n00:48:46,160 --> 00:48:49,398\r\nEveryone in the + village disappears\r\non the 21st of November 1967.\r\n\r\n873\r\n00:48:49,400 + --> 00:48:51,118\r\nTonight.\r\n\r\n874\r\n00:48:51,120 --> 00:48:53,518\r\nWhat's + going on?!\r\n\r\n875\r\n00:48:53,520 --> 00:48:55,200\r\nJericho, wait!\r\n\r\n876\r\n00:48:57,040 + --> 00:48:58,800\r\nI'm not blinking!\r\n\r\n877\r\n00:48:59,040 --> 00:50:00,800\r\nCREDITS\r\n\r\n" + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce9949099443145-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Disposition: + - 'attachment; filename="Doctor Who 13x03 - Chapter Three: Once, Upon Time.UKTV/TORRENTGALAXY.en-en.srt"' + Content-Type: + - text/srt;charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:05 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=5JtvIuTrgq0NuvTn2x4NQBrOU7mBruJF5qRYxuWe%2Fd5MCIIGvbBz%2B9CjZMxzfxPG0fNHyH8NhtH1Wfp03j%2F7pWjuv%2Baab6XvYC9eqFUIKDdt0%2BloZ38NnAhBFAPrs4ULO%2FKYgIOr"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + X-Robots-Tag: + - noindex + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/subtitulamos/test_download_subtitle_not_exist.yaml b/tests/cassettes/subtitulamos/test_download_subtitle_not_exist.yaml new file mode 100644 index 00000000..50b9a56c --- /dev/null +++ b/tests/cassettes/subtitulamos/test_download_subtitle_not_exist.yaml @@ -0,0 +1,608 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8ce99493b80386c2-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:06 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=pvGf3BTMEtEEtUY300hx5ruulqLS8bX7K57ocXRD%2F9ZN8zEYluCAbM3j%2B33YR%2BW1EFMs4eBc6CRJ5ZyhuMNYclNighZHI2hauxymGT%2FZv4G1KqY3pIYU7NTU%2Bnq%2B4ECSkUcHrOVo"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j; path=/; HttpOnly + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-RAY: + - 8ce99494ccb0214e-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:06 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=YEjbRaMgf6CmfjuBzQ87cUCd0BI8CkS2qUPb3FmntsBR90eS2116UfArSyyAu%2BaMN7n8x6mdBzZ%2FfNyZO32TEZZBOhY8xvzb2ro7%2FFFjQ2cS6oTOZ25ZyUOIWRdnc2dB2P0l290o"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '50' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce99495ea322180-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:06 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=AEXGnsG104Zmb2JKS5fY7mECuq%2Fbr30GZt8XBF0bV4BpTPiGRTePYmGu4EIphLS%2BYH%2BamBqivzzEFwIDgzBIKitQ6xQTYxr1fJgEWzsSxId92G25j56Rko5hTbhrp%2F2lwOKuOQFH"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 8ce9949acd216bca-SIN + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:07 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=U8W22Dh4ZmI0xE5fMIdTMW4F97fAhekJhn01FtPyeXnrgmQYIIWUXt%2FaOsHbq%2FrlVGAKZTTUdTEiaVXRpsGSoZwn97RcDOqwtm%2BztuTss38AtSGCYlbFoSjp7znY4OggRPredjfx"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 473\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8ce9949f6e04cc4b-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 06 Oct 2024 23:55:08 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=tzitQbsoj8Z8lx7oy32KPd8ZYcQRkPmYvli871rvdWDFIV7vUcD9xFuS6Wfn1JhUtZHJ7Obh%2FzOyCyvCPS8HBGifM1yrOGU5%2BLquOyIlEJ7%2BHOY6PSZrjFG1Zmqyo9d1cjL71G%2Fp"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + cf-cache-status: + - DYNAMIC + content-length: + - '28387' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/conftest.py b/tests/conftest.py index 061d269f..4bdbd69b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -129,7 +129,6 @@ def episodes() -> dict[str, Episode]: audio_codec='Dolby Digital', imdb_id='tt6674448', size=505152010, - hashes={}, ), 'got_s03e10': Episode( os.path.join( @@ -454,6 +453,13 @@ def episodes() -> dict[str, Episode]: 1, 1, ), + 'dw_s13e03': Episode( + 'Doctor.Who.2005.S13E03.Chapter.Three.Once.Upon.Time.1080p.AMZN.WEB-DL.DDP5.1.H.264-NOSIVID.mkv', + 'Doctor Who', + 13, + 3, + year=2005, + ), } diff --git a/tests/providers/test_subtitulamos.py b/tests/providers/test_subtitulamos.py index 1c96e724..482237d5 100644 --- a/tests/providers/test_subtitulamos.py +++ b/tests/providers/test_subtitulamos.py @@ -2,7 +2,8 @@ import pytest from babelfish import Language, language_converters # type: ignore[import-untyped] -from subliminal.providers.subtitulamos import SubtitulamosProvider +from subliminal.exceptions import NotInitializedProviderError +from subliminal.providers.subtitulamos import SubtitulamosProvider, SubtitulamosSubtitle from vcr import VCR # type: ignore[import-untyped] vcr = VCR( @@ -32,6 +33,13 @@ def test_logout(): assert provider.session is None +@pytest.mark.integration() +def test_logout_without_initialization(): + provider = SubtitulamosProvider() + with pytest.raises(NotInitializedProviderError): + provider.terminate() + + @pytest.mark.integration() @vcr.use_cassette def test_download_subtitle(episodes): @@ -47,6 +55,41 @@ def test_download_subtitle(episodes): assert subtitle.is_valid() is True +@pytest.mark.integration() +@vcr.use_cassette +def test_download_subtitle_last_season(episodes): + video = episodes['dw_s13e03'] + languages = {Language('eng'), Language('spa')} + with SubtitulamosProvider() as provider: + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) >= 1 + subtitle = subtitles[0] + + provider.download_subtitle(subtitle) + assert subtitle.content is not None + assert subtitle.is_valid() is True + + +@pytest.mark.integration() +@vcr.use_cassette +def test_download_subtitle_not_exist(episodes): + video = episodes['bbt_s07e05'] + languages = {Language('eng'), Language('spa')} + with SubtitulamosProvider() as provider: + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) == 0 + + +@pytest.mark.integration() +def test_download_subtitle_without_initialization(episodes): + video = episodes['bbt_s11e16'] + languages = {Language('eng'), Language('spa')} + + provider = SubtitulamosProvider() + with pytest.raises(NotInitializedProviderError): + provider.list_subtitles(video, languages) + + @pytest.mark.converter() def test_converter_convert_alpha3(): assert language_converters['subtitulamos'].convert('cat') == 'Català' @@ -82,3 +125,20 @@ def test_converter_reverse_country(): @pytest.mark.converter() def test_converter_reverse_name_converter(): assert language_converters['subtitulamos'].reverse('French') == ('fra', None, None) + + +def test_get_matches_episode(episodes): + subtitle = SubtitulamosSubtitle( + language=Language('spa'), + hearing_impaired=True, + page_link=None, + series='The Big Bang Theory', + season=11, + episode=16, + title='the neonatal nomenclature', + year=2007, + release_group='AVS/SVA', + ) + + matches = subtitle.get_matches(episodes['bbt_s11e16']) + assert matches == {'release_group', 'series', 'year', 'country', 'episode', 'season', 'title'} From b4a4f09a050891f828b198b2d1667c1a071380d4 Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Sun, 13 Oct 2024 11:42:19 +0200 Subject: [PATCH 06/14] feat: Add Subtitulamos provider integration - Tweaks and add more tests --- subliminal/providers/subtitulamos.py | 24 +- .../subtitulamos/test_download_subtitle.yaml | 114 +- .../test_download_subtitle_first_episode.yaml | 1880 ++++++++++++++++ .../test_download_subtitle_foo.yaml | 1950 +++++++++++++++++ .../test_download_subtitle_last_season.yaml | 518 +---- .../test_download_subtitle_year.yaml | 1880 ++++++++++++++++ ...test_list_subtitles_not_exist_episode.yaml | 837 +++++++ ...est_list_subtitles_not_exist_language.yaml | 1071 +++++++++ ...test_list_subtitles_not_exist_season.yaml} | 64 +- .../test_list_subtitles_not_exist_series.yaml | 114 + tests/conftest.py | 14 + tests/providers/test_subtitulamos.py | 153 +- 12 files changed, 8069 insertions(+), 550 deletions(-) create mode 100644 tests/cassettes/subtitulamos/test_download_subtitle_first_episode.yaml create mode 100644 tests/cassettes/subtitulamos/test_download_subtitle_foo.yaml create mode 100644 tests/cassettes/subtitulamos/test_download_subtitle_year.yaml create mode 100644 tests/cassettes/subtitulamos/test_list_subtitles_not_exist_episode.yaml create mode 100644 tests/cassettes/subtitulamos/test_list_subtitles_not_exist_language.yaml rename tests/cassettes/subtitulamos/{test_download_subtitle_not_exist.yaml => test_list_subtitles_not_exist_season.yaml} (95%) create mode 100644 tests/cassettes/subtitulamos/test_list_subtitles_not_exist_series.yaml diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index 4dfaa78c..014e9b49 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -156,6 +156,10 @@ def _read_episode_page( if len(series_response) == 0: series_response = self._query_search(series) + if len(series_response) == 0: + msg = 'Series not found' + raise NotExists(msg) + """Provides the URL for a specific episode of the series.""" page_content = self._read_series(f'/shows/{series_response[0]['show_id']}') @@ -164,9 +168,10 @@ def _read_episode_page( (el for el in page_content.select('#season-choices a.choice') if str(season) in el.text), None ) if season_element is None: - raise SeasonEpisodeNotExists + msg = 'Season not found' + raise NotExists(msg) - if 'selected' not in (list[str], season_element.get('class', [])): + if 'selected' not in cast(list[str], season_element.get('class', [])): page_content = self._read_series(cast(str, season_element.get('href', ''))) # Select episode @@ -174,14 +179,13 @@ def _read_episode_page( (el for el in page_content.select('#episode-choices a.choice') if str(episode) in el.text), None ) if episode_element is None: - raise SeasonEpisodeNotExists + msg = 'Episode not found' + raise NotExists(msg) episode_url = cast(str, episode_element.get('href', '')) - if 'selected' not in (list[str], episode_element.get('class', [])): + if 'selected' not in cast(list[str], episode_element.get('class', [])): page_content = self._read_series(episode_url) - # logger.error('No episode url found for %s, season %d, episode %d', series, season, episode) - return page_content, episode_url def _query_provider( @@ -245,7 +249,7 @@ def query( """Query the provider for subtitles.""" try: return self._query_provider(series, season, episode, year) - except SeasonEpisodeNotExists: + except NotExists: return [] def list_subtitles(self, video: Video, languages: Set[Language]) -> list[SubtitulamosSubtitle]: @@ -276,7 +280,9 @@ class SubtitulamosError(ProviderError): pass -class SeasonEpisodeNotExists(SubtitulamosError): +class NotExists(SubtitulamosError): """Exception raised when the season and/or the episode does not exist on provider.""" - pass + def __init__(self, msg: str) -> None: + super().__init__(msg) + logger.debug(f'Unable to download subtitle. Reason: {msg}') diff --git a/tests/cassettes/subtitulamos/test_download_subtitle.yaml b/tests/cassettes/subtitulamos/test_download_subtitle.yaml index 8bc2564a..a815090e 100644 --- a/tests/cassettes/subtitulamos/test_download_subtitle.yaml +++ b/tests/cassettes/subtitulamos/test_download_subtitle.yaml @@ -18,10 +18,8 @@ interactions: body: string: '[]' headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce9945a3de087cc-SIN + - 8d1e52845f5bcfbd-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -29,7 +27,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:54:57 GMT + - Sun, 13 Oct 2024 09:32:25 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -37,17 +35,21 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=P2PksPO1GLUsscF%2Brofh4zRmGP3BH6E9gLQgwho0OxSn7Rf3ED8ryF%2BqcRWGeYkt4na4zlssYzplZZbjmJmlMoCwuL7NUaO7137YCELsl27iAn48dNqloxtbbv7ZZKVXOCslXLot"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Z36bWnsuEhS2SwD9i%2BINWqZupw8LYAyrgkfsJboKy9KewTRdTfSZwZHnB0ZMqObuZ8MlxBMo0W5BWnORlKU%2FeB%2Fi81ab5Cj%2FeXdXcMrVx3hY4pGHaCAK6Th%2BrvqDTQXMaJk7%2FTX4"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Set-Cookie: - - PHPSESSID=ive103k42cnfs2kqb0suklhl2n; path=/; HttpOnly + - PHPSESSID=osdg0h6icivr5tk01oqiu74odj; path=/; HttpOnly Speculation-Rules: - '"/cdn-cgi/speculation"' Transfer-Encoding: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC content-length: - '2' status: @@ -63,7 +65,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=ive103k42cnfs2kqb0suklhl2n + - PHPSESSID=osdg0h6icivr5tk01oqiu74odj Referer: - https://www.subtitulamos.tv User-Agent: @@ -75,7 +77,7 @@ interactions: string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' headers: CF-RAY: - - 8ce9945d7c883147-MAD + - 8d1e528578b0cc4d-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -83,7 +85,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:54:57 GMT + - Sun, 13 Oct 2024 09:32:25 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -91,7 +93,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=%2BOJMm22w3eA5cRC3otJdecn5nySddvR2YaGDgdkPzIBhpVxhWOoI3Whglyp4pGqTbnU04bvuZ9t7vBPQ7eXNtdiqr2mVq%2BSlpziaH84dThtiW96JSY1YtBx0WnJ4Lih9phuDAlK0"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=W8teEwnmy45uQfLksJXXrDBGhcwCizKXbCmcB2Ynrv%2FPBAGZxWX5RjYZpwqrwn57Yv3Q4tGxBosYczxrtzIrnel3VPYykhISJPA%2BN1mhoqJCgzbFZyBAyPMy%2FuZ8OnOylkGfenFZ"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -100,6 +102,8 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC content-length: @@ -117,7 +121,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=ive103k42cnfs2kqb0suklhl2n + - PHPSESSID=osdg0h6icivr5tk01oqiu74odj Referer: - https://www.subtitulamos.tv User-Agent: @@ -129,7 +133,7 @@ interactions: string: '' headers: CF-RAY: - - 8ce9945eca15384a-MAD + - 8d1e52868cbc214a-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -137,7 +141,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:54:57 GMT + - Sun, 13 Oct 2024 09:32:26 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT Location: @@ -147,7 +151,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=zgosl5SjhcSuvGjhlx9P334zEDSRJadWMu4rbK9aG0Da2st7vZqEE4rd0RKVuT6cGeEdxHG%2FO1AUNTaNlsSDglXrgW3wmaYORuOg4nki%2BqW%2BolPE0fOE1a6jwmy2kxy6aCVG0AR2"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=gfCtBoKNuTZI3YYYaulU6qqYIvxXq81CqS8JPkksXdJ2BkS9q4%2FzTyl6IhwfEWJwjwA%2B%2FpyTMsvGFsCUFg5hjNyjZsE6FIzOykNg1DvQndsiaQBB9YsMwkajpU1TcWFjNnynM2eo"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -156,6 +160,8 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC status: @@ -171,7 +177,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=ive103k42cnfs2kqb0suklhl2n + - PHPSESSID=osdg0h6icivr5tk01oqiu74odj Referer: - https://www.subtitulamos.tv User-Agent: @@ -182,10 +188,8 @@ interactions: body: string: '' headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce994600e4cc902-MAD + - 8d1e528788ea6623-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -193,7 +197,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:54:58 GMT + - Sun, 13 Oct 2024 09:32:26 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT Location: @@ -203,7 +207,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ds7cQurCFsVAbV6T6d38amfxWfxbfHxcyx4Al%2BmfXczq6f%2F0AV%2Bc5dOnFaDM22YJCQsDPYYmEAjvZFFZmAJP0oiYSaFqxS2E34jn3ePq2qejmJjJE3w%2FS8b03PPLqdd%2BDuUo6sra"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=GRibn%2FYdsnHhfs7AVSDfkvygN3gB0KkzArn20FrlGtn5yQ7H8N1ot26tEorN65Igynq5rEKsexvpFzB9uFeY3VsHvPcyyNZ9QbjlFiofFyitweL1e%2Fnpbdm8JXw6N82sQJlKtUr8"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -212,6 +216,10 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC status: code: 301 message: Moved Permanently @@ -225,7 +233,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=ive103k42cnfs2kqb0suklhl2n + - PHPSESSID=osdg0h6icivr5tk01oqiu74odj Referer: - https://www.subtitulamos.tv User-Agent: @@ -244,7 +252,7 @@ interactions: href=\"/safari-pinned-tab.svg?v=lkvlWOG2Qx\" color=\"#607dcd\">\n\n\n\n \n - \ \n\n + \ \n\n \ \n \ \n \n
\n

Versiones

\n \
\n \n 2 473\n descargas\n + id=\"count\" class=\"text bold\">2 477\n descargas\n \
\n
\n
\n \ \n\n
\n\n\n" headers: CF-RAY: - - 8ce994619fb0cfc7-MAD + - 8d1e528898106689-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -581,7 +589,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:54:58 GMT + - Sun, 13 Oct 2024 09:32:26 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -589,7 +597,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=7s0QcYuFUxnm7GWDLQiHtlo7JhoZ0m252fbOKE1vngfqZHT3ks3uvfjjJnaQ4i0jBtzzi%2FW9LTvuKFOdVD8AifyLcobLgU8pjU%2BCHJVV%2F0X0Dm%2F5qZCBq6Mn7cCpvP%2BX8Rdm%2BeEt"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=lERtvVSsbpOffN9S1ydFyRCn6IdCMdYKdgR7xmZHxAkQiBFomrYv0fRBx03%2FEG9TRelTYDUQ4WXyG5BvCKKuTYKJySG6sAEHoRuKWLEElK6LRxA2d1gxxGxH0CtknipALOLVQ5f%2B"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -598,6 +606,8 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC content-length: @@ -615,7 +625,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=ive103k42cnfs2kqb0suklhl2n + - PHPSESSID=osdg0h6icivr5tk01oqiu74odj Referer: - https://www.subtitulamos.tv User-Agent: @@ -634,7 +644,7 @@ interactions: href=\"/safari-pinned-tab.svg?v=lkvlWOG2Qx\" color=\"#607dcd\">\n\n\n\n \n - \ \n\n + \ \n\n \ \n \ \n \n
\n

Versiones

\n \
\n \n 3 956\n descargas\n + id=\"count\" class=\"text bold\">3 961\n descargas\n \
\n
\n
\n \ \n\n
\n\n\n" headers: CF-RAY: - - 8ce99467fa18880e-SIN + - 8d1e528adf542f94-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -972,7 +982,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:54:59 GMT + - Sun, 13 Oct 2024 09:32:26 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -980,7 +990,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=F4Rfu0%2BX4NnuYfmWit%2FULY5AzrAxBCPeJJWSStJAmICssmdAQRl7YoDzOFzGHCGhe%2FCqVXqKXZ75T%2FqSEXJrVgOay1d1y4%2BaR0gzZVnFUT6opXFR2ABWoPlXxy%2FcWJS8tabMYwjQ"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=OtL2OoGauptBHLUlN3BxddRdEMO3cx6ltu%2BOnbEuH9fw%2BdqNWcFPF5%2FUoO%2FdxA8qgtO%2F6BznqJ6p4wWUTBBS3HzMqR%2FjhdrAxLHgs9SZbyJDjsROYCoiDt5302Pp5ZSJxy6dAe%2FO"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -989,6 +999,8 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC content-length: @@ -1006,7 +1018,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=ive103k42cnfs2kqb0suklhl2n + - PHPSESSID=osdg0h6icivr5tk01oqiu74odj Referer: - https://www.subtitulamos.tv User-Agent: @@ -1025,7 +1037,7 @@ interactions: href=\"/safari-pinned-tab.svg?v=lkvlWOG2Qx\" color=\"#607dcd\">\n\n\n\n \n - \ \n\n + \ \n\n \ \n \ \n \n
\n

Versiones

\n \
\n \n 5 655\n descargas\n + 594 Espa\xF1ol (Latinoam\xE9rica) - 2.973 Espa\xF1ol (Espa\xF1a) + - 2.098' >\n \n 5 665\n descargas\n \
\n
\n
\n \ \n\n
\n \n\n\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce9946e0cfa2fb7-MAD + - 8d1e528cfc8a66a7-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -1529,7 +1539,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:00 GMT + - Sun, 13 Oct 2024 09:32:27 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -1537,7 +1547,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=6cJv9HOj3vBK6BsfdHgFaKVRm2GXUx0kZAI8NyDyshxSO8RTBvvFCMMeb4LP5MhZuYf92FiikU%2Bdy8drEaA6XRcpI0%2BUdqqmZfxlxTIBEooUSavKTlg2qgKM9se%2FsJ9NhjD0aUZR"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=3SL2eTkI%2FcqOiuqOBgaloSavjMjkJIm7mIKSx7wKTKPWtXUg2uoDnD%2BEDQJrIOTkWKTswnVJfMFOzKyz6BCnBtFmxhMzJ%2FvvJbxfDJiuTY1eIF8d6ZdIAN1tD39lZnnTTxZBHgkz"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -1546,6 +1556,10 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC content-length: - '42016' status: @@ -1561,9 +1575,9 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=ive103k42cnfs2kqb0suklhl2n + - PHPSESSID=osdg0h6icivr5tk01oqiu74odj Referer: - - /episodes/1722/the-big-bang-theory-11x16-the-neonatal-nomenclature + - https://www.subtitulamos.tv/episodes/1722/the-big-bang-theory-11x16-the-neonatal-nomenclature User-Agent: - Subliminal/2.2 method: GET @@ -1960,7 +1974,7 @@ interactions: sync, corrected by elderman ==\r\n@elder_man\r\n\r\n" headers: CF-RAY: - - 8ce994703d842156-MAD + - 8d1e528ffc1bcc40-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -1970,7 +1984,7 @@ interactions: Content-Type: - text/srt;charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:00 GMT + - Sun, 13 Oct 2024 09:32:27 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -1978,7 +1992,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=JaBiUEWhCc8LeZru%2Fd9ERoeCI2Ofr2BstaESN%2FVhZVEknDsrYCV%2FR%2FB7GQDPZCOdkZASeNlFsyxCEqFSH9V8ixEAd9Jux%2FRDDFzMacBRucTV4mFm3m1yvA09Ld6kakX2KWFArg1O"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=%2BEN3FQEZf3lctArrcrYNdPHOnxmqftDtQ0PIIuSKznRmN3pO0s12X0FZ6eNt8kNUtlG1BkPm%2B6cRlRMGtNjCpDW%2Fg%2FKg9GSDzsJ9opOFdzJHW2QGz4oWl50HfGhWhJqrFqdexeVt"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Transfer-Encoding: @@ -1987,6 +2001,8 @@ interactions: - PHP/7.4.14 X-Robots-Tag: - noindex + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC status: diff --git a/tests/cassettes/subtitulamos/test_download_subtitle_first_episode.yaml b/tests/cassettes/subtitulamos/test_download_subtitle_first_episode.yaml new file mode 100644 index 00000000..b195b51b --- /dev/null +++ b/tests/cassettes/subtitulamos/test_download_subtitle_first_episode.yaml @@ -0,0 +1,1880 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Charmed+%282018%29 + response: + body: + string: '[{"show_id":445,"show_name":"Charmed (2018)"}]' + headers: + CF-RAY: + - 8d1e52a84af62fa1-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:31 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=4vCFbAK912KyH0qp3LFs0NBg%2F9piMowjFSZb%2Ber78S%2B6IzAgSmqd0ETV4eyheCxRUScBTF95tQkOtsJRDuUNrtUwiIK5m%2BHIYDuo0SlfnvDQCiQJ4t7Y9vxk5QZhVGe7T8C9uZVN"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=7t8en6ji8cki73m0qqojpfn56u; path=/; HttpOnly + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '46' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=7t8en6ji8cki73m0qqojpfn56u + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/445 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e52a96a43cbc7-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:31 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/8216 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=eFGtzuFsUaVcSzKAvh%2FyGs8mgp1di3KemgVWI75fNGXIzpqd6P5JfGkMM6h1h8%2BhbDR%2F35rDzZWxoWCtfEF1QoI977MeGByVTAkKfPo5DwqnFqB1zq5t8sl4hN7fR0pp8dqe9EQv"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=7t8en6ji8cki73m0qqojpfn56u + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/8216 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e52aa6abb66ad-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:31 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/8216/charmed-2018-3x18-i-dreamed-a-dream + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=w8Py0DoWFzvASlkyS25haYeV%2BL3Yyt9EvFhdMWKN8q2hZdPDK1Z4WYgaYK2oYCUe2qthQMIe5zqNBgcMmNNwbetN32uXA5tBVxXLGCfmhSVWHhqrjMgHcmiI00RLUgvkeVWXjT%2BW"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=7t8en6ji8cki73m0qqojpfn56u + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/8216/charmed-2018-3x18-i-dreamed-a-dream + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Charmed (2018) + 3x18 - I Dreamed a Dream\u2026 - Subtitulamos.tv - Subt\xEDtulos de series\n + \ \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Charmed + (2018)

\n
\n
\n
\n

I Dreamed a Dream\u2026

\n + \
(3x18)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 1\n + \ 2\n 3\n
\n
\n
\n EPISODIO\n + \
\n 18\n
\n
\n
\n\n
\n + \
\n

Versiones

\n
\n \n 91\n descargas\n
\n + \
\n
\n \n\n
English
\n\n
\n + \ \n \n + \ \n
\n + \

versi\xF3n

\n

CAKES

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ seriofilo\n \n
\n + \
\n \n + Son los de Addicted sin acotaciones. El final de la temporada.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n\n + \
\n \n

Comentarios ({{comments.length}})

\n \n\n + \ \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e52ab7e36384c-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:32 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=jTFXcdRdUq463NsR%2FGArA9qQL85MoafwIslTjS7Rw%2B1U4Lk2O6JhE%2BZjTihl89u2SJdiDLSnjaQ5TQka8fouhNzWxwtLUN0a63MK6klWQduiVp3wBIebPVxHrurjmHCx2cN6BWom"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '18744' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=7t8en6ji8cki73m0qqojpfn56u + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/3250/charmed-2018-1x01-pilot + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Charmed (2018) + 1x01 - Pilot - Subtitulamos.tv - Subt\xEDtulos de series\n \n\n\n + \
\n + \
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Charmed + (2018)

\n
\n
\n
\n

Pilot

\n
(1x01)
\n
\n + \
\n \n + \ Subir resincronizaci\xF3n\n \n \n + \
\n
\n
\n TEMPORADA\n
\n 1\n 2\n 3\n
\n
\n
\n + \ EPISODIO\n + \
\n 1\n + \ 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n 333\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

PLUTONiUM

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ angeline\n \n
\n + \
\n \n + De addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

PLUTONiUM

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 25%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

PLUTONiUM

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 7%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e52ad498e65fa-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:32 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=rbBac6PAdoEiQoq0H34OtT20k2XB1H4ynL8FUSkj1ThjxIMLo3QHpPF%2F8uSqIsnUD6YOIN%2FBrqATY7QQBy1YGizdBV7j3Ie2WsYq%2BXMad2pryZieKb8k3cKByrupotY1p8aX%2FNJa"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '27536' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=7t8en6ji8cki73m0qqojpfn56u + Referer: + - https://www.subtitulamos.tv/episodes/3250/charmed-2018-1x01-pilot + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/subtitles/8099/download + response: + body: + string: !!binary | + MQ0KMDA6MDA6MDAsMDk0IC0tPiAwMDowMDowMiwwMjgNClRoaXMgaXMgbm90IGEgd2l0Y2ggaHVu + dC4NCg0KMg0KMDA6MDA6MjIsMTI2IC0tPiAwMDowMDoyNCwyNTkNCi0gVGFrZSBteSBib290cyBv + ZmYuDQotIFBsZWFzZSENCg0KMw0KMDA6MDA6MjQsMjY1IC0tPiAwMDowMDoyNSw1MzINCkl0J3Mg + YSBtaWxpdGFyeS10aGVtZWQgcGFydHksDQoNCjQNCjAwOjAwOjI1LDUzOCAtLT4gMDA6MDA6Mjcs + ODMwDQotIGFuZCBJIGRvbid0IGhhdmUgYW55dGhpbmcgdGhpcyB1Z2x5Lg0KLSBJIHNhaWQgbm8u + DQoNCjUNCjAwOjAwOjI3LDgzNiAtLT4gMDA6MDA6MjksNDU3DQpBbmQgd2h5IGFyZSB0aG9zZSBH + cmVlaw0KcGFydGllcyBhbHdheXMgdGhlbWVkPw0KDQo2DQowMDowMDoyOSw0NjMgLS0+IDAwOjAw + OjMxLDQwOQ0KSGF2ZSB5b3UgdGhvdWdodCBhYm91dA0KdGhhdCwgcHN5Y2hvbG9naWNhbGx5LA0K + DQo3DQowMDowMDozMSw0MTUgLS0+IDAwOjAwOjMzLDMzNQ0KdGhhdCB0aGV5J3JlIGFsd2F5cyBw + cmV0ZW5kaW5nDQp0byBiZSBvdGhlciBwZW9wbGU/DQoNCjgNCjAwOjAwOjMzLDM0MSAtLT4gMDA6 + MDA6MzQsOTMwDQpObywgYmVjYXVzZSBJIGFjdHVhbGx5IGxpa2UgdG8gaGF2ZSBmdW4uDQoNCjkN + CjAwOjAwOjM0LDkzNiAtLT4gMDA6MDA6MzYsNzQ3DQpEb24ndCB5b3UgdGhyZWF0ZW4gbWUhDQoN + CjEwDQowMDowMDozNiw3NTMgLS0+IDAwOjAwOjM4LDQ0MA0KVGhpcyBpcyBub3QgYSB3aXRjaCBo + dW50Lg0KDQoxMQ0KMDA6MDA6MzgsNDQ2IC0tPiAwMDowMDo0MSwzNDcNCkl0J3MgYSByZWNrb25p + bmcsIGFuZCBJIHdhbnQgaGltIG91dCENCg0KMTINCjAwOjAwOjQyLDIwOCAtLT4gMDA6MDA6NDMs + OTEyDQpNb20/DQoNCjEzDQowMDowMDo0Myw5ODEgLS0+IDAwOjAwOjQ1LDc0OA0KV2hhdCB3YXMg + dGhhdCBhYm91dD8NCg0KMTQNCjAwOjAwOjQ2LDAwMiAtLT4gMDA6MDA6NDgsNzAzDQpQcm9mZXNz + b3IgVGhhaW5lIGlzDQpwcm90ZXN0aW5nIGhpcyBzdXNwZW5zaW9uLg0KDQoxNQ0KMDA6MDA6NDks + MDE5IC0tPiAwMDowMDo1MiwwNzMNCkFuZCBzaW5jZSBBbmdlbGEgV3UgY2FuJ3QgdGVzdGlmeS4u + Lg0KDQoxNg0KMDA6MDA6NTMsODgxIC0tPiAwMDowMDo1NSw2ODANCkFyZSB5b3Ugb2theSwgTW9t + Pw0KDQoxNw0KMDA6MDA6NTUsODk3IC0tPiAwMDowMDo1NywyMTYNClllYWguDQoNCjE4DQowMDow + MDo1OSw0NTMgLS0+IDAwOjAxOjAxLDM4Ng0KSSdtIGZpbmUsIGhvbmVzdGx5Lg0KDQoxOQ0KMDA6 + MDE6MDMsOTU3IC0tPiAwMDowMTowNSw5OTENCkxvb2sgYXQgYm90aCBvZiB5b3UuDQoNCjIwDQow + MDowMTowNywwMzMgLS0+IDAwOjAxOjA5LDI2MQ0KTXkgYmVhdXRpZnVsIGdpcmxzLg0KDQoyMQ0K + MDA6MDE6MDksMjY3IC0tPiAwMDowMToxMSw5MzUNCk9rYXkuIERpZCB5b3UgaGF2ZSBhIGdsYXNz + DQpvZiB3aW5lIG9yIHNvbWV0aGluZywgTW9tPw0KDQoyMg0KMDA6MDE6MTEsOTQxIC0tPiAwMDow + MToxMyw2NDENCk5vLg0KDQoyMw0KMDA6MDE6MTMsODM0IC0tPiAwMDowMToxNiwxMDENCk9uZS4g + Q29tZSBoZXJlLg0KDQoyNA0KMDA6MDE6MjIsMjMxIC0tPiAwMDowMToyNCwzNDINCkkgZmVlbCBz + byBsdWNreQ0KDQoyNQ0KMDA6MDE6MjQsNDExIC0tPiAwMDowMToyNywxMTINCnRvIGJlIHRoZSBt + b3RoZXIgb2YgdHdvIHNwZWNpYWwNCg0KMjYNCjAwOjAxOjI3LDExOCAtLT4gMDA6MDE6MjgsNDg0 + DQp5b3VuZyB3b21lbi4NCg0KMjcNCjAwOjAxOjI4LDgwMiAtLT4gMDA6MDE6MzEsMDkwDQpTcGVj + aWFsIGluIHN1Y2ggZGlmZmVyZW50IHdheXMuDQoNCjI4DQowMDowMTozMiw2NTMgLS0+IDAwOjAx + OjM0LDIyMw0KQWx3YXlzIHJlbWVtYmVyIHRoYXQuDQoNCjI5DQowMDowMTozNSwzNzAgLS0+IDAw + OjAxOjM3LDQwMw0KWW91J3JlIGJldHRlciB0b2dldGhlci4NCg0KMzANCjAwOjAxOjM3LDY5MSAt + LT4gMDA6MDE6MzksODU4DQpZb3VyIGRpZmZlcmVuY2VzIGFyZSB5b3VyIHN0cmVuZ3Rocy4NCg0K + MzENCjAwOjAxOjM5LDkyNyAtLT4gMDA6MDE6NDIsOTI4DQpBbmQgbm90aGluZyBpcyBzdHJvbmdl + cg0KdGhhbiB5b3VyIHNpc3Rlcmhvb2QuDQoNCjMyDQowMDowMTo0NSwwOTggLS0+IDAwOjAxOjQ2 + LDk2NQ0KTnVydHVyZSB0aGF0Lg0KDQozMw0KMDA6MDE6NDcsMDM0IC0tPiAwMDowMTo0OCw4OTQN + CkRvbid0IHdvcnJ5LCBNb20uIFdlIGFyZSBhbGwgb3ZlciBpdC4NCg0KMzQNCjAwOjAxOjQ4LDkw + MCAtLT4gMDA6MDE6NTEsMTUyDQpZZWFoLCB3ZSdyZSBnb25uYSBudXJ0dXJlIGl0IHNvIGhhcmQu + DQoNCjM1DQowMDowMTo1MSwxNTggLS0+IDAwOjAxOjUyLDg1Nw0KQnV0IGxhdGVyLiBDYW4gd2Ug + Z28/DQoNCjM2DQowMDowMTo1Miw4NjMgLS0+IDAwOjAxOjU1LDIwNw0KSXQncyBiYWQgZW5vdWdo + IEknbSB0aGUgb25seQ0KZnJlc2htYW4gd2l0aCBhIGN1cmZldy4NCg0KMzcNCjAwOjAxOjU1LDUx + NSAtLT4gMDA6MDE6NTcsNjU1DQpZZXMuIEdvLg0KDQozOA0KMDA6MDI6MDAsOTE4IC0tPiAwMDow + MjowMiwwODQNCi0gQnllLg0KLSBCeWUuDQoNCjM5DQowMDowMjowMyw5ODQgLS0+IDAwOjAyOjA2 + LDc1MQ0KXw0KDQo0MA0KMDA6MDI6MTcsNjczIC0tPiAwMDowMjoxOSw2NDANCkJyaWFuLCB3aHkg + YXJlIHlvdSBmb2xsb3dpbmcgbWU/DQoNCjQxDQowMDowMjoxOSw2NDYgLS0+IDAwOjAyOjIxLDIw + OQ0KSSB3YXMgb24gbXkgd2F5IG91dCwNCg0KNDINCjAwOjAyOjIxLDIxNSAtLT4gMDA6MDI6MjIs + ODYzDQphbmQgeW91IHdlcmUgZ29ubmEgZ28gdGhyb3VnaCB0aGUgd29vZHMuDQoNCjQzDQowMDow + MjoyMiw4NjkgLS0+IDAwOjAyOjI1LDI1OA0KLSBJdCdzIHNhZmUuDQotIENvbWUgb24uDQoNCjQ0 + DQowMDowMjoyNSw0MTQgLS0+IDAwOjAyOjI2LDk3Mg0KSSdtIGRyaXZpbmcgeW91Lg0KDQo0NQ0K + MDA6MDI6MjYsOTc4IC0tPiAwMDowMjoyOCw0ODcNCldoYXQ/DQoNCjQ2DQowMDowMjoyOCw1NTgg + LS0+IDAwOjAyOjMwLDM0Mg0KRnJpZW5kcyBnaXZlIGZyaWVuZHMgcmlkZXMuDQoNCjQ3DQowMDow + MjozMCw1MTEgLS0+IDAwOjAyOjMyLDE3OA0KV2Ugd2VyZSBnb25uYSB0cnkgc29tZSBzcGFjZS4N + Cg0KNDgNCjAwOjAyOjMzLDY0NyAtLT4gMDA6MDI6MzUsMzQ3DQpGb3IgYm90aCBvZiB1cy4NCg0K + NDkNCjAwOjAyOjM1LDk0MSAtLT4gMDA6MDI6MzcsNjE2DQpKdXN0IGJlIGNhcmVmdWwuDQoNCjUw + DQowMDowMjozOCwxNjcgLS0+IDAwOjAyOjM5LDY4NA0KT2theT8NCg0KNTENCjAwOjAzOjI5LDM3 + MyAtLT4gMDA6MDM6MzEsMTkwDQpfDQoNCjUyDQowMDowMzozMSwyMjEgLS0+IDAwOjAzOjMzLDM3 + MQ0KSGV5LCBJIGhhdmUgdG8gZ28uIFNvbWV0aGluZyBpcyB3cm9uZy4NCg0KNTMNCjAwOjA0OjIw + LDQ4MSAtLT4gMDA6MDQ6MjMsMjE1DQpIZWFyIHRoaXMhIEkgaGF2ZSB0aHJlZSENCg0KNTQNCjAw + OjA0OjM0LDQ3OSAtLT4gMDA6MDQ6MzYsMzI4DQpFc3NlIHF1YW0gdmlkZXJpLg0KDQo1NQ0KMDA6 + MDQ6MzYsNTIyIC0tPiAwMDowNDozOSw1NTYNCkl0IG1lYW5zLCB0byBiZSByYXRoZXIgdGhhbiBz + ZWVtIHRvIGJlLg0KDQo1Ng0KMDA6MDQ6MzksNTYyIC0tPiAwMDowNDo0Miw0MzANClRoYXQgaXMg + dGhlIEthcHBhIFRhdQ0KS2FwcGEgbW90dG8sIHdoaWNoIG1lYW5zDQoNCjU3DQowMDowNDo0Miw0 + MzYgLS0+IDAwOjA0OjQ0LDU3OQ0Kd2Ugc3RyaXZlIHRvIGJlIGF1dGhlbnRpYy4gU21pbGUuDQoN + CjU4DQowMDowNDo0NSw2MzkgLS0+IDAwOjA0OjQ3LDU5Mw0KTG93ZXIgdGhlIHZvbHVtZSwgcGxl + YXNlLg0KDQo1OQ0KMDA6MDQ6NDcsNjIyIC0tPiAwMDowNDo1MCw1OTANCk5lZWQgSSByZW1pbmQg + eW91IHRoYXQgc2luY2UNCnRoZSBBbmdlbGEgV3UgY29tYSBzaXRjaCwNCg0KNjANCjAwOjA0OjUw + LDY1OCAtLT4gMDA6MDQ6NTIsMzkxDQp3ZSBhcmUgImRyeSwiDQoNCjYxDQowMDowNDo1Miw0NjAg + LS0+IDAwOjA0OjU0LDYyNw0KYW5kIG5vdCBsb29raW5nIHRvIGF0dHJhY3QgYXR0ZW50aW9uLg0K + DQo2Mg0KMDA6MDQ6NTQsODEzIC0tPiAwMDowNDo1Niw5NDYNCllvdSdyZSBnb2luZyB0byBydXNo + LCByaWdodD8NCg0KNjMNCjAwOjA0OjU2LDk1MiAtLT4gMDA6MDQ6NTksNTU2DQpPaCwgbm8uIFNo + ZSdzIGRlZmluaXRlbHkgbm90Lg0KDQo2NA0KMDA6MDU6MDEsMzM2IC0tPiAwMDowNTowMywyMzYN + Ck15IEdvZCwgd2hhdCBhcmUgeW91IGRvaW5nIGhlcmU/IQ0KDQo2NQ0KMDA6MDU6MDMsMzA0IC0t + PiAwMDowNTowNSw0NDMNCk1vbSBoYXMgYmVlbiB0ZXh0aW5nLg0KU2hlIG5lZWRzIHVzIGJvdGgg + YXQgaG9tZS4NCg0KNjYNCjAwOjA1OjA1LDQ0OSAtLT4gMDA6MDU6MDYsOTY3DQpXaGF0IGRvIHlv + dSBtZWFuLCBzaGUgbmVlZHMgdXM/DQoNCjY3DQowMDowNTowNiw5NzMgLS0+IDAwOjA1OjA4LDEy + NQ0KWW91IG9idmlvdXNseSBnb3QgdGhlIG1lc3NhZ2VzLg0KDQo2OA0KMDA6MDU6MDgsMTMxIC0t + PiAwMDowNTowOSw5NTINCllvdSBjaGVjayB5b3VyIHBob25lIGV2ZXJ5IGZpdmUgc2Vjb25kcy4N + Cg0KNjkNCjAwOjA1OjEwLDkwMCAtLT4gMDA6MDU6MTEsOTI3DQpGaW5lLg0KDQo3MA0KMDA6MDU6 + MTEsOTMzIC0tPiAwMDowNToxNCwzMDANCkknbGwganVzdCBoYW5nIG91dCBoZXJlLA0KZW5nYWdl + IHRoZXNlIHlvdW5nIG1lbg0KDQo3MQ0KMDA6MDU6MTQsMzA2IC0tPiAwMDowNToxNiwwMDYNCmlu + IGRpc2N1c3Npb25zIGFib3V0IHJhcGUgY3VsdHVyZS4NCg0KNzINCjAwOjA1OjE2LDAxMiAtLT4g + MDA6MDU6MTcsNTgzDQpTdG9wIGl0ISBJJ20uLi4gSSdtIGNvbWluZy4NCg0KNzMNCjAwOjA1OjE3 + LDY1MiAtLT4gMDA6MDU6MTksMjUxDQpIZXksIHJlbWVtYmVyLCB3aGVuIGl0IGNvbWVzIHRvIGNv + bnNlbnQsDQoNCjc0DQowMDowNToxOSwyNTcgLS0+IDAwOjA1OjIxLDQ1OA0KeW91IGNhbiBjaGFu + Z2UgeW91ciBtaW5kcw0KYXQgYW55IHRpbWUsIG9rYXk/DQoNCjc1DQowMDowNToyMSw0NjQgLS0+ + IDAwOjA1OjIyLDk5Nw0KT2gsIG15IEdvZCwgeW91IGp1c3Qga2lsbGVkIG1lLg0KDQo3Ng0KMDA6 + MDU6MjMsMDAzIC0tPiAwMDowNToyNCw2MDMNCkknbSBsaXRlcmFsbHkgZGVhZCByaWdodCBub3cu + DQoNCjc3DQowMDowNToyNSw0MTYgLS0+IDAwOjA1OjI3LDI0Ng0KSXMgdGhhdCB2b21pdCBvbiBt + eSBib290cz8NCg0KNzgNCjAwOjA1OjI3LDI1MiAtLT4gMDA6MDU6MjksNTM4DQpOby4gTWF5YmUu + DQoNCjc5DQowMDowNToyOSw3NTEgLS0+IDAwOjA1OjMxLDUzNA0KV2hhdD8gU28sIEknbGwgY2xl + YW4gdGhlbS4NCg0KODANCjAwOjA1OjM1LDk0MSAtLT4gMDA6MDU6MzgsMzc1DQpIb3cgdGhlIGhl + bGwgZGlkIGZyZWFraW5nDQpiaXJkcyBnZXQgaW4gaGVyZT8NCg0KODENCjAwOjA1OjM5LDgwMSAt + LT4gMDA6MDU6NDIsMjM1DQpXaHkgaXMgaXQgc28gY29sZD8NCg0KODINCjAwOjA1OjQyLDc4MSAt + LT4gMDA6MDU6NDQsNDgxDQpNb20/DQoNCjgzDQowMDowNTo0NSwzNjkgLS0+IDAwOjA1OjQ2LDgx + Ng0KTW9tPw0KDQo4NA0KMDA6MDU6NTIsOTgyIC0tPiAwMDowNTo1NCw0MjkNCk1vbT8NCg0KODUN + CjAwOjA2OjAyLDk2OCAtLT4gMDA6MDY6MDQsNDM2DQotIE5vIQ0KLSBNb20hDQoNCjg2DQowMDow + NjowNCw0NDIgLS0+IDAwOjA2OjA1LDYwOA0KTW9tIQ0KDQo4Nw0KMDA6MDY6MTIsMDA1IC0tPiAw + MDowNjoxNyw4NzkNCi0gU3luY2VkIGFuZCBjb3JyZWN0ZWQgYnkgbWVkdmlkZWNlazAwNyAtDQot + IHd3dy5hZGRpYzdlZC5jb20gLQ0KDQo4OA0KMDA6MDY6MTksNTQ1IC0tPiAwMDowNjoyMSw0MTQN + Cl8NCg0KODkNCjAwOjA2OjIxLDQyMCAtLT4gMDA6MDY6MjMsNTg2DQpBbm90aGVyIGhhcmQgcGFz + cy4NCg0KOTANCjAwOjA2OjIzLDU5MiAtLT4gMDA6MDY6MjUsMDAxDQotIEhtbS4NCi0gV2hhdCBh + bSBJIGdvbm5hIGRvPw0KDQo5MQ0KMDA6MDY6MjUsMDA3IC0tPiAwMDowNjoyNywzODYNCk15IEFp + cmJuYiBzbWVsbHMgbGlrZSBvbGQgaG90IGRvZ3MuDQoNCjkyDQowMDowNjoyOCwzMTcgLS0+IDAw + OjA2OjI5LDg4NA0KTG9vaywgZG9uJ3Qgd29ycnkuIFRoZSBwbGFjZXMgYXJlDQoNCjkzDQowMDow + NjoyOSw4OTAgLS0+IDAwOjA2OjMxLDU5OQ0KbmljZXIgdGhlIGNsb3NlciB3ZSBnZXQgdG8gY2Ft + cHVzLg0KDQo5NA0KMDA6MDY6MzEsNjYzIC0tPiAwMDowNjozNCw4NjQNCkl0J3MsIHVoLCBjbGFz + cyB3YXJmYXJlDQpyaWdodCBoZXJlIGluIEhpbGx0b3duZS4NCg0KOTUNCjAwOjA2OjM1LDQ3NCAt + LT4gMDA6MDY6MzcsODQxDQpPciAiSGVsbHRvd25lLCIgYXMNCnRoZSBjb29sIGtpZHMgY2FsbCBp + dC4NCg0KOTYNCjAwOjA2OjM3LDg0NyAtLT4gMDA6MDY6MzksMjMxDQpCZSBzdXJlIHRvIHRocm93 + IHRoYXQgb3V0IGEgbG90Lg0KDQo5Nw0KMDA6MDY6MzksMjM3IC0tPiAwMDowNjo0MSwxMDQNCk9o + LCB5ZWFoLCB5ZWFoLCB5ZWFoLA0Kbm90aGluZyBidXQgY29vbCBoZXJlLg0KDQo5OA0KMDA6MDY6 + NDIsNjA3IC0tPiAwMDowNjo0NCwwNDANClllYWgsIEkgc2VlLg0KDQo5OQ0KMDA6MDY6NDUsMzc3 + IC0tPiAwMDowNjo0Niw4NjENCkxldCdzIGdldCB5b3Ugb3V0IG9mIHRoZSByYWluLg0KDQoxMDAN + CjAwOjA2OjQ2LDg2NyAtLT4gMDA6MDY6NDgsOTQ1DQpEb24ndCB3b3JyeS4gV2UncmUtd2UncmUN + Cmdvbm5hIGZpbmQgeW91IGEgcGxhY2UsIG9rYXk/DQoNCjEwMQ0KMDA6MDY6NDgsOTUxIC0tPiAw + MDowNjo1MCw2OTkNCllvdSBzdXJlIEknbSBub3QNCmxlYW5pbmcgb24geW91IHRvbyBtdWNoPw0K + DQoxMDINCjAwOjA2OjUwLDcwNSAtLT4gMDA6MDY6NTIsMjcyDQotIE5haC4NCi0gSXQncyBqdXN0 + IHRoaXMgd2hvbGUgam9iDQoNCjEwMw0KMDA6MDY6NTIsMjc4IC0tPiAwMDowNjo1Myw1NDYNCmNh + bWUgdXAgb3V0IG9mIHRoZSBibHVlLA0KDQoxMDQNCjAwOjA2OjUzLDU1MiAtLT4gMDA6MDY6NTUs + ODI1DQotIGFuZCB5b3UncmUgdGhlIG9ubHkgcGVyc29uIEkga25vdy4NCi0gS2VlcCBsZWFuaW5n + Lg0KDQoxMDUNCjAwOjA2OjU2LDcyMSAtLT4gMDA6MDY6NTgsNjU1DQpJIGxpa2UgbGVhbmluZy4N + Cg0KMTA2DQowMDowNzowNCwzNDQgLS0+IDAwOjA3OjA1LDY5Nw0KTWFjZT8NCg0KMTA3DQowMDow + NzowNyw3MjAgLS0+IDAwOjA3OjA5LDE2NQ0KSGV5LCBNYWN5LCB5b3Ugb2theT8NCg0KMTA4DQow + MDowNzowOSwyMzQgLS0+IDAwOjA3OjEwLDg2Nw0KSS4uLg0KDQoxMDkNCjAwOjA3OjEwLDkzNiAt + LT4gMDA6MDc6MTIsNzAyDQpUaGF0IGhvdXNlLg0KDQoxMTANCjAwOjA3OjE0LDc4OSAtLT4gMDA6 + MDc6MTcsNTkwDQpZZWFoLiBZb3UgcHJvYmFibHkgc2F3IHRoYXQgb24gdGhlIG5ld3MuDQoNCjEx + MQ0KMDA6MDc6MTgsMDE5IC0tPiAwMDowNzoyMCw5NTYNCl8NCg0KMTEyDQowMDowNzozMCwyMjIg + LS0+IDAwOjA3OjMxLDgyMQ0KRmlyc3Qtd2VlayBqaXR0ZXJzPw0KDQoxMTMNCjAwOjA3OjMyLDM0 + NSAtLT4gMDA6MDc6MzMsODIzDQpQcm9mZXNzb3IgVGhhaW5lLg0KDQoxMTQNCjAwOjA3OjMzLDk1 + NSAtLT4gMDA6MDc6MzUsMDU0DQpZZXMuIEhpLg0KDQoxMTUNCjAwOjA3OjM1LDA2MCAtLT4gMDA6 + MDc6MzcsMzYwDQotIE5pY2UgdG8gbWVldCB5b3UuDQotIFlvdSwgdG9vLg0KDQoxMTYNCjAwOjA3 + OjM3LDM2NiAtLT4gMDA6MDc6NDAsMTY3DQpTb3JyeSBmb3IgbXkgYWJzZW5jZQ0KaW4geW91ciBm + aXJzdCBmZXcgZGF5cywNCg0KMTE3DQowMDowNzo0MCwxNzMgLS0+IDAwOjA3OjQyLDQ3NA0KYnV0 + IEknbSBiYWNrIG5vdywNCg0KMTE4DQowMDowNzo0Miw2NjcgLS0+IDAwOjA3OjQ1LDQwMQ0KcmVp + bnN0YXRlZCBhbmQgYWJzb2x2ZWQuDQoNCjExOQ0KMDA6MDc6NDUsNDcwIC0tPiAwMDowNzo0Niw4 + MzYNCk5vIGhhcmFzc21lbnQuDQoNCjEyMA0KMDA6MDc6NDYsOTA1IC0tPiAwMDowNzo0OCw0MzgN + Ckkgc2F5IHRoYXQganVzdCB0bw0KDQoxMjENCjAwOjA3OjQ4LDUwNyAtLT4gMDA6MDc6NTAsNzA3 + DQotIGdldCBpdCBvdXQgaW4gdGhlIG9wZW4uDQotIFllcy4NCg0KMTIyDQowMDowNzo1MCw3NzUg + LS0+IDAwOjA3OjUyLDQ0Mg0KWWVzLCBvZiBjb3Vyc2UuIEkgdW5kZXJzdGFuZC4NCg0KMTIzDQow + MDowNzo1Miw0NDggLS0+IDAwOjA3OjU1LDM0OA0KR29vZC4gSSBsb29rIGZvcndhcmQNCnRvIHdv + cmtpbmcgd2l0aCB5b3UuDQoNCjEyNA0KMDA6MDc6NTgsNzE0IC0tPiAwMDowODowMCwyNTANCkxv + dmVseSBibG91c2UuDQoNCjEyNQ0KMDA6MDg6MDQsNTAxIC0tPiAwMDowODowNiwyNzUNCk1zLiBW + ZXJhLg0KDQoxMjYNCjAwOjA4OjA3LDMyNSAtLT4gMDA6MDg6MDgsOTU4DQpVaCwgcGxlYXNlLCB3 + YWl0Lg0KDQoxMjcNCjAwOjA4OjEwLDU2NiAtLT4gMDA6MDg6MTIsNTk1DQpJIHJlYWQgeW91ciBh + cnRpY2xlIGluIENyaXRpY2FsIElucXVpcnkuDQoNCjEyOA0KMDA6MDg6MTIsNjAxIC0tPiAwMDow + ODoxNCw3MDENClZlcnkgd2VsbC13cml0dGVuLCBpZiBhIGJpdCBob3N0aWxlLg0KDQoxMjkNCjAw + OjA4OjE0LDcwNyAtLT4gMDA6MDg6MTYsMjk5DQpSZWFkaW5nIGl0IG1hZGUgbWUgZmVlbCBhcyBp + ZiBteSBwZW5pcw0KDQoxMzANCjAwOjA4OjE2LDMzMyAtLT4gMDA6MDg6MTcsNjY1DQpoYWQgYmVl + biB0b3JuIGZyb20gbXkgYm9keS4NCg0KMTMxDQowMDowODoxNyw2NzEgLS0+IDAwOjA4OjE5LDMw + NA0KT2gsIGdvb2QuIFlvdSByZWFkIGl0IHJpZ2h0Lg0KDQoxMzINCjAwOjA4OjE5LDMxMCAtLT4g + MDA6MDg6MjEsNjI1DQpQZXJmZWN0LiBTbywgbG9vaywgSQ0Ka25vdyB5b3UgZG9uJ3QgbGlrZSBt + ZQ0KDQoxMzMNCjAwOjA4OjIxLDYzMSAtLT4gMDA6MDg6MjQsMjMyDQpiZWNhdXNlIEkgcmVwbGFj + ZWQgeW91cg0KbW90aGVyIGluIHRoZSBkZXBhcnRtZW50Li4uDQoNCjEzNA0KMDA6MDg6MjQsMjM4 + IC0tPiAwMDowODoyNSw4MzYNCk9oLCB0aGF0J3MsIGxpa2UsIGZpZnRoIG9uIHRoZSBsaXN0DQoN + CjEzNQ0KMDA6MDg6MjUsODQyIC0tPiAwMDowODoyNywzNzUNCm9mIHdoeSBJIGRvbid0IGxpa2Ug + eW91Lg0KDQoxMzYNCjAwOjA4OjI3LDM4MSAtLT4gMDA6MDg6MzAsNDMzDQpGaWZ0aD8gT2theS4g + V2VsbCwgeW91IGNhbg0KdGVsbCBtZSBvbmUgdG8gZm91ciBsYXRlci4NCg0KMTM3DQowMDowODoz + MCw0MzkgLS0+IDAwOjA4OjMxLDg4Mw0KT25lLCB0aGV5IHNob3VsZCBoYXZlDQpuZXZlciBoaXJl + ZCBhIGNpcyBtYWxlDQoNCjEzOA0KMDA6MDg6MzEsODg5IC0tPiAwMDowODozMywyODgNCnRvIGxl + YWQgdGhlIFdvbWVuJ3MgU3R1ZGllcyBkZXBhcnRtZW50Lg0KDQoxMzkNCjAwOjA4OjMzLDI5NCAt + LT4gMDA6MDg6MzUsMzIwDQpBbHRob3VnaCB0aGlzIGNpcyBtYWxlDQpoYXMgYmVlbiBwdWJsaXNo + ZWQgMTIgdGltZXMNCg0KMTQwDQowMDowODozNSwzMjYgLS0+IDAwOjA4OjM3LDE2NQ0KYnkgcmVz + cGVjdGVkIGZlbWluaXN0IGpvdXJuYWxzDQoNCjE0MQ0KMDA6MDg6MzcsMTcxIC0tPiAwMDowODoz + OSwyOTENCmFuZCByZS10d2VldGVkIGJ5IFJveGFuZSBHYXkuDQoNCjE0Mg0KMDA6MDg6MzksMzU5 + IC0tPiAwMDowODo0MSw2OTMNCkNoZWNrIFR3aXR0ZXIuIFlvdSdsbCBoYXZlDQp0byBzY3JvbGwg + YmFjayBhIGZldyBtb250aHMuDQoNCjE0Mw0KMDA6MDg6NDEsNzYyIC0tPiAwMDowODo0Myw4OTUN + Ci0gU2hlJ3MgcXVpZXQgcHJvbGlmaWMuDQotIENvbmdyYXR1bGF0aW9ucy4NCg0KMTQ0DQowMDow + ODo0Myw5MDEgLS0+IDAwOjA4OjQ1LDQ0Nw0KVGhhbmsgeW91Lg0KDQoxNDUNCjAwOjA4OjQ1LDQ1 + MyAtLT4gMDA6MDg6NDcsMzMyDQpObywgYnV0IHRoaXMtdGhpcyByZWFsbHkgaXNuJ3QgYWJvdXQg + bWUuDQoNCjE0Ng0KMDA6MDg6NDcsMzM4IC0tPiAwMDowODo0OSw0NzENCkkgd2FudGVkIHRvIGNo + ZWNrIGluIG9uIHlvdS4NCg0KMTQ3DQowMDowODo1MCwxNTggLS0+IDAwOjA4OjUyLDg3MQ0KTWFr + ZSBzdXJlIHlvdSdyZSBkb2luZyBva2F5Lg0KDQoxNDgNCjAwOjA4OjUyLDk0MCAtLT4gMDA6MDg6 + NTUsNjQwDQpTZWUgaG93LCB5b3Uga25vdywgeW91J3JlIGZlZWxpbmcuDQoNCjE0OQ0KMDA6MDg6 + NTcsNjExIC0tPiAwMDowOTowMCw4NDYNCkkgd2lsbCBmZWVsIGJldHRlciBvbmNlDQp0aGlzIGNv + bnZlcnNhdGlvbiBpcyBvdmVyLg0KDQoxNTANCjAwOjA5OjA5LDU5NyAtLT4gMDA6MDk6MTIsMDk3 + DQpZb3UgcmVhbGl6ZSB3aXRob3V0IGENCnBlcm1pdCwgdGhhdCdzIHZhbmRhbGlzbT8NCg0KMTUx + DQowMDowOToxMiwyMjggLS0+IDAwOjA5OjE0LDQ2NQ0KUHJvZmVzc29yIFRoYWluZSBpcyBhIHNl + eHVhbCBwcmVkYXRvci4NCg0KMTUyDQowMDowOToxNCw0NzEgLS0+IDAwOjA5OjE2LDczOA0KLSBI + ZSBzaG91bGQgbm90IGJlIGJhY2sgdGVhY2hpbmcuDQotIEhlIGhhZCBhIGhlYXJpbmcsDQoNCjE1 + Mw0KMDA6MDk6MTYsNzQ0IC0tPiAwMDowOToxOCwwNDMNCmhlIHdhcyBleG9uZXJhdGVkLCBpdCdz + IG92ZXIuDQoNCjE1NA0KMDA6MDk6MTgsMDQ5IC0tPiAwMDowOToxOSw1MjENClRoZSBtYWluIHdp + dG5lc3MgYWdhaW5zdA0KaGltIGlzIGluIGEgY29tYS4NCg0KMTU1DQowMDowOToxOSw1MjcgLS0+ + IDAwOjA5OjIxLDM0MQ0KSXQgd2FzIGEgImhlIHNhaWQsIHNoZSBzYWlkIiBzaXR1YXRpb24uDQoN + CjE1Ng0KMDA6MDk6MjEsMzQ3IC0tPiAwMDowOToyMiw3MTMNCi0gVGhyZWUgInNoZSBzYWlkcy4i + DQotIEFuZCwNCg0KMTU3DQowMDowOToyMiw3MTkgLS0+IDAwOjA5OjI1LDE4Ng0KQW5nZWxhIFd1 + PyBDbGVhcmx5IHVuc3RhYmxlLg0KDQoxNTgNCjAwOjA5OjI1LDU5OCAtLT4gMDA6MDk6MjgsNDY1 + DQpJZiB5b3VyIG1vdGhlciBoYWRuJ3Qgc3RhcnRlZA0KdGhpcyB3aG9sZSB3aXRjaCBodW50Li4u + DQoNCjE1OQ0KMDA6MDk6MzAsMDIzIC0tPiAwMDowOTozMiwzOTANClRoaXMgaXMgbm90IGEgd2l0 + Y2gNCmh1bnQsIGl0J3MgYSByZWNrb25pbmcuDQoNCjE2MA0KMDA6MDk6MzIsNDU4IC0tPiAwMDow + OTozNSwwMjQNClNlZW1zIGxpa2UgeW91ciBtb20ncyB0aGUNCm9uZSB3aG8gaGFkIHRoZSByZWNr + b25pbmcuDQoNCjE2MQ0KMDA6MDk6MzYsOTMwIC0tPiAwMDowOTozOCwxNjINCkRhbW4gaXQhDQoN + CjE2Mg0KMDA6MDk6MzgsODEzIC0tPiAwMDowOTo0MCwzMTINCllvdS1Zb3UgY2FuJ3QganVzdC4u + Lg0KDQoxNjMNCjAwOjA5OjQ1LDY4OSAtLT4gMDA6MDk6NDcsMjcxDQpZb3UgcHVuY2hlZCBhbiB1 + bmRlcmdyYWR1YXRlLg0KDQoxNjQNCjAwOjA5OjQ3LDM0MCAtLT4gMDA6MDk6NDksMTA2DQpJbiBi + cm9hZCBkYXlsaWdodC4gV2hpY2ggaXMgYXNzYXVsdC4NCg0KMTY1DQowMDowOTo0OSwxNzUgLS0+ + IDAwOjA5OjUyLDQ3Ng0KQW5kIEkgcmVncmV0IHRoYXQuIENvbXBsZXRlbHkNCm15IGJhZCwgYnV0 + LCBOaWtvLi4uDQoNCjE2Ng0KMDA6MDk6NTIsNTQ1IC0tPiAwMDowOTo1NCw2NzkNCkRldGVjdGl2 + ZSBIYW1hZGEsIGlmIHlvdSBoZWFyZCBoaW0sDQoNCjE2Nw0KMDA6MDk6NTQsNzQ3IC0tPiAwMDow + OTo1Niw2NDcNCnRoZSB0aGluZ3MgaGUgd2FzIHNheWluZyBhYm91dCBteSBtb20uLi4NCg0KMTY4 + DQowMDowOTo1Niw3MTYgLS0+IDAwOjA5OjU5LDI1MA0KSSBqdXN0IHRoaW5rIHRoYXQgaGUga25v + d3MNCm1vcmUgdGhhbiBoZSdzIGxldHRpbmcgb24uDQoNCjE2OQ0KMDA6MDk6NTksNDkxIC0tPiAw + MDoxMDowMiwxMTMNCi0gTm8sIGRvbid0IGRvIHRoYXQuDQotIFdoYXQ/DQoNCjE3MA0KMDA6MTA6 + MDIsMTE5IC0tPiAwMDoxMDowNCw5ODkNCkxvb2sgYXQgZWFjaCBvdGhlciBsaWtlDQp0aGlzIGlz + IGNyYXp5LiBJdCdzIG5vdC4NCg0KMTcxDQowMDoxMDowNSwyNDMgLS0+IDAwOjEwOjA3LDgwNg0K + V2FybmVyIFRoYWluZSB3YXMgYQ0Ka25vd24gc2V4dWFsIHByZWRhdG9yLg0KDQoxNzINCjAwOjEw + OjA3LDgxNCAtLT4gMDA6MTA6MTAsNTczDQpNeSBtb20gc3VwcG9ydGVkIEFuZ2VsYQ0KV3Ugd2hl + biBzaGUgY2FtZSBmb3J3YXJkLg0KDQoxNzMNCjAwOjEwOjEwLDU3OSAtLT4gMDA6MTA6MTEsODQ4 + DQpTdWRkZW5seSBBbmdlbGEgT0RzLA0KDQoxNzQNCjAwOjEwOjExLDg1NCAtLT4gMDA6MTA6MTMs + OTU0DQpldmVuIHRob3VnaCBzaGUncyBhIHN0cmFpZ2h0LUENCnNjaG9sYXJzaGlwIHN0dWRlbnQ/ + DQoNCjE3NQ0KMDA6MTA6MTMsOTYwIC0tPiAwMDoxMDoxNiwyNzUNCi0gQW5kIHRoZW4gbXkgbW9t + IGRpZXM/DQotIEluIGJvdGggY2FzZXMsDQoNCjE3Ng0KMDA6MTA6MTYsMjgxIC0tPiAwMDoxMDox + Nyw2ODUNCnRoZXJlJ3Mgbm8gZXZpZGVuY2Ugb2YgZm91bCBwbGF5Lg0KDQoxNzcNCjAwOjEwOjE3 + LDY5MSAtLT4gMDA6MTA6MTgsODM5DQpCZWNhdXNlIHlvdSdyZSBub3QgbG9va2luZyENCg0KMTc4 + DQowMDoxMDoxOCw4NDUgLS0+IDAwOjEwOjIxLDgxOA0KTWVsLCB5b3VyIG1vdGhlcidzIGRlYXRo + DQp3YXMgYSBob3JyaWJsZSBhY2NpZGVudC4NCg0KMTc5DQowMDoxMDoyMSw4MjQgLS0+IDAwOjEw + OjIzLDY1OQ0KQnV0IHlvdXIgc2lzdGVyIHNhaWQgc2hlIGhhZCBhbHdheXMNCg0KMTgwDQowMDox + MDoyMyw2NjUgLS0+IDAwOjEwOjI1LDQ5OA0KYmVlbiB0cnlpbmcgdG8gZml4IHRoYXQgd2luZG93 + Li4uDQoNCjE4MQ0KMDA6MTA6MjUsNzcxIC0tPiAwMDoxMDoyNywyNzcNCmFuZCBzaGUnZCBiZWVu + IGRyaW5raW5nLg0KDQoxODINCjAwOjEwOjI3LDI4MyAtLT4gMDA6MTA6MjgsOTU5DQpZZWFoLCBJ + IGtub3cgd2hhdCdzIG9uIHRoZSByZXBvcnQuDQoNCjE4Mw0KMDA6MTA6MzAsMDk5IC0tPiAwMDox + MDozMiw1NjYNCldlJ3JlIGdvbm5hIHRyeSBhbmQgdGFsaw0KQ2FtIG91dCBvZiBwcmVzc2luZyBj + aGFyZ2VzLg0KDQoxODQNCjAwOjEwOjMyLDYzNSAtLT4gMDA6MTA6MzQsOTM1DQpHaXZlbiBldmVy + eXRoaW5nIHRoYXQncw0KaGFwcGVuZWQgaW4geW91ciBsaWZlLg0KDQoxODUNCjAwOjEwOjM1LDAw + NCAtLT4gMDA6MTA6MzYsNDM2DQpPaCwgdGhhbmsgeW91Lg0KDQoxODYNCjAwOjEwOjM2LDUwNSAt + LT4gMDA6MTA6MzgsNDM4DQpUaGF0J3MgZ3JlYXQuDQoNCjE4Nw0KMDA6MTA6NDAsMjY1IC0tPiAw + MDoxMDo0MSw3NDINCllvdSBoaXQgc29tZW9uZT8NCg0KMTg4DQowMDoxMDo0Myw3NzkgLS0+IDAw + OjEwOjQ1LDYxMg0KRG9uJ3Qgd29ycnkgYWJvdXQgaXQuDQoNCjE4OQ0KMDA6MTA6NDYsMDY3IC0t + PiAwMDoxMDo0Nyw4MzANClNlcmlvdXNseT8NCg0KMTkwDQowMDoxMDo0OCwyNzEgLS0+IDAwOjEw + OjUxLDE1MQ0KWW91J3JlIGEgZ3JhZHVhdGUgc3R1ZGVudCwNCmEgdGVhY2hpbmcgYXNzaXN0YW50 + Lg0KDQoxOTENCjAwOjEwOjUxLDE1NyAtLT4gMDA6MTA6NTIsNTI5DQpZb3UgY291bGQgbG9zZSB5 + b3VyIGpvYi4NCg0KMTkyDQowMDoxMDo1Miw3NTEgLS0+IDAwOjEwOjU0LDc0Mw0KU2VlLCB0aGlz + IGlzIHdoeSBJIGRvbid0DQpjb21lIGhvbWUgYW55bW9yZS4NCg0KMTkzDQowMDoxMDo1NCw3NjAg + LS0+IDAwOjEwOjU1LDc2MA0KWW91J3JlIGxvc2luZyBpdC4NCg0KMTk0DQowMDoxMDo1NSw3NjYg + LS0+IDAwOjEwOjU3LDk1NA0KLSBUaGVuIHdoeSBhcmUgeW91IGhlcmU/DQotIEJlY2F1c2UgSSBu + ZWVkZWQgY2xvdGhlcy4NCg0KMTk1DQowMDoxMDo1Nyw5NjAgLS0+IDAwOjEwOjU5LDE4NQ0KRm9y + IHJ1c2guDQoNCjE5Ng0KMDA6MTE6MDAsMjk0IC0tPiAwMDoxMTowMiwxMjkNCllvdSdyZSBydXNo + aW5nIHRoYXQgc29yb3JpdHk/DQoNCjE5Nw0KMDA6MTE6MDIsMTk3IC0tPiAwMDoxMTowMyw0OTIN + ClllYWguIEkgaGF2ZSBiZWVuLg0KDQoxOTgNCjAwOjExOjAzLDQ5OCAtLT4gMDA6MTE6MDQsNDk4 + DQpBbGwgbW9udGguDQoNCjE5OQ0KMDA6MTE6MDUsMTkxIC0tPiAwMDoxMTowNiw1OTANCkFuZCBp + ZiBJIGJlY29tZSBhIHNpc3Rlci4uLg0KDQoyMDANCjAwOjExOjA2LDU5NiAtLT4gMDA6MTE6MDcs + OTY4DQpBIHNpc3Rlci4NCg0KMjAxDQowMDoxMTowOCwwMzcgLS0+IDAwOjExOjA5LDk4Nw0KVGhh + dCdzIGp1c3Qgd2hhdCBpdCdzIGNhbGxlZC4gQW55d2F5Li4uDQoNCjIwMg0KMDA6MTE6MDksOTkz + IC0tPiAwMDoxMToxMSwwNzQNCldvdy4NCg0KMjAzDQowMDoxMToxMiwwMjcgLS0+IDAwOjExOjEz + LDgwNw0KSSdkIG1vdmUgaW50byB0aGUgS2FwcGEgaG91c2UuDQoNCjIwNA0KMDA6MTE6MTMsOTE0 + IC0tPiAwMDoxMToxNiwzNDgNCkkganVzdCBjYW4ndCBsaXZlIGhlcmUgYW55bW9yZSwgTWVsLg0K + DQoyMDUNCjAwOjExOjE2LDM1NCAtLT4gMDA6MTE6MTgsNTM3DQpZb3UncmUgc28gYW5ncnkgYWxs + IHRoZSB0aW1lLg0KDQoyMDYNCjAwOjExOjE4LDc4MSAtLT4gMDA6MTE6MjAsNzU3DQpBbmQgeW91 + J3JlIG9ic2Vzc2VkIHdpdGggTW9tJ3MgZGVhdGguDQoNCjIwNw0KMDA6MTE6MjAsNzYzIC0tPiAw + MDoxMToyMiw0MzANCi0gT2JzZXNzZWQ/DQotIFllcywgeW91J3JlIG9ic2Vzc2VkLg0KDQoyMDgN + CjAwOjExOjIyLDQzNiAtLT4gMDA6MTE6MjUsMjA0DQpCZWNhdXNlIEknbSBub3QganVzdCBtb3Zp + bmcNCm9uIGxpa2Ugbm90aGluZyBoYXBwZW5lZD8NCg0KMjA5DQowMDoxMToyNSw5OTEgLS0+IDAw + OjExOjI3LDIxNQ0KVGhhdCdzIG5vdCBmYWlyLg0KDQoyMTANCjAwOjExOjM5LDM5NyAtLT4gMDA6 + MTE6NDAsODMwDQpIaS4NCg0KMjExDQowMDoxMTo0MCw4OTkgLS0+IDAwOjExOjQzLDY2Ng0KVW0s + IEknbSBNYWN5IFZhdWdobi4NCg0KMjEyDQowMDoxMTo0Myw3MzUgLS0+IDAwOjExOjQ1LDQ3OA0K + LSBZZXM/DQotIFNvcnJ5LCB1bSwNCg0KMjEzDQowMDoxMTo0NSw0ODQgLS0+IDAwOjExOjQ3LDQx + OA0KLSBJIGp1c3QgbW92ZWQgdG8gSGlsbHRvd25lLi4uDQotIFVtLi4uDQoNCjIxNA0KMDA6MTE6 + NDcsNjY2IC0tPiAwMDoxMTo0OSw2MzkNCi0gSSdtIHNvcnJ5LiBUaGlzIGlzbid0IGEgZ3JlYXQg + dGltZS4NCi0gTm8sIHdhaXQuDQoNCjIxNQ0KMDA6MTE6NDksNjQ1IC0tPiAwMDoxMTo1MCw3NzcN + ClBsZWFzZS4NCg0KMjE2DQowMDoxMTo1MSw4NzcgLS0+IDAwOjExOjUzLDYxMA0KSSB0aGluayBJ + J20geW91ciBzaXN0ZXIuDQoNCjIxNw0KMDA6MTI6MDcsNTUzIC0tPiAwMDoxMjowOSwyNTINCkl0 + J3MgaGVyLCByaWdodD8NCg0KMjE4DQowMDoxMjowOSwyNTggLS0+IDAwOjEyOjEwLDM4Mw0KWW91 + ciBtb3RoZXIuDQoNCjIxOQ0KMDA6MTI6MTAsMzg5IC0tPiAwMDoxMjoxMiwyNTUNClllYWguIERl + ZmluaXRlbHkuDQoNCjIyMA0KMDA6MTI6MTIsMzI0IC0tPiAwMDoxMjoxMyw4MDENCkFuZCBvdXIg + aG91c2UuDQoNCjIyMQ0KMDA6MTI6MTMsODA5IC0tPiAwMDoxMjoxNSwwNzUNCldlbGwsIGl0J3Mg + bm90IHRoZSBjaXJjdWl0Lg0KDQoyMjINCjAwOjEyOjE1LDA4MSAtLT4gMDA6MTI6MTYsNDU0DQot + IE1lbCwgbG9vayBhdCB0aGlzLg0KLSBPaC4NCg0KMjIzDQowMDoxMjoxNiw0NjAgLS0+IDAwOjEy + OjE3LDk1Mg0KSSBzYXcuIFdoZXJlJ2QgeW91IGdldCBpdD8NCg0KMjI0DQowMDoxMjoxNyw5NTgg + LS0+IDAwOjEyOjE5LDg5MQ0KSSBmb3VuZCBpdCBhZnRlciBteSBkYWQgZGllZC4NCg0KMjI1DQow + MDoxMjoxOSw4OTcgLS0+IDAwOjEyOjIyLDI4Mg0KSSBqdXN0IGdvdCBhIGpvYiBhdCB0aGUgdW5p + dmVyc2l0eS4NCg0KMjI2DQowMDoxMjoyMiwyODggLS0+IDAwOjEyOjI0LDMzMw0KSSB3YXMgd2Fs + a2luZyBieSBhbmQgc2F3IHlvdXIgaG91c2UuDQoNCjIyNw0KMDA6MTI6MjQsMzM5IC0tPiAwMDox + MjoyNSw4NjkNClNvIG91ciBtb20gZ2V0cyBtdXJkZXJlZA0KYW5kLCB0aHJlZSBtb250aHMNCg0K + MjI4DQowMDoxMjoyNSw4NzUgLS0+IDAwOjEyOjI3LDE1MQ0KbGF0ZXIsIHlvdSBqdXN0IGhhcHBl + biB0byBkcml2ZSBieT8NCg0KMjI5DQowMDoxMjoyNywxNTcgLS0+IDAwOjEyOjI4LDMzMw0KLSBT + aGUgd2Fzbid0IG11cmRlcmVkLg0KLSBTdG9wIGl0Lg0KDQoyMzANCjAwOjEyOjI4LDMzOSAtLT4g + MDA6MTI6MzAsMDA1DQotIFdoYXQgZG8geW91IHdhbnQ/DQotIEkgZG9uJ3Qgd2FudCBhbnl0aGlu + Zy4NCg0KMjMxDQowMDoxMjozMCwwMTEgLS0+IDAwOjEyOjMxLDIwMg0KQmVjYXVzZSB3ZSBkb24n + dCBoYXZlIGFueSBtb25leS4NCg0KMjMyDQowMDoxMjozMSwyMDggLS0+IDAwOjEyOjMzLDE0Mg0K + LSBNZWwuDQotIE1vbmV5PyBJIGRvbid0IHdhbnQgbW9uZXkuDQoNCjIzMw0KMDA6MTI6MzMsMTQ4 + IC0tPiAwMDoxMjozNCw2NDANCi0gVGhlbiB3aHkgYXJlIHlvdSBoZXJlPw0KLSBCZWNhdXNlIEkg + anVzdA0KDQoyMzQNCjAwOjEyOjM0LDY0NiAtLT4gMDA6MTI6MzcsMDEzDQpmb3VuZCBvdXQsIGFu + ZCBJIHRob3VnaHQNCm1heWJlIHlvdSB3b3VsZC4uLg0KDQoyMzUNCjAwOjEyOjM5LDM4MyAtLT4g + MDA6MTI6NDAsODE2DQpXaGF0ZXZlci4NCg0KMjM2DQowMDoxMjo0MCw4ODUgLS0+IDAwOjEyOjQz + LDE1Mg0KSXQgd2FzIGNsZWFybHkgYSBtaXN0YWtlLg0KDQoyMzcNCjAwOjEyOjQ4LDIwOCAtLT4g + MDA6MTI6NTAsODI2DQotIEJ1dCB3aHkgbm90IHRyeSBhZ2Fpbj8NCi0gQmVjYXVzZSBJJ20gbm90 + IGJlZ2dpbmcuDQoNCjIzOA0KMDA6MTI6NTEsMTQ2IC0tPiAwMDoxMjo1Myw3NDYNCkkndmUgYmVl + biBmaW5lIG9uIG15IG93bi4NCkkgbGlrZSBiZWluZyBvbiBteSBvd24uDQoNCjIzOQ0KMDA6MTI6 + NTMsNzUyIC0tPiAwMDoxMjo1NSwzMTgNClRoZW4gd2h5J2QgeW91IGdvIHRoZXJlPw0KDQoyNDAN + CjAwOjEyOjU1LDMyNCAtLT4gMDA6MTI6NTYsODIzDQpDdXJpb3NpdHkuDQoNCjI0MQ0KMDA6MTI6 + NTYsODI5IC0tPiAwMDoxMjo1OCw0OTYNClRoYXQncyBhbiBJbnRlcm5ldCBzZWFyY2guDQoNCjI0 + Mg0KMDA6MTI6NTgsNzgyIC0tPiAwMDoxMzowMiw3NTENCkxvb2ssIEktSSBrbm93IHdlIGRvbid0 + DQprbm93IGVhY2ggb3RoZXIgdGhhdCB3ZWxsLg0KDQoyNDMNCjAwOjEzOjAyLDgyMCAtLT4gMDA6 + MTM6MDQsNTg2DQpZZXQuDQoNCjI0NA0KMDA6MTM6MDQsNjU1IC0tPiAwMDoxMzowNywyMjINCkJ1 + dCB5b3UgZGlkbid0IGUtbWFpbCwgeW91IGRpZG4ndCBjYWxsLg0KDQoyNDUNCjAwOjEzOjA3LDI5 + MSAtLT4gMDA6MTM6MDksMjkxDQpZb3UganVzdCB3ZW50IG92ZXIgdGhlcmUuIFdoeT8NCg0KMjQ2 + DQowMDoxMzowOSw3NzIgLS0+IDAwOjEzOjExLDg5NA0KSSBndWVzcyBJIHdhbnRlZCB0bw0KYXNr + ICdlbSBhYm91dCBteSBtb20uDQoNCjI0Nw0KMDA6MTM6MTEsOTAwIC0tPiAwMDoxMzoxMyw2MjQN + CldlbGwsIHdoYXQgZGlkIHlvdXIgZGFkDQpoYXZlIHRvIHNheSBhYm91dCBpdD8NCg0KMjQ4DQow + MDoxMzoxMyw2MzAgLS0+IDAwOjEzOjE2LDc5OA0KVGhhdCBzaGUgZGllZCwgd2hlbiBJIHdhcyB0 + d28uDQoNCjI0OQ0KMDA6MTM6MTYsODA0IC0tPiAwMDoxMzoxOCw2MjQNCk9idmlvdXNseSwgaGUu + Li4gaGUgbGllZC4NCg0KMjUwDQowMDoxMzoxOCw2MzAgLS0+IDAwOjEzOjIwLDM0Mg0KQWxsIHRo + ZSBtb3JlIHJlYXNvbiB0bw0KZ28gYmFjayBvdmVyIHRoZXJlLg0KDQoyNTENCjAwOjEzOjIwLDM0 + OCAtLT4gMDA6MTM6MjEsNzQ4DQotIE5vLg0KLSBMb29rLCB0aGV5IHdlcmUgc2hvY2tlZC4NCg0K + MjUyDQowMDoxMzoyMSw3NTQgLS0+IDAwOjEzOjIzLDUyMA0KLSBJIGJldCBpZiB5b3UgdHJ5IGl0 + IGFnYWluLi4uDQotIE5vLCBJJ20gZG9uZS4NCg0KMjUzDQowMDoxMzoyMyw1MjYgLS0+IDAwOjEz + OjI1LDIyNg0KLSBDb21lIG9uLg0KLSBFbm91Z2gsIG9rYXk/DQoNCjI1NA0KMDA6MTM6MjcsMDc0 + IC0tPiAwMDoxMzoyOCw2NzMNCldoYXQgdGhlIGhlbGw/DQoNCjI1NQ0KMDA6MTM6MjgsNjc5IC0t + PiAwMDoxMzozMCw2NzkNCkktSSBhbSBzbyBzb3JyeS4NCg0KMjU2DQowMDoxMzozMSw0NzYgLS0+ + IDAwOjEzOjM0LDYxMA0KSSBhbSBkcnVuayBhbmQgY2x1bXN5Lg0KSSBzaC4uLiBJIHNob3VsZCBn + by4NCg0KMjU3DQowMDoxMzozOSw5MDQgLS0+IDAwOjEzOjQyLDMzOA0KV2hhdCBlbHNlIGNhbiBJ + IHRlbGwgeW91Pw0KDQoyNTgNCjAwOjEzOjQyLDcyMCAtLT4gMDA6MTM6NDYsMjU1DQpPaCwgd2Ug + aGF2ZSBtYWlkIHNlcnZpY2UNCmV2ZXJ5IHdlZWssICdjYXVzZSB0cnVzdCBtZSwNCg0KMjU5DQow + MDoxMzo0NiwzMjQgLS0+IDAwOjEzOjQ5LDE1NA0KZ2lybHMgYXJlIGp1c3QgYXMgZ3Jvc3MgYXMg + Ym95cy4NCg0KMjYwDQowMDoxMzo0OSwzODkgLS0+IDAwOjEzOjUxLDg1Ng0KQnV0IEthcHBhIGlz + IG5vdCBqdXN0IGFib3V0IHRoZSBwZXJrcy4NCg0KMjYxDQowMDoxMzo1MSw5MjUgLS0+IDAwOjEz + OjU1LDU5Mw0KV2UgYWxzbyBnaXZlIGJhY2suIFRoYXQncw0KcmlnaHQ6IEthcHBhIGlzIHdva2Uu + DQoNCjI2Mg0KMDA6MTM6NTcsMTM4IC0tPiAwMDoxMzo1OCw4NjMNCldlIHZvbHVudGVlciBhdCBI + aWxsdG93bmUgTWVtb3JpYWwuDQoNCjI2Mw0KMDA6MTM6NTgsOTMyIC0tPiAwMDoxNDowMCw4OTgN + ClNvbWUgb2YgdGhlIHNpc3RlcnMNCmhhdmUgYmVlbiBzaXR0aW5nIHZpZ2lsDQoNCjI2NA0KMDA6 + MTQ6MDAsOTY3IC0tPiAwMDoxNDowNCwxNjgNCndpdGggcG9vciBBbmdlbGEgV3UsIGV2ZW4NCnRo + b3VnaCBzaGUgaXMgbm90IEdyZWVrLg0KDQoyNjUNCjAwOjE0OjA0LDIzNyAtLT4gMDA6MTQ6MDUs + NTcwDQpTbyBzYWQuDQoNCjI2Ng0KMDA6MTQ6MDUsNTc2IC0tPiAwMDoxNDowNywyOTMNCklzIHNo + ZSBnb25uYSByZWdhaW4gYnJhaW4gZnVuY3Rpb24/DQoNCjI2Nw0KMDA6MTQ6MDcsMjk5IC0tPiAw + MDoxNDoxMSw5NjgNCk5vLiBCdXQgbm90IGZvciBhIGxhY2sNCm9mIGVmZm9ydCBvbiBvdXIgcGFy + dC4NCg0KMjY4DQowMDoxNDoxMiwyNDUgLS0+IDAwOjE0OjE0LDMxMg0KWWVhaC4NCg0KMjY5DQow + MDoxNDoxNCwzODAgLS0+IDAwOjE0OjE3LDc0OA0KQW55d2F5LCB5b3Ugc2hvdWxkIGFsbA0KYmUg + c28sIHNvLCBzbywgc28gcHJvdWQNCg0KMjcwDQowMDoxNDoxNyw4MTcgLS0+IDAwOjE0OjIwLDM4 + NA0KdG8gaGF2ZSBtYWRlIGl0IHRvIHRoaXMgZmluYWwgcm91bmQuDQoNCjI3MQ0KMDA6MTQ6MjAs + ODg0IC0tPiAwMDoxNDoyNCwxMjENClNvIGdvIGFuZCBlbmpveSBzb21lDQphcHBzLCBhbmQgZ29v + ZCBsdWNrLg0KDQoyNzINCjAwOjE0OjI0LDc5MCAtLT4gMDA6MTQ6MjcsNzExDQpJIGxpa2UgeW91 + ci4uLiB5b3VyIHRvcC4NCg0KMjczDQowMDoxNDoyOCwwMDggLS0+IDAwOjE0OjI5LDM0MQ0KTWFn + Z2llPyBNYWdnaWUuDQoNCjI3NA0KMDA6MTQ6MjksMzQ3IC0tPiAwMDoxNDozMyw3MTcNClVtLCBi + ZXR3ZWVuIHlvdSBhbmQNCm1lLCB5b3UncmUgYSBzaG9vLWluLg0KDQoyNzUNCjAwOjE0OjMzLDkz + MyAtLT4gMDA6MTQ6MzUsMjY2DQpSZWFsbHk/DQoNCjI3Ng0KMDA6MTQ6MzUsMzM1IC0tPiAwMDox + NDozNywyMzUNClVubGVzcyB5b3UsIGxpa2UsIHBvb3AgaW4gYSB2YXNlLA0KDQoyNzcNCjAwOjE0 + OjM3LDI0MSAtLT4gMDA6MTQ6MzksMTgxDQpvciBzcGFjZSBvdXQgb24geW91ciBwaG9uZSBhZ2Fp + bi4NCg0KMjc4DQowMDoxNDozOSwyNTUgLS0+IDAwOjE0OjQwLDU4OA0KSSdtIGp1c3Qga2lkZGlu + Zy4NCg0KMjc5DQowMDoxNDo0MCw1OTQgLS0+IDAwOjE0OjQyLDc0OA0KT2gsIFZpdiwgRHlsYW4u + DQoNCjI4MA0KMDA6MTQ6NDIsNzU0IC0tPiAwMDoxNDo0NSw3NTQNCkkgZG9uJ3QgdGhpbmsgdGhh + dCB5b3UndmUgbWV0IE1hZ2dpZS4NCg0KMjgxDQowMDoxNDo0NSw3NjAgLS0+IDAwOjE0OjQ2LDgw + OQ0KSGkuDQoNCjI4Mg0KMDA6MTQ6NDYsODE1IC0tPiAwMDoxNDo0OCwwNDgNCk1hZ2dpZT8NCg0K + MjgzDQowMDoxNDo0OCwwNTQgLS0+IDAwOjE0OjUwLDA0Nw0KRGlkbid0IHNoZSB1c2VkIHRvIHdv + cmsNCmluIHRoZSBkaW5pbmcgaGFsbD8NCg0KMjg0DQowMDoxNDo1MSwzODQgLS0+IDAwOjE0OjUz + LDMxNw0KT2gsIHVtLCB5ZWFoLCB5ZWFoLg0KDQoyODUNCjAwOjE0OjUzLDM4NiAtLT4gMDA6MTQ6 + NTUsNjkwDQpJLUkgd29ya2VkIGF0IHRoZSBkaW5pbmcNCmhhbGwgbGFzdCBzZW1lc3Rlci4NCg0K + Mjg2DQowMDoxNDo1NSw2OTYgLS0+IDAwOjE0OjU3LDIwMQ0KSSdtIGF0IFNpbHZpbydzIFRyYXR0 + b3JpYSBub3c/DQoNCjI4Nw0KMDA6MTQ6NTcsMjA3IC0tPiAwMDoxNDo1OCw0NzMNCldlIGRvbid0 + IG5lZWQgeW91ciBy6XN1bekuDQoNCjI4OA0KMDA6MTQ6NTksMTE3IC0tPiAwMDoxNTowMSwyNTAN + CkdyZWF0IHNraXJ0LiBXaGVyZSdkIHlvdSBnZXQgaXQ/DQoNCjI4OQ0KMDA6MTU6MDEsMjU2IC0t + PiAwMDoxNTowMiw0NTYNCkhlciBtb20ganVzdCBkaWVkLg0KDQoyOTANCjAwOjE1OjAyLDQ2MiAt + LT4gMDA6MTU6MDMsOTk1DQpJIHNob3VsZCBiZSBuaWNlLg0KDQoyOTENCjAwOjE1OjA0LDk2NCAt + LT4gMDA6MTU6MDcsNzQ4DQpVaCwgaXMgdGhpcyBzb21lIGtpbmQgb2YgcnVzaCBwcmFuaz8NCg0K + MjkyDQowMDoxNTowNyw3NTYgLS0+IDAwOjE1OjA5LDUxNQ0KTWFnZ2llLCB3aGF0IGlzIGdvaW5n + IG9uPw0KDQoyOTMNCjAwOjE1OjA5LDUyMSAtLT4gMDA6MTU6MTAsNzU3DQpSdXNoIHByYW5rPw0K + DQoyOTQNCjAwOjE1OjExLDI3NCAtLT4gMDA6MTU6MTIsMzkwDQpJJ20gc29ycnkuDQoNCjI5NQ0K + MDA6MTU6MTIsNDIyIC0tPiAwMDoxNToxMyw2MjINCkkgaGF2ZSB0byBnby4NCg0KMjk2DQowMDox + NToxMyw2OTAgLS0+IDAwOjE1OjE1LDAzMw0KTWFnZ2llPw0KDQoyOTcNCjAwOjE1OjE2LDg2OSAt + LT4gMDA6MTU6MTgsOTM2DQpVZ2gsIEknbSBzbyBibG9hdGVkLg0KDQoyOTgNCjAwOjE1OjE4LDk0 + MiAtLT4gMDA6MTU6MjEsMDc1DQpJIGhhdGUgdGhlc2UgYml0Y2hlcy4NCg0KMjk5DQowMDoxNToy + MSwwODEgLS0+IDAwOjE1OjIyLDY4MQ0KLSBXaGVyZSdzIHRoZSBtaW5pIHF1aWNoZXM/DQotIFdo + ZXJlJ3MgdGhlIGd1eQ0KDQozMDANCjAwOjE1OjIyLDY4NyAtLT4gMDA6MTU6MjQsMDg3DQotIHdp + dGggdGhlIG1pbmkgcXVpY2hlcz8NCi0gTWluaSBxdWljaGVzPw0KDQozMDENCjAwOjE1OjI0LDA5 + MyAtLT4gMDA6MTU6MjUsMzQzDQpBcmUgeW91IG9rYXk/DQoNCjMwMg0KMDA6MTU6MjUsMzQ5IC0t + PiAwMDoxNToyNywzOTgNCldlIG1heSBoYXZlIHRvIGdldCByaWQgb2YgaGVyLg0KDQozMDMNCjAw + OjE1OjI4LDc1NiAtLT4gMDA6MTU6MzAsNDIyDQpJIG1lYW4sIGlmIHNvbWVvbmUganVzdA0Kc2hv + d2VkIHVwIGF0IHlvdXIgaG91c2UsDQoNCjMwNA0KMDA6MTU6MzAsNDkxIC0tPiAwMDoxNTozMiw3 + NTgNCmNsYWltaW5nIHRvIGJlIHlvdXIgc2lzdGVyLA0Kd291bGQgeW91IGJlbGlldmUgdGhlbT8N + Cg0KMzA1DQowMDoxNTozMiw4MjYgLS0+IDAwOjE1OjM1LDE2NA0KTWVsLCB5b3UgbmVlZCB0byBi + cmVhdGhlLg0KDQozMDYNCjAwOjE1OjM2LDIwMyAtLT4gMDA6MTU6MzksMDIzDQpPaC4gSXMgaXQg + dGhhdCBraW5kIG9mIGNvZmZlZSBkYXRlPw0KDQozMDcNCjAwOjE1OjM5LDAyOSAtLT4gMDA6MTU6 + NDEsODk2DQpOby4gSXQncyBhbiAiSSdtIHdvcnJpZWQNCmFib3V0IHlvdSIgY29mZmVlIGRhdGUu + DQoNCjMwOA0KMDA6MTU6NDIsMjM5IC0tPiAwMDoxNTo0Myw5NzkNCllvdSBzZWVtIGxpa2UgeW91 + J3JlIHVucmF2ZWxpbmcuDQoNCjMwOQ0KMDA6MTU6NDMsOTg1IC0tPiAwMDoxNTo0Niw3NzINCldl + bGwsIGdvb2QgdGhpbmcgSSdtIG5vdA0KeW91ciBwcm9ibGVtIGFueW1vcmUuDQoNCjMxMA0KMDA6 + MTU6NDYsOTQ2IC0tPiAwMDoxNTo0OCw2NDYNCkkgc3RpbGwgY2FyZSBhYm91dCB5b3UuDQoNCjMx + MQ0KMDA6MTU6NDgsNjUyIC0tPiAwMDoxNTo0OSw3NjkNClRoZW4gZHVtcGluZyBtZSBhZnRlciBt + eSBtb20NCg0KMzEyDQowMDoxNTo0OSw3NzUgLS0+IDAwOjE1OjUxLDA5MQ0KZGllZCB3YXMgYW4g + aW50ZXJlc3RpbmcgY2hvaWNlLg0KDQozMTMNCjAwOjE1OjUxLDMzNCAtLT4gMDA6MTU6NTIsNjY3 + DQpUaGF0J3Mgbm90IGZhaXIuDQoNCjMxNA0KMDA6MTU6NTgsMDA4IC0tPiAwMDoxNTo1OSw5NDEN + CkkgYW0gc28sIHNvIHNvcnJ5IGFib3V0IHRoYXQuDQoNCjMxNQ0KMDA6MTY6MDAsMDEwIC0tPiAw + MDoxNjowMSwyNzYNCkFsbCBnb29kLg0KDQozMTYNCjAwOjE2OjAxLDM0NCAtLT4gMDA6MTY6MDMs + MTExDQpEaWQgeW91IHNlZSB0aGF0Pw0KDQozMTcNCjAwOjE2OjAzLDE3OSAtLT4gMDA6MTY6MDQs + NzQzDQpUaGUgY29mZmVlPw0KDQozMTgNCjAwOjE2OjExLDEyNyAtLT4gMDA6MTY6MTMsMzAxDQpP + aCwgbXkgR29kLg0KDQozMTkNCjAwOjE2OjEzLDM3MCAtLT4gMDA6MTY6MTYsMDQ2DQpXaGF0IGlz + IGhhcHBlbmluZz8NCg0KMzIwDQowMDoxNjoxNiwwNTIgLS0+IDAwOjE2OjE3LDk1Mg0KV2hhdCBh + Ym91dCB0aGUgY29mZmVlPw0KDQozMjENCjAwOjE2OjIzLDgxNCAtLT4gMDA6MTY6MjYsNDQ4DQpQ + bGVhc2UuIFN0b3AuDQoNCjMyMg0KMDA6MTY6MjcsNzUxIC0tPiAwMDoxNjozMCw0NTINCldoYXQg + aXMgZ29pbmcgb24/DQoNCjMyMw0KMDA6MTY6MzQsNTAyIC0tPiAwMDoxNjozNSw4MzUNCkkgaGF2 + ZSB0byBnby4NCg0KMzI0DQowMDoxNjozNSw5MDMgLS0+IDAwOjE2OjM4LDQ3MQ0KWW91IHdlcmUg + cmlnaHQuIEkgYW0gbm90IG9rYXkuDQoNCjMyNQ0KMDA6MTY6MzgsNTM5IC0tPiAwMDoxNjo0MCwy + MDANCkkgYW0gbm90Lg0KDQozMjYNCjAwOjE2OjUzLDU4NCAtLT4gMDA6MTY6NTUsNDA1DQpXaGF0 + IHRoZS4uLj8NCg0KMzI3DQowMDoxNjo1NSw5NTMgLS0+IDAwOjE2OjU3LDI4NQ0KSGVsbG8sIGxh + ZGllcy4NCg0KMzI4DQowMDoxNzowMSw0MjkgLS0+IDAwOjE3OjAzLDM2Mg0KRG9uJ3QsIGRvbid0 + IHdvcnJ5Lg0KDQozMjkNCjAwOjE3OjA0LDk5OSAtLT4gMDA6MTc6MDcsODY3DQpUaGVyZSBpcyBh + IHJlYXNvbmFibGUgZXhwbGFuYXRpb24uDQoNCjMzMA0KMDA6MTc6MDgsNjUwIC0tPiAwMDoxNzox + MSwyMzcNCllvdSBhcmUgd2l0Y2hlcy4NCg0KMzMxDQowMDoxNzoxMSw5MTcgLS0+IDAwOjE3OjE0 + LDAzMA0KV2l0Y2hlcyB3aG8gYXJlIGRlc3RpbmVkIHRvIHNhdmUNCg0KMzMyDQowMDoxNzoxNCww + MzYgLS0+IDAwOjE3OjE2LDE0Nw0KdGhlIHdvcmxkIGZyb20gaW1wZW5kaW5nIGRvb20uDQoNCjMz + Mw0KMDA6MTc6MjAsODQzIC0tPiAwMDoxNzoyNCw4NjQNClRoYXQncyByaWdodC4gWW91IGFyZSB0 + aGUgQ2hhcm1lZCBPbmVzLg0KDQozMzQNCjAwOjE3OjI0LDg3MCAtLT4gMDA6MTc6MjgsMzQ0DQpU + aGUgbW9zdCBwb3dlcmZ1bCB0cmlvDQoNCjMzNQ0KMDA6MTc6MjksNDY5IC0tPiAwMDoxNzozMSw5 + MDQNCi0gb2Ygd2l0Y2hlcy4NCi0gSGUncyB0aGUgbmV3IHdvbWVuJ3Mgc3R1ZGllcyBjaGFpci4N + Cg0KMzM2DQowMDoxNzozMSw5MTAgLS0+IDAwOjE3OjMzLDMzNQ0KSSBrbmV3IHNvbWV0aGluZyB3 + YXMgb2ZmIGFib3V0IGhpbS4NCg0KMzM3DQowMDoxNzozMywzNDEgLS0+IDAwOjE3OjM1LDAwNw0K + V2VsbCwgdGhhdCBpcyB1bm5lY2Vzc2FyaWx5IHJ1ZGUuDQoNCjMzOA0KMDA6MTc6MzUsMDEzIC0t + PiAwMDoxNzozNiw4MDUNCkJ1dCBJJ2xsIGxldCBpdCBnbyBiZWNhdXNlDQpJIGtub3cgdGhpcyBp + cyBhIGxvdC4NCg0KMzM5DQowMDoxNzozNiw4MTEgLS0+IDAwOjE3OjM5LDUxMg0KLSBVbnRpZSB1 + cyByaWdodCBub3csIG9yIGVsc2UuLi4NCi0gTm8gIm9yIGVsc2UiIG5lY2Vzc2FyeS4NCg0KMzQw + DQowMDoxNzozOSw1MTggLS0+IDAwOjE3OjQxLDMwOQ0KTGV0IG1lIGdldCB0aG9zZSBmb3IgeW91 + Lg0KSSBrbm93LCBpdCdzIGFsbCBzbyBleHRyZW1lDQoNCjM0MQ0KMDA6MTc6NDEsMzE1IC0tPiAw + MDoxNzo0Miw4MTENCndpdGggdGhlIGdyYWJiaW5nIGFuZCB0aGUgYmluZGluZy4NCg0KMzQyDQow + MDoxNzo0Miw4MTcgLS0+IDAwOjE3OjQ1LDgwMg0KQmVsaWV2ZSBtZSwgSSdkIGxvdmUgdG8gaGF2 + ZQ0KanVzdCBzZW50IG91dCBhIGdyb3VwIHRleHQuDQoNCjM0Mw0KMDA6MTc6NDYsMTIzIC0tPiAw + MDoxNzo0Nyw3ODkNClRoZXJlIHdlIGFyZS4NCg0KMzQ0DQowMDoxNzo0OSw5MjIgLS0+IDAwOjE3 + OjUxLDIwMQ0KVGhpcyBpc24ndCBoYXBwZW5pbmcuDQoNCjM0NQ0KMDA6MTc6NTEsMjA3IC0tPiAw + MDoxNzo1MiwzNTQNCi0gR2lybHMuDQotIFNvIEknbSBub3QgY3JhenkuDQoNCjM0Ng0KMDA6MTc6 + NTIsMzYwIC0tPiAwMDoxNzo1Myw0MjYNCi0gSSB0aG91Z2h0IEkgd2FzIGdvaW5nIGNyYXp5Lg0K + LSBHaXJscy4NCg0KMzQ3DQowMDoxNzo1Myw0MzIgLS0+IDAwOjE3OjU0LDc1Ng0KLSBBbGwgb2Yg + dGhpcyBpcyBjcmF6eS4NCi0gR2lybHMuDQoNCjM0OA0KMDA6MTc6NTQsNzYyIC0tPiAwMDoxNzo1 + Niw0NjINCi0gSSBhbSBub3QgYSB3aXRjaC4NCi0gR2lybHMuDQoNCjM0OQ0KMDA6MTc6NTYsNDY4 + IC0tPiAwMDoxNzo1OCwyMzQNCkkgZG9uJ3QgZXZlbiBsaWtlIHdlYXJpbmcgd2l0Y2gNCmNvc3R1 + bWVzIG9uIEhhbGxvd2VlbiwgbGlrZS4uLg0KDQozNTANCjAwOjE3OjU4LDI0MCAtLT4gMDA6MTc6 + NTksODA2DQotIE5vdCBldmVuIHNsdXR0eSBvbmVzLg0KLSBHaXJscyENCg0KMzUxDQowMDoxODow + MSw3NTIgLS0+IDAwOjE4OjAzLDI2OQ0KU29ycnkuIExhZGllcy4NCg0KMzUyDQowMDoxODowMywz + MzggLS0+IDAwOjE4OjA1LDkzOA0KTm93LCB3ZSBhbGwgc2F3IHdoYXQNCk1hY3kgZGlkIHdpdGgg + dGhlIGdsb2JlLg0KDQozNTMNCjAwOjE4OjA2LDAwNyAtLT4gMDA6MTg6MDcsNjA2DQpMb29rcyBs + aWtlIHdlJ3ZlIGdvdCB0ZWxla2luZXNpcy4NCg0KMzU0DQowMDoxODowNyw2MTIgLS0+IDAwOjE4 + OjA4LDk3NQ0KVGVsZWtpbmVzaXMgaXMgbm90IGEgdGhpbmcuDQoNCjM1NQ0KMDA6MTg6MDgsOTgx + IC0tPiAwMDoxODoxMCwzMDUNClRoZW4gYWdhaW4sIGl0IGRpZCBmbHkNCmFjcm9zcyB0aGUgcm9v + bS4uLg0KDQozNTYNCjAwOjE4OjEwLDMxMSAtLT4gMDA6MTg6MTEsODczDQpBbmQgdGhlcmUgaGFz + IHRvIGJlIGENCnNjaWVudGlmaWMgZXhwbGFuYXRpb24uDQoNCjM1Nw0KMDA6MTg6MTEsODc5IC0t + PiAwMDoxODoxNSwwNDcNClVoLCB5ZXMsIHRoZXJlIGlzLCBpdCdzDQpjYWxsZWQgbW9sZWN1bGFy + IHdpdGNoLWV0aWNzLg0KDQozNTgNCjAwOjE4OjE1LDA4MyAtLT4gMDA6MTg6MTcsMjMzDQotIFlv + dSdyZSBub3QgZnVubnkuDQotIFBhcnRpY2xlIHdpdGNoLW9sb2d5Pw0KDQozNTkNCjAwOjE4OjE3 + LDc1NSAtLT4gMDA6MTg6MTksMzg1DQpBbGwgcmlnaHQsIHdoYXQuLi4gQWxsDQpyaWdodCwgd2hh + dCBhcmUgeW91IGRvaW5nPw0KDQozNjANCjAwOjE4OjE5LDQ1NCAtLT4gMDA6MTg6MjEsMDUzDQot + IFRyeWluZyB0byBmcmVlemUgdGltZS4NCi0gT2guDQoNCjM2MQ0KMDA6MTg6MjEsMDU5IC0tPiAw + MDoxODoyMiw2NTkNCklzIHRoYXQgeW91ciBwb3dlcj8NCk9oLCB3ZWxsLCBtYWtlcyBzZW5zZS4N + Cg0KMzYyDQowMDoxODoyMiw2NjUgLS0+IDAwOjE4OjI0LDE4Ng0KVmVyeSBjb21tb24gd2l0aCBj + b250cm9sIGZyZWFrcy4NCg0KMzYzDQowMDoxODoyNCwxOTIgLS0+IDAwOjE4OjI2LDA4NA0KLSBT + byB3aHkgaXNuJ3QgaXQgd29ya2luZz8NCi0gSXQncyBhIGNyYWZ0Lg0KDQozNjQNCjAwOjE4OjI2 + LDA5MCAtLT4gMDA6MTg6MjcsNjY0DQpXaXRjaGNyYWZ0Lg0KDQozNjUNCjAwOjE4OjI3LDY3MCAt + LT4gMDA6MTg6MjgsOTMyDQpXaGljaCBtZWFucyB5b3UgaGF2ZSB0byBmaWd1cmUgb3V0DQoNCjM2 + Ng0KMDA6MTg6MjgsOTM4IC0tPiAwMDoxODozMCw2MzcNCmhvdyB0byBhY2Nlc3MgYW5kIGNvbnRy + b2wgaXQuDQoNCjM2Nw0KMDA6MTg6MzIsNjc1IC0tPiAwMDoxODozNCw4MzUNCldlbGwsIGxvb2tz + IGxpa2UgeW91J3ZlDQphbHJlYWR5IG1hc3RlcmVkIHlvdXJzLg0KDQozNjgNCjAwOjE4OjM0LDg0 + MSAtLT4gMDA6MTg6MzcsNTAwDQpCcmF2by4gTXVzdCBiZSB0aGF0DQppbXByZXNzaXZlbHkgaGln + aCBJUS4NCg0KMzY5DQowMDoxODozNyw1NDAgLS0+IDAwOjE4OjM5LDYyMg0KU28gdGhpcyBtZWFu + cyBJIHJlYWxseQ0Kd2FzIHJlYWRpbmcgbWluZHM/DQoNCjM3MA0KMDA6MTg6MzksNjI4IC0tPiAw + MDoxODo0MSwyNTYNCkEgdGVzdGFtZW50IHRvIHlvdXIgaW5uYXRlDQoNCjM3MQ0KMDA6MTg6NDEs + MjYyIC0tPiAwMDoxODo0MywyNjkNCnNlbnNpdGl2aXR5LCBvciBkZXNwZXJhdGUgaW5zZWN1cml0 + eS4NCg0KMzcyDQowMDoxODo0MywyNzUgLS0+IDAwOjE4OjQ1LDAwOA0KVGhleSdyZSB0d28gc2lk + ZXMgb2YgdGhlIGNvaW4sDQpyZWFsbHkuIE5vdCB0byB3b3JyeS4NCg0KMzczDQowMDoxODo0NSww + MTQgLS0+IDAwOjE4OjQ2LDgxNA0KSSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgaXQgYWxsLg0K + DQozNzQNCjAwOjE4OjQ2LDgyMCAtLT4gMDA6MTg6NDksNzYxDQpZb3Ugc2VlLCBJIGFtIGFuIGFk + dmlzb3IgdG8gd2l0Y2hlcy4NCg0KMzc1DQowMDoxODo0OSw3NjcgLS0+IDAwOjE4OjUzLDQ2OQ0K + VGhleSBjYWxsIG1lIGEgV2hpdGVsaWdodGVyLg0KDQozNzYNCjAwOjE4OjUzLDUwNSAtLT4gMDA6 + MTg6NTYsMTczDQpQaHlzaWNhbGx5LCBJIGRpZWQgaW4gMTk1Ny4NCg0KMzc3DQowMDoxODo1Niwx + NzkgLS0+IDAwOjE4OjU4LDI3OQ0KV2FpdC4gV2FzIE1vbSBhIHdpdGNoPw0KDQozNzgNCjAwOjE4 + OjU4LDI4NSAtLT4gMDA6MTg6NTksNjA2DQpCaW5nby4NCg0KMzc5DQowMDoxOTowMCwwMTAgLS0+ + IDAwOjE5OjAyLDA0NA0KQW5kIHBhcnQgb2YgbXkgc3BlZWNoLg0KDQozODANCjAwOjE5OjAzLDc1 + OCAtLT4gMDA6MTk6MDUsMTkxDQpZb3VyIG1vdGhlciB3YXMgYSB3aXRjaC4NCg0KMzgxDQowMDox + OTowNSwyNjAgLS0+IDAwOjE5OjA3LDQxNA0KQSB2ZXJ5IHBvd2VyZnVsIG9uZS4NCg0KMzgyDQow + MDoxOTowNyw0MjAgLS0+IDAwOjE5OjA5LDgwOQ0KU2hlIGJvdW5kIHlvdXIgcG93ZXJzDQp3aGVu + IHlvdSBlYWNoIHdlcmUgYm9ybg0KDQozODMNCjAwOjE5OjA5LDgxNSAtLT4gMDA6MTk6MTIsMjAz + DQp0byBwcm90ZWN0IHlvdSBhbmQgbGV0DQp5b3UgbGl2ZSBub3JtYWwgbGl2ZXMuDQoNCjM4NA0K + MDA6MTk6MTIsMjA5IC0tPiAwMDoxOToxNiwxNDUNCk5vdywgc2hlIHdhcyBpbiB0aGUgcHJvY2Vz + cw0Kb2YgdW5iaW5kaW5nIHRob3NlIHBvd2Vycy4uLg0KDQozODUNCjAwOjE5OjE4LDQwMyAtLT4g + MDA6MTk6MjAsMzA2DQpUaGUgbmlnaHQgc2hlIHdhcyBtdXJkZXJlZC4NCg0KMzg2DQowMDoxOToy + MSw5NzMgLS0+IDAwOjE5OjIzLDgwNg0KSSBrbmV3IGl0Lg0KDQozODcNCjAwOjE5OjIzLDgxMiAt + LT4gMDA6MTk6MjUsNjc4DQpJIGtuZXcgc2hlIGRpZG4ndCBmYWxsLg0KDQozODgNCjAwOjE5OjI2 + LDMzMSAtLT4gMDA6MTk6MjgsMDQ3DQpXaG8ga2lsbGVkIGhlcj8NCg0KMzg5DQowMDoxOToyOCwx + MTYgLS0+IDAwOjE5OjMwLDIxNg0KV2UgZG9uJ3Qga25vdywgYXMgeWV0Lg0KDQozOTANCjAwOjE5 + OjMwLDI4NSAtLT4gMDA6MTk6MzIsOTUwDQpUaGVyZSB3YXMgaWNlIGF0IHRoZSBzY2VuZSwNCnNv + IGNvbGQgaXMgYSBjaGFyYWN0ZXJpc3RpYywNCg0KMzkxDQowMDoxOTozMiw5NTYgLS0+IDAwOjE5 + OjM0LDQ0MA0KYnV0IHRoZXJlIGFyZSBsaXRlcmFsbHkgdGhvdXNhbmRzIG9mDQoNCjM5Mg0KMDA6 + MTk6MzQsNDQ2IC0tPiAwMDoxOTozNiwwODkNCmRpZmZlcmVudCBkZW1vbnMgYXNzb2NpYXRlZCB3 + aXRoIGNvbGQuDQoNCjM5Mw0KMDA6MTk6MzYsMDk1IC0tPiAwMDoxOTozNyw1OTUNCldoYXQgYXJl + IHlvdSBldmVuIHRhbGtpbmcgYWJvdXQ/DQoNCjM5NA0KMDA6MTk6MzcsNjAxIC0tPiAwMDoxOToz + OSwxNTQNCkl0J3MgYWxsIGhlcmUuDQoNCjM5NQ0KMDA6MTk6NDEsNjYyIC0tPiAwMDoxOTo0Myw1 + OTYNClRoZSBCb29rIG9mIFNoYWRvd3MuDQoNCjM5Ng0KMDA6MTk6NDMsNjAyIC0tPiAwMDoxOTo0 + NSw0MzUNClRoZSBBbmNpZW50IE9yYWNsZXMgcHJlZGljdGVkDQoNCjM5Nw0KMDA6MTk6NDUsNDQx + IC0tPiAwMDoxOTo0NywxNDENCnRocmVlIHNpZ25zIG9mIGFwb2NhbHlwc2UuDQoNCjM5OA0KMDA6 + MTk6NDcsMTQ3IC0tPiAwMDoxOTo1MCwwMjENClRoZSBmaXJzdCwgIldoZW4gdGhlIHdlYWtlc3Qg + b2YgbWVuDQoNCjM5OQ0KMDA6MTk6NTAsMjExIC0tPiAwMDoxOTo1Miw2NzINCiJyZWFjaGVzIGls + bC1nb3R0ZW4gZ2xvcnkiLA0KDQo0MDANCjAwOjE5OjUyLDY3OCAtLT4gMDA6MTk6NTQsMzc4DQoi + YW5kLCIgb2gsIEdvZCwgdGhpcyBnb2VzIG9uIGFuZCBvbi4NCg0KNDAxDQowMDoxOTo1NCwzODQg + LS0+IDAwOjE5OjU2LDA1MQ0KVGhlIGxhbmd1YWdlIGlzIGZhciB0b28NCmZsb3dlcnkgZm9yIG15 + IHRhc3RlLg0KDQo0MDINCjAwOjE5OjU2LDA1NyAtLT4gMDA6MTk6NTgsMDYyDQpCdXQgc3VmZmlj + ZSB0byBzYXksIGl0J3MNCnlvdXIgY3VycmVudCBwcmVzaWRlbnQuDQoNCjQwMw0KMDA6MTk6NTgs + MDY4IC0tPiAwMDoyMDowMCwyMDENCkNhbiB3ZSBnbyBiYWNrIHRvIHRoZSBwYXJ0DQp3aGVyZSB5 + b3Ugc2FpZCAiYXBvY2FseXBzZSI/DQoNCjQwNA0KMDA6MjA6MDAsMjA3IC0tPiAwMDoyMDowMiwx + NDANCk5vdCByZWFsbHksIEknbSBpbiBhIHJoeXRobSBoZXJlLg0KDQo0MDUNCjAwOjIwOjAyLDQy + MSAtLT4gMDA6MjA6MDMsNzQwDQpUaGUgc2Vjb25kIHNpZ24sDQoNCjQwNg0KMDA6MjA6MDMsNzQ2 + IC0tPiAwMDoyMDowNiw2MzMNCiJUaGUgbW92ZW1lbnQncyBncmVhdCBzYWdlcyBmYWxsLCINCg0K + NDA3DQowMDoyMDowNiw2MzkgLS0+IDAwOjIwOjA4LDMwNw0Kd2VsbCwgdGhhdCByZWZlcnMgdG8g + eW91ciBtb3RoZXIncyBkZWF0aA0KDQo0MDgNCjAwOjIwOjA4LDMxMyAtLT4gMDA6MjA6MTAsMjU2 + DQphbmQgdGhlIHNlbmlvciB3aXRjaGVzIHdobw0KaGF2ZSBiZWVuIGtpbGxlZCBzaW5jZS4NCg0K + NDA5DQowMDoyMDoxMCwyNjIgLS0+IDAwOjIwOjEyLDMyOQ0KT3RoZXIgd2l0Y2hlcz8gSG93IG1h + bnkgYXJlIHRoZXJlPw0KDQo0MTANCjAwOjIwOjEyLDM5OCAtLT4gMDA6MjA6MTYsMDI1DQpSZWFs + bHksIHRoaXMgd29ya3MgbXVjaA0KYmV0dGVyIGFzIGEgbW9ub2xvZ3VlLA0KDQo0MTENCjAwOjIw + OjE2LDAzMSAtLT4gMDA6MjA6MTcsNjk3DQppZiB5b3UgZG9uJ3QgbWluZC4NCg0KNDEyDQowMDoy + MDoxNyw4NDMgLS0+IDAwOjIwOjIwLDcxMQ0KVGhlIGZpbmFsIHNpZ24gaGFzbid0IGhhcHBlbmVk + IHlldC4NCg0KNDEzDQowMDoyMDoyMSwyOTQgLS0+IDAwOjIwOjIyLDg2MQ0KIldpdGggdGhlIGJs + b3Nzb21pbmcgb2YgZGVhdGgNCg0KNDE0DQowMDoyMDoyMiw4NjcgLS0+IDAwOjIwOjI1LDcyNg0K + ImNvbWVzIHRoZSBhd2FrZW5pbmcgb2YNCnRoZSBTb3VyY2Ugb2YgQWxsIEV2aWwuDQoNCjQxNQ0K + MDA6MjA6MjcsMTEyIC0tPiAwMDoyMDoyOSwzNzkNCkFuZCB0aGVuLCB3ZSBmYWxsLiINCg0KNDE2 + DQowMDoyMDoyOSw0NDggLS0+IDAwOjIwOjMxLDEzOQ0KV2VsbCwgc28sIHlvdSBjYW4gc2VlIHdo + eQ0Kd2UgZmluaXNoZWQgd2hhdCB5b3VyDQoNCjQxNw0KMDA6MjA6MzEsMTQ1IC0tPiAwMDoyMDoz + Myw2ODkNCm1vdGhlciBzdGFydGVkIHRoYXQgbmlnaHQsDQphbmQgYnJvdWdodCB5b3UgaGVyZS4N + Cg0KNDE4DQowMDoyMDozNCwxNzYgLS0+IDAwOjIwOjM2LDA1Mw0KU2hlIHdhbnRlZCBtZSBoZXJl + Pw0KDQo0MTkNCjAwOjIwOjM2LDEyMSAtLT4gMDA6MjA6MzgsMTM5DQpZZXMuIFZlcnkgbXVjaC4N + Cg0KNDIwDQowMDoyMDozOCwxNDUgLS0+IDAwOjIwOjM5LDY5MA0KU2hlIHNlbnQgeW91IHRoZSBn + cmFudCBhcHBsaWNhdGlvbiwNCg0KNDIxDQowMDoyMDozOSw2OTYgLS0+IDAwOjIwOjQxLDE3MA0K + bWFkZSBzdXJlIGl0IHdhcyBjaG9zZW4uDQoNCjQyMg0KMDA6MjA6NDEsMTc2IC0tPiAwMDoyMDo0 + Miw0NDINClNlZT8NCg0KNDIzDQowMDoyMDo0Miw0NDggLS0+IDAwOjIwOjQ0LDA0OA0KU2hlIGlz + IG91ciBzaXN0ZXIuDQoNCjQyNA0KMDA6MjA6NDQsMDU0IC0tPiAwMDoyMDo0NSw1NTMNClNvLA0K + DQo0MjUNCjAwOjIwOjQ1LDg1NyAtLT4gMDA6MjA6NDcsNDIzDQp5b3VyIG1vdGhlcidzIHNwZWxs + IGJvb2suDQoNCjQyNg0KMDA6MjA6NDgsODk1IC0tPiAwMDoyMDo1MCw1NjcNCktlZXAgaXQgc2Fm + ZS4NCg0KNDI3DQowMDoyMDo1MSwzMDkgLS0+IDAwOjIwOjUzLDU3Mg0KWW91ciBndWlkZSB0byB1 + c2luZw0KdGhlIFBvd2VyIG9mIFRocmVlIHRvDQoNCjQyOA0KMDA6MjA6NTMsNTc4IC0tPiAwMDoy + MDo1NiwxMDMNCnByb3RlY3QgdGhlIGlubm9jZW50DQphbmQgdmFucXVpc2ggZGVtb25zLg0KDQo0 + MjkNCjAwOjIwOjU2LDUwNSAtLT4gMDA6MjA6NTgsOTcyDQpZb3UgdGhyZWUgaGF2ZSA0OCBob3Vy + cyB0byBkZWNpZGUNCg0KNDMwDQowMDoyMDo1OCw5NzggLS0+IDAwOjIxOjAwLDQxMA0Kd2hldGhl + ciB5b3Ugd2lzaCB0bw0KYWNjZXB0IHlvdXIgd2l0Y2hseSBmYXRlLg0KDQo0MzENCjAwOjIxOjAw + LDQ3OSAtLT4gMDA6MjE6MDIsNDkzDQotIFdlIGdldCB0byBkZWNpZGU/DQotIE9oLCB5ZXMuDQoN + CjQzMg0KMDA6MjE6MDIsNDk5IC0tPiAwMDoyMTowNSwzMzMNCkJlaW5nIGEgd2l0Y2ggaXMgYSBm + dWxseQ0KcHJvLWNob2ljZSBlbnRlcnByaXNlLg0KDQo0MzMNCjAwOjIxOjA1LDc1MSAtLT4gMDA6 + MjE6MDcsOTE4DQpBbmQgdGhlIGRlY2lzaW9uIG11c3QgYmUgdW5hbmltb3VzLg0KDQo0MzQNCjAw + OjIxOjA3LDkyNCAtLT4gMDA6MjE6MDksNDg4DQpJZiB5b3UgcmVmdXNlLA0KDQo0MzUNCjAwOjIx + OjA5LDQ5NCAtLT4gMDA6MjE6MTMsMTI5DQpldmVyeXRoaW5nIHNpbmNlIG1hZGUgcG9zc2libGUN + CmJ5IG1hZ2ljYWwgaW50ZXJ2ZW50aW9uLi4uDQoNCjQzNg0KMDA6MjE6MTMsNDkyIC0tPiAwMDoy + MToxNSwyMTgNCldpbGwgYmUgdW5kb25lLg0KDQo0MzcNCjAwOjIxOjE1LDc4MCAtLT4gMDA6MjE6 + MTgsMTQ1DQpZb3UgZ3V5cywgdGhpcyBkZW1vbiBoYXJ2ZXN0cyB3aXRjaGVzJw0KDQo0MzgNCjAw + OjIxOjE4LDE1MSAtLT4gMDA6MjE6MjAsMTM3DQpvcmdhbnMgZm9yIGZyZWFraW5nIHNtb290aGll + cyENCg0KNDM5DQowMDoyMToyMCwxNDMgLS0+IDAwOjIxOjIxLDg5Nw0KRG9uJ3Qgd29ycnksIHRo + ZSB1bmRlcndvcmxkIGRvZXNuJ3Qga25vdw0KDQo0NDANCjAwOjIxOjIxLDkwMyAtLT4gMDA6MjE6 + MjMsMjY2DQp5b3VyIHBvd2VycyBoYXZlIGJlZW4gYXdha2VuZWQuDQoNCjQ0MQ0KMDA6MjE6Mjgs + NzY0IC0tPiAwMDoyMTozMCw1MzANCk5vIHdheS4gSSdtIG5vdCBkb2luZyB0aGlzLg0KDQo0NDIN + CjAwOjIxOjMwLDUzNiAtLT4gMDA6MjE6MzIsMzI3DQpJIGRvIG5vdCB3YW50IHRvIGVuZCB1cCBp + biBhIHNtb290aGllLg0KDQo0NDMNCjAwOjIxOjMyLDMzMyAtLT4gMDA6MjE6MzMsNjM2DQpNYWdn + aWUsIHRoaXMgaXMgb3VyIGxlZ2FjeS4NCg0KNDQ0DQowMDoyMTozMyw2NDIgLS0+IDAwOjIxOjM0 + LDk3NA0KTW9tIHdhbnRlZCB1cyB0byBkbyB0aGlzLA0KDQo0NDUNCjAwOjIxOjM0LDk4MCAtLT4g + MDA6MjE6MzYsNTgyDQphbmQgbm93IHdlIGNhbiBmaWd1cmUNCm91dCB3aG8ga2lsbGVkIGhlci4N + Cg0KNDQ2DQowMDoyMTozNiw1ODggLS0+IDAwOjIxOjM4LDgwOA0KSSdsbCwgdWgsIEknbGwgbGV0 + IHlvdQ0KdGhyZWUgaGFzaCBpdCBvdXQuDQoNCjQ0Nw0KMDA6MjE6MzgsODE0IC0tPiAwMDoyMTo0 + MCwxNDcNCklmIHlvdSBuZWVkIG1lLCBjYWxsLg0KDQo0NDgNCjAwOjIxOjQwLDI3OCAtLT4gMDA6 + MjE6NDQsMDEzDQpPciwgdWgsIHRleHQsIFNuYXAsIG9yIFR3aXR0ZXIgRE0uDQoNCjQ0OQ0KMDA6 + MjE6NDUsNDc1IC0tPiAwMDoyMTo0OSwwNzYNCldlbGwsIG9yIGp1c3QgY2FsbCBteSBuYW1lDQph + bmQgSSdsbCBtYWdpY2FsbHkgYXBwZWFyLg0KDQo0NTANCjAwOjIxOjUyLDU3MiAtLT4gMDA6MjE6 + NTQsNjU3DQpJIGp1c3Qgd2FudGVkIHRvIHNob3cgeW91IHRoZSBlZmZlY3QuDQoNCjQ1MQ0KMDA6 + MjE6NTQsNzI2IC0tPiAwMDoyMTo1Niw5MjYNClRoZXkgcHJlZmVyIEkgZ2V0IGFyb3VuZA0KDQo0 + NTINCjAwOjIxOjU2LDk5NSAtLT4gMDA6MjE6NTgsNzA3DQpsaWtlIGEgcmVndWxhciBwZXJzb24g + bm93Li4uDQoNCjQ1Mw0KMDA6MjE6NTgsODY5IC0tPiAwMDoyMjowMCwyMzkNClRvIGJsZW5kIGlu + Lg0KDQo0NTQNCjAwOjIyOjA0LDA2OCAtLT4gMDA6MjI6MDUsOTAxDQpJdCdzIGEgZm9saWUgYSBk + ZXV4LiBJdCBtdXN0IGJlLg0KDQo0NTUNCjAwOjIyOjA1LDk3MCAtLT4gMDA6MjI6MDcsMjU5DQpI + ZSBpbmR1Y2VkIGl0IHNvbWVob3cuDQoNCjQ1Ng0KMDA6MjI6MDcsMjY1IC0tPiAwMDoyMjowOSw1 + NzINCllvdSBkaWQganVzdCBzZWUgdGhhdCBndXkNCmRpc2FwcGVhciBpbnRvIHRoaW4gYWlyLCBy + aWdodD8NCg0KNDU3DQowMDoyMjowOSw2NDEgLS0+IDAwOjIyOjEyLDA0MQ0KWW91IHRoaW5rIHVz + IGFjdHVhbGx5IGJlaW5nDQp3aXRjaGVzIG1ha2VzIG1vcmUgc2Vuc2U/DQoNCjQ1OA0KMDA6MjI6 + MTIsMTEwIC0tPiAwMDoyMjoxNSwwMjkNClllYWgsIEkgZG8uIEl0IGFsbC4uLg0KDQo0NTkNCjAw + OjIyOjE1LDAzNSAtLT4gMDA6MjI6MTcsMTE4DQpNYWtlcyBzZW5zZS4NCg0KNDYwDQowMDoyMjox + NywxODEgLS0+IDAwOjIyOjE4LDUwMg0KVGhyb3VnaG91dCBoaXN0b3J5LCBzdHJvbmcgd29tZW4N + Cg0KNDYxDQowMDoyMjoxOCw1MDggLS0+IDAwOjIyOjIwLDA3MA0Kd2VyZSBjYWxsZWQgd2l0Y2hl + cywgYW5kIHRoZXkgYXJlLi4uDQoNCjQ2Mg0KMDA6MjI6MjAsMDc2IC0tPiAwMDoyMjoyMiwwMjMN + CldlIGFyZS4NCg0KNDYzDQowMDoyMjoyMiwwODYgLS0+IDAwOjIyOjI0LDA1Mw0KV2UgaGF2ZSB0 + byB1bml0ZSB0byBjaGFuZ2UNCnRoZSBwb3dlciBkeW5hbWljcywNCg0KNDY0DQowMDoyMjoyNCwx + MjIgLS0+IDAwOjIyOjI2LDkyMg0KcmlnaHQgdGhlIHNoaXAsIGNoYW5nZQ0KdGhlIGNvdXJzZSBv + ZiBodW1hbml0eS4NCg0KNDY1DQowMDoyMjozMSwyNTUgLS0+IDAwOjIyOjMzLDcyMg0KSXQncyBM + dWN5LiBTaGUgd2FudHMgbWUNCnRvIGdvIHRvIHRoZSBLYXBwYSBob3VzZS4NCg0KNDY2DQowMDoy + MjozMyw3MjggLS0+IDAwOjIyOjM2LDY2Mg0KU2VyaW91c2x5LCBubyBpbnRlcmVzdCBpbg0KY2hh + bmdpbmcgdGhlIGNvdXJzZSBvZiBodW1hbml0eT8NCg0KNDY3DQowMDoyMjozNiw2NjggLS0+IDAw + OjIyOjM4LDIzNA0KV2l0Y2hlcyBhcmVuJ3QgcmVhbC4NCg0KNDY4DQowMDoyMjozOCwzMDMgLS0+ + IDAwOjIyOjQwLDg2Ng0KVGhlcmUncyBhIHNjaWVudGlmaWMNCmV4cGxhbmF0aW9uIGZvciB0aGlz + Lg0KDQo0NjkNCjAwOjIyOjQ2LDQ3NyAtLT4gMDA6MjI6NTEsMDczDQpfDQoNCjQ3MA0KMDA6MjI6 + NTIsMzkwIC0tPiAwMDoyMjo1NCwyNjkNCl8NCg0KNDcxDQowMDoyMjo1NCwzNjMgLS0+IDAwOjIy + OjU2LDMyNA0KXw0KDQo0NzINCjAwOjIyOjU3LDEzNSAtLT4gMDA6MjI6NTgsODcwDQpfDQoNCjQ3 + Mw0KMDA6MjM6MDIsNDkwIC0tPiAwMDoyMzowNCw5NjANCk9mIGNvdXJzZSBJJ20gcmVsaWV2ZWQu + DQoNCjQ3NA0KMDA6MjM6MDUsMDI5IC0tPiAwMDoyMzowNywwNjMNCkkgbWVhbiwganVzdGljZSB3 + YXMgc2VydmVkLg0KDQo0NzUNCjAwOjIzOjA3LDEzMSAtLT4gMDA6MjM6MDksMTYzDQpUaGlzIHdh + cyBhIHdpdGNoIGh1bnQuDQoNCjQ3Ng0KMDA6MjM6MTQsODA2IC0tPiAwMDoyMzoxNiw5NzINCi0g + V2hhdC1XaGF0IGFyZSB5b3UgZG9pbmcgaGVyZT8NCi0gSSB3YXMgd29ycmllZC4NCg0KNDc3DQow + MDoyMzoxNywwNDEgLS0+IDAwOjIzOjE4LDQ3NA0KWW91IGp1c3QgcmFuIG91dC4NCg0KNDc4DQow + MDoyMzoxOCw0ODAgLS0+IDAwOjIzOjIxLDA0Nw0KT2gsIHJpZ2h0LCB1bSwgSSdtLUknbSBzb3Jy + eS4NCg0KNDc5DQowMDoyMzoyMSwxNzkgLS0+IDAwOjIzOjIyLDMyNw0KQXJlIHlvdSBva2F5Pw0K + DQo0ODANCjAwOjIzOjIyLDMzMyAtLT4gMDA6MjM6MjMsNjEyDQpZb3Uga25vdyB3aGF0Pw0KDQo0 + ODENCjAwOjIzOjI0LDMxMCAtLT4gMDA6MjM6MjUsNDQ4DQpJIGZlZWwgYmV0dGVyLg0KDQo0ODIN + CjAwOjIzOjI1LDUxNiAtLT4gMDA6MjM6MjcsNDgzDQpBbmQgSSBhbSBzb3JyeSBhYm91dCB3aGF0 + IEkgc2FpZC4NCg0KNDgzDQowMDoyMzoyNyw3NzAgLS0+IDAwOjIzOjMwLDAzNw0KQWJvdXQgeW91 + IGVuZGluZyB0aGluZ3MNCmFmdGVyIG15IG1vbSBkaWVkLg0KDQo0ODQNCjAwOjIzOjMwLDA0MyAt + LT4gMDA6MjM6MzEsNzQzDQpJIGtub3cgSSBzaHV0IHlvdSBvdXQuDQoNCjQ4NQ0KMDA6MjM6MzMs + ODI1IC0tPiAwMDoyMzozNiwxNTgNCi0gWW91IHdlcmUganVzdCBzbyBhbmdyeS4NCi0gWWVhaC4N + Cg0KNDg2DQowMDoyMzozNyw4NTcgLS0+IDAwOjIzOjM5LDYzNA0KVGhhdCdzIHdoYXQgbXkgc2lz + dGVyIHNheXMsIHRvby4NCg0KNDg3DQowMDoyMzo0MSwxNjUgLS0+IDAwOjIzOjQzLDY5OQ0KQXJl + IHlvdSByZWFsbHkuLi4NCg0KNDg4DQowMDoyMzo0Nyw1MDUgLS0+IDAwOjIzOjQ5LDAzOA0KTmlr + bz8NCg0KNDg5DQowMDoyMzo1NCwyNzggLS0+IDAwOjIzOjU1LDY0NA0KLi4uIG9rYXk/DQoNCjQ5 + MA0KMDA6MjM6NTUsNzEzIC0tPiAwMDoyMzo1Nyw5ODANClllcy4NCg0KNDkxDQowMDoyMzo1OCww + NDkgLS0+IDAwOjI0OjAxLDIxNw0KWWVzLCBJJ20gb2theS4NCg0KNDkyDQowMDoyNDowMSwyMjMg + LS0+IDAwOjI0OjAyLDc1Ng0KSSB3YW50ZWQuLi4NCg0KNDkzDQowMDoyNDowMiw4ODcgLS0+IDAw + OjI0OjA0LDIyMA0KTmlrbz8NCg0KNDk0DQowMDoyNDowNywzOTIgLS0+IDAwOjI0OjA4LDg1OA0K + T2gsIG15IEdvZCENCg0KNDk1DQowMDoyNDoxMCwxMjggLS0+IDAwOjI0OjEyLDQ2MQ0KT2theSwg + SSBnb3QgdGhpcy4NCg0KNDk2DQowMDoyNDoxNCw5MzIgLS0+IDAwOjI0OjE2LDUzMg0KLi4uIHRv + IGJlIHRoZXJlIGZvciB5b3UsDQoNCjQ5Nw0KMDA6MjQ6MTYsNjAxIC0tPiAwMDoyNDoxOCwzMzQN + CmJ1dCB0aGUgYW5nZXIganVzdCBnb3QgaW4gdGhlIHdheS4NCg0KNDk4DQowMDoyNDoxOCw0MDMg + LS0+IDAwOjI0OjIxLDQwNA0KRXhhY3RseSwgdGhlIGFuZ2VyIGdvdCBpbiB0aGUgd2F5Lg0KDQo0 + OTkNCjAwOjI0OjIyLDA5MiAtLT4gMDA6MjQ6MjYsMDI4DQpXb3csIHlvdSByZWFsbHkgZG8gc2Vl + bSBiZXR0ZXIuDQoNCjUwMA0KMDA6MjQ6MjYsMDM0IC0tPiAwMDoyNDoyNyw3MDINCkkgZmVlbCBi + ZXR0ZXIuDQoNCjUwMQ0KMDA6MjQ6MjgsNDEzIC0tPiAwMDoyNDozMCwxODMNCkxpa2UgSSd2ZSBj + b21lIG91dCBvZiBhIGZvZy4NCg0KNTAyDQowMDoyNDozMCwxODkgLS0+IDAwOjI0OjMxLDU4OA0K + SSd2ZSBtaXNzZWQgeW91Lg0KDQo1MDMNCjAwOjI0OjM2LDE1NCAtLT4gMDA6MjQ6MzgsMzg3DQot + IElzIHlvdXIgc2lzdGVyIGhvbWU/DQotIE1tLW1tLg0KDQo1MDQNCjAwOjI0OjU5LDAxMCAtLT4g + MDA6MjU6MDEsMDQzDQpIaSB0aGVyZS4NCg0KNTA1DQowMDoyNTowMSwxMTIgLS0+IDAwOjI1OjAy + LDkxMg0KQXJlIHlvdSBsb3N0Pw0KDQo1MDYNCjAwOjI1OjEwLDk4MiAtLT4gMDA6MjU6MTMsNzgw + DQpNZWw/ISBXaGVyZSBhcmUgeW91Pw0KQSBmcmlra2luZyBkZW1vbiBkb2cNCg0KNTA3DQowMDoy + NToxMyw3ODYgLS0+IDAwOjI1OjE1LDI1Mg0KanVzdCB0cmllZCB0byBlYXQgbXkgaGFpciBleHRl + bnNpb25zLg0KDQo1MDgNCjAwOjI1OjE1LDMyMSAtLT4gMDA6MjU6MTcsNzg4DQpBbmQgaGFkIGNy + YXp5IGV5ZXMgYW5kLWFuZCBncmVlbiBnb28uDQoNCjUwOQ0KMDA6MjU6MTcsODU3IC0tPiAwMDoy + NToxOSw1NTcNCkFuZCB0aGUgb25seSByZWFzb24gSQ0KZ290IGF3YXkgd2FzIGJlY2F1c2UNCg0K + NTEwDQowMDoyNToxOSw2MjYgLS0+IDAwOjI1OjIxLDc4OA0KdGhpcyBncm91cCBvZiBkcnVuaw0K + Z3V5cyBzaG93ZWQgdXAgYW5kLi4uDQoNCjUxMQ0KMDA6MjU6MjEsNzk0IC0tPiAwMDoyNToyMyw3 + MjgNClNoaCwgc2hoLCBzaGguLi4NCg0KNTEyDQowMDoyNToyMyw3OTYgLS0+IDAwOjI1OjI1LDUy + OQ0KRG9uJ3Qgc2h1c2ggbWUuDQoNCjUxMw0KMDA6MjU6MjUsNTk4IC0tPiAwMDoyNToyNyw4OTgN + CkRpZCB5b3Ugbm90IGhlYXIgbWUgc2F5IGEgZGVtb24gZG9nPw0KDQo1MTQNCjAwOjI1OjI5LDg2 + OSAtLT4gMDA6MjU6MzEsOTQ1DQpTb3Jvcml0eSBpbml0aWF0aW9uIHRoaW5nLg0KDQo1MTUNCjAw + OjI1OjM1LDE3NCAtLT4gMDA6MjU6MzcsNDA4DQpTbyBqdXN0IGNsYXJpZnkuDQoNCjUxNg0KMDA6 + MjU6MzcsNDc3IC0tPiAwMDoyNTozOSw3MTANCkV4IHNleCwgb3IgYXJlIHlvdSBhbmQNCk5pa28g + YmFjayB0b2dldGhlcj8NCg0KNTE3DQowMDoyNTozOSw3NzkgLS0+IDAwOjI1OjQxLDA0NQ0KUHJp + b3JpdGllcy4gU2hoLg0KDQo1MTgNCjAwOjI1OjQxLDA1MSAtLT4gMDA6MjU6NDIsMjg0DQpTbywg + d2hhdCBkbyB5b3UgdGhpbms/DQoNCjUxOQ0KMDA6MjU6NDIsMjkwIC0tPiAwMDoyNTo0NCw1OTEN + CkkgdGhpbmsgSSd2ZSBuZXZlciBzZWVuDQphbnl0aGluZyBsaWtlIHRoaXMgYmVmb3JlLg0KDQo1 + MjANCjAwOjI1OjQ0LDU5NyAtLT4gMDA6MjU6NDYsNzEzDQpZZWFoLCBwcmV0dHkgc3VyZSB0aGF0 + J3MgYmVjYXVzZQ0KaXQncyBzdXBlcm5hdHVyYWwgb296ZS4NCg0KNTIxDQowMDoyNTo0Niw3MTkg + LS0+IDAwOjI1OjQ5LDEyMA0KQnV0IGl0IHNlZW1zIHRvIGJlIHN1cnJvdW5kaW5nDQphIG5vbi1z + dXBlcm5hdHVyYWwgY2VsbC4NCg0KNTIyDQowMDoyNTo0OSwxODggLS0+IDAwOjI1OjUwLDY4OA0K + U29tZSBraW5kIG9mIGh5ZHJvY2hsb3JpYyBhY2lkLg0KDQo1MjMNCjAwOjI1OjUwLDc5MCAtLT4g + MDA6MjU6NTMsMjU3DQpXZWxsLCB0aGVyZSBhcmUgYWJvdXQgMSwwMDANCmRlbW9uIGRvZ3MgaW4g + dGhpcyBib29rLg0KDQo1MjQNCjAwOjI1OjUzLDI2MyAtLT4gMDA6MjU6NTQsNjIxDQpJdCBjb3Vs + ZCB0YWtlIGhvdXJzIHRvIGZpbmQgdGhlIHNwZWxsLg0KDQo1MjUNCjAwOjI1OjU0LDYyNyAtLT4g + MDA6MjU6NTcsMDYxDQpBcmUgeW91IHNlcmlvdXNseSBiZWluZyBzZXJpb3VzPw0KDQo1MjYNCjAw + OjI1OjU3LDEzMCAtLT4gMDA6MjU6NTgsNzYzDQpJIGp1c3QgYmFyZWx5IGdvdCBhd2F5IGZyb20g + dGhhdCB0aGluZy4NCg0KNTI3DQowMDoyNTo1OCw3NjkgLS0+IDAwOjI2OjAwLDQwMg0KSSdtIG5v + dCBpbnRlcmVzdGVkIGluIGh1bnRpbmcgaXQgZG93bi4NCg0KNTI4DQowMDoyNjowMCw0MDggLS0+ + IDAwOjI2OjAyLDAwOA0KV2hhdCBvdGhlciBjaG9pY2UgZG8gd2UgaGF2ZT8NCg0KNTI5DQowMDoy + NjowMiwyMDEgLS0+IDAwOjI2OjA0LDMwMQ0KVW0sIHdlIGNob29zZSBub3QgdG8gYmUgd2l0Y2hl + cywNCg0KNTMwDQowMDoyNjowNCwzNzAgLS0+IDAwOjI2OjA2LDMzNw0Kd2UgYXZvaWQgZGVtb24g + ZG9ncyB0aWxsIHRvbW9ycm93LA0KDQo1MzENCjAwOjI2OjA2LDQwNiAtLT4gMDA6MjY6MDgsMTcy + DQotIGFuZCBldmVyeXRoaW5nIGdvZXMgYmFjayB0byBub3JtYWwuDQotIEJha2luZyBzb2RhLg0K + DQo1MzINCjAwOjI2OjA4LDI0MSAtLT4gMDA6MjY6MTAsMzQxDQpJIG5lZWQgYmFraW5nIHNvZGEu + DQoNCjUzMw0KMDA6MjY6MTEsNjExIC0tPiAwMDoyNjoxNCw0MDcNCldoeSBkaWRuJ3QgeW91IHN1 + bW1vbiBtZT8NCkkgdG9sZCB5b3UgaWYgeW91IG5lZWRlZCBtZSB0byB0ZXh0Lg0KDQo1MzQNCjAw + OjI2OjE0LDQxMyAtLT4gMDA6MjY6MTUsODY4DQpTdG9wIHRhbGtpbmcsIEkgaGF2ZSBhIHF1ZXN0 + aW9uLg0KDQo1MzUNCjAwOjI2OjE1LDg3NCAtLT4gMDA6MjY6MTcsOTA4DQpJcyB0aGlzIGdvbm5h + IHNjYXI/DQoNCjUzNg0KMDA6MjY6MjEsODA1IC0tPiAwMDoyNjoyMywwNzENCkdvb2QgbmV3cywN + Cg0KNTM3DQowMDoyNjoyMywwNzcgLS0+IDAwOjI2OjI0LDYwOA0KSSdtIGEgaGVhbGVyLCBubyBz + Y2FyLg0KDQo1MzgNCjAwOjI2OjI0LDYxNCAtLT4gMDA6MjY6MjYsNjQyDQpCYWQgbmV3cywgbG9v + a3MgbGlrZQ0Kc29tZXRoaW5nIGluIHRoZSB1bmRlcndvcmxkDQoNCjUzOQ0KMDA6MjY6MjYsNjQ4 + IC0tPiAwMDoyNjoyOSwwMTUNCmtub3dzIHlvdSB0aHJlZSBoYWQNCnlvdXIgcG93ZXJzIGFjdGl2 + YXRlZC4NCg0KNTQwDQowMDoyNjoyOSwwMjEgLS0+IDAwOjI2OjMwLDE5OA0KSSB3YXMgd3Jvbmcu + DQoNCjU0MQ0KMDA6MjY6MzAsMjIyIC0tPiAwMDoyNjozMiwwMjINCklmIHlvdSdyZSB3cm9uZywg + d2hhdCdzDQp0aGUgcG9pbnQgb2YgY2FsbGluZyB5b3U/DQoNCjU0Mg0KMDA6MjY6MzIsMDI4IC0t + PiAwMDoyNjozMywzMjANCkEgcGFyYWRveCBmb3IgYW5vdGhlciBkYXkuDQoNCjU0Mw0KMDA6MjY6 + MzMsMzI2IC0tPiAwMDoyNjozNSw3NTkNCkhlcmUncyB3aGF0IEkgY2FuIHRlbGwgeW91Lg0KDQo1 + NDQNCjAwOjI2OjM1LDgyOCAtLT4gMDA6MjY6MzgsMTYyDQpBIGRlbW9uIGRvZyBhbHdheXMgY29t + ZXMNCndpdGggYSBkZW1vbiBvd25lci4NCg0KNTQ1DQowMDoyNjozOCwyMzAgLS0+IDAwOjI2OjQw + LDAzMA0KVHlwaWNhbGx5LCBhIHBvc3Nlc3NlZCBodW1hbi4NCg0KNTQ2DQowMDoyNjo0MCwwOTkg + LS0+IDAwOjI2OjQxLDg3Mw0KVGhhdCdzIHdobyB3ZSd2ZSBnb3QgdG8gZmluZC4NCg0KNTQ3DQow + MDoyNjo0MSw4NzkgLS0+IDAwOjI2OjQ0LDQ2OQ0KTm93LCBkaWQgYW55b25lIGtub3cNCndoZXJl + IHlvdSB3ZXJlIGdvaW5nDQoNCjU0OA0KMDA6MjY6NDQsNDc1IC0tPiAwMDoyNjo0NSw2MDgNCmJl + Zm9yZSB5b3Ugd2VyZSBhdHRhY2tlZD8NCg0KNTQ5DQowMDoyNjo0NSw4NzEgLS0+IDAwOjI2OjQ4 + LDIzOA0KSnVzdCBMdWN5LCB0aGUgcHJlc2lkZW50IG9mIEthcHBhLg0KDQo1NTANCjAwOjI2OjUw + LDQwOSAtLT4gMDA6MjY6NTIsNDA5DQpBbmQgSSBoZWFyZCBoZXIgdGhvdWdodHMgc2F5DQpzaGUg + aGFkIHRvIGdldCByaWQgb2YgbWUuDQoNCjU1MQ0KMDA6MjY6NTIsNDc4IC0tPiAwMDoyNjo1NCwx + MTENCkktSSB0aG91Z2h0IHNoZSBtZWFudCBjdXQgbWUgZnJvbSBydXNoLg0KDQo1NTINCjAwOjI2 + OjU0LDE4MCAtLT4gMDA6MjY6NTYsMjEzDQpPZiBjb3Vyc2UgaXQncyBoZXIuIFNvLCB3aGF0IG5v + dz8NCg0KNTUzDQowMDoyNjo1NiwyMTkgLS0+IDAwOjI2OjU4LDYxMg0KLSBJcyB0aGVyZSwgbGlr + ZSwgYSBzcGVsbCB0byBkZWZlYXQgaGVyPw0KLSBPaCwgeWVzLCBvZiBjb3Vyc2UuDQoNCjU1NA0K + MDA6MjY6NTgsNjE4IC0tPiAwMDoyNzowMCwwMTMNClNvbWV3aGVyZSBpbiB0aGF0IDIsMDAwLXBh + Z2UgYm9vaywNCg0KNTU1DQowMDoyNzowMCwwMTkgLS0+IDAwOjI3OjAyLDQxOQ0Kb3IsIHVoLCAi + dG9tZSwiIEkgc2hvdWxkIHNheS4NCg0KNTU2DQowMDoyNzowMiw1NTEgLS0+IDAwOjI3OjA1LDAx + OA0KU28sIGxldCdzIGdldCByZWFkaW5nLg0KDQo1NTcNCjAwOjI3OjA1LDAyNCAtLT4gMDA6Mjc6 + MDcsMzU4DQpPciwgdXNlIHNvZGl1bSBiaWNhcmJvbmF0ZS4NCg0KNTU4DQowMDoyNzowNyw0MjYg + LS0+IDAwOjI3OjA4LDg1OQ0KTG9vay4NCg0KNTU5DQowMDoyNzoxMCw1NjEgLS0+IDAwOjI3OjEy + LDczNQ0KLSBPaCENCi0gTGlrZSBJIHNhaWQsDQoNCjU2MA0KMDA6Mjc6MTIsNzQxIC0tPiAwMDoy + NzoxNSwzMDkNCnNvbWUga2luZCBvZiBoeWRyb2NobG9yaWMgYWNpZCBjb21wb3VuZC4NCg0KNTYx + DQowMDoyNzoxNSwzNzcgLS0+IDAwOjI3OjE3LDQ5MQ0KU28gc29kaXVtIGJpY2FyYm9uYXRlIG5l + dXRyYWxpemVzIGl0Lg0KDQo1NjINCjAwOjI3OjE4LDQxNCAtLT4gMDA6Mjc6MjEsMjgxDQpPaCwg + d2VsbCwgc2F2ZXMgYSBsb3Qgb2YgdGltZS4NCg0KNTYzDQowMDoyNzoyMSwzNTAgLS0+IDAwOjI3 + OjIyLDk1MA0KUmlnaHQgb24uIFNvIGxldCdzIGdvIGdldCByaWQgb2YgTHVjeS4NCg0KNTY0DQow + MDoyNzoyMiw5NTYgLS0+IDAwOjI3OjI0LDY4OQ0KU3RvcC4gV2UgY2FuJ3QganVzdCBnZXQgcmlk + DQpvZiB0aGUgcHJlc2lkZW50IG9mIEthcHBhLg0KDQo1NjUNCjAwOjI3OjI0LDY5NSAtLT4gMDA6 + Mjc6MjYsODYyDQpXZSBjYW4sIGlmIHNoZSdzIGEgZGVtb24NCndobyBraWxsZWQgb3VyIG1vdGhl + ci4NCg0KNTY2DQowMDoyNzoyNiw4NjggLS0+IDAwOjI3OjI5LDA5OA0KV2VsbCwgd2hhdCBpZiBz + aGUncyBub3QsIGFuZA0KeW91IG1ha2VzIHNvbWUgY3Jhenkgc2NlbmU/DQoNCjU2Nw0KMDA6Mjc6 + MjksMTA0IC0tPiAwMDoyNzozMSw3MDUNCkd1eXM/IEFyZSB5b3Ugc2VyaW91c2x5DQpzY2FyZWQg + YWJvdXQgcnVpbmluZyBydXNoPw0KDQo1NjgNCjAwOjI3OjMxLDcxMSAtLT4gMDA6Mjc6MzMsNzcz + DQotIFllYWgsIEkgYW0uDQotIEkgY2FuJ3QgYmVsaWV2ZSB0aGlzLg0KDQo1NjkNCjAwOjI3OjMz + LDc3OSAtLT4gMDA6Mjc6MzUsNjgwDQpJJ20gc29ycnkgSSB3YW50IGEgbGlmZQ0Kd2hlbiB0aGlz + IGlzIG92ZXIuDQoNCjU3MA0KMDA6Mjc6MzUsNjg2IC0tPiAwMDoyNzozNyw1NTUNCi0gV2l0aCB0 + aGVtPyBXaHk/DQotIFllYWgsIHdpdGggdGhlbS4NCg0KNTcxDQowMDoyNzozNyw1NjEgLS0+IDAw + OjI3OjM5LDg5NA0KQmVjYXVzZSB0aGV5IGRvbid0IGJsYW1lDQptZSBmb3IgTW9tJ3MgZGVhdGgu + DQoNCjU3Mg0KMDA6Mjc6NDIsNDQ5IC0tPiAwMDoyNzo0Myw5MzMNCkkgZ2V0IGl0Lg0KDQo1NzMN + CjAwOjI3OjQ0LDM3NyAtLT4gMDA6Mjc6NDcsNzc4DQpZb3UgdGhpbmsgaWYgSSdkIGFuc3dlcmVk + IG15IHBob25lLA0KDQo1NzQNCjAwOjI3OjQ3LDkxMCAtLT4gMDA6Mjc6NDksNDc2DQp5b3Ugd291 + bGQgaGF2ZSBnb3R0ZW4gaGVyZSBpbiB0aW1lLg0KDQo1NzUNCjAwOjI3OjQ5LDU0NSAtLT4gMDA6 + Mjc6NTEsMzExDQpXZWxsLCBJIGNhbiBhc3N1cmUgeW91DQoNCjU3Ng0KMDA6Mjc6NTEsMzgwIC0t + PiAwMDoyNzo1NCwyMTQNCkkgYmxhbWUgbXlzZWxmIGV2ZXJ5IGRheS4NCg0KNTc3DQowMDoyODow + NiwxMzUgLS0+IDAwOjI4OjA4LDAwNg0KV2hvJ3MgdGhlcmU/DQoNCjU3OA0KMDA6Mjg6MTMsODY5 + IC0tPiAwMDoyODoxNSwwMDINCk1hZ2dpZT8NCg0KNTc5DQowMDoyODoxNiwyMDIgLS0+IDAwOjI4 + OjE3LDYwOA0KTWFnZ2llPw0KDQo1ODANCjAwOjI4OjE4LDM0MiAtLT4gMDA6Mjg6MjAsMzY3DQpX + ZWxjb21lIHRvIEthcHBhLg0KDQo1ODENCjAwOjI4OjIwLDM3MyAtLT4gMDA6Mjg6MjQsNDA5DQpZ + b3UgYXJlIGFsbCBub3cgb2ZmaWNpYWxseQ0KYSBwYXJ0IG9mIG91ciBzaXN0ZXJob29kLg0KDQo1 + ODINCjAwOjI4OjI0LDU0NiAtLT4gMDA6Mjg6MjUsNjc5DQpDb25ncmF0dWxhdGlvbnMuDQoNCjU4 + Mw0KMDA6Mjg6MzAsNTE5IC0tPiAwMDoyODozMiw1MTkNCkNvbWUgdXBzdGFpcnMuDQoNCjU4NA0K + MDA6Mjg6MzIsNTI1IC0tPiAwMDoyODozNCwzMjUNCkkgaGF2ZSBzb21ldGhpbmcgc3BlY2lhbCBm + b3IgeW91Lg0KDQo1ODUNCjAwOjI4OjM0LDkyNiAtLT4gMDA6Mjg6MzcsNTI2DQpNYWdnaWU/DQoN + CjU4Ng0KMDA6Mjg6MzcsNTMyIC0tPiAwMDoyODo0MCw0NTkNCi0gTWFnZ2llIQ0KLSBfDQoNCjU4 + Nw0KMDA6Mjg6NDgsMjY3IC0tPiAwMDoyODo1MSw4NjgNCk1hZ2dpZT8gV2hhdCB0b29rIHlvdSBz + byBsb25nIGluIHRoZXJlPw0KDQo1ODgNCjAwOjI4OjUxLDk4NSAtLT4gMDA6Mjg6NTQsOTE5DQot + IE1hZ2dpZS4NCi0gSGV5LiBIaS4NCg0KNTg5DQowMDoyODo1NCw5MjUgLS0+IDAwOjI4OjU3LDQ0 + NA0KVW0sIEknbGwgYmUgYmFrLg0KDQo1OTANCjAwOjI5OjAyLDA4NCAtLT4gMDA6Mjk6MDQsNjg1 + DQpUaGVyZSBzaGUgaXMuIEdvIGZpbmQgTWFnZ2llLg0KDQo1OTENCjAwOjI5OjA4LDAzOCAtLT4g + MDA6Mjk6MTAsNDA1DQpPaCwgaGV5LCBNZWwuDQoNCjU5Mg0KMDA6Mjk6MTAsNDExIC0tPiAwMDoy + OToxMywxMjINCkktSSdtIHdhaXRpbmcgZm9yIHlvdXIgc2lzdGVyLA0KYnV0IHNpbmNlIHlvdSdy + ZSBoZXJlLi4uDQoNCjU5Mw0KMDA6Mjk6MTMsMTI4IC0tPiAwMDoyOToxNSwxNjcNCkJlIGdvbmUs + IGRlbW9uIQ0KDQo1OTQNCjAwOjI5OjE2LDUxNyAtLT4gMDA6Mjk6MTgsNTMyDQpXaGF0IHRoZSBo + ZWxsPw0KDQo1OTUNCjAwOjI5OjE4LDYwMCAtLT4gMDA6Mjk6MjAsODAxDQotIFlvdSdyZSBub3Qg + YSBkZW1vbj8NCi0gRXhjdXNlIG1lPw0KDQo1OTYNCjAwOjI5OjIwLDg2OSAtLT4gMDA6Mjk6MjMs + MTM2DQpVbSwgSSBqdXN0IG1lYW4gdGhlb3JldGljYWxseS4NCg0KNTk3DQowMDoyOToyMywxNDIg + LS0+IDAwOjI5OjI0LDg3Ng0KSSB0aGluayB5b3UncmUga2luZCBvZiBiaXRjaHkuDQoNCjU5OA0K + MDA6Mjk6MjYsODc3IC0tPiAwMDoyOTozMCw0NDUNCkkgd2FzIG9mZmVyaW5nIHlvdSBhIGRyYW5r + DQpmcm9tIHRoZSBzZWNyZXQgc3Rhc2gNCg0KNTk5DQowMDoyOTozMCw0NTEgLS0+IDAwOjI5OjM0 + LDA5MQ0KYmVjYXVzZSBhbGwgR3JlZWsgcGFydGllcyBhcmUNCmRyeSBub3cgc2luY2UgY29tYSBn + aXJsLg0KDQo2MDANCjAwOjI5OjM0LDExNiAtLT4gMDA6Mjk6MzUsNzE2DQpTb3JyeS4NCg0KNjAx + DQowMDoyOTozNywyMjIgLS0+IDAwOjI5OjM4LDc4OA0KWW91IHNlZW0gc28gc3RyZXNzZWQuDQoN + CjYwMg0KMDA6Mjk6NDEsNzI0IC0tPiAwMDoyOTo0Miw4MjMNCklzIGl0IHJ1c2g/DQoNCjYwMw0K + MDA6Mjk6NDIsODkxIC0tPiAwMDoyOTo0NiwyMjYNClVtLCB5ZWFoLCB5b3Uga25vdy4gTW9zdGx5 + Lg0KDQo2MDQNCjAwOjI5OjQ2LDI5NSAtLT4gMDA6Mjk6NDgsNjI4DQpZb3UgY2FyZSBzbyBtdWNo + IGFib3V0DQp3aGF0IHBlb3BsZSB0aGluay4NCg0KNjA1DQowMDoyOTo0OCw2OTcgLS0+IDAwOjI5 + OjUwLDc5Nw0KWW91IGtub3cgdGhhdCBJIHRoaW5rIHlvdSdyZSBwZXJmZWN0Lg0KDQo2MDYNCjAw + OjI5OjUzLDIzNSAtLT4gMDA6Mjk6NTQsODM1DQpDYW4gSSBraXNzIHlvdT8NCg0KNjA3DQowMDoy + OTo1NCw5MDMgLS0+IDAwOjI5OjU2LDgwMw0KT25lIGxhc3QgdGltZT8NCg0KNjA4DQowMDoyOTo1 + OCw2NDAgLS0+IDAwOjMwOjAxLDAwOA0KUHJlcGFyZSB5b3Vyc2VsZiBmb3IgdGhlIGVuZC4NCg0K + NjA5DQowMDozMDowMSwwNzYgLS0+IDAwOjMwOjAzLDMxMA0KWW91IGtub3csIEknbGwgcGFzcyBv + biB0aGUga2lzcy4NCg0KNjEwDQowMDozMDowMywzMTYgLS0+IDAwOjMwOjA1LDAxNQ0KVG9vIGJh + ZCwgeW91IGFscmVhZHkgc2FpZCB5ZXMuDQoNCjYxMQ0KMDA6MzA6MDUsMTQ3IC0tPiAwMDozMDow + OCwxNDgNCldoZW4gaXQgY29tZXMgdG8gY29uc2VudCwgSSBjYW4NCmNoYW5nZSBteSBtaW5kIGF0 + IGFueSB0aW1lLg0KDQo2MTINCjAwOjMwOjEwLDA4MCAtLT4gMDA6MzA6MTEsOTc5DQpPaCwgbXkg + R29kLCBQaWxhdGVzLg0KDQo2MTMNCjAwOjMwOjE2LDAxMyAtLT4gMDA6MzA6MTgsMjI5DQpOb3Qg + c28gZmFzdCwgTWFncy4NCg0KNjE0DQowMDozMDoxOCwyMzUgLS0+IDAwOjMwOjE5LDYwMw0KSGVs + cCENCg0KNjE1DQowMDozMDoyNyw2MzAgLS0+IDAwOjMwOjMxLDQ5OQ0KT2gsIG15IEdvZC4gT2gs + IG15IEdvZCwgaXMgaGUgZHlpbmc/DQoNCjYxNg0KMDA6MzA6MzEsNTA1IC0tPiAwMDozMDozMywz + MzANCi0gSSBkb24ndCBrbm93Lg0KLSBJcyBoZSBkeWluZz8gSGUncyBub3QgZHlpbmcsIHJpZ2h0 + Pw0KDQo2MTcNCjAwOjMwOjMzLDMzNiAtLT4gMDA6MzA6MzUsNDI1DQotIEl0J3MganVzdCB0aGUg + ZGVtb24/DQotIEkgZG9uJ3Qga25vdy4NCg0KNjE4DQowMDozMDo0NSw1ODIgLS0+IDAwOjMwOjQ3 + LDQ0OA0KT2gsIHRoYW5rIEdvZC4NCg0KNjE5DQowMDozMDo0OSw1MjEgLS0+IDAwOjMwOjUxLDE1 + Mg0KV2hhdCBoYXBwZW5lZD8NCg0KNjIwDQowMDozMDo1NSwwNTggLS0+IDAwOjMwOjU3LDU5NA0K + SSdtIGp1c3Qgc2F5aW5nLCB0aGF0IHdhcyBhIGtpc3MuDQoNCjYyMQ0KMDA6MzA6NTgsMjYxIC0t + PiAwMDozMTowMCwwMjcNCkl0IHdhcyBhbGwgdGhlIGFkcmVuYWxpbmUuDQoNCjYyMg0KMDA6MzE6 + MDAsMDk2IC0tPiAwMDozMTowMSw2NjINCkluIGZhY3QsIGFkcmVuYWxpbmUNCmRvZXNuJ3QgaGF2 + ZSBtdWNoIGVmZmVjdA0KDQo2MjMNCjAwOjMxOjAxLDY2OCAtLT4gMDA6MzE6MDMsMzY4DQpvbiBo + dW1hbiBlbW90aW9ucyBiZXNpZGVzDQp0aGUgZmVhciByZXNwb25zZS4NCg0KNjI0DQowMDozMTow + MywzNzQgLS0+IDAwOjMxOjA1LDE2Mg0KT2gsIG15IEdvZCwgaWYgeW91J2QNCmJlZW4gbXkgc2lz + dGVyIGxvbmdlciwNCg0KNjI1DQowMDozMTowNSwxNjggLS0+IDAwOjMxOjA3LDQzNQ0KSSdkIHRl + bGwgeW91IHRvIHNodXQgdXAuDQoNCjYyNg0KMDA6MzE6MDcsNTAzIC0tPiAwMDozMToxMCwzMzgN + CkhlJ3MganVzdCBub3Qgd2hvIEkgc2VlDQpteXNlbGYgd2l0aCBsb25nLXRlcm0uDQoNCjYyNw0K + MDA6MzE6MTIsMTQ5IC0tPiAwMDozMToxMyw2MDgNCk15IEdvZCwgYXJlIHlvdSBmb3IgcmVhbCBw + b3V0aW5nDQoNCjYyOA0KMDA6MzE6MTMsNjE0IC0tPiAwMDozMToxNCw5MzgNCmJlY2F1c2UgeW91 + IG1pc3NlZCBvdXQgb24gdGhlIGZpZ2h0Pw0KDQo2MjkNCjAwOjMxOjE0LDk0NCAtLT4gMDA6MzE6 + MTcsMjc4DQpJJ20gbm90IHBvdXRpbmcuIEkgZG9uJ3QgcG91dC4NCg0KNjMwDQowMDozMToxNywz + NDcgLS0+IDAwOjMxOjIwLDM4MQ0KLSBJbXBhcnRpYWwgb2JzZXJ2ZXIuIFlvdSBwb3V0Lg0KLSBZ + ZWFoLg0KDQo2MzENCjAwOjMxOjIwLDQ1MCAtLT4gMDA6MzE6MjMsMzg0DQpJdCdzIGp1c3QgSSBm + aW5hbGx5IGZpZ3VyZWQNCm91dCBob3cgdG8gZnJlZXplIHRoaW5ncywNCg0KNjMyDQowMDozMToy + Myw0NTMgLS0+IDAwOjMxOjI1LDE1Mg0KYW5kIEkgd2FzIGV4Y2l0ZWQgdG8gdHJ5IGl0Lg0KDQo2 + MzMNCjAwOjMxOjI1LDE1OCAtLT4gMDA6MzE6MjYsMzkxDQpTbyBob3cnZCB5b3UgZG8gaXQ/DQoN + CjYzNA0KMDA6MzE6MjYsMzk3IC0tPiAwMDozMToyNyw1MTcNCldoYXRldmVyLiBJdCdzIG5vdCBp + bXBvcnRhbnQuDQoNCjYzNQ0KMDA6MzE6MjcsNTIzIC0tPiAwMDozMToyOSwwNTYNCkNvbWUgb24s + IGFjdGlvbiwgcmVhY3Rpb24uDQoNCjYzNg0KMDA6MzE6MjksMDYyIC0tPiAwMDozMTozMCwyNTMN + CldoYXQgd2FzIGl0PyBXaGF0IGNoYW5nZWQ/DQoNCjYzNw0KMDA6MzE6MzAsMjU5IC0tPiAwMDoz + MTozNCwyMjgNCkhtbT8NCg0KNjM4DQowMDozMTozNSwwNjAgLS0+IDAwOjMxOjM4LDM2Ng0KSXQg + d29ya3Mgd2hlbiBJIGFtIG5vdCBhbmdyeS4NCg0KNjM5DQowMDozMTo0MCw5NzAgLS0+IDAwOjMx + OjQyLDcwMw0KT2gsIG15IEdvZC4NCg0KNjQwDQowMDozMTo0Miw3NzIgLS0+IDAwOjMxOjQ1LDAz + OQ0KWW91ciBwb3dlcnMgYXJlIGp1ZGdpbmcgeW91Lg0KDQo2NDENCjAwOjMxOjQ1LDA0NSAtLT4g + MDA6MzE6NDcsNDEyDQpIYS1oYS1oYSwgaXQncyBoaWxhcmlvdXMuDQoNCjY0Mg0KMDA6MzE6NDcs + NTQzIC0tPiAwMDozMTo0OSwxNDMNCkl0IGlzLg0KDQo2NDMNCjAwOjMxOjQ5LDIxMiAtLT4gMDA6 + MzE6NTEsOTExDQpCdXQgSSwgdWgsIGRpZCB3YW50IHRvIHNheS4uLg0KDQo2NDQNCjAwOjMxOjUz + LDUyMCAtLT4gMDA6MzE6NTYsOTE3DQpJJ20gc29ycnkgYW5kIEkgZG9uJ3QgYmxhbWUgeW91Lg0K + DQo2NDUNCjAwOjMxOjU2LDk4NiAtLT4gMDA6MzE6NTksMjUzDQpJIGJsYW1lIG15c2VsZi4NCg0K + NjQ2DQowMDozMTo1OSwzMjIgLS0+IDAwOjMyOjAxLDkyNA0KSSBrbmV3IHNvbWV0aGluZyB3YXNu + J3QNCnJpZ2h0IHRoYXQgbmlnaHQuDQoNCjY0Nw0KMDA6MzI6MDIsNzI1IC0tPiAwMDozMjowNSw2 + OTMNCkkga25ldywgYnV0IEkgc3RpbGwgd2FudGVkDQp0byBsZWF2ZSB0aGUgaG91c2UgYW5kLi4u + DQoNCjY0OA0KMDA6MzI6MDUsNjk5IC0tPiAwMDozMjowNywwNjkNClN0b3AuDQoNCjY0OQ0KMDA6 + MzI6MDgsMjY1IC0tPiAwMDozMjowOSw2NjkNCkl0J3Mgbm90IHlvdXIgZmF1bHQsIGVpdGhlci4N + Cg0KNjUwDQowMDozMjowOSw3MzIgLS0+IDAwOjMyOjExLDIzMg0KSSBzaG91bGRuJ3QgaGF2ZSBz + aHV0IHlvdSBvdXQuDQoNCjY1MQ0KMDA6MzI6MTEsMzAwIC0tPiAwMDozMjoxMywyMzQNCkkgYW0g + eW91ciBiaWcgc2lzdGVyLg0KDQo2NTINCjAwOjMyOjEzLDY0NyAtLT4gMDA6MzI6MTYsMjMzDQpJ + J20gc3VwcG9zZWQgdG8gbnVydHVyZQ0KeW91IHNvIGhhcmQsIHlvdSBrbm93Pw0KDQo2NTMNCjAw + OjMyOjE5LDAwMCAtLT4gMDA6MzI6MjEsMzA1DQpIZXksIG5vdyBzZWU/DQoNCjY1NA0KMDA6MzI6 + MjEsNTc3IC0tPiAwMDozMjoyMyw0NDQNClRoaXMgaXMgZ29vZC4NCg0KNjU1DQowMDozMjoyMyw1 + MTMgLS0+IDAwOjMyOjI1LDUxMw0KWW91IHR3byBhcmUgc28gbXVjaCBiZXR0ZXIgdG9nZXRoZXIu + DQoNCjY1Ng0KMDA6MzI6MjYsMjk2IC0tPiAwMDozMjoyOCw1ODENCk1vbSBzYWlkIHRoYXQuDQoN + CjY1Nw0KMDA6MzI6MzIsMTU1IC0tPiAwMDozMjozMyw4ODgNClNvIHdoYXQgd2FzIHNoZSBsaWtl + Pw0KDQo2NTgNCjAwOjMyOjM0LDc0MyAtLT4gMDA6MzI6MzcsNzI1DQpXZWxsLCBsdWNreSBmb3Ig + eW91LA0KSSBhbSBhIGZpcm0gYmVsaWV2ZXINCg0KNjU5DQowMDozMjozNyw3MzEgLS0+IDAwOjMy + OjM5LDY2NA0KdGhhdCBpZiBpdCdzIG5vdCBvbg0KY2FtZXJhIGl0IGRpZG4ndCBoYXBwZW4uDQoN + CjY2MA0KMDA6MzI6NDQsMzY3IC0tPiAwMDozMjo0NiwzMDANCi0gQ2FrZSENCi0gTm8sIGhpZ2hl + ciBhbmdsZS4NCg0KNjYxDQowMDozMjo0NiwzNjkgLS0+IDAwOjMyOjQ3LDgwMg0KUGxlYXNlLiBJ + dCdzIGdvaW5nIG9uIEluc3RhZ3JhbS4NCg0KNjYyDQowMDozMjo0Nyw4NzAgLS0+IDAwOjMyOjQ5 + LDI3MA0KT2gsIGRvbid0IGJlIHNpbGx5LiBZb3UgbG9vayBiZWF1dGlmdWwuDQoNCjY2Mw0KMDA6 + MzI6NDksMjc2IC0tPiAwMDozMjo1MCw2NzYNCkkgYW0gc28gcHJvdWQgb2YgeW91Lg0KDQo2NjQN + CjAwOjMyOjUyLDY0MCAtLT4gMDA6MzI6NTQsNDQyDQpJJ20gcHJvdWQgb2YgeW91IGJvdGguDQoN + CjY2NQ0KMDA6MzM6MDAsNzgzIC0tPiAwMDozMzowNCwyNDYNCllvdSBrbm93LCB3aGVuIEkgd2Fz + IG5pbmUsDQphdCBhIGJpcnRoZGF5IHBhcnR5LCBJIHdhcy4uLg0KDQo2NjYNCjAwOjMzOjA1LDA1 + NCAtLT4gMDA6MzM6MDksMDM1DQpJIHdhcyBzbyBzdXJlIHNoZSBjb250YWN0ZWQNCm1lIHRocm91 + Z2ggYSBPdWlqYSBib2FyZC4NCg0KNjY3DQowMDozMzowOSw4OTIgLS0+IDAwOjMzOjExLDY4OA0K + SGV5LCBtYXliZSBzaGUgZGlkLg0KDQo2NjgNCjAwOjMzOjEyLDU2MiAtLT4gMDA6MzM6MTQsMTI4 + DQpZb3Uga25vdywgc2hlIHByb2JhYmx5IGNvdWxkLg0KDQo2NjkNCjAwOjMzOjE0LDE5NyAtLT4g + MDA6MzM6MTYsNDA5DQpZZWFoLCBtYXliZS4NCg0KNjcwDQowMDozMzoxNywxMDggLS0+IDAwOjMz + OjE4LDc2Ng0KWW91J3JlIHJpZ2h0LiBTaGUgc2VlbXMgZ3JlYXQuDQoNCjY3MQ0KMDA6MzM6MjEs + NzgzIC0tPiAwMDozMzoyNCw1NzINCkJ1dCBzaGUgYWxzbyBsZWZ0IG1lLCBzby4uLg0KDQo2NzIN + CjAwOjMzOjI2LDkzMCAtLT4gMDA6MzM6MjgsMzY2DQpPaCwgbm8uDQoNCjY3Mw0KMDA6MzM6Mjks + MjM5IC0tPiAwMDozMzozMSw0MDYNCllvdSB3ZXJlIHJlYWxseSBsb25lbHkgZ3Jvd2luZyB1cC4N + Cg0KNjc0DQowMDozMzozMiw5NDQgLS0+IDAwOjMzOjM1LDAxNQ0KSSdtIHNvcnJ5LiBJIHJlYWQg + eW91ciB0aG91Z2h0cy4NCg0KNjc1DQowMDozMzozNSwwMjEgLS0+IDAwOjMzOjM2LDA3OQ0KWS1Z + ZWFoLg0KDQo2NzYNCjAwOjMzOjM3LDU2MSAtLT4gMDA6MzM6MzksNzU0DQpZZWFoLCBJLUkgZ3Vl + c3Mgc29tZXRpbWVzIEkgd2FzLg0KDQo2NzcNCjAwOjMzOjQyLDU5MiAtLT4gMDA6MzM6NDQsNzky + DQpJIGRlZmluaXRlbHkgZGlkbid0IGhhdmUgdGhpcy4NCg0KNjc4DQowMDozMzo0NSwxMzggLS0+ + IDAwOjMzOjQ3LDU4NA0KU29ycnkuIFRoaXMgaXMgcmlkaWN1bG91cy4NCg0KNjc5DQowMDozMzo0 + Nyw1OTAgLS0+IDAwOjMzOjQ5LDk5MA0KSSd2ZSBjcmllZCB0d2ljZSBpbiBteSBsaWZlLg0KDQo2 + ODANCjAwOjMzOjUwLDMzMyAtLT4gMDA6MzM6NTIsNjMzDQpPaCwgaXQncyBva2F5LiBXZS4uLg0K + DQo2ODENCjAwOjMzOjUyLDc2NCAtLT4gMDA6MzM6NTQsMTk3DQpXZSBjcnkgYWxsIHRoZSB0aW1l + IGFyb3VuZCBoZXJlLg0KDQo2ODINCjAwOjMzOjU0LDIwMyAtLT4gMDA6MzM6NTUsODcwDQpUb3Rh + bGx5Lg0KDQo2ODMNCjAwOjMzOjU1LDkzOCAtLT4gMDA6MzM6NTcsNTA1DQpPa2F5Lg0KDQo2ODQN + CjAwOjMzOjU4LDYzNyAtLT4gMDA6MzQ6MDIsMzc2DQpBbnl3YXksIEknbSBsZWFuaW5nIHRvd2Fy + ZHMgeWVzIHRvbW9ycm93DQoNCjY4NQ0KMDA6MzQ6MDIsNDQ1IC0tPiAwMDozNDowNCwyMzMNCm9u + IHRoZSB3aG9sZSB3aXRjaCB0aGluZywNCg0KNjg2DQowMDozNDowNCwyMzkgLS0+IDAwOjM0OjA2 + LDc3Mw0KYnV0IHdoYXRldmVyIHlvdSBib3RoDQpjaG9vc2UgSSdsbCBiZSBjb29sIHdpdGguDQoN + CjY4Nw0KMDA6MzQ6MDcsODUwIC0tPiAwMDozNDowOCw5ODMNClRoYW5rIHlvdS4NCg0KNjg4DQow + MDozNDowOSwwNTEgLS0+IDAwOjM0OjEwLDE1MQ0KSSBtZWFuLCBjb21lIG9uLg0KDQo2ODkNCjAw + OjM0OjEwLDIxOSAtLT4gMDA6MzQ6MTIsNDYxDQpZb3UgYm90aCBoYWQgbWFkDQplbmRvcnBoaW4g + cnVzaGVzLCByaWdodD8NCg0KNjkwDQowMDozNDoxMiw0NjcgLS0+IDAwOjM0OjE0LDIzNA0KVGhh + dCB3YXMgbmV4dCBsZXZlbC4NCg0KNjkxDQowMDozNDoxNCwyNDAgLS0+IDAwOjM0OjE3LDAzNw0K + QW5kIGNsZWFybHkgaXQgd2FzIE1vbSdzIGR5aW5nIHdpc2guDQoNCjY5Mg0KMDA6MzQ6MTcsNTQy + IC0tPiAwMDozNDoyMCw2NzQNClNvcnJ5LCB0aGlzIGlzIHdoYXQgc2hlIGRvZXMuDQoNCjY5Mw0K + MDA6MzQ6MjAsNjgwIC0tPiAwMDozNDoyMywwNDcNCkNhbiB3ZSBnbyBiYWNrIHRvIHdoYXRldmVy + DQp3ZSBkbywgeW91J3JlIGNvb2w/DQoNCjY5NA0KMDA6MzQ6MjQsMzkyIC0tPiAwMDozNDoyNSw2 + NTgNCkkgYW0gY29vbC4NCg0KNjk1DQowMDozNDoyNSw5NTEgLS0+IDAwOjM0OjI3LDc1MQ0KSSdt + IHRyeWluZyB0byBiZSBjb29sLg0KDQo2OTYNCjAwOjM0OjI3LDgyMCAtLT4gMDA6MzQ6MzAsMDUz + DQpJIHdhbnQgdG8gYmUgY29vbC4NCg0KNjk3DQowMDozNDozMywzMTcgLS0+IDAwOjM0OjM1LDg1 + MQ0KWW91IGFyZSB0aGUgQ2hhcm1lZCBPbmVzLA0KDQo2OTgNCjAwOjM0OjM1LDg1NyAtLT4gMDA6 + MzQ6MzcsNzAwDQp3aXRjaGVzIHdobyBhcmUgZGVzdGluZWQNCnRvIHNhdmUgdGhlIHdvcmxkLg0K + DQo2OTkNCjAwOjM0OjM3LDcwNiAtLT4gMDA6MzQ6MzksMTA1DQpUaGUgZGVtb24gd2hvIGtpbGxl + ZCBvdXIgbW90aGVyLg0KDQo3MDANCjAwOjM0OjM5LDExMSAtLT4gMDA6MzQ6NDAsNjQ0DQpXZSBj + YW4gZmlndXJlIG91dCB3aG8ga2lsbGVkIGhlci4NCg0KNzAxDQowMDozNDo0MywwMDEgLS0+IDAw + OjM0OjQ0LDczNQ0KVGhlcmUgd2FzIGljZSBhdCB0aGUgc2NlbmUuDQoNCjcwMg0KMDA6MzQ6NDQs + ODAzIC0tPiAwMDozNDo0NywwMDMNCldlIGNhbiBmaWd1cmUgb3V0IHdobyBraWxsZWQgaGVyLg0K + DQo3MDMNCjAwOjM0OjQ3LDA3MiAtLT4gMDA6MzQ6NDgsODM5DQpDb2xkIGlzIGEgY2hhcmFjdGVy + aXN0aWMuIENvbGQuDQoNCjcwNA0KMDA6MzQ6NDgsODQ1IC0tPiAwMDozNDo1MCwxNDQNClRoZXJl + IGFyZSBsaXRlcmFsbHkgdGhvdXNhbmRzIG9mDQoNCjcwNQ0KMDA6MzQ6NTAsMTUwIC0tPiAwMDoz + NDo1MSw3NzQNCmRpZmZlcmVudCBkZW1vbnMgYXNzb2NpYXRlZCB3aXRoIGNvbGQuDQoNCjcwNg0K + MDA6MzQ6NTUsMTQ3IC0tPiAwMDozNDo1OCwyMzQNCkRvIEkgbG9vayByaWdodGVvdXNseSBhbmdy + eSwNCmxpa2UgSSdkIGZpdCBpbiBhdCBhIHJhbGx5Pw0KDQo3MDcNCjAwOjM0OjU4LDI0MCAtLT4g + MDA6MzU6MDAsNjExDQpZb3UgbG9vayBnb29kLiBMaXN0ZW4sDQppdCB3YXNuJ3QgY29sZCwgcmln + aHQ/DQoNCjcwOA0KMDA6MzU6MDAsNjE3IC0tPiAwMDozNTowMiwwODMNCldoYXQ/IFNvcnJ5Lg0K + DQo3MDkNCjAwOjM1OjAyLDE1MiAtLT4gMDA6MzU6MDQsMDg1DQpJIGhhdmVuJ3Qgc2xlcHQuIEkn + bSBhIHNjaWVudGlzdC4NCg0KNzEwDQowMDozNTowNCwxNTQgLS0+IDAwOjM1OjA2LDYyMQ0KRXZp + ZGVuY2UgaXMgcmVwZWF0YWJsZSBhbmQgd2l0aA0KRGVtb24gQnJpYW4gaXQgd2Fzbid0IGNvbGQs + DQoNCjcxMQ0KMDA6MzU6MDYsNjI3IC0tPiAwMDozNTowOCw1OTMNCndoaWNoIG1lYW5zIGhlIHdh + c24ndCB0aGUNCmRlbW9uIHdobyBraWxsZWQgb3VyIG1vdGhlci4NCg0KNzEyDQowMDozNTowOCw1 + OTkgLS0+IDAwOjM1OjEwLDM2OA0KQW5kIGNyb3dzLiBZb3Ugc2FpZCB0aGVyZSB3ZXJlIGNyb3dz + LA0KDQo3MTMNCjAwOjM1OjEwLDM3NCAtLT4gMDA6MzU6MTIsNzI1DQpzbyBJIHN0YXJ0ZWQgdGhp + bmtpbmcgbWF5YmUNCnRoZXJlJ3MgYW4gb3JuaXRob2xvZ3kgYW5nbGUuDQoNCjcxNA0KMDA6MzU6 + MTIsNzMxIC0tPiAwMDozNToxNCw2OTcNClBsdXMgdGhlIGNvbGQgZmFjdG9yLi4uDQoNCjcxNQ0K + MDA6MzU6MTQsOTk4IC0tPiAwMDozNToxNiw5OTgNCldhaXQuIE1lbC4gTGV0J3MgZ2V0IE1lbC4N + Cg0KNzE2DQowMDozNToxNywwMDQgLS0+IDAwOjM1OjE4LDc3MA0KU2hlJ3MgYWxyZWFkeSBhdCB0 + aGUgcmFsbHkNCg0KNzE3DQowMDozNToxOSwxMjIgLS0+IDAwOjM1OjIxLDk2Mg0KdG8gcHJvdGVz + dCBQcm9mZXNzb3INClRoYWluZSdzIHJlaW5zdGF0ZW1lbnQuDQoNCjcxOA0KMDA6MzU6MjMsMDgx + IC0tPiAwMDozNToyNCw4MjINCk9oLCBuby4NCg0KNzE5DQowMDozNToyOSw4NDYgLS0+IDAwOjM1 + OjMyLDQ4MA0KV2UgYmVsaWV2ZSB0aGUgd29tZW4hDQpXZSBiZWxpZXZlIHRoZSB3b21lbiENCg0K + NzIwDQowMDozNTozMiw1NDkgLS0+IDAwOjM1OjM0LDI4Mg0KV2UgYmVsaWV2ZSB0aGUgd29tZW4h + DQoNCjcyMQ0KMDA6MzU6MzQsMzUxIC0tPiAwMDozNTozNiwyNTENCk5vdCBhbGwgbWVuISBOb3Qg + YWxsIG1lbiEgTm90IGFsbCBtZW4hDQoNCjcyMg0KMDA6MzU6MzYsMzE5IC0tPiAwMDozNTozOSww + NTQNCk5vdCBhbGwgbWVuISBOb3QgYWxsIG1lbiEgTm90IGFsbCBtZW4hDQoNCjcyMw0KMDA6MzU6 + NDYsNjYzIC0tPiAwMDozNTo0OSwyMzANCkl0J3MgYSBiZWF1dGlmdWwgZGF5Lg0KDQo3MjQNCjAw + OjM2OjM3LDc5OCAtLT4gMDA6MzY6NDAsMzY2DQpNZWxhbmllIFZlcmEuDQoNCjcyNQ0KMDA6MzY6 + NDIsNTE0IC0tPiAwMDozNjo0NCw0MjcNCldlIG1lZXQgYXQgbGFzdC4NCg0KNzI2DQowMDozNjo0 + OCwzMjcgLS0+IDAwOjM2OjQ5LDk1Mw0KQWNjb3JkaW5nIHRvIFRoZSBCb29rIG9mIFNoYWRvd3Ms + DQoNCjcyNw0KMDA6MzY6NDksOTU5IC0tPiAwMDozNjo1MSw3MjYNCmhpcyBkZW1vbiBuYW1lIGlz + IFRheWRldXMuDQoNCjcyOA0KMDA6MzY6NTEsNzMyIC0tPiAwMDozNjo1Myw3ODgNCkhlJ3MgYW4g + dXBwZXItbGV2ZWwgZGVtb24NCndobydzIGxpdmVkIGZvciBjZW50dXJpZXMNCg0KNzI5DQowMDoz + Njo1Myw3OTQgLS0+IDAwOjM2OjU2LDA2Nw0KZmVlZGluZyBvZmYgb2Ygc3Ryb25nIHdvbWVuLA0K + ZHJhaW5pbmcgdGhlaXIgc3RyZW5ndGguDQoNCjczMA0KMDA6MzY6NTksNDk4IC0tPiAwMDozNzow + MiwwODQNCllvdSBjYW4ndCBnbyBpbiB0aGVyZS4gSSB0b2xkIHlvdS4NCg0KNzMxDQowMDozNzow + MiwwOTAgLS0+IDAwOjM3OjAzLDc5MA0KWW91IGFyZW4ndCBhbGxvd2VkLi4uDQoNCjczMg0KMDA6 + Mzc6MDQsNDg2IC0tPiAwMDozNzowNiw0NTINCldlbGwsIGhlbGxvLg0KDQo3MzMNCjAwOjM3OjA2 + LDgzNSAtLT4gMDA6Mzc6MDgsODg5DQpTaXI/IEFyZSB5b3UuLi4NCg0KNzM0DQowMDozNzowOSwz + MDggLS0+IDAwOjM3OjEwLDc3NA0KV2VhcmluZyBhIGNvc3R1bWU/DQoNCjczNQ0KMDA6Mzc6MTAs + OTY4IC0tPiAwMDozNzoxNCwzMDMNCk5vLCBDYW1lcm9uLCBJJ20gbm90IHdlYXJpbmcgYSBjb3N0 + dW1lLg0KDQo3MzYNCjAwOjM3OjE3LDQ5NCAtLT4gMDA6Mzc6MjAsNDYxDQpPaCwgY29tZSBvbiwg + Z2lybHMuIEhlJ3MgYXdmdWwuDQoNCjczNw0KMDA6Mzc6MjgsODM0IC0tPiAwMDozNzozMCw5MzQN + Cldob2EuIFJpZ2h0Pw0KDQo3MzgNCjAwOjM3OjMxLDI2OCAtLT4gMDA6Mzc6MzMsMzAxDQpJIGNh + bid0IGhvbGQgaGltLiBIZSdzIHRvbyBzdHJvbmcuDQoNCjczOQ0KMDA6Mzc6MzMsMzA3IC0tPiAw + MDozNzozNCw1NzMNCkhvdyBkbyB3ZSBnZXQgcmlkIG9mIGhpbT8NCg0KNzQwDQowMDozNzozNCw2 + NDEgLS0+IDAwOjM3OjM2LDA3NA0KSS1JIGhhdmUgdGhlIHNwZWxsIGhlcmUuDQoNCjc0MQ0KMDA6 + Mzc6MzYsMDgwIC0tPiAwMDozNzozOCwyMDANCldlJ3JlLXdlJ3JlIHN1cHBvc2VkDQp0byBjYWxs + IEhhcnJ5LiBIYXJyeSENCg0KNzQyDQowMDozNzozOSw0MDcgLS0+IDAwOjM3OjQwLDg0MA0KT2gs + IGRlYXIuDQoNCjc0Mw0KMDA6Mzc6NDAsODQ2IC0tPiAwMDozNzo0MiwyNzkNCkdvLiBIZWFsIGhp + bS4NCg0KNzQ0DQowMDozNzo0MiwzNDcgLS0+IDAwOjM3OjQzLDk4MA0KSHVycnkhDQoNCjc0NQ0K + MDA6Mzc6NDcsMTI4IC0tPiAwMDozNzo0OSw3MjkNClRpbW9yIHR1dXMgZm9ydGl0dWRlDQoNCjc0 + Ng0KMDA6Mzc6NDksNzM1IC0tPiAwMDozNzo1MSw5MDINCnR1YSBmZW1pbmFlIHVsdGltdW0gZXhp + dGl1bS4NCg0KNzQ3DQowMDozNzo1MSw5MDggLS0+IDAwOjM3OjU0LDA5Mw0KVGhlIHNwZWxsIHdv + bid0IHdvcmsgdW5sZXNzDQp5b3UgdXNlIHRoZSBQb3dlciBvZiBUaHJlZS4NCg0KNzQ4DQowMDoz + Nzo1NCwwOTkgLS0+IDAwOjM3OjU3LDYwMQ0KRWl0aGVyIGFjY2VwdCB5b3VyIGRlc3Rpbnkgb3IN + CmdvIGJhY2sgdG8geW91ciBub3JtYWwgbGl2ZXMuDQoNCjc0OQ0KMDA6Mzc6NTcsNjcwIC0tPiAw + MDozNzo1OSwwNzkNClJpZ2h0LCBidXQgeW91IHNhaWQgYWxsIG1hZ2ljYWwNCg0KNzUwDQowMDoz + Nzo1OSwwODUgLS0+IDAwOjM4OjAwLDc2Ng0KaW50ZXJ2ZW50aW9uIHJldmVyc2VzIGlmIHdlIHJl + ZnVzZS4NCg0KNzUxDQowMDozODowMCw3NzcgLS0+IDAwOjM4OjAzLDkwMw0KWW91IHdvbid0IHJl + bWVtYmVyIGFueSBvZiB0aGlzLA0KaW5jbHVkaW5nIG1lZXRpbmcgZWFjaCBvdGhlci4NCg0KNzUy + DQowMDozODowMyw5MDkgLS0+IDAwOjM4OjA2LDQxMA0KT2theS4gWW91IGtub3cgSSdtIGluLg0K + DQo3NTMNCjAwOjM4OjA2LDQ3OSAtLT4gMDA6Mzg6MDgsNjEyDQpJIHdhbnQgdG8ga25vdyB5b3Ug + Z3V5cw0KDQo3NTQNCjAwOjM4OjA4LDY4MSAtLT4gMDA6Mzg6MTEsNzkxDQphbmQgZmlndXJlIG91 + dCB0aGlzDQp3aG9sZSB3aXRjaGNyYWZ0IHRoaW5nDQoNCjc1NQ0KMDA6Mzg6MTEsNzk3IC0tPiAw + MDozODoxMyw0MzcNCm9uIGEgbW9sZWN1bGFyIGxldmVsIGFuZCBnZXQgYSBmcmVha2luZw0KDQo3 + NTYNCjAwOjM4OjEzLDQ0MyAtLT4gMDA6Mzg6MTUsMjc0DQpOb2JlbCBQcml6ZSwgc28geWVhaCwg + bWUsIHRvby4NCg0KNzU3DQowMDozODoxNSw3NTUgLS0+IDAwOjM4OjE3LDg1NQ0KT2guIE1hZ2dp + ZSENCg0KNzU4DQowMDozODoxNyw5MjMgLS0+IDAwOjM4OjIwLDAwNA0KT2theSwgZmluZSEgSSdt + IGluISBJJ20gaW4uDQoNCjc1OQ0KMDA6Mzg6MjAsMDEwIC0tPiAwMDozODoyMSw1NDYNCkh1cnJ5 + LiBZb3UgaGF2ZSB0byBqb2luIGhhbmRzLg0KDQo3NjANCjAwOjM4OjQ0LDA0MSAtLT4gMDA6Mzg6 + NDUsMzc0DQpJIGNhbid0IGJyZWF0aGUuDQoNCjc2MQ0KMDA6Mzg6NDUsMzgwIC0tPiAwMDozODo0 + NywxNDYNCk1hY3ksIHVzZSB5b3VyIHBvd2VyLg0KDQo3NjINCjAwOjM4OjQ3LDI3OCAtLT4gMDA6 + Mzg6NDgsNzc3DQpEcmF3IHlvdXIgc2lzdGVycyB0byB5b3UuDQoNCjc2Mw0KMDA6Mzg6NDgsODQ2 + IC0tPiAwMDozODo1MCw3NzkNCkktSS4uLg0KDQo3NjQNCjAwOjM4OjU3LDAyMSAtLT4gMDA6Mzk6 + MDEsNDE3DQpUaW1vciB0dXVzIGZvcnRpdHVkZSB0dWENCmZlbWluYWUgdWx0aW11bSBleGl0aXVt + Lg0KDQo3NjUNCjAwOjM5OjAyLDEyNiAtLT4gMDA6Mzk6MDUsNzU3DQpUaW1vciB0dXVzIGZvcnRp + dHVkZQ0KdHVhIGZlbWluYWUgdWx0aW11bSBleGl0aXVtLg0KDQo3NjYNCjAwOjM5OjA1LDg2MyAt + LT4gMDA6Mzk6MDksNTk4DQpUaW1vciB0dXVzIGZvcnRpdHVkZSB0dWENCmZlbWluYWUgdWx0aW11 + bSBleGl0aXVtLg0KDQo3NjcNCjAwOjM5OjEwLDE4MiAtLT4gMDA6Mzk6MTQsNDAzDQpUaW1vciB0 + dXVzIGZvcnRpdHVkZSB0dWENCmZlbWluYWUgdWx0aW11bSBleGl0aXVtLg0KDQo3NjgNCjAwOjM5 + OjIyLDM4MCAtLT4gMDA6Mzk6MjQsNjM0DQpUaGF0J3MgZm9yIGtpbGxpbmcgb3VyIG1vdGhlci4N + Cg0KNzY5DQowMDozOToyNCw3MTYgLS0+IDAwOjM5OjI2LDk4Mw0KWW91IHRoaW5rIEkga2lsbGVk + IGhlcj8NCg0KNzcwDQowMDozOToyNyw2ODUgLS0+IDAwOjM5OjMwLDgxOQ0KWW91IHBvb3IsIHN0 + dXBpZCBnaXJsLg0KDQo3NzENCjAwOjM5OjMwLDg4OCAtLT4gMDA6Mzk6MzIsODU1DQpOb3cuLi4N + Cg0KNzcyDQowMDozOTozMiw5MjMgLS0+IDAwOjM5OjM1LDA5MA0KSXQncyBiZWd1bi4NCg0KNzcz + DQowMDozOTo0NCw5NzggLS0+IDAwOjM5OjQ3LDI2OQ0KLSBJcyBoZS4uLj8NCi0gRGVhZD8NCg0K + Nzc0DQowMDozOTo0OCwxNDIgLS0+IDAwOjM5OjQ5LDY3MQ0KWWVzLg0KDQo3NzUNCjAwOjM5OjQ5 + LDc0MCAtLT4gMDA6Mzk6NTEsNjQwDQpXaHkgZGlkbid0IGhlIGRpc2FwcGVhciwgdGhlbj8NCg0K + Nzc2DQowMDozOTo1MiwzMTUgLS0+IDAwOjM5OjUzLDU3MQ0KT2gsIG5vLg0KDQo3NzcNCjAwOjM5 + OjUzLDU3NyAtLT4gMDA6Mzk6NTUsNTQ0DQpUaGlzIG11c3QgYmUgdGhlIGtpbmQgb2YNCmRlbW9u + IHdoZXJlIHlvdSBoYXZlIHRvIGRvDQoNCjc3OA0KMDA6Mzk6NTUsNTUwIC0tPiAwMDozOTo1OCwy + MTcNCm9uZSBsYXN0IHRoaW5nIHRvIGdldCBoaW0gdG8gZGlzYXBwZWFyLg0KDQo3NzkNCjAwOjM5 + OjU4LDM0OSAtLT4gMDA6NDA6MDAsMTQ5DQpDcmFjayB0aGUgbmVjaywgcmVtb3ZlIHRoZSBleWVi + YWxscywNCg0KNzgwDQowMDo0MDowMCwyMTcgLS0+IDAwOjQwOjAxLDg1MA0KZWF0IHRoZSBpbnRl + c3RpbmUuDQoNCjc4MQ0KMDA6NDA6MDUsODkwIC0tPiAwMDo0MDowOCw0OTANCk9ubHkga2lkZGlu + Zy4gU29tZXRpbWVzDQppdCBqdXN0IHRha2VzIGEgbWludXRlLg0KDQo3ODINCjAwOjQwOjA5LDA5 + MCAtLT4gMDA6NDA6MTAsNDkyDQpXaGF0IHdhcyB0aGF0Pw0KDQo3ODMNCjAwOjQwOjEzLDUyNyAt + LT4gMDA6NDA6MTUsMzYwDQpEb24ndCB3b3JyeS4gSSdsbCB3aXBlIGhpcyBtZW1vcnkuDQoNCjc4 + NA0KMDA6NDA6MTUsMzY2IC0tPiAwMDo0MDoxNywyMzINCk5vLiBEb24ndC4NCg0KNzg1DQowMDo0 + MDoxNywzMDEgLS0+IDAwOjQwOjE4LDczNA0KV2UgaGF2ZSB0by4gVGhhdCdzIGhvdyBpdCdzIGRv + bmUuDQoNCjc4Ng0KMDA6NDA6MTgsODAzIC0tPiAwMDo0MDoyMCwwNjgNCk1vcnRhbHMgbXVzdG4n + dCBrbm93Lg0KDQo3ODcNCjAwOjQwOjIwLDEzNyAtLT4gMDA6NDA6MjIsNDcxDQpIYXZlbid0IHlv + dSBldmVyIHNlZW4gYSBzdXBlcmhlcm8gbW92aWU/DQoNCjc4OA0KMDA6NDA6MjIsNTQwIC0tPiAw + MDo0MDoyNCw0NzMNCkxldCBoaW0gdGVsbCBwZW9wbGUuDQoNCjc4OQ0KMDA6NDA6MjQsNTQyIC0t + PiAwMDo0MDoyNiw5NzUNCk5vIG9uZSB3aWxsIGJlbGlldmUNCmFub3RoZXIgaHlzdGVyaWNhbCBt + YW4uDQoNCjc5MA0KMDA6NDA6MjcsMDQ0IC0tPiAwMDo0MDoyOSw5OTINClRydWUuIEl0J3MgYSAi + aGUgc2FpZCwNCnNoZSBzYWlkIiBzaXR1YXRpb24uDQoNCjc5MQ0KMDA6NDA6MjksOTk4IC0tPiAw + MDo0MDozMSwzMTMNClRocmVlIHNoZXMsIGluIGZhY3QuDQoNCjc5Mg0KMDA6NDA6MzEsMzE5IC0t + PiAwMDo0MDozMiw5NTINClNvIGRvbid0IG1lc3Mgd2l0aCB1cywgQ2FtLg0KDQo3OTMNCjAwOjQw + OjMzLDA4MyAtLT4gMDA6NDA6MzUsMDE3DQpHbyBob21lIGFuZCBjaGFuZ2UgeW91ciBraGFraXMu + DQoNCjc5NA0KMDA6NDA6NDYsOTY0IC0tPiAwMDo0MDo1MCwyNjUNCi0gQXJlIHlvdSBzdXJlIEkg + Y2FuIHN0YXkgaGVyZT8NCi0gWWVhaC4NCg0KNzk1DQowMDo0MDo1MSw5NTYgLS0+IDAwOjQwOjU1 + LDE1MA0KQW5kIHdlJ3JlIHNpc3RlcnMsIHNvLi4uDQoNCjc5Ng0KMDA6NDA6NTYsMTczIC0tPiAw + MDo0MDo1Nyw3MzkNCllvdSBkb24ndCBoYXZlIHRvIGJlIGFsb25lIGFueW1vcmUsDQoNCjc5Nw0K + MDA6NDA6NTcsODA4IC0tPiAwMDo0MDo1OSwyNDENCmV2ZW4gd2hlbiB5b3Ugd2FudCB0byBiZQ0K + DQo3OTgNCjAwOjQwOjU5LDI0NyAtLT4gMDA6NDE6MDIsMTE0DQpiZWNhdXNlIEknbSB3YXJuaW5n + IHlvdQ0Kbm93LCBNZWwgYW5kIEkgYXJlIGEgbG90Lg0KDQo3OTkNCjAwOjQxOjAzLDIxOCAtLT4g + MDA6NDE6MDQsNzE1DQpJIGZvdW5kIGl0Lg0KDQo4MDANCjAwOjQxOjA1LDYwNSAtLT4gMDA6NDE6 + MDcsOTM5DQpMZXQncyBzZWUgaWYgaXQgd29ya3MuDQoNCjgwMQ0KMDA6NDE6MTQsNDA0IC0tPiAw + MDo0MToxNSw2NzINCk1vbT8NCg0KODAyDQowMDo0MToxNSw5MjggLS0+IDAwOjQxOjE3LDc5NA0K + QXJlIHlvdSB0aGVyZT8NCg0KODAzDQowMDo0MToyOCw0MzkgLS0+IDAwOjQxOjMwLDQ3Mg0KIkRv + bid0LiIgRG9uJ3Qgd2hhdD8NCg0KODA0DQowMDo0MTozNCwzNzggLS0+IDAwOjQxOjM1LDg3OA0K + IkRvbid0IHRydXN0Li4uIg0KDQo4MDUNCjAwOjQxOjM1LDk0NiAtLT4gMDA6NDE6MzgsOTgxDQoi + SC1BLVItUi4uLiINCg0KODA2DQowMDo0MTozOSwwNDkgLS0+IDAwOjQxOjQwLDYxNg0KSGFycnk/ + IQ0KDQo4MDcNCjAwOjQxOjQwLDYyMiAtLT4gMDA6NDE6NDIsMDAxDQpMYWRpZXMuDQoNCjgwOA0K + MDA6NDE6NDYsNjI0IC0tPiAwMDo0MTo0OCw3OTANCkknbSByaWdodCBoZXJlLg0KDQo4MDkNCjAw + OjQxOjUxLDU2MiAtLT4gMDA6NDE6NTUsMzM1DQotIFN5bmNlZCBhbmQgY29ycmVjdGVkIGJ5IG1l + ZHZpZGVjZWswMDcgLQ0KLSB3d3cuYWRkaWM3ZWQuY29tIC0NCg0K + headers: + CF-RAY: + - 8d1e52af7da43846-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Disposition: + - attachment; filename="Charmed (2018) 1x01 - Pilot.PLUTONiUM.en-en.srt" + Content-Type: + - text/srt;charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:32 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=dEx97vuaZRV%2FbaoTQB3DQ6ZwDggNyqenVzEd1OVSk5988jiqITZPC%2FV7E1ueBbqcFWLvBTFUzdljIFkxKyAeI2m%2FumFd3hqF9GsXoeDX6mRc4C1N38SyBYHPmDejaBJxDODusM5P"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + X-Robots-Tag: + - noindex + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/subtitulamos/test_download_subtitle_foo.yaml b/tests/cassettes/subtitulamos/test_download_subtitle_foo.yaml new file mode 100644 index 00000000..e3d4108c --- /dev/null +++ b/tests/cassettes/subtitulamos/test_download_subtitle_foo.yaml @@ -0,0 +1,1950 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Doctor+Who+%282005%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8d1e52b238eccfb7-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:33 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=3Y3vC6QSQ6mbrqLk7Hioqv2b4WBF8zn4%2B9nQUAt7VZLboDPiBt7C4ijTylTfL5ijy%2FDuIYGdcfwdUsqNIIvcLWdgQDPaMajQ6PWEopORe5%2BwKhA0O8qluZDK68b%2BO4reeuSK1Xj%2F"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=cr6s8rd6lalekn8vos106ipggg; path=/; HttpOnly + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=cr6s8rd6lalekn8vos106ipggg + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Doctor+Who + response: + body: + string: '[{"show_id":233,"show_name":"Doctor Who"}]' + headers: + CF-RAY: + - 8d1e52b34d5ecc48-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:33 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=hbDZChQNc4eF5c2wKORsSm7em3ReNNQNuZCbDAHctsfjnag8fbLex98h%2BCO2ncBftYxJWEPi56ZaIqxNsJFrKaEhsBKDu2K2AO3QAdqH4BHAnuNV20qnJiUAYpEwCgrXuhhiMJ4D"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '42' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=cr6s8rd6lalekn8vos106ipggg + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/233 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e52b44bfd669b-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:33 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/9689 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=BgoHftG%2B0c7yoV2QiEEiJDiOubYCN1aRBCzmNPaTnd6X7Z98v3iJbswpJK9OPJEp4Uz8X4M0fOsu%2Fhtzo5gklh5i1KtaslAzxhZbCLh6LxWNK7MAzIbgXoO%2FVAjUXxVb18dgnphA"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=cr6s8rd6lalekn8vos106ipggg + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/9689 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e52b54c7d215f-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:33 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/9689/doctor-who-13x99-the-power-of-the-doctor + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=JVKGouR9LFfde0O16K38drq01PmxI8Ex0y3YnI848ce3muFVg37txQnWlD0pQKRsFUxiZT3aHKjLRBdF75aI9ym91DR85ctzd%2BFN%2B2SSOktY6Bk5UdK0LRD0hiGO0mcEv%2BtC%2BwMZ"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=cr6s8rd6lalekn8vos106ipggg + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/9689/doctor-who-13x99-the-power-of-the-doctor + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Doctor Who + 13x99 - The Power of the Doctor - Subtitulamos.tv - Subt\xEDtulos de series\n + \ \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Doctor + Who

\n
\n
\n
\n

The Power of the Doctor

\n + \
(13x99)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n 13\n
\n
\n
\n EPISODIO\n + \
\n 0\n 1\n 2\n 3\n 4\n 5\n 6\n 97\n 98\n 99\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 506\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n \n + \
\n

versi\xF3n

\n

KETTLE/MiNX/MeGusta

\n + \
\n \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n grimya\n + \ \n
\n
\n \n + De Addic7ed, sin acotaciones. Sincro de firefly.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n \n\n + \
Espa\xF1ol + (Espa\xF1a)
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

KETTLE/MiNX/MeGusta

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

GGEZ/ION10

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n carochristie\n + \ \n
\n
\n \n + Los traducidos aqu\xED, tiempos de Addic7ed. Gracias a Se7enOfNin9.\n \n + \
\n
\n
\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

NTb

\n + \
\n \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n marilynbrown2\n + \ \n
\n
\n \n + Subt\xEDtulos traducidos aqu\xED, sincronizados para AMZN WEBRip NTb (720p + y 1080p).\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

KETTLE/MiNX/MeGusta

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 3%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e52b79badcfc5-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:34 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=2sePM6oVp5tyOGeTloldxTIHX3%2FwruAaVajL0m0N%2Bwr0a3ULzT3fUBpsFIKROZGyYNzdBmft9Y%2FTYLnq4VFUdFAm3fo%2Bu5blyUM1Z0yC%2BksVxnE7588ItYyzbXwuXKJtEIAUYR8N"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '33745' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=cr6s8rd6lalekn8vos106ipggg + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/8685/doctor-who-13x03-chapter-three-once-upon-time + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Doctor Who + 13x03 - Chapter Three: Once, Upon Time - Subtitulamos.tv - Subt\xEDtulos de + series\n \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Doctor + Who

\n
\n
\n
\n

Chapter Three: Once, Upon + Time

\n
(13x03)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n 13\n
\n
\n
\n EPISODIO\n + \
\n 0\n 1\n 2\n 3\n 4\n 5\n 6\n 97\n 98\n 99\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n + \ 3 102\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

UKTV/TORRENTGALAXY

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n ClaraTL\n + \ \n
\n
\n \n + De iPlayer, sin colores, sin acotaciones, l\xEDneas de dialogo y para cr\xE9ditos + a\xF1adidas.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

UKTV/TORRENTGALAXY

\n + \
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

ION10/GOSSIP

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n marilynbrown2\n + \ \n
\n
\n \n + Subt\xEDtulos traducidos aqu\xED, sincronizados para WEBRip ION10 y GOSSIP + (720p y 1080p).\n \n
\n + \
\n
\n
\n + \
\n
\n
\n\n
\n \n

Comentarios + ({{comments.length}})

\n \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n
\n + \
\n \n
\n
\n + \
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e52b9bb57c8f6-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:34 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=SNRJgOJR8%2BP8TEEeNT3%2FdYGS7%2FpNJdhWWtf9aEOoEgQyFP46ZIjNfC4IdqvNmgwHsrHVjEl00B2CkxJuEEvjpHJWIVTGIsv0ow6yviy1FWDN0ZPwxrhtRSsDQb08m3ygClL5qdfZ"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '26976' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=cr6s8rd6lalekn8vos106ipggg + Referer: + - https://www.subtitulamos.tv/episodes/8685/doctor-who-13x03-chapter-three-once-upon-time + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/subtitles/21994/download + response: + body: + string: "1\r\n00:00:02,000 --> 00:00:04,838\r\n- What in the name of the saints?\r\n- + But what is it you are saving them from?\r\n\r\n2\r\n00:00:04,840 --> 00:00:06,878\r\n- + The Flux.\r\n- What's the Flux?\r\n\r\n3\r\n00:00:06,880 --> 00:00:10,598\r\nThis + is Serving Commander\r\nInston-Vee Vinder leaving his post.\r\n\r\n4\r\n00:00:10,600 + --> 00:00:12,478\r\nSo, we still on\r\nfor Halloween drinks?\r\n\r\n5\r\n00:00:12,480 + --> 00:00:14,478\r\n- Eight o'clock.\r\n- Don't keep me waiting, you.\r\n\r\n6\r\n00:00:14,480 + --> 00:00:16,198\r\nDiane. Come on in.\r\n\r\n7\r\n00:00:16,200 --> 00:00:17,278\r\nFour...\r\n\r\n8\r\n00:00:17,280 + --> 00:00:19,478\r\n- Hello again, Doctor.\r\n- Who are you?\r\n\r\n9\r\n00:00:19,480 + --> 00:00:20,678\r\n..three...\r\n\r\n10\r\n00:00:20,680 --> 00:00:23,798\r\nExplain + Mouri. Explain Atropos.\r\n\r\n11\r\n00:00:23,800 --> 00:00:25,678\r\nBefore + Atropos, time ran wild.\r\n\r\n12\r\n00:00:25,680 --> 00:00:27,798\r\nAll + time passes through the Mouri.\r\n\r\n13\r\n00:00:27,800 --> 00:00:31,198\r\nIf + the Mouri are broken,\r\ntime shall run unstoppable.\r\n\r\n14\r\n00:00:31,200 + --> 00:00:32,558\r\n..two...\r\n\r\n15\r\n00:00:32,560 --> 00:00:34,158\r\nThe + Temple of Atropos is broken...\r\n\r\n16\r\n00:00:34,160 --> 00:00:35,918\r\nYou + know how to fix this?\r\n\r\n17\r\n00:00:35,920 --> 00:00:38,198\r\n- ..so + I made a short term repair.\r\n- Yaz!\r\n\r\n18\r\n00:00:38,200 --> 00:00:40,038\r\n- + Tell me what you want.\r\n- ..one.\r\n\r\n19\r\n00:00:40,040 --> 00:00:42,120\r\nAll + in good time.\r\n\r\n20\r\n00:00:45,057 --> 00:00:49,768\r\n_\r\n\r\n21\r\n00:00:51,840 + --> 00:00:55,918\r\nWhat I learned in the immediate\r\naftermath of the Flux\r\n\r\n22\r\n00:00:55,920 + --> 00:00:57,678\r\nseems obvious now.\r\n\r\n23\r\n00:00:57,680 --> 00:01:00,040\r\nBut + it's only obvious\r\nonce you've lived it.\r\n\r\n24\r\n00:01:02,400 --> 00:01:05,318\r\nThe + biggest changes\r\nto our lives start small.\r\n\r\n25\r\n00:01:05,320 --> + 00:01:08,998\r\nCatastrophes creep in quietly.\r\n\r\n26\r\n00:01:09,000 --> + 00:01:10,998\r\nAnd by the time you realise,\r\n\r\n27\r\n00:01:11,000 --> + 00:01:14,800\r\nthe life you once had\r\nis already behind you.\r\n\r\n28\r\n00:01:20,440 + --> 00:01:22,198\r\nThe Dalek Sector is growing.\r\n\r\n29\r\n00:01:22,200 + --> 00:01:24,038\r\nI thought I'd made it out,\r\n\r\n30\r\n00:01:24,040 --> + 00:01:25,958\r\nbut they just keep spreading.\r\n\r\n31\r\n00:01:25,960 --> + 00:01:28,198\r\nBecause since what\r\nsome people keep calling\r\n\r\n32\r\n00:01:28,200 + --> 00:01:30,518\r\nthe Beginning of the End,\r\n\r\n33\r\n00:01:30,520 --> + 00:01:33,360\r\nwho is there left to stop them?\r\n\r\n34\r\n00:01:35,760 + --> 00:01:37,838\r\nOf course,\r\nI call it the Dalek Sector,\r\n\r\n35\r\n00:01:37,840 + --> 00:01:39,958\r\nI don't know for certain.\r\n\r\n36\r\n00:01:39,960 --> + 00:01:42,598\r\nBut it helps me understand,\r\n\r\n37\r\n00:01:42,600 --> + 00:01:45,558\r\nbecause the maps definitely don't\r\nmake any sense any more.\r\n\r\n38\r\n00:01:45,560 + --> 00:01:48,998\r\nOr the days.\r\n\r\n39\r\n00:01:49,000 --> 00:01:51,758\r\nEverything + is disrupted.\r\n\r\n40\r\n00:01:51,760 --> 00:01:53,638\r\nBut this isn't + about Daleks.\r\n\r\n41\r\n00:01:53,640 --> 00:01:55,918\r\nFor once, they're + not\r\nwhat worries me.\r\n\r\n42\r\n00:01:55,920 --> 00:01:57,558\r\nAt least + we understand them,\r\n\r\n43\r\n00:01:57,560 --> 00:01:59,640\r\nyou and + me, my love.\r\nWe've fought them.\r\n\r\n44\r\n00:02:03,120 --> 00:02:05,758\r\nIt's + the other things...\r\n\r\n45\r\n00:02:05,760 --> 00:02:08,080\r\n..whatever + they are.\r\n\r\n46\r\n00:02:18,040 --> 00:02:19,838\r\nAppearing from nowhere.\r\n\r\n47\r\n00:02:19,840 + --> 00:02:21,878\r\nFeasting on the wreckage.\r\n\r\n48\r\n00:02:21,880 --> + 00:02:25,718\r\nComing for survivors of the Flux.\r\n\r\n49\r\n00:02:25,720 + --> 00:02:28,358\r\nI must admit, some days\r\nI feel like...\r\n\r\n50\r\n00:02:28,360 + --> 00:02:30,480\r\n..they want to stop me\r\nfrom getting to you.\r\n\r\n51\r\n00:02:33,520 + --> 00:02:36,600\r\nBut nothing is going to stop me\r\ngetting to you.\r\n\r\n52\r\n00:02:54,653 + --> 00:02:58,653\r\nCREDITS\r\n\r\n53\r\n00:03:13,240 --> 00:03:15,278\r\nI + spend my life walking into\r\nnew places\r\n\r\n54\r\n00:03:15,280 --> 00:03:16,798\r\nand + weighing things up fast.\r\n\r\n55\r\n00:03:16,820 --> 00:03:18,718\r\nWho's + who? Who has the power?\r\nWho's in danger?\r\n\r\n56\r\n00:03:18,720 --> + 00:03:20,478\r\nHow fast danger is coming?\r\n\r\n57\r\n00:03:20,480 --> 00:03:23,358\r\nAlso, + how likely my friends are\r\nto die.\r\n\r\n58\r\n00:03:23,360 --> 00:03:25,638\r\nI've + got good at figuring\r\nall of that out at speed.\r\n\r\n59\r\n00:03:25,640 + --> 00:03:26,998\r\nThree...\r\n\r\n60\r\n00:03:27,000 --> 00:03:29,198\r\nRight + now, big danger.\r\nNo obvious solutions.\r\n\r\n61\r\n00:03:29,200 --> 00:03:31,958\r\nWell, + one solution,\r\none massive risk.\r\n\r\n62\r\n00:03:31,960 --> 00:03:33,958\r\n- + All in good time.\r\n- You don't mess with time.\r\n\r\n63\r\n00:03:33,960 + --> 00:03:36,038\r\nYou don't put yourself\r\nand your friends\r\n\r\n64\r\n00:03:36,040 + --> 00:03:38,678\r\nin the midst of a time storm\r\nunless there's no alternative.\r\n\r\n65\r\n00:03:38,680 + --> 00:03:42,118\r\nJohn Burroughs once said to me,\r\n\"Leap and the net + will appear.\"\r\n\r\n66\r\n00:03:42,120 --> 00:03:44,438\r\nHe was talking + metaphorically,\r\n\r\n67\r\n00:03:44,440 --> 00:03:46,358\r\nwhereas right + now...\r\n\r\n68\r\n00:04:06,480 --> 00:04:07,918\r\nI'm sorry.\r\n\r\n69\r\n00:04:07,920 + --> 00:04:10,078\r\nI had to buy us time. Literally.\r\n\r\n70\r\n00:04:10,080 + --> 00:04:12,998\r\nWe're in the heart\r\nof the time storm,\r\n\r\n71\r\n00:04:13,000 + --> 00:04:15,438\r\nsheltering in broken time.\r\n\r\n72\r\n00:04:15,440 --> + 00:04:17,120\r\nNo! Yaz...\r\n\r\n73\r\n00:04:18,440 --> 00:04:20,158\r\nDan!\r\n\r\n74\r\n00:04:20,160 + --> 00:04:22,478\r\nTime is pulling you back.\r\nI'm coming to get you.\r\n\r\n75\r\n00:04:22,480 + --> 00:04:24,400\r\nNo!\r\n\r\n76\r\n00:04:27,760 --> 00:04:30,238\r\nHow + did you get in here?\r\n\r\n77\r\n00:04:30,240 --> 00:04:32,518\r\nBroken + and disrupted time.\r\n\r\n78\r\n00:04:32,520 --> 00:04:35,318\r\nEverything + is corrupted.\r\n\r\n79\r\n00:04:35,320 --> 00:04:36,880\r\nI have to rescue + them.\r\n\r\n80\r\n00:04:39,640 --> 00:04:42,598\r\nNo. Not me as well,\r\nI + have too much to do...\r\n\r\n81\r\n00:04:50,640 --> 00:04:52,278\r\nWhat's + the update, boss?\r\n\r\n82\r\n00:04:52,280 --> 00:04:56,238\r\nTrubial Monument + is down.\r\nOnly the central temple left.\r\n\r\n83\r\n00:04:56,240 --> 00:04:59,638\r\n- + Where are the hostages?\r\n- We don't know. No traces.\r\n\r\n84\r\n00:04:59,640 + --> 00:05:02,958\r\nThe only information we have is five\r\nPassenger forms + in main temple.\r\n\r\n85\r\n00:05:02,960 --> 00:05:05,758\r\n- Where are + we on aerial?\r\n- Aerial shelling now complete.\r\n\r\n86\r\n00:05:05,760 + --> 00:05:08,438\r\nShould've weakened primary defences\r\nto give us a way + in.\r\n\r\n87\r\n00:05:08,440 --> 00:05:10,238\r\nJust give the word.\r\n\r\n88\r\n00:05:10,240 + --> 00:05:12,558\r\nEnough equipment remaining\r\nto breach the entrance?\r\n\r\n89\r\n00:05:12,560 + --> 00:05:13,758\r\nYou said come prepared.\r\n\r\n90\r\n00:05:13,760 --> + 00:05:15,958\r\nWe also have temporal erasure\r\noptions,\r\n\r\n91\r\n00:05:15,960 + --> 00:05:17,680\r\nshould we require them.\r\n\r\n92\r\n00:05:21,320 --> + 00:05:23,520\r\nWhere is this?\r\n\r\n93\r\n00:05:26,240 --> 00:05:27,718\r\nWhy...?\r\n\r\n94\r\n00:05:27,720 + --> 00:05:29,758\r\nWhat are you wearing?\r\n\r\n95\r\n00:05:29,760 --> 00:05:30,998\r\nTemporal + hazing?\r\n\r\n96\r\n00:05:31,000 --> 00:05:32,678\r\nHappens to the best + of us.\r\n\r\n97\r\n00:05:32,680 --> 00:05:34,118\r\nWhen is this?\r\n\r\n98\r\n00:05:34,120 + --> 00:05:36,598\r\nOw! What did you do that for?\r\n\r\n99\r\n00:05:36,600 + --> 00:05:39,358\r\n- She loves doing that.\r\n- She so loves doing that.\r\n\r\n100\r\n00:05:39,360 + --> 00:05:42,598\r\nI do love doing that.\r\nShould block the temporal hazing.\r\n\r\n101\r\n00:05:42,600 + --> 00:05:44,318\r\nYou back with us?\r\n\r\n102\r\n00:05:44,320 --> 00:05:47,558\r\nWe + need to get this job done\r\nand end the siege of Atropos.\r\n\r\n103\r\n00:05:47,560 + --> 00:05:49,958\r\nAtropos.\r\n\r\n104\r\n00:05:49,960 --> 00:05:51,560\r\nThat's + where I found you.\r\n\r\n105\r\n00:05:56,560 --> 00:05:59,478\r\nTell psy-ops + to alert the Mouri\r\nskeins, they should be on standby,\r\n\r\n106\r\n00:05:59,480 + --> 00:06:03,558\r\nand tell the fleet to ramp up\r\nsecond wave of aerial + shelling.\r\n\r\n107\r\n00:06:03,560 --> 00:06:06,038\r\nWe all know why we're + here.\r\n\r\n108\r\n00:06:06,040 --> 00:06:09,398\r\nWe rescue those hostages,\r\nend + the siege, reset time\r\n\r\n109\r\n00:06:09,400 --> 00:06:12,158\r\nso the + universe can function again.\r\n\r\n110\r\n00:06:12,160 --> 00:06:14,758\r\nThe + only way in's through the front,\r\n\r\n111\r\n00:06:14,760 --> 00:06:16,798\r\nrisking + our lives to save others'.\r\n\r\n112\r\n00:06:16,800 --> 00:06:18,398\r\nThe + usual.\r\n\r\n113\r\n00:06:18,400 --> 00:06:19,920\r\nOn my command.\r\n\r\n114\r\n00:06:21,640 + --> 00:06:23,280\r\nThe universe is relying on us.\r\n\r\n115\r\n00:06:36,000 + --> 00:06:38,078\r\nWhat are you doing here?\r\n\r\n116\r\n00:06:38,080 --> + 00:06:39,638\r\nI seem to have two coffees\r\n\r\n117\r\n00:06:39,640 --> + 00:06:42,758\r\nand one of them's a skinny latte\r\nwith an extra shot.\r\n\r\n118\r\n00:06:42,760 + --> 00:06:44,958\r\nWeird. That's the way I have it.\r\n\r\n119\r\n00:06:44,960 + --> 00:06:46,758\r\nIs it?\r\n\r\n120\r\n00:06:46,760 --> 00:06:48,840\r\nThat's + lucky...\r\n\r\n121\r\n00:06:52,360 --> 00:06:54,638\r\nYou all right?\r\n\r\n122\r\n00:06:54,640 + --> 00:06:56,438\r\nYeah, sorry.\r\n\r\n123\r\n00:06:56,440 --> 00:06:58,438\r\nJust + lost me bearings.\r\n\r\n124\r\n00:06:58,440 --> 00:07:01,278\r\n- So how + was your date?\r\n- It wasn't a date.\r\n\r\n125\r\n00:07:01,280 --> 00:07:04,438\r\nAll + right, so, how was your thing\r\nthat wasn't a date?\r\n\r\n126\r\n00:07:04,440 + --> 00:07:06,518\r\nI fell asleep in front of him.\r\n\r\n127\r\n00:07:06,520 + --> 00:07:08,038\r\nI thought you were going for pizza.\r\n\r\n128\r\n00:07:08,040 + --> 00:07:10,318\r\nI fell asleep, in me pizza,\r\nin front of him.\r\n\r\n129\r\n00:07:10,320 + --> 00:07:11,718\r\nNo!\r\n\r\n130\r\n00:07:11,720 --> 00:07:15,078\r\nHe + was so boring. I woke up with him\r\npicking bits of mozzarella\r\n\r\n131\r\n00:07:15,080 + --> 00:07:17,398\r\noff me cheek and asking the waiter\r\nto call an ambulance.\r\n\r\n132\r\n00:07:17,400 + --> 00:07:19,558\r\nI had to lie and tell him\r\nI was narcoleptic.\r\n\r\n133\r\n00:07:19,560 + --> 00:07:21,680\r\nI mean, I obviously am,\r\nin reaction to him.\r\n\r\n134\r\n00:07:23,240 + --> 00:07:24,598\r\nAm I boring you?\r\n\r\n135\r\n00:07:24,600 --> 00:07:26,840\r\nNo. + Just thought I saw...\r\n\r\n136\r\n00:07:28,800 --> 00:07:30,558\r\nDoesn't + matter.\r\n\r\n137\r\n00:07:30,560 --> 00:07:32,718\r\nWhy aren't you married?\r\n\r\n138\r\n00:07:32,720 + --> 00:07:35,758\r\nYou're taking no prisoners tonight,\r\nare you?\r\n\r\n139\r\n00:07:35,760 + --> 00:07:38,798\r\nYou're not a kid and you're not\r\nthe ugliest fella in + this city,\r\n\r\n140\r\n00:07:38,800 --> 00:07:40,958\r\nso what's wrong + with you?\r\n\r\n141\r\n00:07:40,960 --> 00:07:43,120\r\nWhy aren't you married\r\nwith + triplets?\r\n\r\n142\r\n00:07:47,800 --> 00:07:49,718\r\nIt nearly happened, + once.\r\n\r\n143\r\n00:07:49,720 --> 00:07:51,198\r\n15 years ago?\r\n\r\n144\r\n00:07:51,200 + --> 00:07:53,038\r\nLost count now.\r\n\r\n145\r\n00:07:53,040 --> 00:07:54,958\r\nI + was engaged to get married.\r\n\r\n146\r\n00:07:54,960 --> 00:07:57,038\r\nTwo + days before,\r\nshe changed her mind.\r\n\r\n147\r\n00:07:57,040 --> 00:07:58,478\r\nOuch.\r\n\r\n148\r\n00:07:58,480 + --> 00:07:59,998\r\nSaid she'd been thinking about it,\r\n\r\n149\r\n00:08:00,000 + --> 00:08:02,758\r\nproperly couldn't bear spending\r\nthe rest of her life + with me.\r\n\r\n150\r\n00:08:02,760 --> 00:08:04,838\r\nSo, thought she could + do better.\r\n\r\n151\r\n00:08:04,840 --> 00:08:06,118\r\nOh, my God. Brutal.\r\n\r\n152\r\n00:08:06,120 + --> 00:08:08,558\r\nThat's life, innit?\r\n\r\n153\r\n00:08:08,560 --> 00:08:10,760\r\nNobody + gets by without some bruises.\r\n\r\n154\r\n00:08:14,320 --> 00:08:15,880\r\nGod, + I loved her.\r\n\r\n155\r\n00:08:19,560 --> 00:08:21,998\r\nWhen is this?\r\n\r\n156\r\n00:08:22,000 + --> 00:08:23,600\r\nWhat?\r\n\r\n157\r\n00:08:28,200 --> 00:08:29,558\r\nDid + we move?\r\n\r\n158\r\n00:08:29,560 --> 00:08:31,878\r\nHave we done this + before?\r\n\r\n159\r\n00:08:31,880 --> 00:08:33,518\r\nWhy am I here?\r\n\r\n160\r\n00:08:33,520 + --> 00:08:35,398\r\nI was waiting.\r\n\r\n161\r\n00:08:35,400 --> 00:08:36,598\r\nYou + didn't come.\r\n\r\n162\r\n00:08:36,600 --> 00:08:38,080\r\nWhere were you, + Dan?\r\n\r\n163\r\n00:08:39,840 --> 00:08:41,320\r\nWhere were you, Dan?\r\n\r\n164\r\n00:08:54,440 + --> 00:08:55,718\r\nFound you...\r\n\r\n165\r\n00:08:55,720 --> 00:08:56,918\r\nDoctor, + what are you doing?\r\n\r\n166\r\n00:08:56,920 --> 00:08:59,958\r\nI can't + hold on to everything...\r\n\r\n167\r\n00:08:59,960 --> 00:09:01,280\r\nEr...\r\n\r\n168\r\n00:09:06,720 + --> 00:09:09,278\r\nBut if you go three doors down,\r\nthey've got them half + the price.\r\n\r\n169\r\n00:09:09,280 --> 00:09:11,838\r\nSo I was like, \"Have + you not seen\r\nwhat they're charging there?\"\r\n\r\n170\r\n00:09:11,840 + --> 00:09:15,638\r\nAnd they were like \"No, we don't care\". So I said,\r\n\"Well, + why would I buy them here for this price\r\n\r\n171\r\n00:09:15,640 --> 00:09:18,998\r\n\"when + they're half the price three doors down?\"\r\nAnd she said, and she was so + snotty,\r\n\r\n172\r\n00:09:19,000 --> 00:09:22,878\r\n\"It's up to you, isn't + it?\" And I said, \"Yes, it is\"\r\nand I've never stepped inside that shop + since,\r\n\r\n173\r\n00:09:22,880 --> 00:09:26,398\r\nand who's the loser + now? It's not even\r\nlike I'm that bothered about satsumas.\r\n\r\n174\r\n00:09:26,400 + --> 00:09:27,800\r\nDoctor?\r\n\r\n175\r\n00:09:30,720 --> 00:09:32,720\r\nYou + all right?\r\n\r\n176\r\n00:09:34,400 --> 00:09:36,080\r\nYeah.\r\n\r\n177\r\n00:09:44,840 + --> 00:09:46,480\r\nWhat is that?\r\n\r\n178\r\n00:09:52,840 --> 00:09:54,920\r\nOh, + you've got a bit of\r\nsalad dressing.\r\n\r\n179\r\n00:10:01,160 --> 00:10:03,918\r\nYaz, + I'm trying to break through\r\nto your time stream,\r\n\r\n180\r\n00:10:03,920 + --> 00:10:08,758\r\nbut there's a barrier, like\r\nsomething's trying to keep + me out...\r\n\r\n181\r\n00:10:08,760 --> 00:10:11,800\r\nThere we are. All + gone now.\r\n\r\n182\r\n00:10:13,840 --> 00:10:16,078\r\nQualified highest + in all streams.\r\n\r\n183\r\n00:10:16,080 --> 00:10:17,598\r\nExceptional + honours award\r\n\r\n184\r\n00:10:17,600 --> 00:10:20,318\r\nand a commendation + for saving\r\nthe life of three colleagues\r\n\r\n185\r\n00:10:20,320 --> + 00:10:21,838\r\non your most recent mission.\r\n\r\n186\r\n00:10:21,840 --> + 00:10:23,598\r\nAny pilot would have done the same.\r\n\r\n187\r\n00:10:23,600 + --> 00:10:26,278\r\nNo. Because they didn't.\r\n\r\n188\r\n00:10:26,280 --> + 00:10:28,838\r\nYou were the only one\r\nto fly into the blaze.\r\n\r\n189\r\n00:10:28,840 + --> 00:10:30,918\r\nYour training craft received\r\nfatal damage.\r\n\r\n190\r\n00:10:30,920 + --> 00:10:32,758\r\nYou were lucky to escape\r\nwith your life.\r\n\r\n191\r\n00:10:32,760 + --> 00:10:38,038\r\nYes and no. Yes, the damage\r\nto the craft was bad.\r\n\r\n192\r\n00:10:38,040 + --> 00:10:41,518\r\nNo, I don't believe I was lucky.\r\nI made a judgment + call\r\n\r\n193\r\n00:10:41,520 --> 00:10:42,878\r\nand it came off.\r\n\r\n194\r\n00:10:42,880 + --> 00:10:44,400\r\nThat's what we train for.\r\n\r\n195\r\n00:10:49,120 --> + 00:10:50,840\r\nI remember this.\r\n\r\n196\r\n00:10:52,080 --> 00:10:53,718\r\nBut + it wasn't you.\r\n\r\n197\r\n00:10:53,720 --> 00:10:55,878\r\nYou weren't + here.\r\n\r\n198\r\n00:10:55,880 --> 00:10:57,958\r\nCommander.\r\n\r\n199\r\n00:10:57,960 + --> 00:11:00,038\r\nYes. Sorry.\r\n\r\n200\r\n00:11:00,040 --> 00:11:03,238\r\nNo + record of post-traumatic\r\npsycho disturbance.\r\n\r\n201\r\n00:11:03,240 + --> 00:11:07,318\r\nI've taken all offers of counselling\r\nand term-coming.\r\n\r\n202\r\n00:11:07,320 + --> 00:11:08,638\r\nNo problems.\r\n\r\n203\r\n00:11:08,640 --> 00:11:11,958\r\nDon't + mind me.\r\nI'm trying not to be distracting.\r\n\r\n204\r\n00:11:11,960 --> + 00:11:13,358\r\nLet me just...\r\n\r\n205\r\n00:11:13,360 --> 00:11:15,318\r\nDid + you...?\r\n\r\n206\r\n00:11:15,320 --> 00:11:17,880\r\nDid I what?\r\n\r\n207\r\n00:11:20,880 + --> 00:11:22,440\r\nNothing.\r\n\r\n208\r\n00:11:24,880 --> 00:11:27,958\r\nYou + do realise this is\r\na prestigious posting\r\n\r\n209\r\n00:11:27,960 --> + 00:11:30,958\r\nwith the highest level\r\nof security clearance?\r\n\r\n210\r\n00:11:30,960 + --> 00:11:32,358\r\nI understand.\r\n\r\n211\r\n00:11:32,360 --> 00:11:35,118\r\nYou'll + be permanently at the side of\r\nthe Grand Serpent.\r\n\r\n212\r\n00:11:35,120 + --> 00:11:36,758\r\nIt will be arduous.\r\n\r\n213\r\n00:11:36,760 --> 00:11:40,278\r\nThe + Grand Serpent is demanding.\r\n\r\n214\r\n00:11:40,280 --> 00:11:43,118\r\n- + Yes. - Absolute discretion\r\nand absolute fidelity\r\n\r\n215\r\n00:11:43,120 + --> 00:11:45,118\r\n- are the minimum expected.\r\n- I understand.\r\n\r\n216\r\n00:11:45,120 + --> 00:11:47,798\r\nDon't make me regret this.\r\n\r\n217\r\n00:11:47,800 + --> 00:11:49,600\r\nMeaning?\r\n\r\n218\r\n00:11:51,000 --> 00:11:52,680\r\nThe + posting is yours.\r\n\r\n219\r\n00:11:56,960 --> 00:11:59,878\r\nThank you, + sir. It's an honour.\r\n\r\n220\r\n00:11:59,880 --> 00:12:01,638\r\nIt is.\r\n\r\n221\r\n00:12:01,640 + --> 00:12:03,638\r\nMake sure you remember that.\r\n\r\n222\r\n00:12:03,640 + --> 00:12:05,920\r\nDo not let the Grand Serpent down.\r\n\r\n223\r\n00:12:22,200 + --> 00:12:23,720\r\nBlow the doors in.\r\n\r\n224\r\n00:12:33,880 --> 00:12:36,438\r\nI've + got about 11 nitros\r\nof reducer left.\r\n\r\n225\r\n00:12:36,440 --> 00:12:38,158\r\nWe + use it soon as the doors go.\r\n\r\n226\r\n00:12:38,160 --> 00:12:41,238\r\nKeeps + us at normal speed but slows\r\ndown the rest of the environment.\r\n\r\n227\r\n00:12:41,240 + --> 00:12:43,120\r\nWe've gotta make\r\nthe most of it...\r\n\r\n228\r\n00:12:44,960 + --> 00:12:48,680\r\nOur entire focus is\r\nlocate the Ravagers.\r\n\r\n229\r\n00:13:02,160 + --> 00:13:04,598\r\nOh, wow, supersized Mouri.\r\n\r\n230\r\n00:13:04,600 + --> 00:13:06,838\r\nHey, where was I?\r\nThat wasn't my time stream.\r\n\r\n231\r\n00:13:06,840 + --> 00:13:09,318\r\nAnd why were Dan, Yaz\r\nand that lad there?\r\n\r\n232\r\n00:13:09,320 + --> 00:13:12,038\r\nYou have put yourself at risk\r\nin here, Doctor.\r\n\r\n233\r\n00:13:12,040 + --> 00:13:14,558\r\nTime is playing games with you all.\r\n\r\n234\r\n00:13:14,560 + --> 00:13:18,558\r\nYou understand what I'm trying\r\nto do by throwing myself + in here.\r\n\r\n235\r\n00:13:18,560 --> 00:13:22,678\r\nThe pressure of the + time storm\r\nwill be too much, even for you...\r\n\r\n236\r\n00:13:22,680 + --> 00:13:24,480\r\nI will not let them die.\r\n\r\n237\r\n00:13:25,680 --> + 00:13:28,318\r\nI can do this.\r\n\r\n238\r\n00:13:28,320 --> 00:13:29,878\r\nI + can absorb it...\r\n\r\n239\r\n00:13:29,880 --> 00:13:32,758\r\nHelp me with + it and I can help you.\r\n\r\n240\r\n00:13:32,760 --> 00:13:34,798\r\nTime + resists,\r\nit is pulling you back.\r\n\r\n241\r\n00:13:34,800 --> 00:13:36,600\r\nAgh!\r\n\r\n242\r\n00:13:38,240 + --> 00:13:40,358\r\nListen up, Ravagers.\r\n\r\n243\r\n00:13:40,360 --> 00:13:43,798\r\nYou + are intruders in\r\nthe Temple of Atropos.\r\n\r\n244\r\n00:13:43,800 --> + 00:13:45,558\r\nThe Temple is surrounded.\r\n\r\n245\r\n00:13:45,560 --> 00:13:47,318\r\nThere's + no way out of here,\r\n\r\n246\r\n00:13:47,320 --> 00:13:48,798\r\nand no + way off this planet.\r\n\r\n247\r\n00:13:48,800 --> 00:13:51,598\r\nWe've + come to reclaim what you took.\r\n\r\n248\r\n00:13:51,600 --> 00:13:54,158\r\nYou + do not belong here,\r\n\r\n249\r\n00:13:54,160 --> 00:13:56,158\r\nso you + might as well surrender\r\n\r\n250\r\n00:13:56,160 --> 00:13:58,280\r\nto + save matters getting\r\ntoo unpleasant.\r\n\r\n251\r\n00:14:00,920 --> 00:14:02,878\r\nI + know you can hear me.\r\n\r\n252\r\n00:14:02,880 --> 00:14:05,878\r\nTell + your remaining troops\r\nto surrender now,\r\n\r\n253\r\n00:14:05,880 --> + 00:14:08,040\r\nor they'll have me\r\nto answer to.\r\n\r\n254\r\n00:14:15,120 + --> 00:14:17,358\r\nWho the hell are you?\r\n\r\n255\r\n00:14:17,360 --> 00:14:19,638\r\nAnd + what are you doing\r\nin my reflection?\r\n\r\n256\r\n00:14:19,640 --> 00:14:21,718\r\nWhat + are you doing here?\r\n\r\n257\r\n00:14:21,720 --> 00:14:24,398\r\nIs this + the Atropos\r\ndefence systems?\r\n\r\n258\r\n00:14:24,400 --> 00:14:25,798\r\nI'm + you.\r\n\r\n259\r\n00:14:25,800 --> 00:14:27,278\r\nWhich means...\r\n\r\n260\r\n00:14:27,280 + --> 00:14:29,478\r\n..this is my past.\r\n\r\n261\r\n00:14:29,480 --> 00:14:30,718\r\nI'm + in a memory.\r\n\r\n262\r\n00:14:30,720 --> 00:14:32,238\r\nWhat do you mean, + you're me?\r\n\r\n263\r\n00:14:32,240 --> 00:14:33,878\r\nNah, I don't think + so.\r\n\r\n264\r\n00:14:33,880 --> 00:14:35,038\r\nI'm your future.\r\n\r\n265\r\n00:14:35,040 + --> 00:14:37,518\r\nI threw myself into a time storm\r\nhere in the future\r\n\r\n266\r\n00:14:37,520 + --> 00:14:39,278\r\nto protect myself and my friends.\r\n\r\n267\r\n00:14:39,280 + --> 00:14:41,198\r\nBut it's thrown me down\r\ninto my own time stream,\r\n\r\n268\r\n00:14:41,200 + --> 00:14:42,878\r\nin the middle of a memory\r\nthat I've lost.\r\n\r\n269\r\n00:14:42,880 + --> 00:14:44,478\r\nI'm losing control of it all...\r\n\r\n270\r\n00:14:44,480 + --> 00:14:46,838\r\nNo time to admire yourself, boss!\r\n\r\n271\r\n00:14:46,840 + --> 00:14:49,998\r\nBit of praise for the effective\r\nreducer wouldn't go + amiss.\r\n\r\n272\r\n00:14:50,000 --> 00:14:52,398\r\nYeah. You're pretty + smart\r\nfor a dog.\r\n\r\n273\r\n00:14:52,400 --> 00:14:55,718\r\n- Oi! Language.\r\n- + What did you call him?\r\n\r\n274\r\n00:14:55,720 --> 00:14:57,958\r\nTell + me who you are.\r\nAll of you.\r\n\r\n275\r\n00:14:57,960 --> 00:14:59,718\r\nIf + this temporal hazing gets\r\nany worse,\r\n\r\n276\r\n00:14:59,720 --> 00:15:02,798\r\nwe'll + have to relieve her of\r\ncommand. We can't risk the mission.\r\n\r\n277\r\n00:15:02,800 + --> 00:15:05,038\r\nWe're your team.\r\n\r\n278\r\n00:15:05,040 --> 00:15:06,640\r\nMy + team...\r\n\r\n279\r\n00:15:08,800 --> 00:15:11,440\r\nYou talk to her. We'll + cover.\r\n\r\n280\r\n00:15:12,520 --> 00:15:15,638\r\nIt's all right, boss,\r\nwe + understand the pressure.\r\n\r\n281\r\n00:15:15,640 --> 00:15:19,318\r\nFinal + push, we do this,\r\nyou're clear.\r\n\r\n282\r\n00:15:19,320 --> 00:15:20,678\r\nClear?\r\n\r\n283\r\n00:15:20,680 + --> 00:15:23,438\r\nThey promised,\r\nthey'll stick to it. Final attack.\r\n\r\n284\r\n00:15:23,440 + --> 00:15:25,638\r\nRetake the chamber,\r\nretake the planet.\r\n\r\n285\r\n00:15:25,640 + --> 00:15:28,518\r\nAnd you'll be free of all this.\r\nThat's the point, isn't + it?\r\n\r\n286\r\n00:15:28,520 --> 00:15:30,280\r\nIf you say so...\r\n\r\n287\r\n00:15:32,400 + --> 00:15:34,958\r\nWhy don't I know?\r\n\r\n288\r\n00:15:34,960 --> 00:15:37,118\r\nWhy + don't I remember how this ends?\r\n\r\n289\r\n00:15:37,120 --> 00:15:39,798\r\nIf + you've thrown yourself into\r\na time storm\r\n\r\n290\r\n00:15:39,800 --> + 00:15:42,358\r\nand that storm's thrown you\r\nin here,\r\n\r\n291\r\n00:15:42,360 + --> 00:15:43,998\r\nyou might never get back.\r\n\r\n292\r\n00:15:44,000 --> + 00:15:46,278\r\nAnd my friends will die\r\n\r\n293\r\n00:15:46,280 --> 00:15:48,120\r\nsubmerged + in their own time stream.\r\n\r\n294\r\n00:15:49,400 --> 00:15:51,240\r\nThen + you've got a lot\r\nto figure out.\r\n\r\n295\r\n00:16:02,920 --> 00:16:06,118\r\n- + What am I running from?\r\n- We've got him!\r\n\r\n296\r\n00:16:06,120 --> + 00:16:07,438\r\nDon't shoot.\r\n\r\n297\r\n00:16:07,440 --> 00:16:09,798\r\nWhy + are you dallying here?\r\n\r\n298\r\n00:16:09,800 --> 00:16:12,078\r\nI'm + not dallying,\r\nI'm trying to get out.\r\n\r\n299\r\n00:16:12,080 --> 00:16:15,918\r\nLast + I knew, I was somewhere else.\r\nAnd now I'm not. Again.\r\n\r\n300\r\n00:16:15,920 + --> 00:16:17,518\r\nWhy do you disobey the task?\r\n\r\n301\r\n00:16:17,520 + --> 00:16:19,038\r\nWhat task?\r\n\r\n302\r\n00:16:19,040 --> 00:16:20,758\r\nBack, + vile demons!\r\n\r\n303\r\n00:16:20,760 --> 00:16:22,400\r\nI spite you all.\r\n\r\n304\r\n00:16:24,360 + --> 00:16:26,078\r\nNow, what is this?\r\n\r\n305\r\n00:16:26,080 --> 00:16:27,958\r\nHas + your mind deserted you?\r\n\r\n306\r\n00:16:27,960 --> 00:16:29,998\r\nAre + you now a fool?\r\n\r\n307\r\n00:16:30,000 --> 00:16:32,158\r\nIt's really + beginning\r\nto feel that way.\r\n\r\n308\r\n00:16:32,160 --> 00:16:34,238\r\nSo + where've you come from?\r\n\r\n309\r\n00:16:34,240 --> 00:16:35,918\r\nMason + Street, clearly.\r\n\r\n310\r\n00:16:35,920 --> 00:16:37,798\r\nMason Street, + Edge Hill?\r\n\r\n311\r\n00:16:37,800 --> 00:16:40,958\r\nWell, of course, + Edge Hill.\r\nWhere else?\r\n\r\n312\r\n00:16:40,960 --> 00:16:44,160\r\nThat's + right by where I live,\r\nare we near there now?\r\n\r\n313\r\n00:16:45,440 + --> 00:16:47,518\r\nNo, sir.\r\n\r\n314\r\n00:16:47,520 --> 00:16:49,518\r\nVery + far.\r\n\r\n315\r\n00:16:49,520 --> 00:16:52,080\r\nVery, very far!\r\n\r\n316\r\n00:17:09,960 + --> 00:17:11,558\r\nIs that what you were firing at?\r\n\r\n317\r\n00:17:11,560 + --> 00:17:13,358\r\nNo.\r\n\r\n318\r\n00:17:13,360 --> 00:17:14,998\r\nThose + mites,\r\n\r\n319\r\n00:17:15,000 --> 00:17:17,278\r\nI have seen them remove + people\r\n\r\n320\r\n00:17:17,280 --> 00:17:20,118\r\nand objects from this + mortal plane.\r\n\r\n321\r\n00:17:20,120 --> 00:17:21,680\r\nWait, wait, they + return!\r\n\r\n322\r\n00:17:23,000 --> 00:17:25,038\r\nRight, stay put, don't + move.\r\n\r\n323\r\n00:17:25,040 --> 00:17:26,438\r\nI'm coming in.\r\n\r\n324\r\n00:17:26,440 + --> 00:17:28,598\r\nQuantum disruption,\r\nnot exactly helping,\r\n\r\n325\r\n00:17:28,600 + --> 00:17:30,838\r\nbut you should be safe\r\nfrom those particles here.\r\n\r\n326\r\n00:17:30,840 + --> 00:17:33,958\r\nI'm trying to hide you, but you keep\r\nfidgeting out + of your time stream.\r\n\r\n327\r\n00:17:33,960 --> 00:17:35,278\r\nI'm over + here.\r\n\r\n328\r\n00:17:35,280 --> 00:17:36,718\r\nHang on, pushing through.\r\n\r\n329\r\n00:17:36,720 + --> 00:17:38,120\r\nWait.\r\n\r\n330\r\n00:17:39,440 --> 00:17:40,718\r\nIt's + not me.\r\n\r\n331\r\n00:17:40,720 --> 00:17:42,278\r\nThe world keeps moving.\r\n\r\n332\r\n00:17:42,280 + --> 00:17:44,318\r\nI'm hiding you here,\r\nin your own time stream,\r\n\r\n333\r\n00:17:44,320 + --> 00:17:45,998\r\nwhile I try and get the Mouri\r\ninto place.\r\n\r\n334\r\n00:17:46,000 + --> 00:17:48,238\r\nBut it's hard. I mean,\r\nborderline impossible.\r\n\r\n335\r\n00:17:48,240 + --> 00:17:49,878\r\nTime is breaking,\r\n\r\n336\r\n00:17:49,880 --> 00:17:51,598\r\nhunting + down anomalies.\r\n\r\n337\r\n00:17:51,600 --> 00:17:53,118\r\nWhich means + there's a problem.\r\n\r\n338\r\n00:17:53,120 --> 00:17:55,358\r\nAnother + problem. A lot of problems.\r\n\r\n339\r\n00:17:55,360 --> 00:17:58,438\r\nNot + that I want to worry you,\r\ncos I don't, but I have. So, sorry.\r\n\r\n340\r\n00:17:58,440 + --> 00:18:01,320\r\nI'll fix this.\r\nJust don't disappear...\r\n\r\n341\r\n00:18:03,623 + --> 00:18:07,084\r\n_\r\n\r\n342\r\n00:18:07,680 --> 00:18:10,038\r\nGood + news. I found a ship.\r\n\r\n343\r\n00:18:10,040 --> 00:18:11,518\r\nOne lone + ship.\r\n\r\n344\r\n00:18:11,520 --> 00:18:13,198\r\nThe last relic of the + Lupari,\r\n\r\n345\r\n00:18:13,200 --> 00:18:15,838\r\nwho seem to have just + vanished\r\nfrom their home galaxy.\r\n\r\n346\r\n00:18:15,840 --> 00:18:17,838\r\nDo + you think the Flux got them, too?\r\n\r\n347\r\n00:18:17,840 --> 00:18:21,118\r\nAnyway, + we got out the space port\r\nbefore it blew up,\r\n\r\n348\r\n00:18:21,120 + --> 00:18:23,758\r\nmade it through the outer\r\nbarriers of the Dalek Sector\r\n\r\n349\r\n00:18:23,760 + --> 00:18:26,758\r\nwithout being exterminated, just.\r\n\r\n350\r\n00:18:26,760 + --> 00:18:29,398\r\nThere are bodies and wreckage\r\neverywhere.\r\n\r\n351\r\n00:18:29,400 + --> 00:18:32,158\r\nIt feels like the last days of\r\nthe universe.\r\n\r\n352\r\n00:18:32,160 + --> 00:18:34,558\r\nAnd here I am, still doing\r\nwhat I do best,\r\n\r\n353\r\n00:18:34,560 + --> 00:18:36,158\r\npiloting a ship.\r\n\r\n354\r\n00:18:36,160 --> 00:18:38,958\r\nOnly + now I'm watching\r\nplanets crumble,\r\n\r\n355\r\n00:18:38,960 --> 00:18:40,878\r\nand + space lanes fill with debris.\r\n\r\n356\r\n00:18:40,880 --> 00:18:43,800\r\nWho'd + have thought that one thing\r\ncould do so much damage?\r\n\r\n357\r\n00:18:45,200 + --> 00:18:47,318\r\nAnd any time I think we've found\r\na brief sanctuary,\r\n\r\n358\r\n00:18:47,320 + --> 00:18:49,000\r\nlife proves me wrong.\r\n\r\n359\r\n00:18:51,640 --> 00:18:55,478\r\nBecause + apparently, this is\r\nthe Cyber Sector now.\r\n\r\n360\r\n00:18:55,480 --> + 00:18:57,478\r\nCyber Armies ransacking what's left,\r\n\r\n361\r\n00:18:57,480 + --> 00:18:58,878\r\nconverting the few who remain,\r\n\r\n362\r\n00:18:58,880 + --> 00:19:01,798\r\nand in the dark moments,\r\nI think...\r\n\r\n363\r\n00:19:01,800 + --> 00:19:04,918\r\n..the bad guys have won.\r\n\r\n364\r\n00:19:04,920 --> + 00:19:06,718\r\nBut I know what you'd say -\r\n\r\n365\r\n00:19:06,720 --> + 00:19:10,478\r\n\"Challenges are temporary,\r\nlife is constant.\r\n\r\n366\r\n00:19:10,480 + --> 00:19:14,318\r\n\"Don't overthink it,\r\njust move forward.\"\r\n\r\n367\r\n00:19:14,320 + --> 00:19:16,838\r\nAnd I can still hear you\r\ntelling me that.\r\n\r\n368\r\n00:19:16,840 + --> 00:19:20,398\r\nSo I am. We are.\r\n\r\n369\r\n00:19:20,400 --> 00:19:23,438\r\nMe + and Tigmi, moving forward.\r\n\r\n370\r\n00:19:23,440 --> 00:19:25,598\r\nHoping + that you're right.\r\n\r\n371\r\n00:19:25,600 --> 00:19:27,518\r\nHoping we'll + see you soon.\r\n\r\n372\r\n00:19:27,520 --> 00:19:30,438\r\nAnd I'm ignoring + the creature\r\nin a bar who told me,\r\n\r\n373\r\n00:19:30,440 --> 00:19:33,078\r\n\"Atropos + is falling,\r\nthe Mouri are compromised,\r\n\r\n374\r\n00:19:33,080 --> 00:19:35,078\r\n\"and + time is beginning to run wild.\"\r\n\r\n375\r\n00:19:35,080 --> 00:19:37,278\r\nBecause + if the Flux\r\nis eroding space,\r\n\r\n376\r\n00:19:37,280 --> 00:19:39,078\r\nand + time is breaking down,\r\n\r\n377\r\n00:19:39,080 --> 00:19:42,080\r\nthen + what hope do we ever have\r\nof finding each other again?\r\n\r\n378\r\n00:19:47,440 + --> 00:19:49,318\r\nTake in that view.\r\n\r\n379\r\n00:19:49,320 --> 00:19:51,558\r\nYou + know who would never\r\nget in here?\r\n\r\n380\r\n00:19:51,560 --> 00:19:52,838\r\nFrey + Sampor.\r\n\r\n381\r\n00:19:52,840 --> 00:19:56,198\r\nCos they don't let + losers in.\r\n\r\n382\r\n00:19:56,200 --> 00:19:59,638\r\nYou have two tasks + as guardian\r\nof the Grand Serpent,\r\n\r\n383\r\n00:19:59,640 --> 00:20:01,318\r\nprotect + me\r\n\r\n384\r\n00:20:01,320 --> 00:20:06,478\r\nand record the meeting\r\nso + there's no...\r\n\r\n385\r\n00:20:06,480 --> 00:20:09,718\r\n..misunderstandings + later.\r\n\r\n386\r\n00:20:09,720 --> 00:20:12,158\r\nOur guest today comes\r\nseeking + a deal.\r\n\r\n387\r\n00:20:12,160 --> 00:20:13,678\r\nThe Alforia want an + alliance\r\n\r\n388\r\n00:20:13,680 --> 00:20:17,078\r\nwhere we shelter them\r\nunder + our security protocols.\r\n\r\n389\r\n00:20:17,080 --> 00:20:19,798\r\nIn + return,\r\n\r\n390\r\n00:20:19,800 --> 00:20:22,958\r\nthey provide our population\r\nwith + food and safety\r\n\r\n391\r\n00:20:22,960 --> 00:20:24,598\r\nfor generations + to come.\r\n\r\n392\r\n00:20:24,600 --> 00:20:26,400\r\nEverybody wins.\r\n\r\n393\r\n00:20:37,120 + --> 00:20:39,278\r\nWhat did you say?\r\n\r\n394\r\n00:20:39,280 --> 00:20:41,198\r\nI + mean, I can see...\r\n\r\n395\r\n00:20:41,200 --> 00:20:44,638\r\n..that there + are benefits\r\nfor both sides.\r\n\r\n396\r\n00:20:44,640 --> 00:20:47,480\r\nOh. + You can see that?\r\n\r\n397\r\n00:20:51,960 --> 00:20:54,480\r\nYou understand + this.\r\n\r\n398\r\n00:20:56,640 --> 00:20:58,598\r\nSupremacy, I didn't mean...\r\n\r\n399\r\n00:20:58,600 + --> 00:21:00,998\r\nYou want my seat?\r\n\r\n400\r\n00:21:01,000 --> 00:21:03,280\r\nDo + you want to be me?\r\n\r\n401\r\n00:21:08,960 --> 00:21:13,918\r\nI was only + expressing solidarity,\r\nSupremacy, my apologies.\r\n\r\n402\r\n00:21:13,920 + --> 00:21:17,118\r\nI don't need solidarity\r\nfrom a grunt.\r\n\r\n403\r\n00:21:17,120 + --> 00:21:21,880\r\nWhat I need is for you to be silent\r\nand do as you're + ordered.\r\n\r\n404\r\n00:21:23,560 --> 00:21:25,760\r\nUnderstood.\r\n\r\n405\r\n00:21:32,040 + --> 00:21:33,920\r\nThey've docked.\r\n\r\n406\r\n00:21:35,600 --> 00:21:37,480\r\nBe + ready.\r\n\r\n407\r\n00:21:39,840 --> 00:21:41,280\r\nI don't want to relive + this.\r\n\r\n408\r\n00:21:42,720 --> 00:21:44,240\r\nI don't want to relive + this.\r\n\r\n409\r\n00:21:46,120 --> 00:21:50,838\r\nYaz, again, what are + you doing here?\r\n\r\n410\r\n00:21:50,840 --> 00:21:52,758\r\nCome on, you + are so bad at this.\r\n\r\n411\r\n00:21:52,760 --> 00:21:54,838\r\nI don't + even like playing\r\nvideo games.\r\n\r\n412\r\n00:21:54,840 --> 00:21:56,518\r\nNobody + calls them video games.\r\n\r\n413\r\n00:21:56,520 --> 00:21:58,678\r\nWhatever + you wanna call them,\r\nI'm not good at them.\r\n\r\n414\r\n00:21:58,680 --> + 00:22:01,198\r\nBut you're helping me, cos this lad\r\nain't gonna look at + me\r\n\r\n415\r\n00:22:01,200 --> 00:22:03,318\r\nif I don't know my way\r\naround + a controller.\r\n\r\n416\r\n00:22:03,320 --> 00:22:04,958\r\nI'm going to + learn to be\r\nace at this,\r\n\r\n417\r\n00:22:04,960 --> 00:22:06,558\r\nso + the next time I'm in a room\r\nwith him,\r\n\r\n418\r\n00:22:06,560 --> 00:22:08,198\r\nhe's + going to look at me and think,\r\n\r\n419\r\n00:22:08,200 --> 00:22:10,398\r\n\"Who's + the sexy girl\r\nwith the nimble fingers?\"\r\n\r\n420\r\n00:22:10,400 --> + 00:22:14,000\r\nNo human being is ever gonna look\r\nat you and think those + words.\r\n\r\n421\r\n00:22:16,240 --> 00:22:18,478\r\nAll right, I'm super\r\nfreaking + out now...\r\n\r\n422\r\n00:22:18,480 --> 00:22:21,798\r\nTo save you and + that lad on Atropos,\r\nwho I've not even met yet,\r\n\r\n423\r\n00:22:21,800 + --> 00:22:23,638\r\nfrom being overwhelmed by time,\r\n\r\n424\r\n00:22:23,640 + --> 00:22:27,278\r\nI took it upon myself to jump into\r\none of the burned + out Mouris' place,\r\n\r\n425\r\n00:22:27,280 --> 00:22:30,638\r\nto divert + you from having\r\nto absorb the Time Force...\r\n\r\n426\r\n00:22:30,640 + --> 00:22:35,398\r\nBut if time would've overwhelmed me,\r\nwhat's it gonna + do to you?\r\n\r\n427\r\n00:22:35,400 --> 00:22:37,118\r\nYeah, well, I've + got\r\na bit more practice,\r\n\r\n428\r\n00:22:37,120 --> 00:22:39,518\r\nnot + to mention an entirely\r\ndifferent biology.\r\n\r\n429\r\n00:22:39,520 --> + 00:22:41,118\r\nMe and the Mouri are connected.\r\n\r\n430\r\n00:22:41,120 + --> 00:22:44,198\r\nWe're hiding all of you\r\nin your own time streams.\r\n\r\n431\r\n00:22:44,200 + --> 00:22:49,318\r\nIn your own memories, past,\r\npresent or even future.\r\n\r\n432\r\n00:22:49,320 + --> 00:22:51,958\r\nWhat you looking at me\r\nlike that for?\r\n\r\n433\r\n00:22:51,960 + --> 00:22:54,878\r\nSorry. I'm split across\r\nmultiple events,\r\n\r\n434\r\n00:22:54,880 + --> 00:22:56,118\r\nmultiple time streams.\r\n\r\n435\r\n00:22:56,120 --> + 00:22:58,478\r\nI can't be constant. Multiple crisis\r\n\r\n436\r\n00:22:58,480 + --> 00:23:01,878\r\nand I'm still trying to work out\r\nthe plan. You're camouflaged + here,\r\n\r\n437\r\n00:23:01,880 --> 00:23:03,638\r\nbecause this is where + you belong.\r\n\r\n438\r\n00:23:03,640 --> 00:23:06,678\r\nThe best place + to hide you all\r\nis in your own lives.\r\n\r\n439\r\n00:23:06,680 --> 00:23:10,238\r\nExcept + it's not.\r\nThese things haven't happened to me.\r\n\r\n440\r\n00:23:10,240 + --> 00:23:13,998\r\nThis isn't my house,\r\nthe details are wrong.\r\n\r\n441\r\n00:23:14,000 + --> 00:23:17,158\r\nYes, I think there's something's\r\nwrong with your time + stream.\r\n\r\n442\r\n00:23:17,160 --> 00:23:18,920\r\nYaz?\r\n\r\n443\r\n00:23:22,640 + --> 00:23:23,998\r\nDon't blink.\r\n\r\n444\r\n00:23:24,000 --> 00:23:26,840\r\nThere + are Angels disrupting\r\nyour time stream.\r\n\r\n445\r\n00:23:29,160 --> + 00:23:31,638\r\nIt's stalking me.\r\n\r\n446\r\n00:23:31,640 --> 00:23:33,158\r\nWhat + is it?!\r\n\r\n447\r\n00:23:33,160 --> 00:23:35,440\r\nQuit the game.\r\n\r\n448\r\n00:23:38,240 + --> 00:23:39,718\r\nYou have to keep your eyes on it.\r\n\r\n449\r\n00:23:39,720 + --> 00:23:42,678\r\nIf the Angel gets you,\r\nit will propel you back in time.\r\n\r\n450\r\n00:23:42,680 + --> 00:23:45,478\r\nI won't know where you are,\r\nyou could be lost forever\r\n\r\n451\r\n00:23:45,480 + --> 00:23:46,958\r\nand I won't be able to find you.\r\n\r\n452\r\n00:23:46,960 + --> 00:23:49,480\r\nYaz, I'm being pulled away...\r\n\r\n453\r\n00:23:55,560 + --> 00:23:57,400\r\nDo you want me to be\r\nsingle forever?\r\n\r\n454\r\n00:24:00,400 + --> 00:24:02,158\r\nNo.\r\n\r\n455\r\n00:24:02,160 --> 00:24:03,878\r\nCome + on, Doctor.\r\n\r\n456\r\n00:24:03,880 --> 00:24:05,678\r\nYou're in here + for a reason,\r\n\r\n457\r\n00:24:05,680 --> 00:24:08,078\r\nfix the future, + fix Atropos,\r\n\r\n458\r\n00:24:08,080 --> 00:24:10,078\r\nprotect Yaz and + that lad.\r\n\r\n459\r\n00:24:10,080 --> 00:24:12,158\r\nI'm being pulled + away again,\r\n\r\n460\r\n00:24:12,160 --> 00:24:14,000\r\ndragged back to + Atropos in the past.\r\n\r\n461\r\n00:24:18,160 --> 00:24:21,198\r\nOf course + you've made yourselves\r\nthrones.\r\n\r\n462\r\n00:24:21,200 --> 00:24:23,238\r\nYou've + no shame.\r\n\r\n463\r\n00:24:23,240 --> 00:24:25,078\r\nOnly pride.\r\n\r\n464\r\n00:24:25,080 + --> 00:24:27,438\r\nYou should know that by now.\r\n\r\n465\r\n00:24:27,440 + --> 00:24:31,440\r\nSurrender now and your sentences\r\nwill be merciful.\r\n\r\n466\r\n00:24:32,480 + --> 00:24:34,558\r\nBanishment...\r\n\r\n467\r\n00:24:34,560 --> 00:24:36,478\r\n..or + execution?\r\n\r\n468\r\n00:24:36,480 --> 00:24:38,638\r\nSurrender?\r\n\r\n469\r\n00:24:38,640 + --> 00:24:40,518\r\nTo the four of you?\r\n\r\n470\r\n00:24:40,520 --> 00:24:42,038\r\nDon't + underestimate me.\r\n\r\n471\r\n00:24:42,040 --> 00:24:46,158\r\nIt's a difficult + moral high ground\r\nyou occupy.\r\n\r\n472\r\n00:24:46,160 --> 00:24:48,758\r\nIf + you don't stop killing things,\r\n\r\n473\r\n00:24:48,760 --> 00:24:50,318\r\nwe'll + kill you.\r\n\r\n474\r\n00:24:50,320 --> 00:24:52,918\r\nIf there's further + death\r\nor bloodshed,\r\n\r\n475\r\n00:24:52,920 --> 00:24:54,638\r\nyour + punishments will be worse.\r\n\r\n476\r\n00:24:54,640 --> 00:24:57,078\r\nErasure + of identity.\r\n\r\n477\r\n00:24:57,080 --> 00:25:01,918\r\nIsolation prison + terms for the\r\ninfinite duration of the universe.\r\n\r\n478\r\n00:25:01,920 + --> 00:25:05,598\r\nWorking for the Division must be\r\nso compromising.\r\n\r\n479\r\n00:25:05,600 + --> 00:25:07,998\r\nYou've already lost.\r\nI'm just trying to reason with + you.\r\n\r\n480\r\n00:25:08,000 --> 00:25:12,120\r\nHow can we have lost\r\nwith + so many hostages?\r\n\r\n481\r\n00:25:14,920 --> 00:25:19,198\r\nYou understand + what Passenger is?\r\n\r\n482\r\n00:25:19,200 --> 00:25:23,318\r\nThe Passenger + is\r\na long forbidden form.\r\n\r\n483\r\n00:25:23,320 --> 00:25:27,318\r\nBarred + from this dimension,\r\nfor good reason.\r\n\r\n484\r\n00:25:27,320 --> 00:25:30,438\r\nA + thing of beauty.\r\n\r\n485\r\n00:25:30,440 --> 00:25:32,398\r\nA holding + entity,\r\n\r\n486\r\n00:25:32,400 --> 00:25:35,320\r\nable to store what + it has\r\ncaptured within.\r\n\r\n487\r\n00:25:36,920 --> 00:25:39,878\r\nA + living prison,\r\n\r\n488\r\n00:25:39,880 --> 00:25:42,798\r\nwith endless + capacity.\r\n\r\n489\r\n00:25:42,800 --> 00:25:48,558\r\nHundreds of thousands + of life forms\r\nlocked away within each Passenger.\r\n\r\n490\r\n00:25:48,560 + --> 00:25:51,158\r\nFive Passengers,\r\n\r\n491\r\n00:25:51,160 --> 00:25:53,598\r\nmillions + of lives.\r\n\r\n492\r\n00:25:53,600 --> 00:25:55,958\r\nKept a list, have + we?\r\n\r\n493\r\n00:25:55,960 --> 00:25:57,560\r\nKept the numbers?\r\n\r\n494\r\n00:26:07,440 + --> 00:26:10,318\r\nOne Passenger destroyed.\r\nWe need the Mouri now...\r\n\r\n495\r\n00:26:10,320 + --> 00:26:11,678\r\nI'm trying...\r\n\r\n496\r\n00:26:11,680 --> 00:26:14,678\r\nYou + think we would cower\r\nbefore the Division\r\n\r\n497\r\n00:26:14,680 --> + 00:26:18,480\r\nwhen we have taken control\r\nof its dirty secret?\r\n\r\n498\r\n00:26:20,320 + --> 00:26:24,918\r\nA planet called Time.\r\n\r\n499\r\n00:26:24,920 --> 00:26:29,518\r\nThinking + this could bring\r\nthe Dark Times to an end.\r\n\r\n500\r\n00:26:29,520 --> + 00:26:33,238\r\nTime is not controllable, Doctor.\r\n\r\n501\r\n00:26:33,240 + --> 00:26:37,118\r\nIt will not do as other beings bid.\r\n\r\n502\r\n00:26:37,120 + --> 00:26:38,678\r\nIt will.\r\n\r\n503\r\n00:26:38,680 --> 00:26:40,238\r\nIt + must.\r\n\r\n504\r\n00:26:40,240 --> 00:26:46,040\r\nHere we are, still engaged\r\nin + the Founding Conflict.\r\n\r\n505\r\n00:26:47,600 --> 00:26:49,718\r\nThere + is no greater battle\r\n\r\n506\r\n00:26:49,720 --> 00:26:55,158\r\nthan this + the battle between\r\nTime and Space.\r\n\r\n507\r\n00:26:55,160 --> 00:26:59,038\r\nAnd + Time shall not lose.\r\n\r\n508\r\n00:26:59,040 --> 00:27:03,798\r\nTime shall + never surrender to Space.\r\n\r\n509\r\n00:27:03,800 --> 00:27:07,118\r\nNo + planetary mass,\r\nhowever sophisticated,\r\n\r\n510\r\n00:27:07,120 --> 00:27:10,878\r\ncan + imprison the force of Time.\r\n\r\n511\r\n00:27:10,880 --> 00:27:12,478\r\nThis + planet,\r\n\r\n512\r\n00:27:12,480 --> 00:27:16,958\r\nthis construction\r\nis + not just a fallacy,\r\n\r\n513\r\n00:27:16,960 --> 00:27:20,358\r\nnot just + futile hubris,\r\n\r\n514\r\n00:27:20,360 --> 00:27:22,278\r\nit is heresy.\r\n\r\n515\r\n00:27:22,280 + --> 00:27:24,918\r\nAnd see how many lives it has cost.\r\n\r\n516\r\n00:27:24,920 + --> 00:27:26,200\r\nKeep away from it...\r\n\r\n517\r\n00:27:28,520 --> 00:27:31,598\r\nThat's + the second.\r\nIt's a massacre in there...\r\n\r\n518\r\n00:27:31,600 --> + 00:27:34,118\r\nWe can't let her lose any more.\r\n\r\n519\r\n00:27:34,120 + --> 00:27:37,758\r\nThe Mouri are ready,\r\nthe Mouri are connected.\r\n\r\n520\r\n00:27:37,760 + --> 00:27:41,118\r\nOh...\r\n\r\n521\r\n00:27:41,120 --> 00:27:43,518\r\n..is + that Passenger meant\r\nto glow like that?\r\n\r\n522\r\n00:27:43,520 --> + 00:27:44,760\r\nMouri...\r\n\r\n523\r\n00:27:47,320 --> 00:27:50,838\r\nTell + me you did not\r\nbring them here.\r\n\r\n524\r\n00:27:50,840 --> 00:27:51,998\r\nYou + were warned...\r\n\r\n525\r\n00:27:52,000 --> 00:27:53,678\r\nThey shall not + have this!\r\n\r\n526\r\n00:27:53,680 --> 00:27:55,798\r\nYou know the thing + about\r\na Passenger form?\r\n\r\n527\r\n00:27:55,800 --> 00:27:57,958\r\nYou'd + better be sure\r\nyou know where they've been,\r\n\r\n528\r\n00:27:57,960 + --> 00:28:00,358\r\nor everything that's held\r\ninside them,\r\n\r\n529\r\n00:28:00,360 + --> 00:28:03,158\r\nmaybe even hidden,\r\n\r\n530\r\n00:28:03,160 --> 00:28:05,798\r\nready + to be summoned.\r\n\r\n531\r\n00:28:05,800 --> 00:28:09,358\r\nCos that one\r\ninfiltrated + your temple,\r\n\r\n532\r\n00:28:09,360 --> 00:28:12,038\r\nsubstituted for + one of yours,\r\n\r\n533\r\n00:28:12,040 --> 00:28:16,798\r\nand inside waiting + for my command...\r\n\r\n534\r\n00:28:16,800 --> 00:28:18,918\r\nOut you come, + Mouri.\r\n\r\n535\r\n00:28:18,920 --> 00:28:21,078\r\nThis is your time.\r\n\r\n536\r\n00:28:21,080 + --> 00:28:23,638\r\nNo! The Mouri must not be allowed\r\nback in.\r\n\r\n537\r\n00:28:23,640 + --> 00:28:24,998\r\nThey are banished.\r\n\r\n538\r\n00:28:25,000 --> 00:28:26,760\r\nTime + is not their prisoner!\r\n\r\n539\r\n00:28:28,000 --> 00:28:30,040\r\nStasis + fields, now.\r\n\r\n540\r\n00:28:35,920 --> 00:28:38,598\r\nWe shall not be + contained!\r\n\r\n541\r\n00:28:38,600 --> 00:28:41,360\r\nGet them transported\r\nout + of here, now.\r\n\r\n542\r\n00:28:42,960 --> 00:28:45,678\r\nMission accomplished, + boss.\r\n\r\n543\r\n00:28:45,680 --> 00:28:47,558\r\nYes.\r\n\r\n544\r\n00:28:47,560 + --> 00:28:49,278\r\nI need your help.\r\n\r\n545\r\n00:28:49,280 --> 00:28:50,718\r\nYou + and me together.\r\n\r\n546\r\n00:28:50,720 --> 00:28:52,158\r\nWe save my + friends in the future\r\n\r\n547\r\n00:28:52,160 --> 00:28:54,398\r\nby replicating + what happened\r\nin the past.\r\n\r\n548\r\n00:28:54,400 --> 00:28:56,278\r\nSame + problem, same solution.\r\n\r\n549\r\n00:28:56,280 --> 00:28:59,798\r\nEmbed + yourselves in the Temple\r\nas you did before.\r\n\r\n550\r\n00:28:59,800 + --> 00:29:01,558\r\nThe Passenger is there.\r\n\r\n551\r\n00:29:01,560 --> + 00:29:04,598\r\nWe need four of you to replace\r\nthe burned-out Mouri,\r\n\r\n552\r\n00:29:04,600 + --> 00:29:06,558\r\nlet four be waiting.\r\n\r\n553\r\n00:29:06,560 --> 00:29:08,678\r\nYou + have to do this\r\nor time will fracture\r\n\r\n554\r\n00:29:08,680 --> 00:29:10,680\r\nacross + all of the space. Please.\r\n\r\n555\r\n00:29:13,664 --> 00:29:15,164\r\n_\r\n\r\n556\r\n00:29:20,480 + --> 00:29:22,198\r\nCome on.\r\n\r\n557\r\n00:29:22,200 --> 00:29:24,398\r\nCome + on, make hyper for me.\r\n\r\n558\r\n00:29:24,400 --> 00:29:26,760\r\nWhoooo!\r\n\r\n559\r\n00:29:29,000 + --> 00:29:30,040\r\nOh, I miss that rush.\r\n\r\n560\r\n00:29:32,200 --> 00:29:33,520\r\nYeah...\r\n\r\n561\r\n00:29:34,960 + --> 00:29:37,278\r\nHow you doing, Tigmi? Huh?\r\n\r\n562\r\n00:29:37,280 + --> 00:29:40,360\r\nSlightly elevated, but that's\r\nto be expected, right?\r\n\r\n563\r\n00:29:42,680 + --> 00:29:46,240\r\nRight, I'm hoping\r\nthe nav charts are up-to-date.\r\n\r\n564\r\n00:29:49,000 + --> 00:29:50,998\r\nThey are, but they're not good.\r\n\r\n565\r\n00:29:51,000 + --> 00:29:53,118\r\nThe Dalek Empire expanding\r\nover here.\r\n\r\n566\r\n00:29:53,120 + --> 00:29:55,238\r\nSontarans starting\r\nto spread over here.\r\n\r\n567\r\n00:29:55,240 + --> 00:30:00,478\r\nAnd us, exiting the Cyber Zone\r\nas fast as we can.\r\n\r\n568\r\n00:30:00,480 + --> 00:30:03,598\r\nWait, what's that?\r\n\r\n569\r\n00:30:03,600 --> 00:30:04,880\r\nDid + we make it out or...?\r\n\r\n570\r\n00:30:06,000 --> 00:30:07,278\r\nGuess + not.\r\n\r\n571\r\n00:30:07,280 --> 00:30:09,558\r\nPrepare to convert\r\norganic + life forms.\r\n\r\n572\r\n00:30:09,560 --> 00:30:11,038\r\nYeah?\r\n\r\n573\r\n00:30:11,040 + --> 00:30:12,600\r\nConvert this.\r\n\r\n574\r\n00:30:55,840 --> 00:30:58,158\r\nHow + many Cybermen\r\nin this part of the galaxy?\r\n\r\n575\r\n00:30:58,160 --> + 00:31:02,438\r\n7,000,313,409.\r\n\r\n576\r\n00:31:02,440 --> 00:31:04,478\r\nI + like our odds, Tigmi.\r\n\r\n577\r\n00:31:04,480 --> 00:31:06,558\r\nSo what + is happening to Time?\r\n\r\n578\r\n00:31:06,560 --> 00:31:08,998\r\nI mean,\r\nI + get what happened with the Flux,\r\n\r\n579\r\n00:31:09,000 --> 00:31:10,878\r\nbut + something has started\r\naffecting Time.\r\n\r\n580\r\n00:31:10,880 --> 00:31:14,158\r\nCorrect.\r\nFlux + event affected the planet Time.\r\n\r\n581\r\n00:31:14,160 --> 00:31:15,918\r\nTemporal + centre cannot hold.\r\n\r\n582\r\n00:31:15,920 --> 00:31:17,438\r\nI have + no idea what that means.\r\n\r\n583\r\n00:31:17,440 --> 00:31:19,000\r\nBut + it doesn't sound good.\r\n\r\n584\r\n00:31:22,520 --> 00:31:25,438\r\nOK, + so, what is the strategic aim\r\n\r\n585\r\n00:31:25,440 --> 00:31:27,318\r\nof + the Cyber race post-Flux?\r\n\r\n586\r\n00:31:27,320 --> 00:31:29,478\r\nSecure + territorial advance.\r\n\r\n587\r\n00:31:29,480 --> 00:31:32,558\r\nConvert + all organic life forms\r\nremaining.\r\n\r\n588\r\n00:31:32,560 --> 00:31:36,038\r\nAnd + then what?\r\nWe shall command. We shall rule.\r\n\r\n589\r\n00:31:36,040 + --> 00:31:38,078\r\nOver what?\r\n\r\n590\r\n00:31:38,080 --> 00:31:40,038\r\nThere's + barely anything left.\r\n\r\n591\r\n00:31:40,040 --> 00:31:41,438\r\nThe universe + is disappearing.\r\n\r\n592\r\n00:31:41,440 --> 00:31:43,278\r\nAll that is + left shall be ours.\r\n\r\n593\r\n00:31:43,280 --> 00:31:45,598\r\nThe Cyber + victory shall be ultimate.\r\n\r\n594\r\n00:31:45,600 --> 00:31:47,598\r\nIt + shall be hollow.\r\n\r\n595\r\n00:31:47,600 --> 00:31:49,398\r\nPointless.\r\n\r\n596\r\n00:31:49,400 + --> 00:31:54,078\r\nSo you guys, Daleks and Sontarans,\r\nall fighting for + the spoils,\r\n\r\n597\r\n00:31:54,080 --> 00:31:56,958\r\nas if nothing has + changed.\r\n\r\n598\r\n00:31:56,960 --> 00:31:59,318\r\nIn the end, it'll + come down\r\nto you fighting each other\r\n\r\n599\r\n00:31:59,320 --> 00:32:02,078\r\nand + wiping each other out.\r\n\r\n600\r\n00:32:02,080 --> 00:32:05,000\r\nActually,\r\nthat's + quite a good thing.\r\n\r\n601\r\n00:32:08,160 --> 00:32:10,080\r\nWhat is + your mission?\r\n\r\n602\r\n00:32:13,720 --> 00:32:14,958\r\nWhat?\r\n\r\n603\r\n00:32:14,960 + --> 00:32:16,478\r\nWhat is your mission?\r\n\r\n604\r\n00:32:16,480 --> 00:32:19,598\r\nI'm + one person,\r\nout here in the broken universe.\r\n\r\n605\r\n00:32:19,600 + --> 00:32:21,718\r\nMy mission doesn't impinge on you.\r\n\r\n606\r\n00:32:21,720 + --> 00:32:24,118\r\nI must record.\r\n\r\n607\r\n00:32:24,120 --> 00:32:25,240\r\nFine.\r\n\r\n608\r\n00:32:27,160 + --> 00:32:29,158\r\nJust put...\r\n\r\n609\r\n00:32:29,160 --> 00:32:31,158\r\n..love.\r\n\r\n610\r\n00:32:31,160 + --> 00:32:32,800\r\nIncorrect.\r\n\r\n611\r\n00:32:34,880 --> 00:32:36,478\r\nWhat?\r\n\r\n612\r\n00:32:36,480 + --> 00:32:38,278\r\nLove is not a mission.\r\n\r\n613\r\n00:32:38,280 --> + 00:32:42,798\r\nLove is an emotion.\r\nEmotions are not missions.\r\n\r\n614\r\n00:32:42,800 + --> 00:32:44,598\r\nAnd that's why you're dead on floor,\r\n\r\n615\r\n00:32:44,600 + --> 00:32:46,160\r\nand I put you there.\r\n\r\n616\r\n00:32:47,760 --> 00:32:49,638\r\nLove + is the only mission.\r\n\r\n617\r\n00:32:49,640 --> 00:32:51,040\r\nIdiot.\r\n\r\n618\r\n00:32:53,360 + --> 00:32:55,000\r\nRight?\r\n\r\n619\r\n00:32:57,560 --> 00:33:00,198\r\nI'm + gonna get us\r\nto where we need to be\r\n\r\n620\r\n00:33:00,200 --> 00:33:01,560\r\nand + who we need to be with.\r\n\r\n621\r\n00:33:02,800 --> 00:33:04,600\r\nThat's + my promise to you.\r\n\r\n622\r\n00:33:16,560 --> 00:33:19,438\r\nThank you,\r\nmy + valued Alforian friends.\r\n\r\n623\r\n00:33:19,440 --> 00:33:22,638\r\nWell, + it looks like we've come\r\nto an agreement,\r\n\r\n624\r\n00:33:22,640 --> + 00:33:24,800\r\non one condition.\r\n\r\n625\r\n00:33:26,640 --> 00:33:28,760\r\nYou + can stop the recording now,\r\nVinder.\r\n\r\n626\r\n00:33:31,000 --> 00:33:32,838\r\nSupremacy, + I'm duty-bound...\r\n\r\n627\r\n00:33:32,840 --> 00:33:35,680\r\nShut it off.\r\n\r\n628\r\n00:33:38,640 + --> 00:33:41,160\r\nWas my order unclear?\r\n\r\n629\r\n00:33:45,800 --> 00:33:47,640\r\nStopping + recording, sir.\r\n\r\n630\r\n00:33:58,120 --> 00:34:01,640\r\nYou're sheltering + a number of\r\ndissidents on Alforus Extant.\r\n\r\n631\r\n00:34:02,760 --> + 00:34:05,160\r\nI'm going to give you\r\na list of nine people.\r\n\r\n632\r\n00:34:06,320 + --> 00:34:10,918\r\nFive of them are to be returned\r\nto us, to face justice.\r\n\r\n633\r\n00:34:10,920 + --> 00:34:14,120\r\nThey must face the consequences\r\nfor their treasonous + actions.\r\n\r\n634\r\n00:34:16,440 --> 00:34:19,318\r\nThe other four,\r\n\r\n635\r\n00:34:19,320 + --> 00:34:25,118\r\nthe other four are family members\r\nof my dear opponent\r\n\r\n636\r\n00:34:25,120 + --> 00:34:27,080\r\nand vocal critic, Frey Sampor.\r\n\r\n637\r\n00:34:30,400 + --> 00:34:33,278\r\nThey need to have an accident.\r\n\r\n638\r\n00:34:33,280 + --> 00:34:37,518\r\nIt's important they're involved\r\nin an unexpected tragedy.\r\n\r\n639\r\n00:34:37,520 + --> 00:34:40,038\r\nNatural disaster.\r\n\r\n640\r\n00:34:40,040 --> 00:34:42,078\r\nLandslide.\r\n\r\n641\r\n00:34:42,080 + --> 00:34:43,838\r\nHunting accident.\r\n\r\n642\r\n00:34:43,840 --> 00:34:45,638\r\nYou + decide.\r\n\r\n643\r\n00:34:45,640 --> 00:34:47,598\r\nYou don't need to tell + me.\r\n\r\n644\r\n00:34:47,600 --> 00:34:49,520\r\nBut they have to die.\r\n\r\n645\r\n00:34:52,560 + --> 00:34:54,320\r\nAnd those are my final conditions.\r\n\r\n646\r\n00:34:57,600 + --> 00:34:59,318\r\nAnd you want to make this official?\r\n\r\n647\r\n00:34:59,320 + --> 00:35:02,238\r\nThey're dead. You saw the reports.\r\n\r\n648\r\n00:35:02,240 + --> 00:35:04,038\r\nAn accident on the lunar range.\r\n\r\n649\r\n00:35:04,040 + --> 00:35:06,998\r\nYou want to report that\r\nthe Grand Serpent is responsible?\r\n\r\n650\r\n00:35:07,000 + --> 00:35:09,198\r\nIt was his condition\r\nfor the alliance.\r\n\r\n651\r\n00:35:09,200 + --> 00:35:11,238\r\nThere's no evidence\r\non the recording.\r\n\r\n652\r\n00:35:11,240 + --> 00:35:13,120\r\nNo, he asked me to stop\r\nthe recording.\r\n\r\n653\r\n00:35:18,040 + --> 00:35:20,998\r\nWhat do you want to achieve here,\r\nCommander Vinder?\r\n\r\n654\r\n00:35:21,000 + --> 00:35:22,678\r\nHe needs to be held to account.\r\n\r\n655\r\n00:35:22,680 + --> 00:35:25,238\r\nYou understand this report\r\nwill reach him, if filed?\r\n\r\n656\r\n00:35:25,240 + --> 00:35:27,598\r\nThere are processes,\r\nthough, right?\r\n\r\n657\r\n00:35:27,600 + --> 00:35:30,438\r\nOther people see it.\r\nThere are whistle-blower protocols.\r\n\r\n658\r\n00:35:30,440 + --> 00:35:32,960\r\nEstablished by the Grand Serpent.\r\n\r\n659\r\n00:35:34,000 + --> 00:35:37,518\r\nHave you spoken\r\nto your family about any of this?\r\n\r\n660\r\n00:35:37,520 + --> 00:35:41,160\r\nNo. You're the first,\r\nas my commanding officer.\r\n\r\n661\r\n00:35:42,920 + --> 00:35:45,278\r\nI took an oath.\r\n\r\n662\r\n00:35:45,280 --> 00:35:49,198\r\nI + swore my loyalty\r\nto our constitution.\r\n\r\n663\r\n00:35:49,200 --> 00:35:51,198\r\nNot + to any one person.\r\n\r\n664\r\n00:35:51,200 --> 00:35:53,960\r\nTo something + bigger.\r\nMore important.\r\n\r\n665\r\n00:35:56,080 --> 00:35:57,798\r\nSo...\r\n\r\n666\r\n00:35:57,800 + --> 00:36:00,598\r\n..here's a choice.\r\n\r\n667\r\n00:36:00,600 --> 00:36:02,120\r\nI + can submit this...\r\n\r\n668\r\n00:36:04,640 --> 00:36:06,240\r\n..or I can + not submit this.\r\n\r\n669\r\n00:36:13,360 --> 00:36:15,560\r\nDon't make + me relive this bit.\r\n\r\n670\r\n00:36:22,400 --> 00:36:24,080\r\nPeople + need to know the truth.\r\n\r\n671\r\n00:36:29,680 --> 00:36:31,240\r\nSubmit + it.\r\n\r\n672\r\n00:36:32,640 --> 00:36:34,720\r\nSit down, Commander.\r\n\r\n673\r\n00:36:56,720 + --> 00:36:58,520\r\nHi, it's me.\r\n\r\n674\r\n00:37:01,200 --> 00:37:03,600\r\nI + won't be coming back off tour\r\nwhen I expected.\r\n\r\n675\r\n00:37:05,640 + --> 00:37:08,998\r\nIt may be a lot longer\r\nbefore I see you again.\r\n\r\n676\r\n00:37:09,000 + --> 00:37:11,638\r\nNow, I don't want you to worry,\r\n\r\n677\r\n00:37:11,640 + --> 00:37:13,998\r\nbut there was an incident.\r\n\r\n678\r\n00:37:14,000 + --> 00:37:16,720\r\nI was immediately reposted.\r\n\r\n679\r\n00:37:20,440 + --> 00:37:23,120\r\nLook, I can't say any more,\r\nbecause...\r\n\r\n680\r\n00:37:26,760 + --> 00:37:29,318\r\nI'm sorry.\r\n\r\n681\r\n00:37:29,320 --> 00:37:31,960\r\nI + was doing the right thing.\r\n\r\n682\r\n00:37:35,440 --> 00:37:39,718\r\nI'm + permitted one message,\r\nI hope it gets to you.\r\n\r\n683\r\n00:37:39,720 + --> 00:37:41,600\r\nI love you.\r\n\r\n684\r\n00:37:55,760 --> 00:37:59,118\r\nTime's + correcting.\r\nI'll file the report for Division.\r\n\r\n685\r\n00:37:59,120 + --> 00:38:01,198\r\nI've seen that before.\r\n\r\n686\r\n00:38:01,200 --> + 00:38:03,198\r\nOi.\r\n\r\n687\r\n00:38:03,200 --> 00:38:07,358\r\nYou know + the rules,\r\ndon't touch what you can't afford.\r\n\r\n688\r\n00:38:07,360 + --> 00:38:09,998\r\nWe know each other.\r\n\r\n689\r\n00:38:10,000 --> 00:38:12,518\r\nTemporal + hazing's getting\r\nto the boss again...\r\n\r\n690\r\n00:38:12,520 --> 00:38:14,158\r\nTime + to move.\r\n\r\n691\r\n00:38:14,160 --> 00:38:15,678\r\nBring the Passengers,\r\n\r\n692\r\n00:38:15,680 + --> 00:38:18,798\r\nwe'll extract the hostages back\r\nonboard the ship.\r\n\r\n693\r\n00:38:18,800 + --> 00:38:20,678\r\nWe have done as you asked, Doctor.\r\n\r\n694\r\n00:38:20,680 + --> 00:38:23,438\r\nWe have returned four Mouri\r\nto your time.\r\n\r\n695\r\n00:38:23,440 + --> 00:38:25,238\r\nNow you must return.\r\n\r\n696\r\n00:38:25,240 --> 00:38:28,438\r\nYou + must not linger\r\nin your own time stream.\r\n\r\n697\r\n00:38:28,440 --> + 00:38:30,838\r\nNot yet. Not just yet...\r\n\r\n698\r\n00:38:30,840 --> 00:38:33,758\r\nThe + force of Time will break you.\r\n\r\n699\r\n00:38:33,760 --> 00:38:36,318\r\nBut + this is my only chance\r\nto find out more...\r\n\r\n700\r\n00:38:36,320 --> + 00:38:39,358\r\n- More?\r\n- Who I was. Who I am.\r\n\r\n701\r\n00:38:39,360 + --> 00:38:41,358\r\nIt's all in here,\r\nif I can just find it...\r\n\r\n702\r\n00:38:41,360 + --> 00:38:44,998\r\nYour body is breaking, Doctor.\r\nWe can sense it. You + must leave.\r\n\r\n703\r\n00:38:45,000 --> 00:38:46,838\r\nOne more memory.\r\n\r\n704\r\n00:38:46,840 + --> 00:38:49,160\r\nOne more piece of my past.\r\n\r\n705\r\n00:38:50,240 + --> 00:38:51,798\r\nLet me have some...\r\n\r\n706\r\n00:38:51,800 --> 00:38:53,358\r\n..some + explanation.\r\n\r\n707\r\n00:38:53,360 --> 00:38:55,198\r\nYou will die in + here.\r\n\r\n708\r\n00:38:55,200 --> 00:38:56,878\r\nJust give me something!\r\n\r\n709\r\n00:38:56,880 + --> 00:38:59,478\r\nGive me the end,\r\ngive me the end of what I was in...\r\n\r\n710\r\n00:38:59,480 + --> 00:39:00,798\r\nNo.\r\n\r\n711\r\n00:39:00,800 --> 00:39:02,920\r\nYou + can't force me out!\r\n\r\n712\r\n00:39:09,400 --> 00:39:11,160\r\nStop fighting + now, Doctor.\r\n\r\n713\r\n00:39:12,360 --> 00:39:13,600\r\nWho are you?\r\n\r\n714\r\n00:39:16,040 + --> 00:39:17,798\r\nWhere am I?\r\n\r\n715\r\n00:39:17,800 --> 00:39:20,678\r\nYou + think you can navigate\r\nall those time streams\r\n\r\n716\r\n00:39:20,680 + --> 00:39:22,478\r\nwithout anyone noticing?\r\n\r\n717\r\n00:39:22,480 --> + 00:39:24,758\r\nYou're fighting a lost cause.\r\n\r\n718\r\n00:39:24,760 --> + 00:39:26,198\r\nYou need to stop.\r\n\r\n719\r\n00:39:26,200 --> 00:39:27,998\r\nLost + causes are my speciality.\r\n\r\n720\r\n00:39:28,000 --> 00:39:29,518\r\nNot + this time.\r\n\r\n721\r\n00:39:29,520 --> 00:39:31,918\r\nThere'll be no glory + awaiting you\r\non this one.\r\n\r\n722\r\n00:39:31,920 --> 00:39:33,918\r\nYou + seem to think\r\nyou're very well informed.\r\n\r\n723\r\n00:39:33,920 --> + 00:39:37,998\r\nI'm telling you, the damage\r\nto Time is already done.\r\n\r\n724\r\n00:39:38,000 + --> 00:39:39,198\r\nAs intended.\r\n\r\n725\r\n00:39:39,200 --> 00:39:40,398\r\nIntended?\r\n\r\n726\r\n00:39:40,400 + --> 00:39:43,198\r\nHm. The Flux event was spatial.\r\n\r\n727\r\n00:39:43,200 + --> 00:39:45,558\r\nBut it was possible\r\nit wouldn't be enough.\r\n\r\n728\r\n00:39:45,560 + --> 00:39:46,838\r\nThe Ravagers,\r\n\r\n729\r\n00:39:46,840 --> 00:39:49,998\r\nSwarm + and Azure,\r\nare rare and useful creatures.\r\n\r\n730\r\n00:39:50,000 --> + 00:39:52,398\r\nNow they have been reintroduced.\r\n\r\n731\r\n00:39:52,400 + --> 00:39:55,238\r\nThink of them as\r\na temporal poison,\r\n\r\n732\r\n00:39:55,240 + --> 00:39:56,518\r\nor contagion.\r\n\r\n733\r\n00:39:56,520 --> 00:39:59,038\r\nI'm + sorry, I'm normally very good\r\nat keeping up with things,\r\n\r\n734\r\n00:39:59,040 + --> 00:40:01,198\r\nbut you lost me quite early on.\r\nWhere are we?\r\n\r\n735\r\n00:40:01,200 + --> 00:40:03,198\r\nAnd how do you know me\r\nand I don't know you?\r\n\r\n736\r\n00:40:03,200 + --> 00:40:05,078\r\nAlways the wrong questions.\r\n\r\n737\r\n00:40:05,080 + --> 00:40:08,800\r\nThis universe is over, Doctor.\r\nHm?\r\n\r\n738\r\n00:40:09,960 + --> 00:40:11,318\r\nAnd you get to call it, do you?\r\n\r\n739\r\n00:40:11,320 + --> 00:40:12,598\r\nEverything has its time.\r\n\r\n740\r\n00:40:12,600 --> + 00:40:14,438\r\nNothing is forever.\r\nNothing is certain.\r\n\r\n741\r\n00:40:14,440 + --> 00:40:17,758\r\nNot you and not this universe\r\nyou seem to love so much.\r\n\r\n742\r\n00:40:17,760 + --> 00:40:20,598\r\nThis universe is home to innumerable\r\nspecies and life + forms.\r\n\r\n743\r\n00:40:20,600 --> 00:40:22,318\r\nDon't lecture me, Doctor.\r\n\r\n744\r\n00:40:22,320 + --> 00:40:24,440\r\nNot when you should look\r\nto yourself.\r\n\r\n745\r\n00:40:26,280 + --> 00:40:27,918\r\nThe Flux wasn't an accident.\r\n\r\n746\r\n00:40:27,920 + --> 00:40:29,838\r\nIt wasn't a naturally occurring\r\nevent.\r\n\r\n747\r\n00:40:29,840 + --> 00:40:31,680\r\nIt was made. It was placed.\r\n\r\n748\r\n00:40:33,600 + --> 00:40:34,638\r\nWhat?\r\n\r\n749\r\n00:40:34,640 --> 00:40:36,398\r\nBecause + of you.\r\n\r\n750\r\n00:40:36,400 --> 00:40:38,158\r\nWhat are you talking + about?\r\n\r\n751\r\n00:40:38,160 --> 00:40:40,240\r\nAll is ending.\r\n\r\n752\r\n00:40:42,040 + --> 00:40:43,960\r\nAnd don't come looking for this.\r\n\r\n753\r\n00:40:45,960 + --> 00:40:47,878\r\nYou can go.\r\n\r\n754\r\n00:40:47,880 --> 00:40:49,680\r\nI + will not go.\r\n\r\n755\r\n00:40:52,360 --> 00:40:53,798\r\nNo, no, no.\r\n\r\n756\r\n00:40:53,800 + --> 00:40:55,158\r\nPut me back, put me back.\r\n\r\n757\r\n00:40:55,160 --> + 00:40:57,158\r\nI want to go back in there.\r\nI have to get back in.\r\n\r\n758\r\n00:40:57,160 + --> 00:40:58,958\r\n- Doctor, it's OK...\r\n- It's not OK!\r\n\r\n759\r\n00:40:58,960 + --> 00:41:00,598\r\nNot for me!\r\n\r\n760\r\n00:41:00,600 --> 00:41:02,118\r\nYou + don't understand anything.\r\n\r\n761\r\n00:41:02,120 --> 00:41:06,238\r\n- + All right.\r\n- I had a chance while it was broken.\r\n\r\n762\r\n00:41:06,240 + --> 00:41:07,518\r\nWell, it's not now.\r\n\r\n763\r\n00:41:07,520 --> 00:41:08,798\r\nThe + Mouri, they're all back.\r\n\r\n764\r\n00:41:08,800 --> 00:41:11,278\r\nYou + saved our lives.\r\n\r\n765\r\n00:41:11,280 --> 00:41:13,558\r\nWell done, + Doctor.\r\n\r\n766\r\n00:41:13,560 --> 00:41:18,080\r\nDid you have fun in + there,\r\ndiscovering the past you've lost?\r\n\r\n767\r\n00:41:20,360 --> + 00:41:23,998\r\nYou may have forgotten,\r\nbut we did not.\r\n\r\n768\r\n00:41:24,000 + --> 00:41:26,600\r\nWe brought you here\r\nknowing what you would do.\r\n\r\n769\r\n00:41:28,040 + --> 00:41:30,438\r\nThis is only the beginning.\r\n\r\n770\r\n00:41:30,440 + --> 00:41:32,678\r\nUgh...\r\n\r\n771\r\n00:41:32,680 --> 00:41:34,198\r\nI've + seen this stuff before.\r\n\r\n772\r\n00:41:34,200 --> 00:41:36,518\r\nParticles + of the Time Force.\r\n\r\n773\r\n00:41:36,520 --> 00:41:39,198\r\nTiny fragments + of\r\ntemporal destruction,\r\n\r\n774\r\n00:41:39,200 --> 00:41:41,958\r\nwhich + will erode whatever\r\nthey touch.\r\n\r\n775\r\n00:41:41,960 --> 00:41:43,558\r\nYou + may have repaired,\r\n\r\n776\r\n00:41:43,560 --> 00:41:45,478\r\nbut Time + was unleashed\r\nfor long enough.\r\n\r\n777\r\n00:41:45,480 --> 00:41:47,598\r\nThe + damage is done.\r\n\r\n778\r\n00:41:47,600 --> 00:41:51,078\r\nAnd if the + Flux wrecked Space,\r\n\r\n779\r\n00:41:51,080 --> 00:41:54,038\r\nthen we + have disrupted\r\nthe flow of Time,\r\n\r\n780\r\n00:41:54,040 --> 00:41:55,518\r\nhowever + briefly.\r\n\r\n781\r\n00:41:55,520 --> 00:41:58,960\r\nNo, you haven't.\r\nAnd + we're gonna stop you. Right?\r\n\r\n782\r\n00:42:00,520 --> 00:42:01,878\r\nRight, + Doctor?\r\n\r\n783\r\n00:42:01,880 --> 00:42:03,638\r\nDan Lewis.\r\n\r\n784\r\n00:42:03,640 + --> 00:42:05,958\r\nWe have something of yours.\r\n\r\n785\r\n00:42:05,960 + --> 00:42:09,440\r\nYou're not the only one who can hide\r\nthings in Passenger, + Doctor.\r\n\r\n786\r\n00:42:11,640 --> 00:42:13,118\r\nWhere am I now?\r\n\r\n787\r\n00:42:13,120 + --> 00:42:15,118\r\n- Di.\r\n- Dan...\r\n\r\n788\r\n00:42:15,120 --> 00:42:16,198\r\nI + can't get to you.\r\n\r\n789\r\n00:42:16,200 --> 00:42:18,518\r\nWhat happened + to you?\r\nWhat're you doing here?\r\n\r\n790\r\n00:42:18,520 --> 00:42:20,358\r\n- + Stay there, Dan...\r\n- I've gotta get her...\r\n\r\n791\r\n00:42:20,360 --> + 00:42:22,838\r\n- You can't, you mustn't.\r\n- Course I can. Get off me.\r\n\r\n792\r\n00:42:22,840 + --> 00:42:26,278\r\nDo as you're told. You have no idea\r\nwhat you're dealing + with, I do.\r\n\r\n793\r\n00:42:26,280 --> 00:42:28,198\r\nStay there.\r\n\r\n794\r\n00:42:28,200 + --> 00:42:30,718\r\nI'll help you get her back.\r\nPromise.\r\n\r\n795\r\n00:42:30,720 + --> 00:42:33,638\r\nNo, she's our toy now.\r\n\r\n796\r\n00:42:35,080 --> + 00:42:36,318\r\nWhat do you want?\r\n\r\n797\r\n00:42:36,320 --> 00:42:39,040\r\nTo + reign in hell.\r\n\r\n798\r\n00:43:21,160 --> 00:43:23,278\r\nSorry, what + is this?\r\n\r\n799\r\n00:43:23,280 --> 00:43:24,840\r\nStick your head in.\r\n\r\n800\r\n00:43:26,920 + --> 00:43:28,160\r\nGo on.\r\n\r\n801\r\n00:43:34,640 --> 00:43:36,400\r\nWhat?!\r\n\r\n802\r\n00:43:39,520 + --> 00:43:41,680\r\nIs this a TARDIS?\r\n\r\n803\r\n00:43:43,440 --> 00:43:45,398\r\nIt + is, isn't it?\r\n\r\n804\r\n00:43:45,400 --> 00:43:47,998\r\nI didn't even + think these were real.\r\n\r\n805\r\n00:43:48,000 --> 00:43:52,318\r\nWait, + this can get me home.\r\n\r\n806\r\n00:43:52,320 --> 00:43:56,838\r\nAfter + all this time.\r\n\r\n807\r\n00:43:56,840 --> 00:43:59,078\r\nCan I pilot + it?\r\nWill you show me?\r\n\r\n808\r\n00:43:59,080 --> 00:44:00,760\r\nNo. + Get in.\r\n\r\n809\r\n00:44:03,520 --> 00:44:05,798\r\nDoctor, seriously.\r\nWe + can't leave here without her.\r\n\r\n810\r\n00:44:05,800 --> 00:44:07,318\r\nShe's + not here, Dan.\r\n\r\n811\r\n00:44:07,320 --> 00:44:09,038\r\nBut we'll get + her back, I promise.\r\n\r\n812\r\n00:44:09,040 --> 00:44:11,558\r\nWe'll + get Vinder home,\r\nwe'll rescue Diane,\r\n\r\n813\r\n00:44:11,560 --> 00:44:13,918\r\nwe'll + find out\r\nwho's behind the Flux,\r\n\r\n814\r\n00:44:13,920 --> 00:44:15,998\r\nand + what it's got to do with me.\r\n\r\n815\r\n00:44:16,000 --> 00:44:18,638\r\nWhy + would it have anything\r\nto do with you?\r\n\r\n816\r\n00:44:18,640 --> 00:44:20,958\r\nDoes + everything have to be\r\na discussion?\r\n\r\n817\r\n00:44:20,960 --> 00:44:24,120\r\nGo + on... in.\r\n\r\n818\r\n00:44:30,960 --> 00:44:33,038\r\nDid you repair?\r\n\r\n819\r\n00:44:33,040 + --> 00:44:35,438\r\nCan you repair?\r\n\r\n820\r\n00:44:35,440 --> 00:44:37,040\r\nI + really hope so.\r\n\r\n821\r\n00:44:42,800 --> 00:44:44,998\r\nI'm sorry.\r\n\r\n822\r\n00:44:45,000 + --> 00:44:47,518\r\nI was doing the right thing.\r\n\r\n823\r\n00:44:47,520 + --> 00:44:49,638\r\nI'm only permitted one message.\r\n\r\n824\r\n00:44:49,640 + --> 00:44:53,318\r\nI hope it gets to you.\r\n\r\n825\r\n00:44:53,320 --> + 00:44:54,560\r\nI love you.\r\n\r\n826\r\n00:44:55,560 --> 00:44:57,520\r\nI + love you, too.\r\n\r\n827\r\n00:44:59,920 --> 00:45:01,440\r\nDon't we, Tigmi?\r\n\r\n828\r\n00:45:03,600 + --> 00:45:05,238\r\nYou know,\r\n\r\n829\r\n00:45:05,240 --> 00:45:07,880\r\nwe'll + break it if it we watch it\r\ntoo many more times.\r\n\r\n830\r\n00:45:14,400 + --> 00:45:15,800\r\nI wonder if he looks different.\r\n\r\n831\r\n00:45:18,560 + --> 00:45:22,318\r\nWe're coming, Vinder.\r\n\r\n832\r\n00:45:22,320 --> 00:45:26,118\r\nWe + waited and now we're looking\r\nand we're close.\r\n\r\n833\r\n00:45:26,120 + --> 00:45:28,318\r\nWe'll be there soon.\r\n\r\n834\r\n00:45:34,000 --> 00:45:37,600\r\nMe + and your beautiful\r\nas yet unborn child.\r\n\r\n835\r\n00:45:52,000 --> + 00:45:53,440\r\nThis is your home?\r\n\r\n836\r\n00:45:55,040 --> 00:45:56,240\r\nIt + was.\r\n\r\n837\r\n00:45:57,880 --> 00:46:01,438\r\nLooks like the Flux ripped\r\nthrough + here, too.\r\n\r\n838\r\n00:46:01,440 --> 00:46:03,358\r\nI can take you anywhere.\r\n\r\n839\r\n00:46:03,360 + --> 00:46:06,198\r\nNo. I have to find someone...\r\n\r\n840\r\n00:46:06,200 + --> 00:46:09,318\r\nMate, it's a lost cause...\r\n\r\n841\r\n00:46:09,320 + --> 00:46:10,718\r\nNo.\r\n\r\n842\r\n00:46:10,720 --> 00:46:12,518\r\nI know + she would've been here.\r\n\r\n843\r\n00:46:12,520 --> 00:46:14,600\r\nI need + to find her.\r\n\r\n844\r\n00:46:16,280 --> 00:46:17,478\r\nStay in touch.\r\n\r\n845\r\n00:46:17,480 + --> 00:46:19,598\r\nWhenever you need us, press 0.\r\n\r\n846\r\n00:46:19,600 + --> 00:46:21,398\r\nIt's a direct line to us.\r\n\r\n847\r\n00:46:21,400 --> + 00:46:23,200\r\nBe safe.\r\n\r\n848\r\n00:46:55,480 --> 00:46:57,638\r\nI'm + back home.\r\n\r\n849\r\n00:46:57,640 --> 00:47:00,478\r\nI came looking for + you.\r\n\r\n850\r\n00:47:00,480 --> 00:47:02,680\r\nBut there's no home left.\r\n\r\n851\r\n00:47:04,120 + --> 00:47:06,080\r\nThe Flux took that, too.\r\n\r\n852\r\n00:47:14,640 --> + 00:47:15,880\r\nBut I'm not giving up.\r\n\r\n853\r\n00:47:17,960 --> 00:47:19,878\r\nI'll + find you...\r\n\r\n854\r\n00:47:19,880 --> 00:47:21,560\r\n..whatever it takes.\r\n\r\n855\r\n00:47:34,400 + --> 00:47:36,080\r\nDoctor!\r\n\r\n856\r\n00:47:37,160 --> 00:47:38,358\r\nOh, + no...\r\n\r\n857\r\n00:47:38,360 --> 00:47:39,398\r\nThat you yelling?\r\n\r\n858\r\n00:47:39,400 + --> 00:47:41,358\r\nWhat's the matter?\r\n\r\n859\r\n00:47:41,360 --> 00:47:42,638\r\nWhat's + that?\r\n\r\n860\r\n00:47:42,640 --> 00:47:44,558\r\nA Weeping Angel. Don't + blink.\r\n\r\n861\r\n00:47:44,560 --> 00:47:45,758\r\nWhy not?\r\n\r\n862\r\n00:47:45,760 + --> 00:47:48,718\r\nKeep your eyes on the Angel,\r\nstay behind by me...\r\n\r\n863\r\n00:47:48,720 + --> 00:47:50,878\r\nI think I just blinked.\r\n\r\n864\r\n00:47:50,880 --> + 00:47:54,280\r\nIt's at the controls. Doctor.\r\n\r\n865\r\n00:47:57,960 --> + 00:47:59,720\r\nThe Angel has the TARDIS.\r\n\r\n866\r\n00:48:32,440 --> 00:48:34,398\r\nCan + you state your name, please?\r\n\r\n867\r\n00:48:34,400 --> 00:48:36,358\r\nClaire + Brown.\r\n\r\n868\r\n00:48:36,360 --> 00:48:39,078\r\nWe're missing a little + girl.\r\nTen years old.\r\n\r\n869\r\n00:48:39,080 --> 00:48:40,758\r\nMaggie! + Maggie! Maggie!\r\n\r\n870\r\n00:48:40,760 --> 00:48:42,638\r\nIt's happening + again.\r\n\r\n871\r\n00:48:42,640 --> 00:48:46,158\r\nWas that scarecrow there\r\na + minute ago?\r\n\r\n872\r\n00:48:46,160 --> 00:48:49,398\r\nEveryone in the + village disappears\r\non the 21st of November 1967.\r\n\r\n873\r\n00:48:49,400 + --> 00:48:51,118\r\nTonight.\r\n\r\n874\r\n00:48:51,120 --> 00:48:53,518\r\nWhat's + going on?!\r\n\r\n875\r\n00:48:53,520 --> 00:48:55,200\r\nJericho, wait!\r\n\r\n876\r\n00:48:57,040 + --> 00:48:58,800\r\nI'm not blinking!\r\n\r\n877\r\n00:48:59,040 --> 00:50:00,800\r\nCREDITS\r\n\r\n" + headers: + CF-RAY: + - 8d1e52bbabf6cc45-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Disposition: + - 'attachment; filename="Doctor Who 13x03 - Chapter Three: Once, Upon Time.UKTV/TORRENTGALAXY.en-en.srt"' + Content-Type: + - text/srt;charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:34 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=6vjFnk1nhG%2FSFoQ8h%2BSxQ9Q%2BrONHpHBNddrymcY6%2BT4NCKPxgu5dpwyKM5jk2RKEBv1qUzpFAd3ulSyslCmtv3dJsjy6A8SN12OPfzNMPGk4SBxyS3%2BZMZzkesHrs6Gpr4Gqu1Z7"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + X-Robots-Tag: + - noindex + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/subtitulamos/test_download_subtitle_last_season.yaml b/tests/cassettes/subtitulamos/test_download_subtitle_last_season.yaml index 0e5706c1..110cd373 100644 --- a/tests/cassettes/subtitulamos/test_download_subtitle_last_season.yaml +++ b/tests/cassettes/subtitulamos/test_download_subtitle_last_season.yaml @@ -18,10 +18,8 @@ interactions: body: string: '[]' headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce99475da439d18-SIN + - 8d1e529cba8d6611-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -29,7 +27,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:01 GMT + - Sun, 13 Oct 2024 09:32:29 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -37,17 +35,21 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Z511MEyZaEbsrcAh8sRJf9l5iheuYB20xNteW4bjO9REfuozLLAIhyc4Q%2BQtUABhpJQISNUQkWm8gUHTW27ACBQruH%2BkpgUqv0T0Adjvw0aEtatFjZypY0l28ukLLjkjJRdS%2B8zp"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=xAzaEQ5YUA2f7Uo7sFCrDEUC4%2FB9oUY%2BS9JYe8OtWmVEuAxW%2B3HY3B94NO8q4Gz5Q61aMTNguq3N4vw7mGHtKBsr0%2FdVoiXBfNbPauxF6HWdARFiWGnNLRTA3jeSVFWZQ8DEUF6g"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Set-Cookie: - - PHPSESSID=1a7813bnqe272lndfpes8ohdf5; path=/; HttpOnly + - PHPSESSID=sg92oaoj08irn4a3t1s97ra8ad; path=/; HttpOnly Speculation-Rules: - '"/cdn-cgi/speculation"' Transfer-Encoding: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC content-length: - '2' status: @@ -63,7 +65,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + - PHPSESSID=sg92oaoj08irn4a3t1s97ra8ad Referer: - https://www.subtitulamos.tv User-Agent: @@ -75,7 +77,7 @@ interactions: string: '[{"show_id":233,"show_name":"Doctor Who"}]' headers: CF-RAY: - - 8ce9947aadb2cfe2-MAD + - 8d1e529db98ecbbb-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -83,7 +85,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:02 GMT + - Sun, 13 Oct 2024 09:32:29 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -91,7 +93,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Vv%2Ff40VnAzCJScNpiEE6Yy%2FVkJxHKiCsDI9rE1trteI1a8WqQ9xbGKeAaarBPf42sm1bNkMVV%2BkjqY68Sq5UEfYhPKzOXw%2B645CjQAu%2F6LOqoKnJlsqEyhfRTfDoxSv4K3Luke2V"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=BvMXMm4BdJKbWpdZL%2BQ4AtxooljOLnJULpsd9G%2F6fSThcvAKN4WfS2zUu0DBWJGrbQ1dLyKtd4KcWyj21oxTcpw8gIXxIgCIZ6yXeSpo9hDezIycYJ%2Bd6jek%2BKGgWnCEkhFeTh4P"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -100,6 +102,8 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC content-length: @@ -117,7 +121,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + - PHPSESSID=sg92oaoj08irn4a3t1s97ra8ad Referer: - https://www.subtitulamos.tv User-Agent: @@ -129,7 +133,7 @@ interactions: string: '' headers: CF-RAY: - - 8ce9947e7bd86689-MAD + - 8d1e529eb865cbd2-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -137,7 +141,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:02 GMT + - Sun, 13 Oct 2024 09:32:29 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT Location: @@ -147,7 +151,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=N1LewNCzuJxhRZm2DM7JtlouMd2oA3kcLR7baByBbrgQsJ4LT7wHXTOapNZka7LISKehjE2suwXmJFTsvOkh7xW0wpsG8Hga3MDIRSqacyRaLVTJJPBhaf2ynMS8Hpv4nS7YGh1n"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Vhjkb%2FWjKhappBoxN0caycPlApa5piA5z%2BgmBIrvqVbbr3k8qUPXEjGUpRyLKenycze6HK31GEHundUT0y2w9353RGK%2FAtG1cx2HwXSz0rJ04kJZ3LR6rTJsBoWcC%2BUZPZx3NQ5t"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -156,6 +160,8 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC status: @@ -171,7 +177,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + - PHPSESSID=sg92oaoj08irn4a3t1s97ra8ad Referer: - https://www.subtitulamos.tv User-Agent: @@ -182,10 +188,8 @@ interactions: body: string: '' headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce9947fea176683-MAD + - 8d1e529fb96acbc2-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -193,7 +197,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:03 GMT + - Sun, 13 Oct 2024 09:32:30 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT Location: @@ -203,7 +207,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=iz3HBmPVhoxEPN3rc3BDeYIVENTCiz9vFX1gtK8%2BVYzIovob1F5t2Ti3LYgGDY%2F4JKxauQz%2BZ9WuqZ2488%2FUljPC4HU%2FM10uZ%2F5MiFh7YVxvYOano%2FYft5bAxh9MASbeQBf8AIoS"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=LHZVoi0dwKqeqQXypbF0x9oPZ3Rs4pF7pjdHAGA0qAORjrc594wngHWcbLAfCq1T%2BCI54Ui5iOrrhjSQZ%2FF0cCTFDKHULuMNi50bSB6OmHSAcLaqNgOy74qQbxl%2FSAKIuFDOLhIa"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -212,6 +216,10 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC status: code: 301 message: Moved Permanently @@ -225,7 +233,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + - PHPSESSID=sg92oaoj08irn4a3t1s97ra8ad Referer: - https://www.subtitulamos.tv User-Agent: @@ -244,7 +252,7 @@ interactions: href=\"/safari-pinned-tab.svg?v=lkvlWOG2Qx\" color=\"#607dcd\">\n\n\n\n \n - \ \n\n + \ \n\n \ \n \ \n \n
\n

Versiones

\n \
\n \n 2 498\n descargas\n + id=\"count\" class=\"text bold\">2 506\n descargas\n \
\n
\n
\n \ \n\n
\n\n\n" headers: CF-RAY: - - 8ce994852bf48219-SIN + - 8d1e52a0bdbbcbf3-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -654,7 +662,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:04 GMT + - Sun, 13 Oct 2024 09:32:30 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -662,7 +670,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=1VagzZZkl7TA8j8h4nVNoPtTZ3Ka%2Bb68LtkFlRedAcnnZgloiI%2BT0%2BdiHDw%2Byl6%2Be%2BWyrPcMp587Fy24mmW89Kr7hGy3rOj2FiShx6onA4Q19G7FACzi0WjLPcMe2I4zYNB0JerD"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=NOA7xeajrHenq4ZWihk7ZO0KaXVOpsu%2BNGuOBFJcY0QDQS9AYadSE%2FAR%2F%2Bu08RSex3gIOlK7uQW4zfo2zfBRpKCaFQrxL1dFveJyTu7be%2FQSfvvbjcz4aHj70bA35EdL8YEcjjlO"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -671,6 +679,8 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC content-length: @@ -688,425 +698,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 - Referer: - - https://www.subtitulamos.tv - User-Agent: - - Subliminal/2.2 - method: GET - uri: https://www.subtitulamos.tv/episodes/7196/doctor-who-13x00-revolution-of-the-daleks - response: - body: - string: "\n\n\n \n\n - \ \n - \ \n - \ \n\n\n\n\n\n\n\n \n - \ \n\n - \ \n - \ \n \n \n\n\n \n Doctor Who - 13x00 - Revolution of the Daleks - Subtitulamos.tv - Subt\xEDtulos de series\n - \ \n\n\n
\n
\n
\n - \ \n - \
\n\n
\n
\n
\n
\n \n
\n \n
\n - \ \n - \ \n - \ \n subtitulamos.tv\n - \
\n
\n \n
\n
\n - \ \n - \
\n \n
\n - \
\n

Doctor - Who

\n
\n
\n
\n

Revolution of the Daleks

\n - \
(13x00)
\n - \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n - \ TEMPORADA\n - \
\n 11\n 12\n 13\n
\n
\n
\n EPISODIO\n - \
\n 0\n 1\n 2\n 3\n 4\n 5\n 6\n 97\n 98\n 99\n
\n
\n
\n\n
\n
\n

Versiones

\n - \
\n \n - \ 3 453\n descargas\n - \
\n
\n
\n - \ \n\n
English
\n\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

FoV/TENNANT

\n
\n - \ \n - \
\n
\n \n - \ ORIGINAL\n \n - \ \n \n - \ \n ClaraTL\n - \ \n
\n
\n \n - De addic7ed, sin acotaciones.\n \n
\n - \
\n
\n
\n - \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n - \
\n \n \n \n - \
\n

versi\xF3n

\n

FoV/TENNANT

\n - \
\n \n - \
\n
\n
\n - \
\n
\n
\n \n 100%\n \n - \
\n
\n - \
\n
\n \n \n - \ \n
\n - \

versi\xF3n

\n

AMZN NTb/ION10

\n
\n - \ \n - \
\n
\n \n - \ RESINCRONIZADO\n \n - \ \n \n - \ \n ClaraTL\n - \ \n
\n
\n \n - Los traducidos aqu\xED sincronizados para las versiones AMZN NTb y WEBRip - ION10.\n \n
\n - \
\n
\n
\n - \ \n \n - \ \n
\n - \

versi\xF3n

\n

BLUTONiUM

\n
\n - \ \n - \
\n
\n \n - \ RESINCRONIZADO\n \n - \ \n \n - \ \n ClaraTL\n - \ \n
\n
\n \n - Los traducidos aqu\xED sincronizados para la versi\xF3n 4k BLUTONiUM.\n \n - \
\n
\n
\n - \
\n
\n
\n
\n\n - \
\n \n

Comentarios ({{comments.length}})

\n \n\n - \ \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n - \
\n
\n \n - \
\n
\n
\n
\n\n\n\n\n\n - \ \n
\n
\n\n \n\n \n\n - \ \n \n - \ \n \n \n \n \n\n\n" - headers: - CF-RAY: - - 8ce99489fcdc3153-MAD - Cache-Control: - - no-store, no-cache, must-revalidate - Connection: - - keep-alive - Content-Type: - - text/html; charset=UTF-8 - Date: - - Sun, 06 Oct 2024 23:55:04 GMT - Expires: - - Thu, 19 Nov 1981 08:52:00 GMT - NEL: - - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' - Pragma: - - no-cache - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=%2BO5x2GPuL%2F3ZHswuZ2WaPf3rUGFW8v3HkAUyx3qeqjzBmsH94H%2F5Xvi2tQ2ibgd1O%2F41oiHx%2FqUL1YbVMTPrmUc3FcFwYLUZUWQD9Z5Qc%2BbDJff6Xse5Aj00sGfBBn03u33EGYDP"}],"group":"cf-nel","max_age":604800}' - Server: - - cloudflare - Speculation-Rules: - - '"/cdn-cgi/speculation"' - Transfer-Encoding: - - chunked - X-Powered-By: - - PHP/7.4.14 - cf-cache-status: - - DYNAMIC - content-length: - - '30206' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Cookie: - - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + - PHPSESSID=sg92oaoj08irn4a3t1s97ra8ad Referer: - https://www.subtitulamos.tv User-Agent: @@ -1125,7 +717,7 @@ interactions: href=\"/safari-pinned-tab.svg?v=lkvlWOG2Qx\" color=\"#607dcd\">\n\n\n\n \n - \ \n\n + \ \n\n \ \n \ \n \n
\n

Versiones

\n \
\n \n - \ 3 090\n descargas\n + 632 Espa\xF1ol (Espa\xF1a) - 2.469' >\n \n + \ 3 101\n descargas\n \
\n
\n
\n \ \n\n
\n \n\n\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce9948e4f3e86bc-MAD + - 8d1e52a2bfb4cf99-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -1452,7 +1042,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:05 GMT + - Sun, 13 Oct 2024 09:32:30 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -1460,7 +1050,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=qwxujZebo6lUfNCLeJ0i6eVbTfvlQNV1hHtYNHrSz6ylV6ks8JZJ%2FCiogK0mkkdxEEFOTG6Qx85mRPAlCSPyf59pbeXA9mdKhMQfSgzjyDHiSGry0aahJHL%2BSprCNdDl4crnJFXU"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=hINVmuToCUigdHBnMxgJo6Ss%2BAKjww2LHfED94%2Bs9jluB93nlpgDC0zHkLdy1yoWBmXkK8XWDK2SCR1Nik20H1MHaafuqSQeoax7OUK7EazBLIjmnZtiRjFeXfKH5%2FDiMJ4ngEiG"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -1469,6 +1059,10 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC content-length: - '26976' status: @@ -1484,9 +1078,9 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=1a7813bnqe272lndfpes8ohdf5 + - PHPSESSID=sg92oaoj08irn4a3t1s97ra8ad Referer: - - /episodes/8685/doctor-who-13x03-chapter-three-once-upon-time + - https://www.subtitulamos.tv/episodes/8685/doctor-who-13x03-chapter-three-once-upon-time User-Agent: - Subliminal/2.2 method: GET @@ -2318,10 +1912,8 @@ interactions: going on?!\r\n\r\n875\r\n00:48:53,520 --> 00:48:55,200\r\nJericho, wait!\r\n\r\n876\r\n00:48:57,040 --> 00:48:58,800\r\nI'm not blinking!\r\n\r\n877\r\n00:48:59,040 --> 00:50:00,800\r\nCREDITS\r\n\r\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce9949099443145-MAD + - 8d1e52a55cdf3851-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -2331,7 +1923,7 @@ interactions: Content-Type: - text/srt;charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:05 GMT + - Sun, 13 Oct 2024 09:32:31 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -2339,7 +1931,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=5JtvIuTrgq0NuvTn2x4NQBrOU7mBruJF5qRYxuWe%2Fd5MCIIGvbBz%2B9CjZMxzfxPG0fNHyH8NhtH1Wfp03j%2F7pWjuv%2Baab6XvYC9eqFUIKDdt0%2BloZ38NnAhBFAPrs4ULO%2FKYgIOr"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=7cQ9Ext5GahQCwqIrIPonFCiWE63aKlvpKIzDjyWwozuJ1mvbZPnVdAt1A3yOIygllZ2sFtCALZdgs6aOVG50m2FAISELHyvnxnk%2FAcdlYXeivqRX8tnu3yg0LSN6jHcrK%2F456I3"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Transfer-Encoding: @@ -2348,6 +1940,10 @@ interactions: - PHP/7.4.14 X-Robots-Tag: - noindex + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC status: code: 200 message: OK diff --git a/tests/cassettes/subtitulamos/test_download_subtitle_year.yaml b/tests/cassettes/subtitulamos/test_download_subtitle_year.yaml new file mode 100644 index 00000000..db3446f9 --- /dev/null +++ b/tests/cassettes/subtitulamos/test_download_subtitle_year.yaml @@ -0,0 +1,1880 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Charmed+%282018%29 + response: + body: + string: '[{"show_id":445,"show_name":"Charmed (2018)"}]' + headers: + CF-RAY: + - 8d1e529239ca214d-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:27 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=FOH0dKpUmhCZ65yBjiYlKi2GpYarb4Yovcqs1%2BjDh3cViAgNBNTDn%2Fm%2FW39dLGH73oEnCJLpDrRwV24Y2qhNCxTZ2W08GU4eVIjsCX4276LYLWu%2FusGXvg0r%2FTp%2FNewUBc9MSUwi"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=4gr59queejog1b36qnk2ibb2je; path=/; HttpOnly + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '46' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=4gr59queejog1b36qnk2ibb2je + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/445 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e52934ceccbea-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:28 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/8216 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=PlJBD%2BL5Q8w%2B3isIYtFtDygqhcHDPTJ4gdNDwluffJhgKVy2D9Oa18rkCEAorWLJyDWNviHZQw2UjDzU05F2s%2Fl0qAwFOyCqsqTCCJMQlcb0n3h%2F6m9AoLS24uQAZl3R%2BW3EIqWy"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=4gr59queejog1b36qnk2ibb2je + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/8216 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e52945b102f81-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:28 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/8216/charmed-2018-3x18-i-dreamed-a-dream + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=CVG%2F2sBndZq5qFxuTN%2BYop3HFxQlJsqHqzwEksLEj46bu%2Bv9ZFMH1SyhiVH3CdDFPAD4EO3AjRv4FCK70qt2OHqElQ7HCnicxI3ca0yGow3RSkiUFqYrpEonjE4Kz7SBIMqISDFc"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=4gr59queejog1b36qnk2ibb2je + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/8216/charmed-2018-3x18-i-dreamed-a-dream + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Charmed (2018) + 3x18 - I Dreamed a Dream\u2026 - Subtitulamos.tv - Subt\xEDtulos de series\n + \ \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Charmed + (2018)

\n
\n
\n
\n

I Dreamed a Dream\u2026

\n + \
(3x18)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 1\n + \ 2\n 3\n
\n
\n
\n EPISODIO\n + \
\n 18\n
\n
\n
\n\n
\n + \
\n

Versiones

\n
\n \n 91\n descargas\n
\n + \
\n
\n \n\n
English
\n\n
\n + \ \n \n + \ \n
\n + \

versi\xF3n

\n

CAKES

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ seriofilo\n \n
\n + \
\n \n + Son los de Addicted sin acotaciones. El final de la temporada.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n\n + \
\n \n

Comentarios ({{comments.length}})

\n \n\n + \ \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e52956ea5cfeb-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:28 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=9CIsIOuDaHYBKiDKiP8MKE7L7zW%2BPgiHkxA6JX1Xt0JS75QcyZyfZXZ2p%2BvdNAMMv6CjPEAeAvard%2BmDqXzVJlZCWLMr2AQS8pIw8XMAlsvSGWfcDs3Q6SlHvnVHpVR0sg1Ja4aD"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '18744' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=4gr59queejog1b36qnk2ibb2je + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/3250/charmed-2018-1x01-pilot + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Charmed (2018) + 1x01 - Pilot - Subtitulamos.tv - Subt\xEDtulos de series\n \n\n\n + \
\n + \
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Charmed + (2018)

\n
\n
\n
\n

Pilot

\n
(1x01)
\n
\n + \
\n \n + \ Subir resincronizaci\xF3n\n \n \n + \
\n
\n
\n TEMPORADA\n
\n 1\n 2\n 3\n
\n
\n
\n + \ EPISODIO\n + \
\n 1\n + \ 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n 332\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

PLUTONiUM

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ angeline\n \n
\n + \
\n \n + De addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

PLUTONiUM

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 25%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

PLUTONiUM

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 7%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e52979d79866f-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:28 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=0uxJwdb2hOpz11kM100PfRwcs8RtROMUWrO9zs9bJdMzTUVpX5FucHVziNQjfVEmxjPmeGHFAUiDA7%2B5L90yMk%2F3vTx6%2BEjbg3HRoeFM0a%2BT5cLsbN9HabNxueG84Fnq8U4dq3ZZ"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '27536' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=4gr59queejog1b36qnk2ibb2je + Referer: + - https://www.subtitulamos.tv/episodes/3250/charmed-2018-1x01-pilot + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/subtitles/8099/download + response: + body: + string: !!binary | + MQ0KMDA6MDA6MDAsMDk0IC0tPiAwMDowMDowMiwwMjgNClRoaXMgaXMgbm90IGEgd2l0Y2ggaHVu + dC4NCg0KMg0KMDA6MDA6MjIsMTI2IC0tPiAwMDowMDoyNCwyNTkNCi0gVGFrZSBteSBib290cyBv + ZmYuDQotIFBsZWFzZSENCg0KMw0KMDA6MDA6MjQsMjY1IC0tPiAwMDowMDoyNSw1MzINCkl0J3Mg + YSBtaWxpdGFyeS10aGVtZWQgcGFydHksDQoNCjQNCjAwOjAwOjI1LDUzOCAtLT4gMDA6MDA6Mjcs + ODMwDQotIGFuZCBJIGRvbid0IGhhdmUgYW55dGhpbmcgdGhpcyB1Z2x5Lg0KLSBJIHNhaWQgbm8u + DQoNCjUNCjAwOjAwOjI3LDgzNiAtLT4gMDA6MDA6MjksNDU3DQpBbmQgd2h5IGFyZSB0aG9zZSBH + cmVlaw0KcGFydGllcyBhbHdheXMgdGhlbWVkPw0KDQo2DQowMDowMDoyOSw0NjMgLS0+IDAwOjAw + OjMxLDQwOQ0KSGF2ZSB5b3UgdGhvdWdodCBhYm91dA0KdGhhdCwgcHN5Y2hvbG9naWNhbGx5LA0K + DQo3DQowMDowMDozMSw0MTUgLS0+IDAwOjAwOjMzLDMzNQ0KdGhhdCB0aGV5J3JlIGFsd2F5cyBw + cmV0ZW5kaW5nDQp0byBiZSBvdGhlciBwZW9wbGU/DQoNCjgNCjAwOjAwOjMzLDM0MSAtLT4gMDA6 + MDA6MzQsOTMwDQpObywgYmVjYXVzZSBJIGFjdHVhbGx5IGxpa2UgdG8gaGF2ZSBmdW4uDQoNCjkN + CjAwOjAwOjM0LDkzNiAtLT4gMDA6MDA6MzYsNzQ3DQpEb24ndCB5b3UgdGhyZWF0ZW4gbWUhDQoN + CjEwDQowMDowMDozNiw3NTMgLS0+IDAwOjAwOjM4LDQ0MA0KVGhpcyBpcyBub3QgYSB3aXRjaCBo + dW50Lg0KDQoxMQ0KMDA6MDA6MzgsNDQ2IC0tPiAwMDowMDo0MSwzNDcNCkl0J3MgYSByZWNrb25p + bmcsIGFuZCBJIHdhbnQgaGltIG91dCENCg0KMTINCjAwOjAwOjQyLDIwOCAtLT4gMDA6MDA6NDMs + OTEyDQpNb20/DQoNCjEzDQowMDowMDo0Myw5ODEgLS0+IDAwOjAwOjQ1LDc0OA0KV2hhdCB3YXMg + dGhhdCBhYm91dD8NCg0KMTQNCjAwOjAwOjQ2LDAwMiAtLT4gMDA6MDA6NDgsNzAzDQpQcm9mZXNz + b3IgVGhhaW5lIGlzDQpwcm90ZXN0aW5nIGhpcyBzdXNwZW5zaW9uLg0KDQoxNQ0KMDA6MDA6NDks + MDE5IC0tPiAwMDowMDo1MiwwNzMNCkFuZCBzaW5jZSBBbmdlbGEgV3UgY2FuJ3QgdGVzdGlmeS4u + Lg0KDQoxNg0KMDA6MDA6NTMsODgxIC0tPiAwMDowMDo1NSw2ODANCkFyZSB5b3Ugb2theSwgTW9t + Pw0KDQoxNw0KMDA6MDA6NTUsODk3IC0tPiAwMDowMDo1NywyMTYNClllYWguDQoNCjE4DQowMDow + MDo1OSw0NTMgLS0+IDAwOjAxOjAxLDM4Ng0KSSdtIGZpbmUsIGhvbmVzdGx5Lg0KDQoxOQ0KMDA6 + MDE6MDMsOTU3IC0tPiAwMDowMTowNSw5OTENCkxvb2sgYXQgYm90aCBvZiB5b3UuDQoNCjIwDQow + MDowMTowNywwMzMgLS0+IDAwOjAxOjA5LDI2MQ0KTXkgYmVhdXRpZnVsIGdpcmxzLg0KDQoyMQ0K + MDA6MDE6MDksMjY3IC0tPiAwMDowMToxMSw5MzUNCk9rYXkuIERpZCB5b3UgaGF2ZSBhIGdsYXNz + DQpvZiB3aW5lIG9yIHNvbWV0aGluZywgTW9tPw0KDQoyMg0KMDA6MDE6MTEsOTQxIC0tPiAwMDow + MToxMyw2NDENCk5vLg0KDQoyMw0KMDA6MDE6MTMsODM0IC0tPiAwMDowMToxNiwxMDENCk9uZS4g + Q29tZSBoZXJlLg0KDQoyNA0KMDA6MDE6MjIsMjMxIC0tPiAwMDowMToyNCwzNDINCkkgZmVlbCBz + byBsdWNreQ0KDQoyNQ0KMDA6MDE6MjQsNDExIC0tPiAwMDowMToyNywxMTINCnRvIGJlIHRoZSBt + b3RoZXIgb2YgdHdvIHNwZWNpYWwNCg0KMjYNCjAwOjAxOjI3LDExOCAtLT4gMDA6MDE6MjgsNDg0 + DQp5b3VuZyB3b21lbi4NCg0KMjcNCjAwOjAxOjI4LDgwMiAtLT4gMDA6MDE6MzEsMDkwDQpTcGVj + aWFsIGluIHN1Y2ggZGlmZmVyZW50IHdheXMuDQoNCjI4DQowMDowMTozMiw2NTMgLS0+IDAwOjAx + OjM0LDIyMw0KQWx3YXlzIHJlbWVtYmVyIHRoYXQuDQoNCjI5DQowMDowMTozNSwzNzAgLS0+IDAw + OjAxOjM3LDQwMw0KWW91J3JlIGJldHRlciB0b2dldGhlci4NCg0KMzANCjAwOjAxOjM3LDY5MSAt + LT4gMDA6MDE6MzksODU4DQpZb3VyIGRpZmZlcmVuY2VzIGFyZSB5b3VyIHN0cmVuZ3Rocy4NCg0K + MzENCjAwOjAxOjM5LDkyNyAtLT4gMDA6MDE6NDIsOTI4DQpBbmQgbm90aGluZyBpcyBzdHJvbmdl + cg0KdGhhbiB5b3VyIHNpc3Rlcmhvb2QuDQoNCjMyDQowMDowMTo0NSwwOTggLS0+IDAwOjAxOjQ2 + LDk2NQ0KTnVydHVyZSB0aGF0Lg0KDQozMw0KMDA6MDE6NDcsMDM0IC0tPiAwMDowMTo0OCw4OTQN + CkRvbid0IHdvcnJ5LCBNb20uIFdlIGFyZSBhbGwgb3ZlciBpdC4NCg0KMzQNCjAwOjAxOjQ4LDkw + MCAtLT4gMDA6MDE6NTEsMTUyDQpZZWFoLCB3ZSdyZSBnb25uYSBudXJ0dXJlIGl0IHNvIGhhcmQu + DQoNCjM1DQowMDowMTo1MSwxNTggLS0+IDAwOjAxOjUyLDg1Nw0KQnV0IGxhdGVyLiBDYW4gd2Ug + Z28/DQoNCjM2DQowMDowMTo1Miw4NjMgLS0+IDAwOjAxOjU1LDIwNw0KSXQncyBiYWQgZW5vdWdo + IEknbSB0aGUgb25seQ0KZnJlc2htYW4gd2l0aCBhIGN1cmZldy4NCg0KMzcNCjAwOjAxOjU1LDUx + NSAtLT4gMDA6MDE6NTcsNjU1DQpZZXMuIEdvLg0KDQozOA0KMDA6MDI6MDAsOTE4IC0tPiAwMDow + MjowMiwwODQNCi0gQnllLg0KLSBCeWUuDQoNCjM5DQowMDowMjowMyw5ODQgLS0+IDAwOjAyOjA2 + LDc1MQ0KXw0KDQo0MA0KMDA6MDI6MTcsNjczIC0tPiAwMDowMjoxOSw2NDANCkJyaWFuLCB3aHkg + YXJlIHlvdSBmb2xsb3dpbmcgbWU/DQoNCjQxDQowMDowMjoxOSw2NDYgLS0+IDAwOjAyOjIxLDIw + OQ0KSSB3YXMgb24gbXkgd2F5IG91dCwNCg0KNDINCjAwOjAyOjIxLDIxNSAtLT4gMDA6MDI6MjIs + ODYzDQphbmQgeW91IHdlcmUgZ29ubmEgZ28gdGhyb3VnaCB0aGUgd29vZHMuDQoNCjQzDQowMDow + MjoyMiw4NjkgLS0+IDAwOjAyOjI1LDI1OA0KLSBJdCdzIHNhZmUuDQotIENvbWUgb24uDQoNCjQ0 + DQowMDowMjoyNSw0MTQgLS0+IDAwOjAyOjI2LDk3Mg0KSSdtIGRyaXZpbmcgeW91Lg0KDQo0NQ0K + MDA6MDI6MjYsOTc4IC0tPiAwMDowMjoyOCw0ODcNCldoYXQ/DQoNCjQ2DQowMDowMjoyOCw1NTgg + LS0+IDAwOjAyOjMwLDM0Mg0KRnJpZW5kcyBnaXZlIGZyaWVuZHMgcmlkZXMuDQoNCjQ3DQowMDow + MjozMCw1MTEgLS0+IDAwOjAyOjMyLDE3OA0KV2Ugd2VyZSBnb25uYSB0cnkgc29tZSBzcGFjZS4N + Cg0KNDgNCjAwOjAyOjMzLDY0NyAtLT4gMDA6MDI6MzUsMzQ3DQpGb3IgYm90aCBvZiB1cy4NCg0K + NDkNCjAwOjAyOjM1LDk0MSAtLT4gMDA6MDI6MzcsNjE2DQpKdXN0IGJlIGNhcmVmdWwuDQoNCjUw + DQowMDowMjozOCwxNjcgLS0+IDAwOjAyOjM5LDY4NA0KT2theT8NCg0KNTENCjAwOjAzOjI5LDM3 + MyAtLT4gMDA6MDM6MzEsMTkwDQpfDQoNCjUyDQowMDowMzozMSwyMjEgLS0+IDAwOjAzOjMzLDM3 + MQ0KSGV5LCBJIGhhdmUgdG8gZ28uIFNvbWV0aGluZyBpcyB3cm9uZy4NCg0KNTMNCjAwOjA0OjIw + LDQ4MSAtLT4gMDA6MDQ6MjMsMjE1DQpIZWFyIHRoaXMhIEkgaGF2ZSB0aHJlZSENCg0KNTQNCjAw + OjA0OjM0LDQ3OSAtLT4gMDA6MDQ6MzYsMzI4DQpFc3NlIHF1YW0gdmlkZXJpLg0KDQo1NQ0KMDA6 + MDQ6MzYsNTIyIC0tPiAwMDowNDozOSw1NTYNCkl0IG1lYW5zLCB0byBiZSByYXRoZXIgdGhhbiBz + ZWVtIHRvIGJlLg0KDQo1Ng0KMDA6MDQ6MzksNTYyIC0tPiAwMDowNDo0Miw0MzANClRoYXQgaXMg + dGhlIEthcHBhIFRhdQ0KS2FwcGEgbW90dG8sIHdoaWNoIG1lYW5zDQoNCjU3DQowMDowNDo0Miw0 + MzYgLS0+IDAwOjA0OjQ0LDU3OQ0Kd2Ugc3RyaXZlIHRvIGJlIGF1dGhlbnRpYy4gU21pbGUuDQoN + CjU4DQowMDowNDo0NSw2MzkgLS0+IDAwOjA0OjQ3LDU5Mw0KTG93ZXIgdGhlIHZvbHVtZSwgcGxl + YXNlLg0KDQo1OQ0KMDA6MDQ6NDcsNjIyIC0tPiAwMDowNDo1MCw1OTANCk5lZWQgSSByZW1pbmQg + eW91IHRoYXQgc2luY2UNCnRoZSBBbmdlbGEgV3UgY29tYSBzaXRjaCwNCg0KNjANCjAwOjA0OjUw + LDY1OCAtLT4gMDA6MDQ6NTIsMzkxDQp3ZSBhcmUgImRyeSwiDQoNCjYxDQowMDowNDo1Miw0NjAg + LS0+IDAwOjA0OjU0LDYyNw0KYW5kIG5vdCBsb29raW5nIHRvIGF0dHJhY3QgYXR0ZW50aW9uLg0K + DQo2Mg0KMDA6MDQ6NTQsODEzIC0tPiAwMDowNDo1Niw5NDYNCllvdSdyZSBnb2luZyB0byBydXNo + LCByaWdodD8NCg0KNjMNCjAwOjA0OjU2LDk1MiAtLT4gMDA6MDQ6NTksNTU2DQpPaCwgbm8uIFNo + ZSdzIGRlZmluaXRlbHkgbm90Lg0KDQo2NA0KMDA6MDU6MDEsMzM2IC0tPiAwMDowNTowMywyMzYN + Ck15IEdvZCwgd2hhdCBhcmUgeW91IGRvaW5nIGhlcmU/IQ0KDQo2NQ0KMDA6MDU6MDMsMzA0IC0t + PiAwMDowNTowNSw0NDMNCk1vbSBoYXMgYmVlbiB0ZXh0aW5nLg0KU2hlIG5lZWRzIHVzIGJvdGgg + YXQgaG9tZS4NCg0KNjYNCjAwOjA1OjA1LDQ0OSAtLT4gMDA6MDU6MDYsOTY3DQpXaGF0IGRvIHlv + dSBtZWFuLCBzaGUgbmVlZHMgdXM/DQoNCjY3DQowMDowNTowNiw5NzMgLS0+IDAwOjA1OjA4LDEy + NQ0KWW91IG9idmlvdXNseSBnb3QgdGhlIG1lc3NhZ2VzLg0KDQo2OA0KMDA6MDU6MDgsMTMxIC0t + PiAwMDowNTowOSw5NTINCllvdSBjaGVjayB5b3VyIHBob25lIGV2ZXJ5IGZpdmUgc2Vjb25kcy4N + Cg0KNjkNCjAwOjA1OjEwLDkwMCAtLT4gMDA6MDU6MTEsOTI3DQpGaW5lLg0KDQo3MA0KMDA6MDU6 + MTEsOTMzIC0tPiAwMDowNToxNCwzMDANCkknbGwganVzdCBoYW5nIG91dCBoZXJlLA0KZW5nYWdl + IHRoZXNlIHlvdW5nIG1lbg0KDQo3MQ0KMDA6MDU6MTQsMzA2IC0tPiAwMDowNToxNiwwMDYNCmlu + IGRpc2N1c3Npb25zIGFib3V0IHJhcGUgY3VsdHVyZS4NCg0KNzINCjAwOjA1OjE2LDAxMiAtLT4g + MDA6MDU6MTcsNTgzDQpTdG9wIGl0ISBJJ20uLi4gSSdtIGNvbWluZy4NCg0KNzMNCjAwOjA1OjE3 + LDY1MiAtLT4gMDA6MDU6MTksMjUxDQpIZXksIHJlbWVtYmVyLCB3aGVuIGl0IGNvbWVzIHRvIGNv + bnNlbnQsDQoNCjc0DQowMDowNToxOSwyNTcgLS0+IDAwOjA1OjIxLDQ1OA0KeW91IGNhbiBjaGFu + Z2UgeW91ciBtaW5kcw0KYXQgYW55IHRpbWUsIG9rYXk/DQoNCjc1DQowMDowNToyMSw0NjQgLS0+ + IDAwOjA1OjIyLDk5Nw0KT2gsIG15IEdvZCwgeW91IGp1c3Qga2lsbGVkIG1lLg0KDQo3Ng0KMDA6 + MDU6MjMsMDAzIC0tPiAwMDowNToyNCw2MDMNCkknbSBsaXRlcmFsbHkgZGVhZCByaWdodCBub3cu + DQoNCjc3DQowMDowNToyNSw0MTYgLS0+IDAwOjA1OjI3LDI0Ng0KSXMgdGhhdCB2b21pdCBvbiBt + eSBib290cz8NCg0KNzgNCjAwOjA1OjI3LDI1MiAtLT4gMDA6MDU6MjksNTM4DQpOby4gTWF5YmUu + DQoNCjc5DQowMDowNToyOSw3NTEgLS0+IDAwOjA1OjMxLDUzNA0KV2hhdD8gU28sIEknbGwgY2xl + YW4gdGhlbS4NCg0KODANCjAwOjA1OjM1LDk0MSAtLT4gMDA6MDU6MzgsMzc1DQpIb3cgdGhlIGhl + bGwgZGlkIGZyZWFraW5nDQpiaXJkcyBnZXQgaW4gaGVyZT8NCg0KODENCjAwOjA1OjM5LDgwMSAt + LT4gMDA6MDU6NDIsMjM1DQpXaHkgaXMgaXQgc28gY29sZD8NCg0KODINCjAwOjA1OjQyLDc4MSAt + LT4gMDA6MDU6NDQsNDgxDQpNb20/DQoNCjgzDQowMDowNTo0NSwzNjkgLS0+IDAwOjA1OjQ2LDgx + Ng0KTW9tPw0KDQo4NA0KMDA6MDU6NTIsOTgyIC0tPiAwMDowNTo1NCw0MjkNCk1vbT8NCg0KODUN + CjAwOjA2OjAyLDk2OCAtLT4gMDA6MDY6MDQsNDM2DQotIE5vIQ0KLSBNb20hDQoNCjg2DQowMDow + NjowNCw0NDIgLS0+IDAwOjA2OjA1LDYwOA0KTW9tIQ0KDQo4Nw0KMDA6MDY6MTIsMDA1IC0tPiAw + MDowNjoxNyw4NzkNCi0gU3luY2VkIGFuZCBjb3JyZWN0ZWQgYnkgbWVkdmlkZWNlazAwNyAtDQot + IHd3dy5hZGRpYzdlZC5jb20gLQ0KDQo4OA0KMDA6MDY6MTksNTQ1IC0tPiAwMDowNjoyMSw0MTQN + Cl8NCg0KODkNCjAwOjA2OjIxLDQyMCAtLT4gMDA6MDY6MjMsNTg2DQpBbm90aGVyIGhhcmQgcGFz + cy4NCg0KOTANCjAwOjA2OjIzLDU5MiAtLT4gMDA6MDY6MjUsMDAxDQotIEhtbS4NCi0gV2hhdCBh + bSBJIGdvbm5hIGRvPw0KDQo5MQ0KMDA6MDY6MjUsMDA3IC0tPiAwMDowNjoyNywzODYNCk15IEFp + cmJuYiBzbWVsbHMgbGlrZSBvbGQgaG90IGRvZ3MuDQoNCjkyDQowMDowNjoyOCwzMTcgLS0+IDAw + OjA2OjI5LDg4NA0KTG9vaywgZG9uJ3Qgd29ycnkuIFRoZSBwbGFjZXMgYXJlDQoNCjkzDQowMDow + NjoyOSw4OTAgLS0+IDAwOjA2OjMxLDU5OQ0KbmljZXIgdGhlIGNsb3NlciB3ZSBnZXQgdG8gY2Ft + cHVzLg0KDQo5NA0KMDA6MDY6MzEsNjYzIC0tPiAwMDowNjozNCw4NjQNCkl0J3MsIHVoLCBjbGFz + cyB3YXJmYXJlDQpyaWdodCBoZXJlIGluIEhpbGx0b3duZS4NCg0KOTUNCjAwOjA2OjM1LDQ3NCAt + LT4gMDA6MDY6MzcsODQxDQpPciAiSGVsbHRvd25lLCIgYXMNCnRoZSBjb29sIGtpZHMgY2FsbCBp + dC4NCg0KOTYNCjAwOjA2OjM3LDg0NyAtLT4gMDA6MDY6MzksMjMxDQpCZSBzdXJlIHRvIHRocm93 + IHRoYXQgb3V0IGEgbG90Lg0KDQo5Nw0KMDA6MDY6MzksMjM3IC0tPiAwMDowNjo0MSwxMDQNCk9o + LCB5ZWFoLCB5ZWFoLCB5ZWFoLA0Kbm90aGluZyBidXQgY29vbCBoZXJlLg0KDQo5OA0KMDA6MDY6 + NDIsNjA3IC0tPiAwMDowNjo0NCwwNDANClllYWgsIEkgc2VlLg0KDQo5OQ0KMDA6MDY6NDUsMzc3 + IC0tPiAwMDowNjo0Niw4NjENCkxldCdzIGdldCB5b3Ugb3V0IG9mIHRoZSByYWluLg0KDQoxMDAN + CjAwOjA2OjQ2LDg2NyAtLT4gMDA6MDY6NDgsOTQ1DQpEb24ndCB3b3JyeS4gV2UncmUtd2UncmUN + Cmdvbm5hIGZpbmQgeW91IGEgcGxhY2UsIG9rYXk/DQoNCjEwMQ0KMDA6MDY6NDgsOTUxIC0tPiAw + MDowNjo1MCw2OTkNCllvdSBzdXJlIEknbSBub3QNCmxlYW5pbmcgb24geW91IHRvbyBtdWNoPw0K + DQoxMDINCjAwOjA2OjUwLDcwNSAtLT4gMDA6MDY6NTIsMjcyDQotIE5haC4NCi0gSXQncyBqdXN0 + IHRoaXMgd2hvbGUgam9iDQoNCjEwMw0KMDA6MDY6NTIsMjc4IC0tPiAwMDowNjo1Myw1NDYNCmNh + bWUgdXAgb3V0IG9mIHRoZSBibHVlLA0KDQoxMDQNCjAwOjA2OjUzLDU1MiAtLT4gMDA6MDY6NTUs + ODI1DQotIGFuZCB5b3UncmUgdGhlIG9ubHkgcGVyc29uIEkga25vdy4NCi0gS2VlcCBsZWFuaW5n + Lg0KDQoxMDUNCjAwOjA2OjU2LDcyMSAtLT4gMDA6MDY6NTgsNjU1DQpJIGxpa2UgbGVhbmluZy4N + Cg0KMTA2DQowMDowNzowNCwzNDQgLS0+IDAwOjA3OjA1LDY5Nw0KTWFjZT8NCg0KMTA3DQowMDow + NzowNyw3MjAgLS0+IDAwOjA3OjA5LDE2NQ0KSGV5LCBNYWN5LCB5b3Ugb2theT8NCg0KMTA4DQow + MDowNzowOSwyMzQgLS0+IDAwOjA3OjEwLDg2Nw0KSS4uLg0KDQoxMDkNCjAwOjA3OjEwLDkzNiAt + LT4gMDA6MDc6MTIsNzAyDQpUaGF0IGhvdXNlLg0KDQoxMTANCjAwOjA3OjE0LDc4OSAtLT4gMDA6 + MDc6MTcsNTkwDQpZZWFoLiBZb3UgcHJvYmFibHkgc2F3IHRoYXQgb24gdGhlIG5ld3MuDQoNCjEx + MQ0KMDA6MDc6MTgsMDE5IC0tPiAwMDowNzoyMCw5NTYNCl8NCg0KMTEyDQowMDowNzozMCwyMjIg + LS0+IDAwOjA3OjMxLDgyMQ0KRmlyc3Qtd2VlayBqaXR0ZXJzPw0KDQoxMTMNCjAwOjA3OjMyLDM0 + NSAtLT4gMDA6MDc6MzMsODIzDQpQcm9mZXNzb3IgVGhhaW5lLg0KDQoxMTQNCjAwOjA3OjMzLDk1 + NSAtLT4gMDA6MDc6MzUsMDU0DQpZZXMuIEhpLg0KDQoxMTUNCjAwOjA3OjM1LDA2MCAtLT4gMDA6 + MDc6MzcsMzYwDQotIE5pY2UgdG8gbWVldCB5b3UuDQotIFlvdSwgdG9vLg0KDQoxMTYNCjAwOjA3 + OjM3LDM2NiAtLT4gMDA6MDc6NDAsMTY3DQpTb3JyeSBmb3IgbXkgYWJzZW5jZQ0KaW4geW91ciBm + aXJzdCBmZXcgZGF5cywNCg0KMTE3DQowMDowNzo0MCwxNzMgLS0+IDAwOjA3OjQyLDQ3NA0KYnV0 + IEknbSBiYWNrIG5vdywNCg0KMTE4DQowMDowNzo0Miw2NjcgLS0+IDAwOjA3OjQ1LDQwMQ0KcmVp + bnN0YXRlZCBhbmQgYWJzb2x2ZWQuDQoNCjExOQ0KMDA6MDc6NDUsNDcwIC0tPiAwMDowNzo0Niw4 + MzYNCk5vIGhhcmFzc21lbnQuDQoNCjEyMA0KMDA6MDc6NDYsOTA1IC0tPiAwMDowNzo0OCw0MzgN + Ckkgc2F5IHRoYXQganVzdCB0bw0KDQoxMjENCjAwOjA3OjQ4LDUwNyAtLT4gMDA6MDc6NTAsNzA3 + DQotIGdldCBpdCBvdXQgaW4gdGhlIG9wZW4uDQotIFllcy4NCg0KMTIyDQowMDowNzo1MCw3NzUg + LS0+IDAwOjA3OjUyLDQ0Mg0KWWVzLCBvZiBjb3Vyc2UuIEkgdW5kZXJzdGFuZC4NCg0KMTIzDQow + MDowNzo1Miw0NDggLS0+IDAwOjA3OjU1LDM0OA0KR29vZC4gSSBsb29rIGZvcndhcmQNCnRvIHdv + cmtpbmcgd2l0aCB5b3UuDQoNCjEyNA0KMDA6MDc6NTgsNzE0IC0tPiAwMDowODowMCwyNTANCkxv + dmVseSBibG91c2UuDQoNCjEyNQ0KMDA6MDg6MDQsNTAxIC0tPiAwMDowODowNiwyNzUNCk1zLiBW + ZXJhLg0KDQoxMjYNCjAwOjA4OjA3LDMyNSAtLT4gMDA6MDg6MDgsOTU4DQpVaCwgcGxlYXNlLCB3 + YWl0Lg0KDQoxMjcNCjAwOjA4OjEwLDU2NiAtLT4gMDA6MDg6MTIsNTk1DQpJIHJlYWQgeW91ciBh + cnRpY2xlIGluIENyaXRpY2FsIElucXVpcnkuDQoNCjEyOA0KMDA6MDg6MTIsNjAxIC0tPiAwMDow + ODoxNCw3MDENClZlcnkgd2VsbC13cml0dGVuLCBpZiBhIGJpdCBob3N0aWxlLg0KDQoxMjkNCjAw + OjA4OjE0LDcwNyAtLT4gMDA6MDg6MTYsMjk5DQpSZWFkaW5nIGl0IG1hZGUgbWUgZmVlbCBhcyBp + ZiBteSBwZW5pcw0KDQoxMzANCjAwOjA4OjE2LDMzMyAtLT4gMDA6MDg6MTcsNjY1DQpoYWQgYmVl + biB0b3JuIGZyb20gbXkgYm9keS4NCg0KMTMxDQowMDowODoxNyw2NzEgLS0+IDAwOjA4OjE5LDMw + NA0KT2gsIGdvb2QuIFlvdSByZWFkIGl0IHJpZ2h0Lg0KDQoxMzINCjAwOjA4OjE5LDMxMCAtLT4g + MDA6MDg6MjEsNjI1DQpQZXJmZWN0LiBTbywgbG9vaywgSQ0Ka25vdyB5b3UgZG9uJ3QgbGlrZSBt + ZQ0KDQoxMzMNCjAwOjA4OjIxLDYzMSAtLT4gMDA6MDg6MjQsMjMyDQpiZWNhdXNlIEkgcmVwbGFj + ZWQgeW91cg0KbW90aGVyIGluIHRoZSBkZXBhcnRtZW50Li4uDQoNCjEzNA0KMDA6MDg6MjQsMjM4 + IC0tPiAwMDowODoyNSw4MzYNCk9oLCB0aGF0J3MsIGxpa2UsIGZpZnRoIG9uIHRoZSBsaXN0DQoN + CjEzNQ0KMDA6MDg6MjUsODQyIC0tPiAwMDowODoyNywzNzUNCm9mIHdoeSBJIGRvbid0IGxpa2Ug + eW91Lg0KDQoxMzYNCjAwOjA4OjI3LDM4MSAtLT4gMDA6MDg6MzAsNDMzDQpGaWZ0aD8gT2theS4g + V2VsbCwgeW91IGNhbg0KdGVsbCBtZSBvbmUgdG8gZm91ciBsYXRlci4NCg0KMTM3DQowMDowODoz + MCw0MzkgLS0+IDAwOjA4OjMxLDg4Mw0KT25lLCB0aGV5IHNob3VsZCBoYXZlDQpuZXZlciBoaXJl + ZCBhIGNpcyBtYWxlDQoNCjEzOA0KMDA6MDg6MzEsODg5IC0tPiAwMDowODozMywyODgNCnRvIGxl + YWQgdGhlIFdvbWVuJ3MgU3R1ZGllcyBkZXBhcnRtZW50Lg0KDQoxMzkNCjAwOjA4OjMzLDI5NCAt + LT4gMDA6MDg6MzUsMzIwDQpBbHRob3VnaCB0aGlzIGNpcyBtYWxlDQpoYXMgYmVlbiBwdWJsaXNo + ZWQgMTIgdGltZXMNCg0KMTQwDQowMDowODozNSwzMjYgLS0+IDAwOjA4OjM3LDE2NQ0KYnkgcmVz + cGVjdGVkIGZlbWluaXN0IGpvdXJuYWxzDQoNCjE0MQ0KMDA6MDg6MzcsMTcxIC0tPiAwMDowODoz + OSwyOTENCmFuZCByZS10d2VldGVkIGJ5IFJveGFuZSBHYXkuDQoNCjE0Mg0KMDA6MDg6MzksMzU5 + IC0tPiAwMDowODo0MSw2OTMNCkNoZWNrIFR3aXR0ZXIuIFlvdSdsbCBoYXZlDQp0byBzY3JvbGwg + YmFjayBhIGZldyBtb250aHMuDQoNCjE0Mw0KMDA6MDg6NDEsNzYyIC0tPiAwMDowODo0Myw4OTUN + Ci0gU2hlJ3MgcXVpZXQgcHJvbGlmaWMuDQotIENvbmdyYXR1bGF0aW9ucy4NCg0KMTQ0DQowMDow + ODo0Myw5MDEgLS0+IDAwOjA4OjQ1LDQ0Nw0KVGhhbmsgeW91Lg0KDQoxNDUNCjAwOjA4OjQ1LDQ1 + MyAtLT4gMDA6MDg6NDcsMzMyDQpObywgYnV0IHRoaXMtdGhpcyByZWFsbHkgaXNuJ3QgYWJvdXQg + bWUuDQoNCjE0Ng0KMDA6MDg6NDcsMzM4IC0tPiAwMDowODo0OSw0NzENCkkgd2FudGVkIHRvIGNo + ZWNrIGluIG9uIHlvdS4NCg0KMTQ3DQowMDowODo1MCwxNTggLS0+IDAwOjA4OjUyLDg3MQ0KTWFr + ZSBzdXJlIHlvdSdyZSBkb2luZyBva2F5Lg0KDQoxNDgNCjAwOjA4OjUyLDk0MCAtLT4gMDA6MDg6 + NTUsNjQwDQpTZWUgaG93LCB5b3Uga25vdywgeW91J3JlIGZlZWxpbmcuDQoNCjE0OQ0KMDA6MDg6 + NTcsNjExIC0tPiAwMDowOTowMCw4NDYNCkkgd2lsbCBmZWVsIGJldHRlciBvbmNlDQp0aGlzIGNv + bnZlcnNhdGlvbiBpcyBvdmVyLg0KDQoxNTANCjAwOjA5OjA5LDU5NyAtLT4gMDA6MDk6MTIsMDk3 + DQpZb3UgcmVhbGl6ZSB3aXRob3V0IGENCnBlcm1pdCwgdGhhdCdzIHZhbmRhbGlzbT8NCg0KMTUx + DQowMDowOToxMiwyMjggLS0+IDAwOjA5OjE0LDQ2NQ0KUHJvZmVzc29yIFRoYWluZSBpcyBhIHNl + eHVhbCBwcmVkYXRvci4NCg0KMTUyDQowMDowOToxNCw0NzEgLS0+IDAwOjA5OjE2LDczOA0KLSBI + ZSBzaG91bGQgbm90IGJlIGJhY2sgdGVhY2hpbmcuDQotIEhlIGhhZCBhIGhlYXJpbmcsDQoNCjE1 + Mw0KMDA6MDk6MTYsNzQ0IC0tPiAwMDowOToxOCwwNDMNCmhlIHdhcyBleG9uZXJhdGVkLCBpdCdz + IG92ZXIuDQoNCjE1NA0KMDA6MDk6MTgsMDQ5IC0tPiAwMDowOToxOSw1MjENClRoZSBtYWluIHdp + dG5lc3MgYWdhaW5zdA0KaGltIGlzIGluIGEgY29tYS4NCg0KMTU1DQowMDowOToxOSw1MjcgLS0+ + IDAwOjA5OjIxLDM0MQ0KSXQgd2FzIGEgImhlIHNhaWQsIHNoZSBzYWlkIiBzaXR1YXRpb24uDQoN + CjE1Ng0KMDA6MDk6MjEsMzQ3IC0tPiAwMDowOToyMiw3MTMNCi0gVGhyZWUgInNoZSBzYWlkcy4i + DQotIEFuZCwNCg0KMTU3DQowMDowOToyMiw3MTkgLS0+IDAwOjA5OjI1LDE4Ng0KQW5nZWxhIFd1 + PyBDbGVhcmx5IHVuc3RhYmxlLg0KDQoxNTgNCjAwOjA5OjI1LDU5OCAtLT4gMDA6MDk6MjgsNDY1 + DQpJZiB5b3VyIG1vdGhlciBoYWRuJ3Qgc3RhcnRlZA0KdGhpcyB3aG9sZSB3aXRjaCBodW50Li4u + DQoNCjE1OQ0KMDA6MDk6MzAsMDIzIC0tPiAwMDowOTozMiwzOTANClRoaXMgaXMgbm90IGEgd2l0 + Y2gNCmh1bnQsIGl0J3MgYSByZWNrb25pbmcuDQoNCjE2MA0KMDA6MDk6MzIsNDU4IC0tPiAwMDow + OTozNSwwMjQNClNlZW1zIGxpa2UgeW91ciBtb20ncyB0aGUNCm9uZSB3aG8gaGFkIHRoZSByZWNr + b25pbmcuDQoNCjE2MQ0KMDA6MDk6MzYsOTMwIC0tPiAwMDowOTozOCwxNjINCkRhbW4gaXQhDQoN + CjE2Mg0KMDA6MDk6MzgsODEzIC0tPiAwMDowOTo0MCwzMTINCllvdS1Zb3UgY2FuJ3QganVzdC4u + Lg0KDQoxNjMNCjAwOjA5OjQ1LDY4OSAtLT4gMDA6MDk6NDcsMjcxDQpZb3UgcHVuY2hlZCBhbiB1 + bmRlcmdyYWR1YXRlLg0KDQoxNjQNCjAwOjA5OjQ3LDM0MCAtLT4gMDA6MDk6NDksMTA2DQpJbiBi + cm9hZCBkYXlsaWdodC4gV2hpY2ggaXMgYXNzYXVsdC4NCg0KMTY1DQowMDowOTo0OSwxNzUgLS0+ + IDAwOjA5OjUyLDQ3Ng0KQW5kIEkgcmVncmV0IHRoYXQuIENvbXBsZXRlbHkNCm15IGJhZCwgYnV0 + LCBOaWtvLi4uDQoNCjE2Ng0KMDA6MDk6NTIsNTQ1IC0tPiAwMDowOTo1NCw2NzkNCkRldGVjdGl2 + ZSBIYW1hZGEsIGlmIHlvdSBoZWFyZCBoaW0sDQoNCjE2Nw0KMDA6MDk6NTQsNzQ3IC0tPiAwMDow + OTo1Niw2NDcNCnRoZSB0aGluZ3MgaGUgd2FzIHNheWluZyBhYm91dCBteSBtb20uLi4NCg0KMTY4 + DQowMDowOTo1Niw3MTYgLS0+IDAwOjA5OjU5LDI1MA0KSSBqdXN0IHRoaW5rIHRoYXQgaGUga25v + d3MNCm1vcmUgdGhhbiBoZSdzIGxldHRpbmcgb24uDQoNCjE2OQ0KMDA6MDk6NTksNDkxIC0tPiAw + MDoxMDowMiwxMTMNCi0gTm8sIGRvbid0IGRvIHRoYXQuDQotIFdoYXQ/DQoNCjE3MA0KMDA6MTA6 + MDIsMTE5IC0tPiAwMDoxMDowNCw5ODkNCkxvb2sgYXQgZWFjaCBvdGhlciBsaWtlDQp0aGlzIGlz + IGNyYXp5LiBJdCdzIG5vdC4NCg0KMTcxDQowMDoxMDowNSwyNDMgLS0+IDAwOjEwOjA3LDgwNg0K + V2FybmVyIFRoYWluZSB3YXMgYQ0Ka25vd24gc2V4dWFsIHByZWRhdG9yLg0KDQoxNzINCjAwOjEw + OjA3LDgxNCAtLT4gMDA6MTA6MTAsNTczDQpNeSBtb20gc3VwcG9ydGVkIEFuZ2VsYQ0KV3Ugd2hl + biBzaGUgY2FtZSBmb3J3YXJkLg0KDQoxNzMNCjAwOjEwOjEwLDU3OSAtLT4gMDA6MTA6MTEsODQ4 + DQpTdWRkZW5seSBBbmdlbGEgT0RzLA0KDQoxNzQNCjAwOjEwOjExLDg1NCAtLT4gMDA6MTA6MTMs + OTU0DQpldmVuIHRob3VnaCBzaGUncyBhIHN0cmFpZ2h0LUENCnNjaG9sYXJzaGlwIHN0dWRlbnQ/ + DQoNCjE3NQ0KMDA6MTA6MTMsOTYwIC0tPiAwMDoxMDoxNiwyNzUNCi0gQW5kIHRoZW4gbXkgbW9t + IGRpZXM/DQotIEluIGJvdGggY2FzZXMsDQoNCjE3Ng0KMDA6MTA6MTYsMjgxIC0tPiAwMDoxMDox + Nyw2ODUNCnRoZXJlJ3Mgbm8gZXZpZGVuY2Ugb2YgZm91bCBwbGF5Lg0KDQoxNzcNCjAwOjEwOjE3 + LDY5MSAtLT4gMDA6MTA6MTgsODM5DQpCZWNhdXNlIHlvdSdyZSBub3QgbG9va2luZyENCg0KMTc4 + DQowMDoxMDoxOCw4NDUgLS0+IDAwOjEwOjIxLDgxOA0KTWVsLCB5b3VyIG1vdGhlcidzIGRlYXRo + DQp3YXMgYSBob3JyaWJsZSBhY2NpZGVudC4NCg0KMTc5DQowMDoxMDoyMSw4MjQgLS0+IDAwOjEw + OjIzLDY1OQ0KQnV0IHlvdXIgc2lzdGVyIHNhaWQgc2hlIGhhZCBhbHdheXMNCg0KMTgwDQowMDox + MDoyMyw2NjUgLS0+IDAwOjEwOjI1LDQ5OA0KYmVlbiB0cnlpbmcgdG8gZml4IHRoYXQgd2luZG93 + Li4uDQoNCjE4MQ0KMDA6MTA6MjUsNzcxIC0tPiAwMDoxMDoyNywyNzcNCmFuZCBzaGUnZCBiZWVu + IGRyaW5raW5nLg0KDQoxODINCjAwOjEwOjI3LDI4MyAtLT4gMDA6MTA6MjgsOTU5DQpZZWFoLCBJ + IGtub3cgd2hhdCdzIG9uIHRoZSByZXBvcnQuDQoNCjE4Mw0KMDA6MTA6MzAsMDk5IC0tPiAwMDox + MDozMiw1NjYNCldlJ3JlIGdvbm5hIHRyeSBhbmQgdGFsaw0KQ2FtIG91dCBvZiBwcmVzc2luZyBj + aGFyZ2VzLg0KDQoxODQNCjAwOjEwOjMyLDYzNSAtLT4gMDA6MTA6MzQsOTM1DQpHaXZlbiBldmVy + eXRoaW5nIHRoYXQncw0KaGFwcGVuZWQgaW4geW91ciBsaWZlLg0KDQoxODUNCjAwOjEwOjM1LDAw + NCAtLT4gMDA6MTA6MzYsNDM2DQpPaCwgdGhhbmsgeW91Lg0KDQoxODYNCjAwOjEwOjM2LDUwNSAt + LT4gMDA6MTA6MzgsNDM4DQpUaGF0J3MgZ3JlYXQuDQoNCjE4Nw0KMDA6MTA6NDAsMjY1IC0tPiAw + MDoxMDo0MSw3NDINCllvdSBoaXQgc29tZW9uZT8NCg0KMTg4DQowMDoxMDo0Myw3NzkgLS0+IDAw + OjEwOjQ1LDYxMg0KRG9uJ3Qgd29ycnkgYWJvdXQgaXQuDQoNCjE4OQ0KMDA6MTA6NDYsMDY3IC0t + PiAwMDoxMDo0Nyw4MzANClNlcmlvdXNseT8NCg0KMTkwDQowMDoxMDo0OCwyNzEgLS0+IDAwOjEw + OjUxLDE1MQ0KWW91J3JlIGEgZ3JhZHVhdGUgc3R1ZGVudCwNCmEgdGVhY2hpbmcgYXNzaXN0YW50 + Lg0KDQoxOTENCjAwOjEwOjUxLDE1NyAtLT4gMDA6MTA6NTIsNTI5DQpZb3UgY291bGQgbG9zZSB5 + b3VyIGpvYi4NCg0KMTkyDQowMDoxMDo1Miw3NTEgLS0+IDAwOjEwOjU0LDc0Mw0KU2VlLCB0aGlz + IGlzIHdoeSBJIGRvbid0DQpjb21lIGhvbWUgYW55bW9yZS4NCg0KMTkzDQowMDoxMDo1NCw3NjAg + LS0+IDAwOjEwOjU1LDc2MA0KWW91J3JlIGxvc2luZyBpdC4NCg0KMTk0DQowMDoxMDo1NSw3NjYg + LS0+IDAwOjEwOjU3LDk1NA0KLSBUaGVuIHdoeSBhcmUgeW91IGhlcmU/DQotIEJlY2F1c2UgSSBu + ZWVkZWQgY2xvdGhlcy4NCg0KMTk1DQowMDoxMDo1Nyw5NjAgLS0+IDAwOjEwOjU5LDE4NQ0KRm9y + IHJ1c2guDQoNCjE5Ng0KMDA6MTE6MDAsMjk0IC0tPiAwMDoxMTowMiwxMjkNCllvdSdyZSBydXNo + aW5nIHRoYXQgc29yb3JpdHk/DQoNCjE5Nw0KMDA6MTE6MDIsMTk3IC0tPiAwMDoxMTowMyw0OTIN + ClllYWguIEkgaGF2ZSBiZWVuLg0KDQoxOTgNCjAwOjExOjAzLDQ5OCAtLT4gMDA6MTE6MDQsNDk4 + DQpBbGwgbW9udGguDQoNCjE5OQ0KMDA6MTE6MDUsMTkxIC0tPiAwMDoxMTowNiw1OTANCkFuZCBp + ZiBJIGJlY29tZSBhIHNpc3Rlci4uLg0KDQoyMDANCjAwOjExOjA2LDU5NiAtLT4gMDA6MTE6MDcs + OTY4DQpBIHNpc3Rlci4NCg0KMjAxDQowMDoxMTowOCwwMzcgLS0+IDAwOjExOjA5LDk4Nw0KVGhh + dCdzIGp1c3Qgd2hhdCBpdCdzIGNhbGxlZC4gQW55d2F5Li4uDQoNCjIwMg0KMDA6MTE6MDksOTkz + IC0tPiAwMDoxMToxMSwwNzQNCldvdy4NCg0KMjAzDQowMDoxMToxMiwwMjcgLS0+IDAwOjExOjEz + LDgwNw0KSSdkIG1vdmUgaW50byB0aGUgS2FwcGEgaG91c2UuDQoNCjIwNA0KMDA6MTE6MTMsOTE0 + IC0tPiAwMDoxMToxNiwzNDgNCkkganVzdCBjYW4ndCBsaXZlIGhlcmUgYW55bW9yZSwgTWVsLg0K + DQoyMDUNCjAwOjExOjE2LDM1NCAtLT4gMDA6MTE6MTgsNTM3DQpZb3UncmUgc28gYW5ncnkgYWxs + IHRoZSB0aW1lLg0KDQoyMDYNCjAwOjExOjE4LDc4MSAtLT4gMDA6MTE6MjAsNzU3DQpBbmQgeW91 + J3JlIG9ic2Vzc2VkIHdpdGggTW9tJ3MgZGVhdGguDQoNCjIwNw0KMDA6MTE6MjAsNzYzIC0tPiAw + MDoxMToyMiw0MzANCi0gT2JzZXNzZWQ/DQotIFllcywgeW91J3JlIG9ic2Vzc2VkLg0KDQoyMDgN + CjAwOjExOjIyLDQzNiAtLT4gMDA6MTE6MjUsMjA0DQpCZWNhdXNlIEknbSBub3QganVzdCBtb3Zp + bmcNCm9uIGxpa2Ugbm90aGluZyBoYXBwZW5lZD8NCg0KMjA5DQowMDoxMToyNSw5OTEgLS0+IDAw + OjExOjI3LDIxNQ0KVGhhdCdzIG5vdCBmYWlyLg0KDQoyMTANCjAwOjExOjM5LDM5NyAtLT4gMDA6 + MTE6NDAsODMwDQpIaS4NCg0KMjExDQowMDoxMTo0MCw4OTkgLS0+IDAwOjExOjQzLDY2Ng0KVW0s + IEknbSBNYWN5IFZhdWdobi4NCg0KMjEyDQowMDoxMTo0Myw3MzUgLS0+IDAwOjExOjQ1LDQ3OA0K + LSBZZXM/DQotIFNvcnJ5LCB1bSwNCg0KMjEzDQowMDoxMTo0NSw0ODQgLS0+IDAwOjExOjQ3LDQx + OA0KLSBJIGp1c3QgbW92ZWQgdG8gSGlsbHRvd25lLi4uDQotIFVtLi4uDQoNCjIxNA0KMDA6MTE6 + NDcsNjY2IC0tPiAwMDoxMTo0OSw2MzkNCi0gSSdtIHNvcnJ5LiBUaGlzIGlzbid0IGEgZ3JlYXQg + dGltZS4NCi0gTm8sIHdhaXQuDQoNCjIxNQ0KMDA6MTE6NDksNjQ1IC0tPiAwMDoxMTo1MCw3NzcN + ClBsZWFzZS4NCg0KMjE2DQowMDoxMTo1MSw4NzcgLS0+IDAwOjExOjUzLDYxMA0KSSB0aGluayBJ + J20geW91ciBzaXN0ZXIuDQoNCjIxNw0KMDA6MTI6MDcsNTUzIC0tPiAwMDoxMjowOSwyNTINCkl0 + J3MgaGVyLCByaWdodD8NCg0KMjE4DQowMDoxMjowOSwyNTggLS0+IDAwOjEyOjEwLDM4Mw0KWW91 + ciBtb3RoZXIuDQoNCjIxOQ0KMDA6MTI6MTAsMzg5IC0tPiAwMDoxMjoxMiwyNTUNClllYWguIERl + ZmluaXRlbHkuDQoNCjIyMA0KMDA6MTI6MTIsMzI0IC0tPiAwMDoxMjoxMyw4MDENCkFuZCBvdXIg + aG91c2UuDQoNCjIyMQ0KMDA6MTI6MTMsODA5IC0tPiAwMDoxMjoxNSwwNzUNCldlbGwsIGl0J3Mg + bm90IHRoZSBjaXJjdWl0Lg0KDQoyMjINCjAwOjEyOjE1LDA4MSAtLT4gMDA6MTI6MTYsNDU0DQot + IE1lbCwgbG9vayBhdCB0aGlzLg0KLSBPaC4NCg0KMjIzDQowMDoxMjoxNiw0NjAgLS0+IDAwOjEy + OjE3LDk1Mg0KSSBzYXcuIFdoZXJlJ2QgeW91IGdldCBpdD8NCg0KMjI0DQowMDoxMjoxNyw5NTgg + LS0+IDAwOjEyOjE5LDg5MQ0KSSBmb3VuZCBpdCBhZnRlciBteSBkYWQgZGllZC4NCg0KMjI1DQow + MDoxMjoxOSw4OTcgLS0+IDAwOjEyOjIyLDI4Mg0KSSBqdXN0IGdvdCBhIGpvYiBhdCB0aGUgdW5p + dmVyc2l0eS4NCg0KMjI2DQowMDoxMjoyMiwyODggLS0+IDAwOjEyOjI0LDMzMw0KSSB3YXMgd2Fs + a2luZyBieSBhbmQgc2F3IHlvdXIgaG91c2UuDQoNCjIyNw0KMDA6MTI6MjQsMzM5IC0tPiAwMDox + MjoyNSw4NjkNClNvIG91ciBtb20gZ2V0cyBtdXJkZXJlZA0KYW5kLCB0aHJlZSBtb250aHMNCg0K + MjI4DQowMDoxMjoyNSw4NzUgLS0+IDAwOjEyOjI3LDE1MQ0KbGF0ZXIsIHlvdSBqdXN0IGhhcHBl + biB0byBkcml2ZSBieT8NCg0KMjI5DQowMDoxMjoyNywxNTcgLS0+IDAwOjEyOjI4LDMzMw0KLSBT + aGUgd2Fzbid0IG11cmRlcmVkLg0KLSBTdG9wIGl0Lg0KDQoyMzANCjAwOjEyOjI4LDMzOSAtLT4g + MDA6MTI6MzAsMDA1DQotIFdoYXQgZG8geW91IHdhbnQ/DQotIEkgZG9uJ3Qgd2FudCBhbnl0aGlu + Zy4NCg0KMjMxDQowMDoxMjozMCwwMTEgLS0+IDAwOjEyOjMxLDIwMg0KQmVjYXVzZSB3ZSBkb24n + dCBoYXZlIGFueSBtb25leS4NCg0KMjMyDQowMDoxMjozMSwyMDggLS0+IDAwOjEyOjMzLDE0Mg0K + LSBNZWwuDQotIE1vbmV5PyBJIGRvbid0IHdhbnQgbW9uZXkuDQoNCjIzMw0KMDA6MTI6MzMsMTQ4 + IC0tPiAwMDoxMjozNCw2NDANCi0gVGhlbiB3aHkgYXJlIHlvdSBoZXJlPw0KLSBCZWNhdXNlIEkg + anVzdA0KDQoyMzQNCjAwOjEyOjM0LDY0NiAtLT4gMDA6MTI6MzcsMDEzDQpmb3VuZCBvdXQsIGFu + ZCBJIHRob3VnaHQNCm1heWJlIHlvdSB3b3VsZC4uLg0KDQoyMzUNCjAwOjEyOjM5LDM4MyAtLT4g + MDA6MTI6NDAsODE2DQpXaGF0ZXZlci4NCg0KMjM2DQowMDoxMjo0MCw4ODUgLS0+IDAwOjEyOjQz + LDE1Mg0KSXQgd2FzIGNsZWFybHkgYSBtaXN0YWtlLg0KDQoyMzcNCjAwOjEyOjQ4LDIwOCAtLT4g + MDA6MTI6NTAsODI2DQotIEJ1dCB3aHkgbm90IHRyeSBhZ2Fpbj8NCi0gQmVjYXVzZSBJJ20gbm90 + IGJlZ2dpbmcuDQoNCjIzOA0KMDA6MTI6NTEsMTQ2IC0tPiAwMDoxMjo1Myw3NDYNCkkndmUgYmVl + biBmaW5lIG9uIG15IG93bi4NCkkgbGlrZSBiZWluZyBvbiBteSBvd24uDQoNCjIzOQ0KMDA6MTI6 + NTMsNzUyIC0tPiAwMDoxMjo1NSwzMTgNClRoZW4gd2h5J2QgeW91IGdvIHRoZXJlPw0KDQoyNDAN + CjAwOjEyOjU1LDMyNCAtLT4gMDA6MTI6NTYsODIzDQpDdXJpb3NpdHkuDQoNCjI0MQ0KMDA6MTI6 + NTYsODI5IC0tPiAwMDoxMjo1OCw0OTYNClRoYXQncyBhbiBJbnRlcm5ldCBzZWFyY2guDQoNCjI0 + Mg0KMDA6MTI6NTgsNzgyIC0tPiAwMDoxMzowMiw3NTENCkxvb2ssIEktSSBrbm93IHdlIGRvbid0 + DQprbm93IGVhY2ggb3RoZXIgdGhhdCB3ZWxsLg0KDQoyNDMNCjAwOjEzOjAyLDgyMCAtLT4gMDA6 + MTM6MDQsNTg2DQpZZXQuDQoNCjI0NA0KMDA6MTM6MDQsNjU1IC0tPiAwMDoxMzowNywyMjINCkJ1 + dCB5b3UgZGlkbid0IGUtbWFpbCwgeW91IGRpZG4ndCBjYWxsLg0KDQoyNDUNCjAwOjEzOjA3LDI5 + MSAtLT4gMDA6MTM6MDksMjkxDQpZb3UganVzdCB3ZW50IG92ZXIgdGhlcmUuIFdoeT8NCg0KMjQ2 + DQowMDoxMzowOSw3NzIgLS0+IDAwOjEzOjExLDg5NA0KSSBndWVzcyBJIHdhbnRlZCB0bw0KYXNr + ICdlbSBhYm91dCBteSBtb20uDQoNCjI0Nw0KMDA6MTM6MTEsOTAwIC0tPiAwMDoxMzoxMyw2MjQN + CldlbGwsIHdoYXQgZGlkIHlvdXIgZGFkDQpoYXZlIHRvIHNheSBhYm91dCBpdD8NCg0KMjQ4DQow + MDoxMzoxMyw2MzAgLS0+IDAwOjEzOjE2LDc5OA0KVGhhdCBzaGUgZGllZCwgd2hlbiBJIHdhcyB0 + d28uDQoNCjI0OQ0KMDA6MTM6MTYsODA0IC0tPiAwMDoxMzoxOCw2MjQNCk9idmlvdXNseSwgaGUu + Li4gaGUgbGllZC4NCg0KMjUwDQowMDoxMzoxOCw2MzAgLS0+IDAwOjEzOjIwLDM0Mg0KQWxsIHRo + ZSBtb3JlIHJlYXNvbiB0bw0KZ28gYmFjayBvdmVyIHRoZXJlLg0KDQoyNTENCjAwOjEzOjIwLDM0 + OCAtLT4gMDA6MTM6MjEsNzQ4DQotIE5vLg0KLSBMb29rLCB0aGV5IHdlcmUgc2hvY2tlZC4NCg0K + MjUyDQowMDoxMzoyMSw3NTQgLS0+IDAwOjEzOjIzLDUyMA0KLSBJIGJldCBpZiB5b3UgdHJ5IGl0 + IGFnYWluLi4uDQotIE5vLCBJJ20gZG9uZS4NCg0KMjUzDQowMDoxMzoyMyw1MjYgLS0+IDAwOjEz + OjI1LDIyNg0KLSBDb21lIG9uLg0KLSBFbm91Z2gsIG9rYXk/DQoNCjI1NA0KMDA6MTM6MjcsMDc0 + IC0tPiAwMDoxMzoyOCw2NzMNCldoYXQgdGhlIGhlbGw/DQoNCjI1NQ0KMDA6MTM6MjgsNjc5IC0t + PiAwMDoxMzozMCw2NzkNCkktSSBhbSBzbyBzb3JyeS4NCg0KMjU2DQowMDoxMzozMSw0NzYgLS0+ + IDAwOjEzOjM0LDYxMA0KSSBhbSBkcnVuayBhbmQgY2x1bXN5Lg0KSSBzaC4uLiBJIHNob3VsZCBn + by4NCg0KMjU3DQowMDoxMzozOSw5MDQgLS0+IDAwOjEzOjQyLDMzOA0KV2hhdCBlbHNlIGNhbiBJ + IHRlbGwgeW91Pw0KDQoyNTgNCjAwOjEzOjQyLDcyMCAtLT4gMDA6MTM6NDYsMjU1DQpPaCwgd2Ug + aGF2ZSBtYWlkIHNlcnZpY2UNCmV2ZXJ5IHdlZWssICdjYXVzZSB0cnVzdCBtZSwNCg0KMjU5DQow + MDoxMzo0NiwzMjQgLS0+IDAwOjEzOjQ5LDE1NA0KZ2lybHMgYXJlIGp1c3QgYXMgZ3Jvc3MgYXMg + Ym95cy4NCg0KMjYwDQowMDoxMzo0OSwzODkgLS0+IDAwOjEzOjUxLDg1Ng0KQnV0IEthcHBhIGlz + IG5vdCBqdXN0IGFib3V0IHRoZSBwZXJrcy4NCg0KMjYxDQowMDoxMzo1MSw5MjUgLS0+IDAwOjEz + OjU1LDU5Mw0KV2UgYWxzbyBnaXZlIGJhY2suIFRoYXQncw0KcmlnaHQ6IEthcHBhIGlzIHdva2Uu + DQoNCjI2Mg0KMDA6MTM6NTcsMTM4IC0tPiAwMDoxMzo1OCw4NjMNCldlIHZvbHVudGVlciBhdCBI + aWxsdG93bmUgTWVtb3JpYWwuDQoNCjI2Mw0KMDA6MTM6NTgsOTMyIC0tPiAwMDoxNDowMCw4OTgN + ClNvbWUgb2YgdGhlIHNpc3RlcnMNCmhhdmUgYmVlbiBzaXR0aW5nIHZpZ2lsDQoNCjI2NA0KMDA6 + MTQ6MDAsOTY3IC0tPiAwMDoxNDowNCwxNjgNCndpdGggcG9vciBBbmdlbGEgV3UsIGV2ZW4NCnRo + b3VnaCBzaGUgaXMgbm90IEdyZWVrLg0KDQoyNjUNCjAwOjE0OjA0LDIzNyAtLT4gMDA6MTQ6MDUs + NTcwDQpTbyBzYWQuDQoNCjI2Ng0KMDA6MTQ6MDUsNTc2IC0tPiAwMDoxNDowNywyOTMNCklzIHNo + ZSBnb25uYSByZWdhaW4gYnJhaW4gZnVuY3Rpb24/DQoNCjI2Nw0KMDA6MTQ6MDcsMjk5IC0tPiAw + MDoxNDoxMSw5NjgNCk5vLiBCdXQgbm90IGZvciBhIGxhY2sNCm9mIGVmZm9ydCBvbiBvdXIgcGFy + dC4NCg0KMjY4DQowMDoxNDoxMiwyNDUgLS0+IDAwOjE0OjE0LDMxMg0KWWVhaC4NCg0KMjY5DQow + MDoxNDoxNCwzODAgLS0+IDAwOjE0OjE3LDc0OA0KQW55d2F5LCB5b3Ugc2hvdWxkIGFsbA0KYmUg + c28sIHNvLCBzbywgc28gcHJvdWQNCg0KMjcwDQowMDoxNDoxNyw4MTcgLS0+IDAwOjE0OjIwLDM4 + NA0KdG8gaGF2ZSBtYWRlIGl0IHRvIHRoaXMgZmluYWwgcm91bmQuDQoNCjI3MQ0KMDA6MTQ6MjAs + ODg0IC0tPiAwMDoxNDoyNCwxMjENClNvIGdvIGFuZCBlbmpveSBzb21lDQphcHBzLCBhbmQgZ29v + ZCBsdWNrLg0KDQoyNzINCjAwOjE0OjI0LDc5MCAtLT4gMDA6MTQ6MjcsNzExDQpJIGxpa2UgeW91 + ci4uLiB5b3VyIHRvcC4NCg0KMjczDQowMDoxNDoyOCwwMDggLS0+IDAwOjE0OjI5LDM0MQ0KTWFn + Z2llPyBNYWdnaWUuDQoNCjI3NA0KMDA6MTQ6MjksMzQ3IC0tPiAwMDoxNDozMyw3MTcNClVtLCBi + ZXR3ZWVuIHlvdSBhbmQNCm1lLCB5b3UncmUgYSBzaG9vLWluLg0KDQoyNzUNCjAwOjE0OjMzLDkz + MyAtLT4gMDA6MTQ6MzUsMjY2DQpSZWFsbHk/DQoNCjI3Ng0KMDA6MTQ6MzUsMzM1IC0tPiAwMDox + NDozNywyMzUNClVubGVzcyB5b3UsIGxpa2UsIHBvb3AgaW4gYSB2YXNlLA0KDQoyNzcNCjAwOjE0 + OjM3LDI0MSAtLT4gMDA6MTQ6MzksMTgxDQpvciBzcGFjZSBvdXQgb24geW91ciBwaG9uZSBhZ2Fp + bi4NCg0KMjc4DQowMDoxNDozOSwyNTUgLS0+IDAwOjE0OjQwLDU4OA0KSSdtIGp1c3Qga2lkZGlu + Zy4NCg0KMjc5DQowMDoxNDo0MCw1OTQgLS0+IDAwOjE0OjQyLDc0OA0KT2gsIFZpdiwgRHlsYW4u + DQoNCjI4MA0KMDA6MTQ6NDIsNzU0IC0tPiAwMDoxNDo0NSw3NTQNCkkgZG9uJ3QgdGhpbmsgdGhh + dCB5b3UndmUgbWV0IE1hZ2dpZS4NCg0KMjgxDQowMDoxNDo0NSw3NjAgLS0+IDAwOjE0OjQ2LDgw + OQ0KSGkuDQoNCjI4Mg0KMDA6MTQ6NDYsODE1IC0tPiAwMDoxNDo0OCwwNDgNCk1hZ2dpZT8NCg0K + MjgzDQowMDoxNDo0OCwwNTQgLS0+IDAwOjE0OjUwLDA0Nw0KRGlkbid0IHNoZSB1c2VkIHRvIHdv + cmsNCmluIHRoZSBkaW5pbmcgaGFsbD8NCg0KMjg0DQowMDoxNDo1MSwzODQgLS0+IDAwOjE0OjUz + LDMxNw0KT2gsIHVtLCB5ZWFoLCB5ZWFoLg0KDQoyODUNCjAwOjE0OjUzLDM4NiAtLT4gMDA6MTQ6 + NTUsNjkwDQpJLUkgd29ya2VkIGF0IHRoZSBkaW5pbmcNCmhhbGwgbGFzdCBzZW1lc3Rlci4NCg0K + Mjg2DQowMDoxNDo1NSw2OTYgLS0+IDAwOjE0OjU3LDIwMQ0KSSdtIGF0IFNpbHZpbydzIFRyYXR0 + b3JpYSBub3c/DQoNCjI4Nw0KMDA6MTQ6NTcsMjA3IC0tPiAwMDoxNDo1OCw0NzMNCldlIGRvbid0 + IG5lZWQgeW91ciBy6XN1bekuDQoNCjI4OA0KMDA6MTQ6NTksMTE3IC0tPiAwMDoxNTowMSwyNTAN + CkdyZWF0IHNraXJ0LiBXaGVyZSdkIHlvdSBnZXQgaXQ/DQoNCjI4OQ0KMDA6MTU6MDEsMjU2IC0t + PiAwMDoxNTowMiw0NTYNCkhlciBtb20ganVzdCBkaWVkLg0KDQoyOTANCjAwOjE1OjAyLDQ2MiAt + LT4gMDA6MTU6MDMsOTk1DQpJIHNob3VsZCBiZSBuaWNlLg0KDQoyOTENCjAwOjE1OjA0LDk2NCAt + LT4gMDA6MTU6MDcsNzQ4DQpVaCwgaXMgdGhpcyBzb21lIGtpbmQgb2YgcnVzaCBwcmFuaz8NCg0K + MjkyDQowMDoxNTowNyw3NTYgLS0+IDAwOjE1OjA5LDUxNQ0KTWFnZ2llLCB3aGF0IGlzIGdvaW5n + IG9uPw0KDQoyOTMNCjAwOjE1OjA5LDUyMSAtLT4gMDA6MTU6MTAsNzU3DQpSdXNoIHByYW5rPw0K + DQoyOTQNCjAwOjE1OjExLDI3NCAtLT4gMDA6MTU6MTIsMzkwDQpJJ20gc29ycnkuDQoNCjI5NQ0K + MDA6MTU6MTIsNDIyIC0tPiAwMDoxNToxMyw2MjINCkkgaGF2ZSB0byBnby4NCg0KMjk2DQowMDox + NToxMyw2OTAgLS0+IDAwOjE1OjE1LDAzMw0KTWFnZ2llPw0KDQoyOTcNCjAwOjE1OjE2LDg2OSAt + LT4gMDA6MTU6MTgsOTM2DQpVZ2gsIEknbSBzbyBibG9hdGVkLg0KDQoyOTgNCjAwOjE1OjE4LDk0 + MiAtLT4gMDA6MTU6MjEsMDc1DQpJIGhhdGUgdGhlc2UgYml0Y2hlcy4NCg0KMjk5DQowMDoxNToy + MSwwODEgLS0+IDAwOjE1OjIyLDY4MQ0KLSBXaGVyZSdzIHRoZSBtaW5pIHF1aWNoZXM/DQotIFdo + ZXJlJ3MgdGhlIGd1eQ0KDQozMDANCjAwOjE1OjIyLDY4NyAtLT4gMDA6MTU6MjQsMDg3DQotIHdp + dGggdGhlIG1pbmkgcXVpY2hlcz8NCi0gTWluaSBxdWljaGVzPw0KDQozMDENCjAwOjE1OjI0LDA5 + MyAtLT4gMDA6MTU6MjUsMzQzDQpBcmUgeW91IG9rYXk/DQoNCjMwMg0KMDA6MTU6MjUsMzQ5IC0t + PiAwMDoxNToyNywzOTgNCldlIG1heSBoYXZlIHRvIGdldCByaWQgb2YgaGVyLg0KDQozMDMNCjAw + OjE1OjI4LDc1NiAtLT4gMDA6MTU6MzAsNDIyDQpJIG1lYW4sIGlmIHNvbWVvbmUganVzdA0Kc2hv + d2VkIHVwIGF0IHlvdXIgaG91c2UsDQoNCjMwNA0KMDA6MTU6MzAsNDkxIC0tPiAwMDoxNTozMiw3 + NTgNCmNsYWltaW5nIHRvIGJlIHlvdXIgc2lzdGVyLA0Kd291bGQgeW91IGJlbGlldmUgdGhlbT8N + Cg0KMzA1DQowMDoxNTozMiw4MjYgLS0+IDAwOjE1OjM1LDE2NA0KTWVsLCB5b3UgbmVlZCB0byBi + cmVhdGhlLg0KDQozMDYNCjAwOjE1OjM2LDIwMyAtLT4gMDA6MTU6MzksMDIzDQpPaC4gSXMgaXQg + dGhhdCBraW5kIG9mIGNvZmZlZSBkYXRlPw0KDQozMDcNCjAwOjE1OjM5LDAyOSAtLT4gMDA6MTU6 + NDEsODk2DQpOby4gSXQncyBhbiAiSSdtIHdvcnJpZWQNCmFib3V0IHlvdSIgY29mZmVlIGRhdGUu + DQoNCjMwOA0KMDA6MTU6NDIsMjM5IC0tPiAwMDoxNTo0Myw5NzkNCllvdSBzZWVtIGxpa2UgeW91 + J3JlIHVucmF2ZWxpbmcuDQoNCjMwOQ0KMDA6MTU6NDMsOTg1IC0tPiAwMDoxNTo0Niw3NzINCldl + bGwsIGdvb2QgdGhpbmcgSSdtIG5vdA0KeW91ciBwcm9ibGVtIGFueW1vcmUuDQoNCjMxMA0KMDA6 + MTU6NDYsOTQ2IC0tPiAwMDoxNTo0OCw2NDYNCkkgc3RpbGwgY2FyZSBhYm91dCB5b3UuDQoNCjMx + MQ0KMDA6MTU6NDgsNjUyIC0tPiAwMDoxNTo0OSw3NjkNClRoZW4gZHVtcGluZyBtZSBhZnRlciBt + eSBtb20NCg0KMzEyDQowMDoxNTo0OSw3NzUgLS0+IDAwOjE1OjUxLDA5MQ0KZGllZCB3YXMgYW4g + aW50ZXJlc3RpbmcgY2hvaWNlLg0KDQozMTMNCjAwOjE1OjUxLDMzNCAtLT4gMDA6MTU6NTIsNjY3 + DQpUaGF0J3Mgbm90IGZhaXIuDQoNCjMxNA0KMDA6MTU6NTgsMDA4IC0tPiAwMDoxNTo1OSw5NDEN + CkkgYW0gc28sIHNvIHNvcnJ5IGFib3V0IHRoYXQuDQoNCjMxNQ0KMDA6MTY6MDAsMDEwIC0tPiAw + MDoxNjowMSwyNzYNCkFsbCBnb29kLg0KDQozMTYNCjAwOjE2OjAxLDM0NCAtLT4gMDA6MTY6MDMs + MTExDQpEaWQgeW91IHNlZSB0aGF0Pw0KDQozMTcNCjAwOjE2OjAzLDE3OSAtLT4gMDA6MTY6MDQs + NzQzDQpUaGUgY29mZmVlPw0KDQozMTgNCjAwOjE2OjExLDEyNyAtLT4gMDA6MTY6MTMsMzAxDQpP + aCwgbXkgR29kLg0KDQozMTkNCjAwOjE2OjEzLDM3MCAtLT4gMDA6MTY6MTYsMDQ2DQpXaGF0IGlz + IGhhcHBlbmluZz8NCg0KMzIwDQowMDoxNjoxNiwwNTIgLS0+IDAwOjE2OjE3LDk1Mg0KV2hhdCBh + Ym91dCB0aGUgY29mZmVlPw0KDQozMjENCjAwOjE2OjIzLDgxNCAtLT4gMDA6MTY6MjYsNDQ4DQpQ + bGVhc2UuIFN0b3AuDQoNCjMyMg0KMDA6MTY6MjcsNzUxIC0tPiAwMDoxNjozMCw0NTINCldoYXQg + aXMgZ29pbmcgb24/DQoNCjMyMw0KMDA6MTY6MzQsNTAyIC0tPiAwMDoxNjozNSw4MzUNCkkgaGF2 + ZSB0byBnby4NCg0KMzI0DQowMDoxNjozNSw5MDMgLS0+IDAwOjE2OjM4LDQ3MQ0KWW91IHdlcmUg + cmlnaHQuIEkgYW0gbm90IG9rYXkuDQoNCjMyNQ0KMDA6MTY6MzgsNTM5IC0tPiAwMDoxNjo0MCwy + MDANCkkgYW0gbm90Lg0KDQozMjYNCjAwOjE2OjUzLDU4NCAtLT4gMDA6MTY6NTUsNDA1DQpXaGF0 + IHRoZS4uLj8NCg0KMzI3DQowMDoxNjo1NSw5NTMgLS0+IDAwOjE2OjU3LDI4NQ0KSGVsbG8sIGxh + ZGllcy4NCg0KMzI4DQowMDoxNzowMSw0MjkgLS0+IDAwOjE3OjAzLDM2Mg0KRG9uJ3QsIGRvbid0 + IHdvcnJ5Lg0KDQozMjkNCjAwOjE3OjA0LDk5OSAtLT4gMDA6MTc6MDcsODY3DQpUaGVyZSBpcyBh + IHJlYXNvbmFibGUgZXhwbGFuYXRpb24uDQoNCjMzMA0KMDA6MTc6MDgsNjUwIC0tPiAwMDoxNzox + MSwyMzcNCllvdSBhcmUgd2l0Y2hlcy4NCg0KMzMxDQowMDoxNzoxMSw5MTcgLS0+IDAwOjE3OjE0 + LDAzMA0KV2l0Y2hlcyB3aG8gYXJlIGRlc3RpbmVkIHRvIHNhdmUNCg0KMzMyDQowMDoxNzoxNCww + MzYgLS0+IDAwOjE3OjE2LDE0Nw0KdGhlIHdvcmxkIGZyb20gaW1wZW5kaW5nIGRvb20uDQoNCjMz + Mw0KMDA6MTc6MjAsODQzIC0tPiAwMDoxNzoyNCw4NjQNClRoYXQncyByaWdodC4gWW91IGFyZSB0 + aGUgQ2hhcm1lZCBPbmVzLg0KDQozMzQNCjAwOjE3OjI0LDg3MCAtLT4gMDA6MTc6MjgsMzQ0DQpU + aGUgbW9zdCBwb3dlcmZ1bCB0cmlvDQoNCjMzNQ0KMDA6MTc6MjksNDY5IC0tPiAwMDoxNzozMSw5 + MDQNCi0gb2Ygd2l0Y2hlcy4NCi0gSGUncyB0aGUgbmV3IHdvbWVuJ3Mgc3R1ZGllcyBjaGFpci4N + Cg0KMzM2DQowMDoxNzozMSw5MTAgLS0+IDAwOjE3OjMzLDMzNQ0KSSBrbmV3IHNvbWV0aGluZyB3 + YXMgb2ZmIGFib3V0IGhpbS4NCg0KMzM3DQowMDoxNzozMywzNDEgLS0+IDAwOjE3OjM1LDAwNw0K + V2VsbCwgdGhhdCBpcyB1bm5lY2Vzc2FyaWx5IHJ1ZGUuDQoNCjMzOA0KMDA6MTc6MzUsMDEzIC0t + PiAwMDoxNzozNiw4MDUNCkJ1dCBJJ2xsIGxldCBpdCBnbyBiZWNhdXNlDQpJIGtub3cgdGhpcyBp + cyBhIGxvdC4NCg0KMzM5DQowMDoxNzozNiw4MTEgLS0+IDAwOjE3OjM5LDUxMg0KLSBVbnRpZSB1 + cyByaWdodCBub3csIG9yIGVsc2UuLi4NCi0gTm8gIm9yIGVsc2UiIG5lY2Vzc2FyeS4NCg0KMzQw + DQowMDoxNzozOSw1MTggLS0+IDAwOjE3OjQxLDMwOQ0KTGV0IG1lIGdldCB0aG9zZSBmb3IgeW91 + Lg0KSSBrbm93LCBpdCdzIGFsbCBzbyBleHRyZW1lDQoNCjM0MQ0KMDA6MTc6NDEsMzE1IC0tPiAw + MDoxNzo0Miw4MTENCndpdGggdGhlIGdyYWJiaW5nIGFuZCB0aGUgYmluZGluZy4NCg0KMzQyDQow + MDoxNzo0Miw4MTcgLS0+IDAwOjE3OjQ1LDgwMg0KQmVsaWV2ZSBtZSwgSSdkIGxvdmUgdG8gaGF2 + ZQ0KanVzdCBzZW50IG91dCBhIGdyb3VwIHRleHQuDQoNCjM0Mw0KMDA6MTc6NDYsMTIzIC0tPiAw + MDoxNzo0Nyw3ODkNClRoZXJlIHdlIGFyZS4NCg0KMzQ0DQowMDoxNzo0OSw5MjIgLS0+IDAwOjE3 + OjUxLDIwMQ0KVGhpcyBpc24ndCBoYXBwZW5pbmcuDQoNCjM0NQ0KMDA6MTc6NTEsMjA3IC0tPiAw + MDoxNzo1MiwzNTQNCi0gR2lybHMuDQotIFNvIEknbSBub3QgY3JhenkuDQoNCjM0Ng0KMDA6MTc6 + NTIsMzYwIC0tPiAwMDoxNzo1Myw0MjYNCi0gSSB0aG91Z2h0IEkgd2FzIGdvaW5nIGNyYXp5Lg0K + LSBHaXJscy4NCg0KMzQ3DQowMDoxNzo1Myw0MzIgLS0+IDAwOjE3OjU0LDc1Ng0KLSBBbGwgb2Yg + dGhpcyBpcyBjcmF6eS4NCi0gR2lybHMuDQoNCjM0OA0KMDA6MTc6NTQsNzYyIC0tPiAwMDoxNzo1 + Niw0NjINCi0gSSBhbSBub3QgYSB3aXRjaC4NCi0gR2lybHMuDQoNCjM0OQ0KMDA6MTc6NTYsNDY4 + IC0tPiAwMDoxNzo1OCwyMzQNCkkgZG9uJ3QgZXZlbiBsaWtlIHdlYXJpbmcgd2l0Y2gNCmNvc3R1 + bWVzIG9uIEhhbGxvd2VlbiwgbGlrZS4uLg0KDQozNTANCjAwOjE3OjU4LDI0MCAtLT4gMDA6MTc6 + NTksODA2DQotIE5vdCBldmVuIHNsdXR0eSBvbmVzLg0KLSBHaXJscyENCg0KMzUxDQowMDoxODow + MSw3NTIgLS0+IDAwOjE4OjAzLDI2OQ0KU29ycnkuIExhZGllcy4NCg0KMzUyDQowMDoxODowMywz + MzggLS0+IDAwOjE4OjA1LDkzOA0KTm93LCB3ZSBhbGwgc2F3IHdoYXQNCk1hY3kgZGlkIHdpdGgg + dGhlIGdsb2JlLg0KDQozNTMNCjAwOjE4OjA2LDAwNyAtLT4gMDA6MTg6MDcsNjA2DQpMb29rcyBs + aWtlIHdlJ3ZlIGdvdCB0ZWxla2luZXNpcy4NCg0KMzU0DQowMDoxODowNyw2MTIgLS0+IDAwOjE4 + OjA4LDk3NQ0KVGVsZWtpbmVzaXMgaXMgbm90IGEgdGhpbmcuDQoNCjM1NQ0KMDA6MTg6MDgsOTgx + IC0tPiAwMDoxODoxMCwzMDUNClRoZW4gYWdhaW4sIGl0IGRpZCBmbHkNCmFjcm9zcyB0aGUgcm9v + bS4uLg0KDQozNTYNCjAwOjE4OjEwLDMxMSAtLT4gMDA6MTg6MTEsODczDQpBbmQgdGhlcmUgaGFz + IHRvIGJlIGENCnNjaWVudGlmaWMgZXhwbGFuYXRpb24uDQoNCjM1Nw0KMDA6MTg6MTEsODc5IC0t + PiAwMDoxODoxNSwwNDcNClVoLCB5ZXMsIHRoZXJlIGlzLCBpdCdzDQpjYWxsZWQgbW9sZWN1bGFy + IHdpdGNoLWV0aWNzLg0KDQozNTgNCjAwOjE4OjE1LDA4MyAtLT4gMDA6MTg6MTcsMjMzDQotIFlv + dSdyZSBub3QgZnVubnkuDQotIFBhcnRpY2xlIHdpdGNoLW9sb2d5Pw0KDQozNTkNCjAwOjE4OjE3 + LDc1NSAtLT4gMDA6MTg6MTksMzg1DQpBbGwgcmlnaHQsIHdoYXQuLi4gQWxsDQpyaWdodCwgd2hh + dCBhcmUgeW91IGRvaW5nPw0KDQozNjANCjAwOjE4OjE5LDQ1NCAtLT4gMDA6MTg6MjEsMDUzDQot + IFRyeWluZyB0byBmcmVlemUgdGltZS4NCi0gT2guDQoNCjM2MQ0KMDA6MTg6MjEsMDU5IC0tPiAw + MDoxODoyMiw2NTkNCklzIHRoYXQgeW91ciBwb3dlcj8NCk9oLCB3ZWxsLCBtYWtlcyBzZW5zZS4N + Cg0KMzYyDQowMDoxODoyMiw2NjUgLS0+IDAwOjE4OjI0LDE4Ng0KVmVyeSBjb21tb24gd2l0aCBj + b250cm9sIGZyZWFrcy4NCg0KMzYzDQowMDoxODoyNCwxOTIgLS0+IDAwOjE4OjI2LDA4NA0KLSBT + byB3aHkgaXNuJ3QgaXQgd29ya2luZz8NCi0gSXQncyBhIGNyYWZ0Lg0KDQozNjQNCjAwOjE4OjI2 + LDA5MCAtLT4gMDA6MTg6MjcsNjY0DQpXaXRjaGNyYWZ0Lg0KDQozNjUNCjAwOjE4OjI3LDY3MCAt + LT4gMDA6MTg6MjgsOTMyDQpXaGljaCBtZWFucyB5b3UgaGF2ZSB0byBmaWd1cmUgb3V0DQoNCjM2 + Ng0KMDA6MTg6MjgsOTM4IC0tPiAwMDoxODozMCw2MzcNCmhvdyB0byBhY2Nlc3MgYW5kIGNvbnRy + b2wgaXQuDQoNCjM2Nw0KMDA6MTg6MzIsNjc1IC0tPiAwMDoxODozNCw4MzUNCldlbGwsIGxvb2tz + IGxpa2UgeW91J3ZlDQphbHJlYWR5IG1hc3RlcmVkIHlvdXJzLg0KDQozNjgNCjAwOjE4OjM0LDg0 + MSAtLT4gMDA6MTg6MzcsNTAwDQpCcmF2by4gTXVzdCBiZSB0aGF0DQppbXByZXNzaXZlbHkgaGln + aCBJUS4NCg0KMzY5DQowMDoxODozNyw1NDAgLS0+IDAwOjE4OjM5LDYyMg0KU28gdGhpcyBtZWFu + cyBJIHJlYWxseQ0Kd2FzIHJlYWRpbmcgbWluZHM/DQoNCjM3MA0KMDA6MTg6MzksNjI4IC0tPiAw + MDoxODo0MSwyNTYNCkEgdGVzdGFtZW50IHRvIHlvdXIgaW5uYXRlDQoNCjM3MQ0KMDA6MTg6NDEs + MjYyIC0tPiAwMDoxODo0MywyNjkNCnNlbnNpdGl2aXR5LCBvciBkZXNwZXJhdGUgaW5zZWN1cml0 + eS4NCg0KMzcyDQowMDoxODo0MywyNzUgLS0+IDAwOjE4OjQ1LDAwOA0KVGhleSdyZSB0d28gc2lk + ZXMgb2YgdGhlIGNvaW4sDQpyZWFsbHkuIE5vdCB0byB3b3JyeS4NCg0KMzczDQowMDoxODo0NSww + MTQgLS0+IDAwOjE4OjQ2LDgxNA0KSSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgaXQgYWxsLg0K + DQozNzQNCjAwOjE4OjQ2LDgyMCAtLT4gMDA6MTg6NDksNzYxDQpZb3Ugc2VlLCBJIGFtIGFuIGFk + dmlzb3IgdG8gd2l0Y2hlcy4NCg0KMzc1DQowMDoxODo0OSw3NjcgLS0+IDAwOjE4OjUzLDQ2OQ0K + VGhleSBjYWxsIG1lIGEgV2hpdGVsaWdodGVyLg0KDQozNzYNCjAwOjE4OjUzLDUwNSAtLT4gMDA6 + MTg6NTYsMTczDQpQaHlzaWNhbGx5LCBJIGRpZWQgaW4gMTk1Ny4NCg0KMzc3DQowMDoxODo1Niwx + NzkgLS0+IDAwOjE4OjU4LDI3OQ0KV2FpdC4gV2FzIE1vbSBhIHdpdGNoPw0KDQozNzgNCjAwOjE4 + OjU4LDI4NSAtLT4gMDA6MTg6NTksNjA2DQpCaW5nby4NCg0KMzc5DQowMDoxOTowMCwwMTAgLS0+ + IDAwOjE5OjAyLDA0NA0KQW5kIHBhcnQgb2YgbXkgc3BlZWNoLg0KDQozODANCjAwOjE5OjAzLDc1 + OCAtLT4gMDA6MTk6MDUsMTkxDQpZb3VyIG1vdGhlciB3YXMgYSB3aXRjaC4NCg0KMzgxDQowMDox + OTowNSwyNjAgLS0+IDAwOjE5OjA3LDQxNA0KQSB2ZXJ5IHBvd2VyZnVsIG9uZS4NCg0KMzgyDQow + MDoxOTowNyw0MjAgLS0+IDAwOjE5OjA5LDgwOQ0KU2hlIGJvdW5kIHlvdXIgcG93ZXJzDQp3aGVu + IHlvdSBlYWNoIHdlcmUgYm9ybg0KDQozODMNCjAwOjE5OjA5LDgxNSAtLT4gMDA6MTk6MTIsMjAz + DQp0byBwcm90ZWN0IHlvdSBhbmQgbGV0DQp5b3UgbGl2ZSBub3JtYWwgbGl2ZXMuDQoNCjM4NA0K + MDA6MTk6MTIsMjA5IC0tPiAwMDoxOToxNiwxNDUNCk5vdywgc2hlIHdhcyBpbiB0aGUgcHJvY2Vz + cw0Kb2YgdW5iaW5kaW5nIHRob3NlIHBvd2Vycy4uLg0KDQozODUNCjAwOjE5OjE4LDQwMyAtLT4g + MDA6MTk6MjAsMzA2DQpUaGUgbmlnaHQgc2hlIHdhcyBtdXJkZXJlZC4NCg0KMzg2DQowMDoxOToy + MSw5NzMgLS0+IDAwOjE5OjIzLDgwNg0KSSBrbmV3IGl0Lg0KDQozODcNCjAwOjE5OjIzLDgxMiAt + LT4gMDA6MTk6MjUsNjc4DQpJIGtuZXcgc2hlIGRpZG4ndCBmYWxsLg0KDQozODgNCjAwOjE5OjI2 + LDMzMSAtLT4gMDA6MTk6MjgsMDQ3DQpXaG8ga2lsbGVkIGhlcj8NCg0KMzg5DQowMDoxOToyOCwx + MTYgLS0+IDAwOjE5OjMwLDIxNg0KV2UgZG9uJ3Qga25vdywgYXMgeWV0Lg0KDQozOTANCjAwOjE5 + OjMwLDI4NSAtLT4gMDA6MTk6MzIsOTUwDQpUaGVyZSB3YXMgaWNlIGF0IHRoZSBzY2VuZSwNCnNv + IGNvbGQgaXMgYSBjaGFyYWN0ZXJpc3RpYywNCg0KMzkxDQowMDoxOTozMiw5NTYgLS0+IDAwOjE5 + OjM0LDQ0MA0KYnV0IHRoZXJlIGFyZSBsaXRlcmFsbHkgdGhvdXNhbmRzIG9mDQoNCjM5Mg0KMDA6 + MTk6MzQsNDQ2IC0tPiAwMDoxOTozNiwwODkNCmRpZmZlcmVudCBkZW1vbnMgYXNzb2NpYXRlZCB3 + aXRoIGNvbGQuDQoNCjM5Mw0KMDA6MTk6MzYsMDk1IC0tPiAwMDoxOTozNyw1OTUNCldoYXQgYXJl + IHlvdSBldmVuIHRhbGtpbmcgYWJvdXQ/DQoNCjM5NA0KMDA6MTk6MzcsNjAxIC0tPiAwMDoxOToz + OSwxNTQNCkl0J3MgYWxsIGhlcmUuDQoNCjM5NQ0KMDA6MTk6NDEsNjYyIC0tPiAwMDoxOTo0Myw1 + OTYNClRoZSBCb29rIG9mIFNoYWRvd3MuDQoNCjM5Ng0KMDA6MTk6NDMsNjAyIC0tPiAwMDoxOTo0 + NSw0MzUNClRoZSBBbmNpZW50IE9yYWNsZXMgcHJlZGljdGVkDQoNCjM5Nw0KMDA6MTk6NDUsNDQx + IC0tPiAwMDoxOTo0NywxNDENCnRocmVlIHNpZ25zIG9mIGFwb2NhbHlwc2UuDQoNCjM5OA0KMDA6 + MTk6NDcsMTQ3IC0tPiAwMDoxOTo1MCwwMjENClRoZSBmaXJzdCwgIldoZW4gdGhlIHdlYWtlc3Qg + b2YgbWVuDQoNCjM5OQ0KMDA6MTk6NTAsMjExIC0tPiAwMDoxOTo1Miw2NzINCiJyZWFjaGVzIGls + bC1nb3R0ZW4gZ2xvcnkiLA0KDQo0MDANCjAwOjE5OjUyLDY3OCAtLT4gMDA6MTk6NTQsMzc4DQoi + YW5kLCIgb2gsIEdvZCwgdGhpcyBnb2VzIG9uIGFuZCBvbi4NCg0KNDAxDQowMDoxOTo1NCwzODQg + LS0+IDAwOjE5OjU2LDA1MQ0KVGhlIGxhbmd1YWdlIGlzIGZhciB0b28NCmZsb3dlcnkgZm9yIG15 + IHRhc3RlLg0KDQo0MDINCjAwOjE5OjU2LDA1NyAtLT4gMDA6MTk6NTgsMDYyDQpCdXQgc3VmZmlj + ZSB0byBzYXksIGl0J3MNCnlvdXIgY3VycmVudCBwcmVzaWRlbnQuDQoNCjQwMw0KMDA6MTk6NTgs + MDY4IC0tPiAwMDoyMDowMCwyMDENCkNhbiB3ZSBnbyBiYWNrIHRvIHRoZSBwYXJ0DQp3aGVyZSB5 + b3Ugc2FpZCAiYXBvY2FseXBzZSI/DQoNCjQwNA0KMDA6MjA6MDAsMjA3IC0tPiAwMDoyMDowMiwx + NDANCk5vdCByZWFsbHksIEknbSBpbiBhIHJoeXRobSBoZXJlLg0KDQo0MDUNCjAwOjIwOjAyLDQy + MSAtLT4gMDA6MjA6MDMsNzQwDQpUaGUgc2Vjb25kIHNpZ24sDQoNCjQwNg0KMDA6MjA6MDMsNzQ2 + IC0tPiAwMDoyMDowNiw2MzMNCiJUaGUgbW92ZW1lbnQncyBncmVhdCBzYWdlcyBmYWxsLCINCg0K + NDA3DQowMDoyMDowNiw2MzkgLS0+IDAwOjIwOjA4LDMwNw0Kd2VsbCwgdGhhdCByZWZlcnMgdG8g + eW91ciBtb3RoZXIncyBkZWF0aA0KDQo0MDgNCjAwOjIwOjA4LDMxMyAtLT4gMDA6MjA6MTAsMjU2 + DQphbmQgdGhlIHNlbmlvciB3aXRjaGVzIHdobw0KaGF2ZSBiZWVuIGtpbGxlZCBzaW5jZS4NCg0K + NDA5DQowMDoyMDoxMCwyNjIgLS0+IDAwOjIwOjEyLDMyOQ0KT3RoZXIgd2l0Y2hlcz8gSG93IG1h + bnkgYXJlIHRoZXJlPw0KDQo0MTANCjAwOjIwOjEyLDM5OCAtLT4gMDA6MjA6MTYsMDI1DQpSZWFs + bHksIHRoaXMgd29ya3MgbXVjaA0KYmV0dGVyIGFzIGEgbW9ub2xvZ3VlLA0KDQo0MTENCjAwOjIw + OjE2LDAzMSAtLT4gMDA6MjA6MTcsNjk3DQppZiB5b3UgZG9uJ3QgbWluZC4NCg0KNDEyDQowMDoy + MDoxNyw4NDMgLS0+IDAwOjIwOjIwLDcxMQ0KVGhlIGZpbmFsIHNpZ24gaGFzbid0IGhhcHBlbmVk + IHlldC4NCg0KNDEzDQowMDoyMDoyMSwyOTQgLS0+IDAwOjIwOjIyLDg2MQ0KIldpdGggdGhlIGJs + b3Nzb21pbmcgb2YgZGVhdGgNCg0KNDE0DQowMDoyMDoyMiw4NjcgLS0+IDAwOjIwOjI1LDcyNg0K + ImNvbWVzIHRoZSBhd2FrZW5pbmcgb2YNCnRoZSBTb3VyY2Ugb2YgQWxsIEV2aWwuDQoNCjQxNQ0K + MDA6MjA6MjcsMTEyIC0tPiAwMDoyMDoyOSwzNzkNCkFuZCB0aGVuLCB3ZSBmYWxsLiINCg0KNDE2 + DQowMDoyMDoyOSw0NDggLS0+IDAwOjIwOjMxLDEzOQ0KV2VsbCwgc28sIHlvdSBjYW4gc2VlIHdo + eQ0Kd2UgZmluaXNoZWQgd2hhdCB5b3VyDQoNCjQxNw0KMDA6MjA6MzEsMTQ1IC0tPiAwMDoyMDoz + Myw2ODkNCm1vdGhlciBzdGFydGVkIHRoYXQgbmlnaHQsDQphbmQgYnJvdWdodCB5b3UgaGVyZS4N + Cg0KNDE4DQowMDoyMDozNCwxNzYgLS0+IDAwOjIwOjM2LDA1Mw0KU2hlIHdhbnRlZCBtZSBoZXJl + Pw0KDQo0MTkNCjAwOjIwOjM2LDEyMSAtLT4gMDA6MjA6MzgsMTM5DQpZZXMuIFZlcnkgbXVjaC4N + Cg0KNDIwDQowMDoyMDozOCwxNDUgLS0+IDAwOjIwOjM5LDY5MA0KU2hlIHNlbnQgeW91IHRoZSBn + cmFudCBhcHBsaWNhdGlvbiwNCg0KNDIxDQowMDoyMDozOSw2OTYgLS0+IDAwOjIwOjQxLDE3MA0K + bWFkZSBzdXJlIGl0IHdhcyBjaG9zZW4uDQoNCjQyMg0KMDA6MjA6NDEsMTc2IC0tPiAwMDoyMDo0 + Miw0NDINClNlZT8NCg0KNDIzDQowMDoyMDo0Miw0NDggLS0+IDAwOjIwOjQ0LDA0OA0KU2hlIGlz + IG91ciBzaXN0ZXIuDQoNCjQyNA0KMDA6MjA6NDQsMDU0IC0tPiAwMDoyMDo0NSw1NTMNClNvLA0K + DQo0MjUNCjAwOjIwOjQ1LDg1NyAtLT4gMDA6MjA6NDcsNDIzDQp5b3VyIG1vdGhlcidzIHNwZWxs + IGJvb2suDQoNCjQyNg0KMDA6MjA6NDgsODk1IC0tPiAwMDoyMDo1MCw1NjcNCktlZXAgaXQgc2Fm + ZS4NCg0KNDI3DQowMDoyMDo1MSwzMDkgLS0+IDAwOjIwOjUzLDU3Mg0KWW91ciBndWlkZSB0byB1 + c2luZw0KdGhlIFBvd2VyIG9mIFRocmVlIHRvDQoNCjQyOA0KMDA6MjA6NTMsNTc4IC0tPiAwMDoy + MDo1NiwxMDMNCnByb3RlY3QgdGhlIGlubm9jZW50DQphbmQgdmFucXVpc2ggZGVtb25zLg0KDQo0 + MjkNCjAwOjIwOjU2LDUwNSAtLT4gMDA6MjA6NTgsOTcyDQpZb3UgdGhyZWUgaGF2ZSA0OCBob3Vy + cyB0byBkZWNpZGUNCg0KNDMwDQowMDoyMDo1OCw5NzggLS0+IDAwOjIxOjAwLDQxMA0Kd2hldGhl + ciB5b3Ugd2lzaCB0bw0KYWNjZXB0IHlvdXIgd2l0Y2hseSBmYXRlLg0KDQo0MzENCjAwOjIxOjAw + LDQ3OSAtLT4gMDA6MjE6MDIsNDkzDQotIFdlIGdldCB0byBkZWNpZGU/DQotIE9oLCB5ZXMuDQoN + CjQzMg0KMDA6MjE6MDIsNDk5IC0tPiAwMDoyMTowNSwzMzMNCkJlaW5nIGEgd2l0Y2ggaXMgYSBm + dWxseQ0KcHJvLWNob2ljZSBlbnRlcnByaXNlLg0KDQo0MzMNCjAwOjIxOjA1LDc1MSAtLT4gMDA6 + MjE6MDcsOTE4DQpBbmQgdGhlIGRlY2lzaW9uIG11c3QgYmUgdW5hbmltb3VzLg0KDQo0MzQNCjAw + OjIxOjA3LDkyNCAtLT4gMDA6MjE6MDksNDg4DQpJZiB5b3UgcmVmdXNlLA0KDQo0MzUNCjAwOjIx + OjA5LDQ5NCAtLT4gMDA6MjE6MTMsMTI5DQpldmVyeXRoaW5nIHNpbmNlIG1hZGUgcG9zc2libGUN + CmJ5IG1hZ2ljYWwgaW50ZXJ2ZW50aW9uLi4uDQoNCjQzNg0KMDA6MjE6MTMsNDkyIC0tPiAwMDoy + MToxNSwyMTgNCldpbGwgYmUgdW5kb25lLg0KDQo0MzcNCjAwOjIxOjE1LDc4MCAtLT4gMDA6MjE6 + MTgsMTQ1DQpZb3UgZ3V5cywgdGhpcyBkZW1vbiBoYXJ2ZXN0cyB3aXRjaGVzJw0KDQo0MzgNCjAw + OjIxOjE4LDE1MSAtLT4gMDA6MjE6MjAsMTM3DQpvcmdhbnMgZm9yIGZyZWFraW5nIHNtb290aGll + cyENCg0KNDM5DQowMDoyMToyMCwxNDMgLS0+IDAwOjIxOjIxLDg5Nw0KRG9uJ3Qgd29ycnksIHRo + ZSB1bmRlcndvcmxkIGRvZXNuJ3Qga25vdw0KDQo0NDANCjAwOjIxOjIxLDkwMyAtLT4gMDA6MjE6 + MjMsMjY2DQp5b3VyIHBvd2VycyBoYXZlIGJlZW4gYXdha2VuZWQuDQoNCjQ0MQ0KMDA6MjE6Mjgs + NzY0IC0tPiAwMDoyMTozMCw1MzANCk5vIHdheS4gSSdtIG5vdCBkb2luZyB0aGlzLg0KDQo0NDIN + CjAwOjIxOjMwLDUzNiAtLT4gMDA6MjE6MzIsMzI3DQpJIGRvIG5vdCB3YW50IHRvIGVuZCB1cCBp + biBhIHNtb290aGllLg0KDQo0NDMNCjAwOjIxOjMyLDMzMyAtLT4gMDA6MjE6MzMsNjM2DQpNYWdn + aWUsIHRoaXMgaXMgb3VyIGxlZ2FjeS4NCg0KNDQ0DQowMDoyMTozMyw2NDIgLS0+IDAwOjIxOjM0 + LDk3NA0KTW9tIHdhbnRlZCB1cyB0byBkbyB0aGlzLA0KDQo0NDUNCjAwOjIxOjM0LDk4MCAtLT4g + MDA6MjE6MzYsNTgyDQphbmQgbm93IHdlIGNhbiBmaWd1cmUNCm91dCB3aG8ga2lsbGVkIGhlci4N + Cg0KNDQ2DQowMDoyMTozNiw1ODggLS0+IDAwOjIxOjM4LDgwOA0KSSdsbCwgdWgsIEknbGwgbGV0 + IHlvdQ0KdGhyZWUgaGFzaCBpdCBvdXQuDQoNCjQ0Nw0KMDA6MjE6MzgsODE0IC0tPiAwMDoyMTo0 + MCwxNDcNCklmIHlvdSBuZWVkIG1lLCBjYWxsLg0KDQo0NDgNCjAwOjIxOjQwLDI3OCAtLT4gMDA6 + MjE6NDQsMDEzDQpPciwgdWgsIHRleHQsIFNuYXAsIG9yIFR3aXR0ZXIgRE0uDQoNCjQ0OQ0KMDA6 + MjE6NDUsNDc1IC0tPiAwMDoyMTo0OSwwNzYNCldlbGwsIG9yIGp1c3QgY2FsbCBteSBuYW1lDQph + bmQgSSdsbCBtYWdpY2FsbHkgYXBwZWFyLg0KDQo0NTANCjAwOjIxOjUyLDU3MiAtLT4gMDA6MjE6 + NTQsNjU3DQpJIGp1c3Qgd2FudGVkIHRvIHNob3cgeW91IHRoZSBlZmZlY3QuDQoNCjQ1MQ0KMDA6 + MjE6NTQsNzI2IC0tPiAwMDoyMTo1Niw5MjYNClRoZXkgcHJlZmVyIEkgZ2V0IGFyb3VuZA0KDQo0 + NTINCjAwOjIxOjU2LDk5NSAtLT4gMDA6MjE6NTgsNzA3DQpsaWtlIGEgcmVndWxhciBwZXJzb24g + bm93Li4uDQoNCjQ1Mw0KMDA6MjE6NTgsODY5IC0tPiAwMDoyMjowMCwyMzkNClRvIGJsZW5kIGlu + Lg0KDQo0NTQNCjAwOjIyOjA0LDA2OCAtLT4gMDA6MjI6MDUsOTAxDQpJdCdzIGEgZm9saWUgYSBk + ZXV4LiBJdCBtdXN0IGJlLg0KDQo0NTUNCjAwOjIyOjA1LDk3MCAtLT4gMDA6MjI6MDcsMjU5DQpI + ZSBpbmR1Y2VkIGl0IHNvbWVob3cuDQoNCjQ1Ng0KMDA6MjI6MDcsMjY1IC0tPiAwMDoyMjowOSw1 + NzINCllvdSBkaWQganVzdCBzZWUgdGhhdCBndXkNCmRpc2FwcGVhciBpbnRvIHRoaW4gYWlyLCBy + aWdodD8NCg0KNDU3DQowMDoyMjowOSw2NDEgLS0+IDAwOjIyOjEyLDA0MQ0KWW91IHRoaW5rIHVz + IGFjdHVhbGx5IGJlaW5nDQp3aXRjaGVzIG1ha2VzIG1vcmUgc2Vuc2U/DQoNCjQ1OA0KMDA6MjI6 + MTIsMTEwIC0tPiAwMDoyMjoxNSwwMjkNClllYWgsIEkgZG8uIEl0IGFsbC4uLg0KDQo0NTkNCjAw + OjIyOjE1LDAzNSAtLT4gMDA6MjI6MTcsMTE4DQpNYWtlcyBzZW5zZS4NCg0KNDYwDQowMDoyMjox + NywxODEgLS0+IDAwOjIyOjE4LDUwMg0KVGhyb3VnaG91dCBoaXN0b3J5LCBzdHJvbmcgd29tZW4N + Cg0KNDYxDQowMDoyMjoxOCw1MDggLS0+IDAwOjIyOjIwLDA3MA0Kd2VyZSBjYWxsZWQgd2l0Y2hl + cywgYW5kIHRoZXkgYXJlLi4uDQoNCjQ2Mg0KMDA6MjI6MjAsMDc2IC0tPiAwMDoyMjoyMiwwMjMN + CldlIGFyZS4NCg0KNDYzDQowMDoyMjoyMiwwODYgLS0+IDAwOjIyOjI0LDA1Mw0KV2UgaGF2ZSB0 + byB1bml0ZSB0byBjaGFuZ2UNCnRoZSBwb3dlciBkeW5hbWljcywNCg0KNDY0DQowMDoyMjoyNCwx + MjIgLS0+IDAwOjIyOjI2LDkyMg0KcmlnaHQgdGhlIHNoaXAsIGNoYW5nZQ0KdGhlIGNvdXJzZSBv + ZiBodW1hbml0eS4NCg0KNDY1DQowMDoyMjozMSwyNTUgLS0+IDAwOjIyOjMzLDcyMg0KSXQncyBM + dWN5LiBTaGUgd2FudHMgbWUNCnRvIGdvIHRvIHRoZSBLYXBwYSBob3VzZS4NCg0KNDY2DQowMDoy + MjozMyw3MjggLS0+IDAwOjIyOjM2LDY2Mg0KU2VyaW91c2x5LCBubyBpbnRlcmVzdCBpbg0KY2hh + bmdpbmcgdGhlIGNvdXJzZSBvZiBodW1hbml0eT8NCg0KNDY3DQowMDoyMjozNiw2NjggLS0+IDAw + OjIyOjM4LDIzNA0KV2l0Y2hlcyBhcmVuJ3QgcmVhbC4NCg0KNDY4DQowMDoyMjozOCwzMDMgLS0+ + IDAwOjIyOjQwLDg2Ng0KVGhlcmUncyBhIHNjaWVudGlmaWMNCmV4cGxhbmF0aW9uIGZvciB0aGlz + Lg0KDQo0NjkNCjAwOjIyOjQ2LDQ3NyAtLT4gMDA6MjI6NTEsMDczDQpfDQoNCjQ3MA0KMDA6MjI6 + NTIsMzkwIC0tPiAwMDoyMjo1NCwyNjkNCl8NCg0KNDcxDQowMDoyMjo1NCwzNjMgLS0+IDAwOjIy + OjU2LDMyNA0KXw0KDQo0NzINCjAwOjIyOjU3LDEzNSAtLT4gMDA6MjI6NTgsODcwDQpfDQoNCjQ3 + Mw0KMDA6MjM6MDIsNDkwIC0tPiAwMDoyMzowNCw5NjANCk9mIGNvdXJzZSBJJ20gcmVsaWV2ZWQu + DQoNCjQ3NA0KMDA6MjM6MDUsMDI5IC0tPiAwMDoyMzowNywwNjMNCkkgbWVhbiwganVzdGljZSB3 + YXMgc2VydmVkLg0KDQo0NzUNCjAwOjIzOjA3LDEzMSAtLT4gMDA6MjM6MDksMTYzDQpUaGlzIHdh + cyBhIHdpdGNoIGh1bnQuDQoNCjQ3Ng0KMDA6MjM6MTQsODA2IC0tPiAwMDoyMzoxNiw5NzINCi0g + V2hhdC1XaGF0IGFyZSB5b3UgZG9pbmcgaGVyZT8NCi0gSSB3YXMgd29ycmllZC4NCg0KNDc3DQow + MDoyMzoxNywwNDEgLS0+IDAwOjIzOjE4LDQ3NA0KWW91IGp1c3QgcmFuIG91dC4NCg0KNDc4DQow + MDoyMzoxOCw0ODAgLS0+IDAwOjIzOjIxLDA0Nw0KT2gsIHJpZ2h0LCB1bSwgSSdtLUknbSBzb3Jy + eS4NCg0KNDc5DQowMDoyMzoyMSwxNzkgLS0+IDAwOjIzOjIyLDMyNw0KQXJlIHlvdSBva2F5Pw0K + DQo0ODANCjAwOjIzOjIyLDMzMyAtLT4gMDA6MjM6MjMsNjEyDQpZb3Uga25vdyB3aGF0Pw0KDQo0 + ODENCjAwOjIzOjI0LDMxMCAtLT4gMDA6MjM6MjUsNDQ4DQpJIGZlZWwgYmV0dGVyLg0KDQo0ODIN + CjAwOjIzOjI1LDUxNiAtLT4gMDA6MjM6MjcsNDgzDQpBbmQgSSBhbSBzb3JyeSBhYm91dCB3aGF0 + IEkgc2FpZC4NCg0KNDgzDQowMDoyMzoyNyw3NzAgLS0+IDAwOjIzOjMwLDAzNw0KQWJvdXQgeW91 + IGVuZGluZyB0aGluZ3MNCmFmdGVyIG15IG1vbSBkaWVkLg0KDQo0ODQNCjAwOjIzOjMwLDA0MyAt + LT4gMDA6MjM6MzEsNzQzDQpJIGtub3cgSSBzaHV0IHlvdSBvdXQuDQoNCjQ4NQ0KMDA6MjM6MzMs + ODI1IC0tPiAwMDoyMzozNiwxNTgNCi0gWW91IHdlcmUganVzdCBzbyBhbmdyeS4NCi0gWWVhaC4N + Cg0KNDg2DQowMDoyMzozNyw4NTcgLS0+IDAwOjIzOjM5LDYzNA0KVGhhdCdzIHdoYXQgbXkgc2lz + dGVyIHNheXMsIHRvby4NCg0KNDg3DQowMDoyMzo0MSwxNjUgLS0+IDAwOjIzOjQzLDY5OQ0KQXJl + IHlvdSByZWFsbHkuLi4NCg0KNDg4DQowMDoyMzo0Nyw1MDUgLS0+IDAwOjIzOjQ5LDAzOA0KTmlr + bz8NCg0KNDg5DQowMDoyMzo1NCwyNzggLS0+IDAwOjIzOjU1LDY0NA0KLi4uIG9rYXk/DQoNCjQ5 + MA0KMDA6MjM6NTUsNzEzIC0tPiAwMDoyMzo1Nyw5ODANClllcy4NCg0KNDkxDQowMDoyMzo1OCww + NDkgLS0+IDAwOjI0OjAxLDIxNw0KWWVzLCBJJ20gb2theS4NCg0KNDkyDQowMDoyNDowMSwyMjMg + LS0+IDAwOjI0OjAyLDc1Ng0KSSB3YW50ZWQuLi4NCg0KNDkzDQowMDoyNDowMiw4ODcgLS0+IDAw + OjI0OjA0LDIyMA0KTmlrbz8NCg0KNDk0DQowMDoyNDowNywzOTIgLS0+IDAwOjI0OjA4LDg1OA0K + T2gsIG15IEdvZCENCg0KNDk1DQowMDoyNDoxMCwxMjggLS0+IDAwOjI0OjEyLDQ2MQ0KT2theSwg + SSBnb3QgdGhpcy4NCg0KNDk2DQowMDoyNDoxNCw5MzIgLS0+IDAwOjI0OjE2LDUzMg0KLi4uIHRv + IGJlIHRoZXJlIGZvciB5b3UsDQoNCjQ5Nw0KMDA6MjQ6MTYsNjAxIC0tPiAwMDoyNDoxOCwzMzQN + CmJ1dCB0aGUgYW5nZXIganVzdCBnb3QgaW4gdGhlIHdheS4NCg0KNDk4DQowMDoyNDoxOCw0MDMg + LS0+IDAwOjI0OjIxLDQwNA0KRXhhY3RseSwgdGhlIGFuZ2VyIGdvdCBpbiB0aGUgd2F5Lg0KDQo0 + OTkNCjAwOjI0OjIyLDA5MiAtLT4gMDA6MjQ6MjYsMDI4DQpXb3csIHlvdSByZWFsbHkgZG8gc2Vl + bSBiZXR0ZXIuDQoNCjUwMA0KMDA6MjQ6MjYsMDM0IC0tPiAwMDoyNDoyNyw3MDINCkkgZmVlbCBi + ZXR0ZXIuDQoNCjUwMQ0KMDA6MjQ6MjgsNDEzIC0tPiAwMDoyNDozMCwxODMNCkxpa2UgSSd2ZSBj + b21lIG91dCBvZiBhIGZvZy4NCg0KNTAyDQowMDoyNDozMCwxODkgLS0+IDAwOjI0OjMxLDU4OA0K + SSd2ZSBtaXNzZWQgeW91Lg0KDQo1MDMNCjAwOjI0OjM2LDE1NCAtLT4gMDA6MjQ6MzgsMzg3DQot + IElzIHlvdXIgc2lzdGVyIGhvbWU/DQotIE1tLW1tLg0KDQo1MDQNCjAwOjI0OjU5LDAxMCAtLT4g + MDA6MjU6MDEsMDQzDQpIaSB0aGVyZS4NCg0KNTA1DQowMDoyNTowMSwxMTIgLS0+IDAwOjI1OjAy + LDkxMg0KQXJlIHlvdSBsb3N0Pw0KDQo1MDYNCjAwOjI1OjEwLDk4MiAtLT4gMDA6MjU6MTMsNzgw + DQpNZWw/ISBXaGVyZSBhcmUgeW91Pw0KQSBmcmlra2luZyBkZW1vbiBkb2cNCg0KNTA3DQowMDoy + NToxMyw3ODYgLS0+IDAwOjI1OjE1LDI1Mg0KanVzdCB0cmllZCB0byBlYXQgbXkgaGFpciBleHRl + bnNpb25zLg0KDQo1MDgNCjAwOjI1OjE1LDMyMSAtLT4gMDA6MjU6MTcsNzg4DQpBbmQgaGFkIGNy + YXp5IGV5ZXMgYW5kLWFuZCBncmVlbiBnb28uDQoNCjUwOQ0KMDA6MjU6MTcsODU3IC0tPiAwMDoy + NToxOSw1NTcNCkFuZCB0aGUgb25seSByZWFzb24gSQ0KZ290IGF3YXkgd2FzIGJlY2F1c2UNCg0K + NTEwDQowMDoyNToxOSw2MjYgLS0+IDAwOjI1OjIxLDc4OA0KdGhpcyBncm91cCBvZiBkcnVuaw0K + Z3V5cyBzaG93ZWQgdXAgYW5kLi4uDQoNCjUxMQ0KMDA6MjU6MjEsNzk0IC0tPiAwMDoyNToyMyw3 + MjgNClNoaCwgc2hoLCBzaGguLi4NCg0KNTEyDQowMDoyNToyMyw3OTYgLS0+IDAwOjI1OjI1LDUy + OQ0KRG9uJ3Qgc2h1c2ggbWUuDQoNCjUxMw0KMDA6MjU6MjUsNTk4IC0tPiAwMDoyNToyNyw4OTgN + CkRpZCB5b3Ugbm90IGhlYXIgbWUgc2F5IGEgZGVtb24gZG9nPw0KDQo1MTQNCjAwOjI1OjI5LDg2 + OSAtLT4gMDA6MjU6MzEsOTQ1DQpTb3Jvcml0eSBpbml0aWF0aW9uIHRoaW5nLg0KDQo1MTUNCjAw + OjI1OjM1LDE3NCAtLT4gMDA6MjU6MzcsNDA4DQpTbyBqdXN0IGNsYXJpZnkuDQoNCjUxNg0KMDA6 + MjU6MzcsNDc3IC0tPiAwMDoyNTozOSw3MTANCkV4IHNleCwgb3IgYXJlIHlvdSBhbmQNCk5pa28g + YmFjayB0b2dldGhlcj8NCg0KNTE3DQowMDoyNTozOSw3NzkgLS0+IDAwOjI1OjQxLDA0NQ0KUHJp + b3JpdGllcy4gU2hoLg0KDQo1MTgNCjAwOjI1OjQxLDA1MSAtLT4gMDA6MjU6NDIsMjg0DQpTbywg + d2hhdCBkbyB5b3UgdGhpbms/DQoNCjUxOQ0KMDA6MjU6NDIsMjkwIC0tPiAwMDoyNTo0NCw1OTEN + CkkgdGhpbmsgSSd2ZSBuZXZlciBzZWVuDQphbnl0aGluZyBsaWtlIHRoaXMgYmVmb3JlLg0KDQo1 + MjANCjAwOjI1OjQ0LDU5NyAtLT4gMDA6MjU6NDYsNzEzDQpZZWFoLCBwcmV0dHkgc3VyZSB0aGF0 + J3MgYmVjYXVzZQ0KaXQncyBzdXBlcm5hdHVyYWwgb296ZS4NCg0KNTIxDQowMDoyNTo0Niw3MTkg + LS0+IDAwOjI1OjQ5LDEyMA0KQnV0IGl0IHNlZW1zIHRvIGJlIHN1cnJvdW5kaW5nDQphIG5vbi1z + dXBlcm5hdHVyYWwgY2VsbC4NCg0KNTIyDQowMDoyNTo0OSwxODggLS0+IDAwOjI1OjUwLDY4OA0K + U29tZSBraW5kIG9mIGh5ZHJvY2hsb3JpYyBhY2lkLg0KDQo1MjMNCjAwOjI1OjUwLDc5MCAtLT4g + MDA6MjU6NTMsMjU3DQpXZWxsLCB0aGVyZSBhcmUgYWJvdXQgMSwwMDANCmRlbW9uIGRvZ3MgaW4g + dGhpcyBib29rLg0KDQo1MjQNCjAwOjI1OjUzLDI2MyAtLT4gMDA6MjU6NTQsNjIxDQpJdCBjb3Vs + ZCB0YWtlIGhvdXJzIHRvIGZpbmQgdGhlIHNwZWxsLg0KDQo1MjUNCjAwOjI1OjU0LDYyNyAtLT4g + MDA6MjU6NTcsMDYxDQpBcmUgeW91IHNlcmlvdXNseSBiZWluZyBzZXJpb3VzPw0KDQo1MjYNCjAw + OjI1OjU3LDEzMCAtLT4gMDA6MjU6NTgsNzYzDQpJIGp1c3QgYmFyZWx5IGdvdCBhd2F5IGZyb20g + dGhhdCB0aGluZy4NCg0KNTI3DQowMDoyNTo1OCw3NjkgLS0+IDAwOjI2OjAwLDQwMg0KSSdtIG5v + dCBpbnRlcmVzdGVkIGluIGh1bnRpbmcgaXQgZG93bi4NCg0KNTI4DQowMDoyNjowMCw0MDggLS0+ + IDAwOjI2OjAyLDAwOA0KV2hhdCBvdGhlciBjaG9pY2UgZG8gd2UgaGF2ZT8NCg0KNTI5DQowMDoy + NjowMiwyMDEgLS0+IDAwOjI2OjA0LDMwMQ0KVW0sIHdlIGNob29zZSBub3QgdG8gYmUgd2l0Y2hl + cywNCg0KNTMwDQowMDoyNjowNCwzNzAgLS0+IDAwOjI2OjA2LDMzNw0Kd2UgYXZvaWQgZGVtb24g + ZG9ncyB0aWxsIHRvbW9ycm93LA0KDQo1MzENCjAwOjI2OjA2LDQwNiAtLT4gMDA6MjY6MDgsMTcy + DQotIGFuZCBldmVyeXRoaW5nIGdvZXMgYmFjayB0byBub3JtYWwuDQotIEJha2luZyBzb2RhLg0K + DQo1MzINCjAwOjI2OjA4LDI0MSAtLT4gMDA6MjY6MTAsMzQxDQpJIG5lZWQgYmFraW5nIHNvZGEu + DQoNCjUzMw0KMDA6MjY6MTEsNjExIC0tPiAwMDoyNjoxNCw0MDcNCldoeSBkaWRuJ3QgeW91IHN1 + bW1vbiBtZT8NCkkgdG9sZCB5b3UgaWYgeW91IG5lZWRlZCBtZSB0byB0ZXh0Lg0KDQo1MzQNCjAw + OjI2OjE0LDQxMyAtLT4gMDA6MjY6MTUsODY4DQpTdG9wIHRhbGtpbmcsIEkgaGF2ZSBhIHF1ZXN0 + aW9uLg0KDQo1MzUNCjAwOjI2OjE1LDg3NCAtLT4gMDA6MjY6MTcsOTA4DQpJcyB0aGlzIGdvbm5h + IHNjYXI/DQoNCjUzNg0KMDA6MjY6MjEsODA1IC0tPiAwMDoyNjoyMywwNzENCkdvb2QgbmV3cywN + Cg0KNTM3DQowMDoyNjoyMywwNzcgLS0+IDAwOjI2OjI0LDYwOA0KSSdtIGEgaGVhbGVyLCBubyBz + Y2FyLg0KDQo1MzgNCjAwOjI2OjI0LDYxNCAtLT4gMDA6MjY6MjYsNjQyDQpCYWQgbmV3cywgbG9v + a3MgbGlrZQ0Kc29tZXRoaW5nIGluIHRoZSB1bmRlcndvcmxkDQoNCjUzOQ0KMDA6MjY6MjYsNjQ4 + IC0tPiAwMDoyNjoyOSwwMTUNCmtub3dzIHlvdSB0aHJlZSBoYWQNCnlvdXIgcG93ZXJzIGFjdGl2 + YXRlZC4NCg0KNTQwDQowMDoyNjoyOSwwMjEgLS0+IDAwOjI2OjMwLDE5OA0KSSB3YXMgd3Jvbmcu + DQoNCjU0MQ0KMDA6MjY6MzAsMjIyIC0tPiAwMDoyNjozMiwwMjINCklmIHlvdSdyZSB3cm9uZywg + d2hhdCdzDQp0aGUgcG9pbnQgb2YgY2FsbGluZyB5b3U/DQoNCjU0Mg0KMDA6MjY6MzIsMDI4IC0t + PiAwMDoyNjozMywzMjANCkEgcGFyYWRveCBmb3IgYW5vdGhlciBkYXkuDQoNCjU0Mw0KMDA6MjY6 + MzMsMzI2IC0tPiAwMDoyNjozNSw3NTkNCkhlcmUncyB3aGF0IEkgY2FuIHRlbGwgeW91Lg0KDQo1 + NDQNCjAwOjI2OjM1LDgyOCAtLT4gMDA6MjY6MzgsMTYyDQpBIGRlbW9uIGRvZyBhbHdheXMgY29t + ZXMNCndpdGggYSBkZW1vbiBvd25lci4NCg0KNTQ1DQowMDoyNjozOCwyMzAgLS0+IDAwOjI2OjQw + LDAzMA0KVHlwaWNhbGx5LCBhIHBvc3Nlc3NlZCBodW1hbi4NCg0KNTQ2DQowMDoyNjo0MCwwOTkg + LS0+IDAwOjI2OjQxLDg3Mw0KVGhhdCdzIHdobyB3ZSd2ZSBnb3QgdG8gZmluZC4NCg0KNTQ3DQow + MDoyNjo0MSw4NzkgLS0+IDAwOjI2OjQ0LDQ2OQ0KTm93LCBkaWQgYW55b25lIGtub3cNCndoZXJl + IHlvdSB3ZXJlIGdvaW5nDQoNCjU0OA0KMDA6MjY6NDQsNDc1IC0tPiAwMDoyNjo0NSw2MDgNCmJl + Zm9yZSB5b3Ugd2VyZSBhdHRhY2tlZD8NCg0KNTQ5DQowMDoyNjo0NSw4NzEgLS0+IDAwOjI2OjQ4 + LDIzOA0KSnVzdCBMdWN5LCB0aGUgcHJlc2lkZW50IG9mIEthcHBhLg0KDQo1NTANCjAwOjI2OjUw + LDQwOSAtLT4gMDA6MjY6NTIsNDA5DQpBbmQgSSBoZWFyZCBoZXIgdGhvdWdodHMgc2F5DQpzaGUg + aGFkIHRvIGdldCByaWQgb2YgbWUuDQoNCjU1MQ0KMDA6MjY6NTIsNDc4IC0tPiAwMDoyNjo1NCwx + MTENCkktSSB0aG91Z2h0IHNoZSBtZWFudCBjdXQgbWUgZnJvbSBydXNoLg0KDQo1NTINCjAwOjI2 + OjU0LDE4MCAtLT4gMDA6MjY6NTYsMjEzDQpPZiBjb3Vyc2UgaXQncyBoZXIuIFNvLCB3aGF0IG5v + dz8NCg0KNTUzDQowMDoyNjo1NiwyMTkgLS0+IDAwOjI2OjU4LDYxMg0KLSBJcyB0aGVyZSwgbGlr + ZSwgYSBzcGVsbCB0byBkZWZlYXQgaGVyPw0KLSBPaCwgeWVzLCBvZiBjb3Vyc2UuDQoNCjU1NA0K + MDA6MjY6NTgsNjE4IC0tPiAwMDoyNzowMCwwMTMNClNvbWV3aGVyZSBpbiB0aGF0IDIsMDAwLXBh + Z2UgYm9vaywNCg0KNTU1DQowMDoyNzowMCwwMTkgLS0+IDAwOjI3OjAyLDQxOQ0Kb3IsIHVoLCAi + dG9tZSwiIEkgc2hvdWxkIHNheS4NCg0KNTU2DQowMDoyNzowMiw1NTEgLS0+IDAwOjI3OjA1LDAx + OA0KU28sIGxldCdzIGdldCByZWFkaW5nLg0KDQo1NTcNCjAwOjI3OjA1LDAyNCAtLT4gMDA6Mjc6 + MDcsMzU4DQpPciwgdXNlIHNvZGl1bSBiaWNhcmJvbmF0ZS4NCg0KNTU4DQowMDoyNzowNyw0MjYg + LS0+IDAwOjI3OjA4LDg1OQ0KTG9vay4NCg0KNTU5DQowMDoyNzoxMCw1NjEgLS0+IDAwOjI3OjEy + LDczNQ0KLSBPaCENCi0gTGlrZSBJIHNhaWQsDQoNCjU2MA0KMDA6Mjc6MTIsNzQxIC0tPiAwMDoy + NzoxNSwzMDkNCnNvbWUga2luZCBvZiBoeWRyb2NobG9yaWMgYWNpZCBjb21wb3VuZC4NCg0KNTYx + DQowMDoyNzoxNSwzNzcgLS0+IDAwOjI3OjE3LDQ5MQ0KU28gc29kaXVtIGJpY2FyYm9uYXRlIG5l + dXRyYWxpemVzIGl0Lg0KDQo1NjINCjAwOjI3OjE4LDQxNCAtLT4gMDA6Mjc6MjEsMjgxDQpPaCwg + d2VsbCwgc2F2ZXMgYSBsb3Qgb2YgdGltZS4NCg0KNTYzDQowMDoyNzoyMSwzNTAgLS0+IDAwOjI3 + OjIyLDk1MA0KUmlnaHQgb24uIFNvIGxldCdzIGdvIGdldCByaWQgb2YgTHVjeS4NCg0KNTY0DQow + MDoyNzoyMiw5NTYgLS0+IDAwOjI3OjI0LDY4OQ0KU3RvcC4gV2UgY2FuJ3QganVzdCBnZXQgcmlk + DQpvZiB0aGUgcHJlc2lkZW50IG9mIEthcHBhLg0KDQo1NjUNCjAwOjI3OjI0LDY5NSAtLT4gMDA6 + Mjc6MjYsODYyDQpXZSBjYW4sIGlmIHNoZSdzIGEgZGVtb24NCndobyBraWxsZWQgb3VyIG1vdGhl + ci4NCg0KNTY2DQowMDoyNzoyNiw4NjggLS0+IDAwOjI3OjI5LDA5OA0KV2VsbCwgd2hhdCBpZiBz + aGUncyBub3QsIGFuZA0KeW91IG1ha2VzIHNvbWUgY3Jhenkgc2NlbmU/DQoNCjU2Nw0KMDA6Mjc6 + MjksMTA0IC0tPiAwMDoyNzozMSw3MDUNCkd1eXM/IEFyZSB5b3Ugc2VyaW91c2x5DQpzY2FyZWQg + YWJvdXQgcnVpbmluZyBydXNoPw0KDQo1NjgNCjAwOjI3OjMxLDcxMSAtLT4gMDA6Mjc6MzMsNzcz + DQotIFllYWgsIEkgYW0uDQotIEkgY2FuJ3QgYmVsaWV2ZSB0aGlzLg0KDQo1NjkNCjAwOjI3OjMz + LDc3OSAtLT4gMDA6Mjc6MzUsNjgwDQpJJ20gc29ycnkgSSB3YW50IGEgbGlmZQ0Kd2hlbiB0aGlz + IGlzIG92ZXIuDQoNCjU3MA0KMDA6Mjc6MzUsNjg2IC0tPiAwMDoyNzozNyw1NTUNCi0gV2l0aCB0 + aGVtPyBXaHk/DQotIFllYWgsIHdpdGggdGhlbS4NCg0KNTcxDQowMDoyNzozNyw1NjEgLS0+IDAw + OjI3OjM5LDg5NA0KQmVjYXVzZSB0aGV5IGRvbid0IGJsYW1lDQptZSBmb3IgTW9tJ3MgZGVhdGgu + DQoNCjU3Mg0KMDA6Mjc6NDIsNDQ5IC0tPiAwMDoyNzo0Myw5MzMNCkkgZ2V0IGl0Lg0KDQo1NzMN + CjAwOjI3OjQ0LDM3NyAtLT4gMDA6Mjc6NDcsNzc4DQpZb3UgdGhpbmsgaWYgSSdkIGFuc3dlcmVk + IG15IHBob25lLA0KDQo1NzQNCjAwOjI3OjQ3LDkxMCAtLT4gMDA6Mjc6NDksNDc2DQp5b3Ugd291 + bGQgaGF2ZSBnb3R0ZW4gaGVyZSBpbiB0aW1lLg0KDQo1NzUNCjAwOjI3OjQ5LDU0NSAtLT4gMDA6 + Mjc6NTEsMzExDQpXZWxsLCBJIGNhbiBhc3N1cmUgeW91DQoNCjU3Ng0KMDA6Mjc6NTEsMzgwIC0t + PiAwMDoyNzo1NCwyMTQNCkkgYmxhbWUgbXlzZWxmIGV2ZXJ5IGRheS4NCg0KNTc3DQowMDoyODow + NiwxMzUgLS0+IDAwOjI4OjA4LDAwNg0KV2hvJ3MgdGhlcmU/DQoNCjU3OA0KMDA6Mjg6MTMsODY5 + IC0tPiAwMDoyODoxNSwwMDINCk1hZ2dpZT8NCg0KNTc5DQowMDoyODoxNiwyMDIgLS0+IDAwOjI4 + OjE3LDYwOA0KTWFnZ2llPw0KDQo1ODANCjAwOjI4OjE4LDM0MiAtLT4gMDA6Mjg6MjAsMzY3DQpX + ZWxjb21lIHRvIEthcHBhLg0KDQo1ODENCjAwOjI4OjIwLDM3MyAtLT4gMDA6Mjg6MjQsNDA5DQpZ + b3UgYXJlIGFsbCBub3cgb2ZmaWNpYWxseQ0KYSBwYXJ0IG9mIG91ciBzaXN0ZXJob29kLg0KDQo1 + ODINCjAwOjI4OjI0LDU0NiAtLT4gMDA6Mjg6MjUsNjc5DQpDb25ncmF0dWxhdGlvbnMuDQoNCjU4 + Mw0KMDA6Mjg6MzAsNTE5IC0tPiAwMDoyODozMiw1MTkNCkNvbWUgdXBzdGFpcnMuDQoNCjU4NA0K + MDA6Mjg6MzIsNTI1IC0tPiAwMDoyODozNCwzMjUNCkkgaGF2ZSBzb21ldGhpbmcgc3BlY2lhbCBm + b3IgeW91Lg0KDQo1ODUNCjAwOjI4OjM0LDkyNiAtLT4gMDA6Mjg6MzcsNTI2DQpNYWdnaWU/DQoN + CjU4Ng0KMDA6Mjg6MzcsNTMyIC0tPiAwMDoyODo0MCw0NTkNCi0gTWFnZ2llIQ0KLSBfDQoNCjU4 + Nw0KMDA6Mjg6NDgsMjY3IC0tPiAwMDoyODo1MSw4NjgNCk1hZ2dpZT8gV2hhdCB0b29rIHlvdSBz + byBsb25nIGluIHRoZXJlPw0KDQo1ODgNCjAwOjI4OjUxLDk4NSAtLT4gMDA6Mjg6NTQsOTE5DQot + IE1hZ2dpZS4NCi0gSGV5LiBIaS4NCg0KNTg5DQowMDoyODo1NCw5MjUgLS0+IDAwOjI4OjU3LDQ0 + NA0KVW0sIEknbGwgYmUgYmFrLg0KDQo1OTANCjAwOjI5OjAyLDA4NCAtLT4gMDA6Mjk6MDQsNjg1 + DQpUaGVyZSBzaGUgaXMuIEdvIGZpbmQgTWFnZ2llLg0KDQo1OTENCjAwOjI5OjA4LDAzOCAtLT4g + MDA6Mjk6MTAsNDA1DQpPaCwgaGV5LCBNZWwuDQoNCjU5Mg0KMDA6Mjk6MTAsNDExIC0tPiAwMDoy + OToxMywxMjINCkktSSdtIHdhaXRpbmcgZm9yIHlvdXIgc2lzdGVyLA0KYnV0IHNpbmNlIHlvdSdy + ZSBoZXJlLi4uDQoNCjU5Mw0KMDA6Mjk6MTMsMTI4IC0tPiAwMDoyOToxNSwxNjcNCkJlIGdvbmUs + IGRlbW9uIQ0KDQo1OTQNCjAwOjI5OjE2LDUxNyAtLT4gMDA6Mjk6MTgsNTMyDQpXaGF0IHRoZSBo + ZWxsPw0KDQo1OTUNCjAwOjI5OjE4LDYwMCAtLT4gMDA6Mjk6MjAsODAxDQotIFlvdSdyZSBub3Qg + YSBkZW1vbj8NCi0gRXhjdXNlIG1lPw0KDQo1OTYNCjAwOjI5OjIwLDg2OSAtLT4gMDA6Mjk6MjMs + MTM2DQpVbSwgSSBqdXN0IG1lYW4gdGhlb3JldGljYWxseS4NCg0KNTk3DQowMDoyOToyMywxNDIg + LS0+IDAwOjI5OjI0LDg3Ng0KSSB0aGluayB5b3UncmUga2luZCBvZiBiaXRjaHkuDQoNCjU5OA0K + MDA6Mjk6MjYsODc3IC0tPiAwMDoyOTozMCw0NDUNCkkgd2FzIG9mZmVyaW5nIHlvdSBhIGRyYW5r + DQpmcm9tIHRoZSBzZWNyZXQgc3Rhc2gNCg0KNTk5DQowMDoyOTozMCw0NTEgLS0+IDAwOjI5OjM0 + LDA5MQ0KYmVjYXVzZSBhbGwgR3JlZWsgcGFydGllcyBhcmUNCmRyeSBub3cgc2luY2UgY29tYSBn + aXJsLg0KDQo2MDANCjAwOjI5OjM0LDExNiAtLT4gMDA6Mjk6MzUsNzE2DQpTb3JyeS4NCg0KNjAx + DQowMDoyOTozNywyMjIgLS0+IDAwOjI5OjM4LDc4OA0KWW91IHNlZW0gc28gc3RyZXNzZWQuDQoN + CjYwMg0KMDA6Mjk6NDEsNzI0IC0tPiAwMDoyOTo0Miw4MjMNCklzIGl0IHJ1c2g/DQoNCjYwMw0K + MDA6Mjk6NDIsODkxIC0tPiAwMDoyOTo0NiwyMjYNClVtLCB5ZWFoLCB5b3Uga25vdy4gTW9zdGx5 + Lg0KDQo2MDQNCjAwOjI5OjQ2LDI5NSAtLT4gMDA6Mjk6NDgsNjI4DQpZb3UgY2FyZSBzbyBtdWNo + IGFib3V0DQp3aGF0IHBlb3BsZSB0aGluay4NCg0KNjA1DQowMDoyOTo0OCw2OTcgLS0+IDAwOjI5 + OjUwLDc5Nw0KWW91IGtub3cgdGhhdCBJIHRoaW5rIHlvdSdyZSBwZXJmZWN0Lg0KDQo2MDYNCjAw + OjI5OjUzLDIzNSAtLT4gMDA6Mjk6NTQsODM1DQpDYW4gSSBraXNzIHlvdT8NCg0KNjA3DQowMDoy + OTo1NCw5MDMgLS0+IDAwOjI5OjU2LDgwMw0KT25lIGxhc3QgdGltZT8NCg0KNjA4DQowMDoyOTo1 + OCw2NDAgLS0+IDAwOjMwOjAxLDAwOA0KUHJlcGFyZSB5b3Vyc2VsZiBmb3IgdGhlIGVuZC4NCg0K + NjA5DQowMDozMDowMSwwNzYgLS0+IDAwOjMwOjAzLDMxMA0KWW91IGtub3csIEknbGwgcGFzcyBv + biB0aGUga2lzcy4NCg0KNjEwDQowMDozMDowMywzMTYgLS0+IDAwOjMwOjA1LDAxNQ0KVG9vIGJh + ZCwgeW91IGFscmVhZHkgc2FpZCB5ZXMuDQoNCjYxMQ0KMDA6MzA6MDUsMTQ3IC0tPiAwMDozMDow + OCwxNDgNCldoZW4gaXQgY29tZXMgdG8gY29uc2VudCwgSSBjYW4NCmNoYW5nZSBteSBtaW5kIGF0 + IGFueSB0aW1lLg0KDQo2MTINCjAwOjMwOjEwLDA4MCAtLT4gMDA6MzA6MTEsOTc5DQpPaCwgbXkg + R29kLCBQaWxhdGVzLg0KDQo2MTMNCjAwOjMwOjE2LDAxMyAtLT4gMDA6MzA6MTgsMjI5DQpOb3Qg + c28gZmFzdCwgTWFncy4NCg0KNjE0DQowMDozMDoxOCwyMzUgLS0+IDAwOjMwOjE5LDYwMw0KSGVs + cCENCg0KNjE1DQowMDozMDoyNyw2MzAgLS0+IDAwOjMwOjMxLDQ5OQ0KT2gsIG15IEdvZC4gT2gs + IG15IEdvZCwgaXMgaGUgZHlpbmc/DQoNCjYxNg0KMDA6MzA6MzEsNTA1IC0tPiAwMDozMDozMywz + MzANCi0gSSBkb24ndCBrbm93Lg0KLSBJcyBoZSBkeWluZz8gSGUncyBub3QgZHlpbmcsIHJpZ2h0 + Pw0KDQo2MTcNCjAwOjMwOjMzLDMzNiAtLT4gMDA6MzA6MzUsNDI1DQotIEl0J3MganVzdCB0aGUg + ZGVtb24/DQotIEkgZG9uJ3Qga25vdy4NCg0KNjE4DQowMDozMDo0NSw1ODIgLS0+IDAwOjMwOjQ3 + LDQ0OA0KT2gsIHRoYW5rIEdvZC4NCg0KNjE5DQowMDozMDo0OSw1MjEgLS0+IDAwOjMwOjUxLDE1 + Mg0KV2hhdCBoYXBwZW5lZD8NCg0KNjIwDQowMDozMDo1NSwwNTggLS0+IDAwOjMwOjU3LDU5NA0K + SSdtIGp1c3Qgc2F5aW5nLCB0aGF0IHdhcyBhIGtpc3MuDQoNCjYyMQ0KMDA6MzA6NTgsMjYxIC0t + PiAwMDozMTowMCwwMjcNCkl0IHdhcyBhbGwgdGhlIGFkcmVuYWxpbmUuDQoNCjYyMg0KMDA6MzE6 + MDAsMDk2IC0tPiAwMDozMTowMSw2NjINCkluIGZhY3QsIGFkcmVuYWxpbmUNCmRvZXNuJ3QgaGF2 + ZSBtdWNoIGVmZmVjdA0KDQo2MjMNCjAwOjMxOjAxLDY2OCAtLT4gMDA6MzE6MDMsMzY4DQpvbiBo + dW1hbiBlbW90aW9ucyBiZXNpZGVzDQp0aGUgZmVhciByZXNwb25zZS4NCg0KNjI0DQowMDozMTow + MywzNzQgLS0+IDAwOjMxOjA1LDE2Mg0KT2gsIG15IEdvZCwgaWYgeW91J2QNCmJlZW4gbXkgc2lz + dGVyIGxvbmdlciwNCg0KNjI1DQowMDozMTowNSwxNjggLS0+IDAwOjMxOjA3LDQzNQ0KSSdkIHRl + bGwgeW91IHRvIHNodXQgdXAuDQoNCjYyNg0KMDA6MzE6MDcsNTAzIC0tPiAwMDozMToxMCwzMzgN + CkhlJ3MganVzdCBub3Qgd2hvIEkgc2VlDQpteXNlbGYgd2l0aCBsb25nLXRlcm0uDQoNCjYyNw0K + MDA6MzE6MTIsMTQ5IC0tPiAwMDozMToxMyw2MDgNCk15IEdvZCwgYXJlIHlvdSBmb3IgcmVhbCBw + b3V0aW5nDQoNCjYyOA0KMDA6MzE6MTMsNjE0IC0tPiAwMDozMToxNCw5MzgNCmJlY2F1c2UgeW91 + IG1pc3NlZCBvdXQgb24gdGhlIGZpZ2h0Pw0KDQo2MjkNCjAwOjMxOjE0LDk0NCAtLT4gMDA6MzE6 + MTcsMjc4DQpJJ20gbm90IHBvdXRpbmcuIEkgZG9uJ3QgcG91dC4NCg0KNjMwDQowMDozMToxNywz + NDcgLS0+IDAwOjMxOjIwLDM4MQ0KLSBJbXBhcnRpYWwgb2JzZXJ2ZXIuIFlvdSBwb3V0Lg0KLSBZ + ZWFoLg0KDQo2MzENCjAwOjMxOjIwLDQ1MCAtLT4gMDA6MzE6MjMsMzg0DQpJdCdzIGp1c3QgSSBm + aW5hbGx5IGZpZ3VyZWQNCm91dCBob3cgdG8gZnJlZXplIHRoaW5ncywNCg0KNjMyDQowMDozMToy + Myw0NTMgLS0+IDAwOjMxOjI1LDE1Mg0KYW5kIEkgd2FzIGV4Y2l0ZWQgdG8gdHJ5IGl0Lg0KDQo2 + MzMNCjAwOjMxOjI1LDE1OCAtLT4gMDA6MzE6MjYsMzkxDQpTbyBob3cnZCB5b3UgZG8gaXQ/DQoN + CjYzNA0KMDA6MzE6MjYsMzk3IC0tPiAwMDozMToyNyw1MTcNCldoYXRldmVyLiBJdCdzIG5vdCBp + bXBvcnRhbnQuDQoNCjYzNQ0KMDA6MzE6MjcsNTIzIC0tPiAwMDozMToyOSwwNTYNCkNvbWUgb24s + IGFjdGlvbiwgcmVhY3Rpb24uDQoNCjYzNg0KMDA6MzE6MjksMDYyIC0tPiAwMDozMTozMCwyNTMN + CldoYXQgd2FzIGl0PyBXaGF0IGNoYW5nZWQ/DQoNCjYzNw0KMDA6MzE6MzAsMjU5IC0tPiAwMDoz + MTozNCwyMjgNCkhtbT8NCg0KNjM4DQowMDozMTozNSwwNjAgLS0+IDAwOjMxOjM4LDM2Ng0KSXQg + d29ya3Mgd2hlbiBJIGFtIG5vdCBhbmdyeS4NCg0KNjM5DQowMDozMTo0MCw5NzAgLS0+IDAwOjMx + OjQyLDcwMw0KT2gsIG15IEdvZC4NCg0KNjQwDQowMDozMTo0Miw3NzIgLS0+IDAwOjMxOjQ1LDAz + OQ0KWW91ciBwb3dlcnMgYXJlIGp1ZGdpbmcgeW91Lg0KDQo2NDENCjAwOjMxOjQ1LDA0NSAtLT4g + MDA6MzE6NDcsNDEyDQpIYS1oYS1oYSwgaXQncyBoaWxhcmlvdXMuDQoNCjY0Mg0KMDA6MzE6NDcs + NTQzIC0tPiAwMDozMTo0OSwxNDMNCkl0IGlzLg0KDQo2NDMNCjAwOjMxOjQ5LDIxMiAtLT4gMDA6 + MzE6NTEsOTExDQpCdXQgSSwgdWgsIGRpZCB3YW50IHRvIHNheS4uLg0KDQo2NDQNCjAwOjMxOjUz + LDUyMCAtLT4gMDA6MzE6NTYsOTE3DQpJJ20gc29ycnkgYW5kIEkgZG9uJ3QgYmxhbWUgeW91Lg0K + DQo2NDUNCjAwOjMxOjU2LDk4NiAtLT4gMDA6MzE6NTksMjUzDQpJIGJsYW1lIG15c2VsZi4NCg0K + NjQ2DQowMDozMTo1OSwzMjIgLS0+IDAwOjMyOjAxLDkyNA0KSSBrbmV3IHNvbWV0aGluZyB3YXNu + J3QNCnJpZ2h0IHRoYXQgbmlnaHQuDQoNCjY0Nw0KMDA6MzI6MDIsNzI1IC0tPiAwMDozMjowNSw2 + OTMNCkkga25ldywgYnV0IEkgc3RpbGwgd2FudGVkDQp0byBsZWF2ZSB0aGUgaG91c2UgYW5kLi4u + DQoNCjY0OA0KMDA6MzI6MDUsNjk5IC0tPiAwMDozMjowNywwNjkNClN0b3AuDQoNCjY0OQ0KMDA6 + MzI6MDgsMjY1IC0tPiAwMDozMjowOSw2NjkNCkl0J3Mgbm90IHlvdXIgZmF1bHQsIGVpdGhlci4N + Cg0KNjUwDQowMDozMjowOSw3MzIgLS0+IDAwOjMyOjExLDIzMg0KSSBzaG91bGRuJ3QgaGF2ZSBz + aHV0IHlvdSBvdXQuDQoNCjY1MQ0KMDA6MzI6MTEsMzAwIC0tPiAwMDozMjoxMywyMzQNCkkgYW0g + eW91ciBiaWcgc2lzdGVyLg0KDQo2NTINCjAwOjMyOjEzLDY0NyAtLT4gMDA6MzI6MTYsMjMzDQpJ + J20gc3VwcG9zZWQgdG8gbnVydHVyZQ0KeW91IHNvIGhhcmQsIHlvdSBrbm93Pw0KDQo2NTMNCjAw + OjMyOjE5LDAwMCAtLT4gMDA6MzI6MjEsMzA1DQpIZXksIG5vdyBzZWU/DQoNCjY1NA0KMDA6MzI6 + MjEsNTc3IC0tPiAwMDozMjoyMyw0NDQNClRoaXMgaXMgZ29vZC4NCg0KNjU1DQowMDozMjoyMyw1 + MTMgLS0+IDAwOjMyOjI1LDUxMw0KWW91IHR3byBhcmUgc28gbXVjaCBiZXR0ZXIgdG9nZXRoZXIu + DQoNCjY1Ng0KMDA6MzI6MjYsMjk2IC0tPiAwMDozMjoyOCw1ODENCk1vbSBzYWlkIHRoYXQuDQoN + CjY1Nw0KMDA6MzI6MzIsMTU1IC0tPiAwMDozMjozMyw4ODgNClNvIHdoYXQgd2FzIHNoZSBsaWtl + Pw0KDQo2NTgNCjAwOjMyOjM0LDc0MyAtLT4gMDA6MzI6MzcsNzI1DQpXZWxsLCBsdWNreSBmb3Ig + eW91LA0KSSBhbSBhIGZpcm0gYmVsaWV2ZXINCg0KNjU5DQowMDozMjozNyw3MzEgLS0+IDAwOjMy + OjM5LDY2NA0KdGhhdCBpZiBpdCdzIG5vdCBvbg0KY2FtZXJhIGl0IGRpZG4ndCBoYXBwZW4uDQoN + CjY2MA0KMDA6MzI6NDQsMzY3IC0tPiAwMDozMjo0NiwzMDANCi0gQ2FrZSENCi0gTm8sIGhpZ2hl + ciBhbmdsZS4NCg0KNjYxDQowMDozMjo0NiwzNjkgLS0+IDAwOjMyOjQ3LDgwMg0KUGxlYXNlLiBJ + dCdzIGdvaW5nIG9uIEluc3RhZ3JhbS4NCg0KNjYyDQowMDozMjo0Nyw4NzAgLS0+IDAwOjMyOjQ5 + LDI3MA0KT2gsIGRvbid0IGJlIHNpbGx5LiBZb3UgbG9vayBiZWF1dGlmdWwuDQoNCjY2Mw0KMDA6 + MzI6NDksMjc2IC0tPiAwMDozMjo1MCw2NzYNCkkgYW0gc28gcHJvdWQgb2YgeW91Lg0KDQo2NjQN + CjAwOjMyOjUyLDY0MCAtLT4gMDA6MzI6NTQsNDQyDQpJJ20gcHJvdWQgb2YgeW91IGJvdGguDQoN + CjY2NQ0KMDA6MzM6MDAsNzgzIC0tPiAwMDozMzowNCwyNDYNCllvdSBrbm93LCB3aGVuIEkgd2Fz + IG5pbmUsDQphdCBhIGJpcnRoZGF5IHBhcnR5LCBJIHdhcy4uLg0KDQo2NjYNCjAwOjMzOjA1LDA1 + NCAtLT4gMDA6MzM6MDksMDM1DQpJIHdhcyBzbyBzdXJlIHNoZSBjb250YWN0ZWQNCm1lIHRocm91 + Z2ggYSBPdWlqYSBib2FyZC4NCg0KNjY3DQowMDozMzowOSw4OTIgLS0+IDAwOjMzOjExLDY4OA0K + SGV5LCBtYXliZSBzaGUgZGlkLg0KDQo2NjgNCjAwOjMzOjEyLDU2MiAtLT4gMDA6MzM6MTQsMTI4 + DQpZb3Uga25vdywgc2hlIHByb2JhYmx5IGNvdWxkLg0KDQo2NjkNCjAwOjMzOjE0LDE5NyAtLT4g + MDA6MzM6MTYsNDA5DQpZZWFoLCBtYXliZS4NCg0KNjcwDQowMDozMzoxNywxMDggLS0+IDAwOjMz + OjE4LDc2Ng0KWW91J3JlIHJpZ2h0LiBTaGUgc2VlbXMgZ3JlYXQuDQoNCjY3MQ0KMDA6MzM6MjEs + NzgzIC0tPiAwMDozMzoyNCw1NzINCkJ1dCBzaGUgYWxzbyBsZWZ0IG1lLCBzby4uLg0KDQo2NzIN + CjAwOjMzOjI2LDkzMCAtLT4gMDA6MzM6MjgsMzY2DQpPaCwgbm8uDQoNCjY3Mw0KMDA6MzM6Mjks + MjM5IC0tPiAwMDozMzozMSw0MDYNCllvdSB3ZXJlIHJlYWxseSBsb25lbHkgZ3Jvd2luZyB1cC4N + Cg0KNjc0DQowMDozMzozMiw5NDQgLS0+IDAwOjMzOjM1LDAxNQ0KSSdtIHNvcnJ5LiBJIHJlYWQg + eW91ciB0aG91Z2h0cy4NCg0KNjc1DQowMDozMzozNSwwMjEgLS0+IDAwOjMzOjM2LDA3OQ0KWS1Z + ZWFoLg0KDQo2NzYNCjAwOjMzOjM3LDU2MSAtLT4gMDA6MzM6MzksNzU0DQpZZWFoLCBJLUkgZ3Vl + c3Mgc29tZXRpbWVzIEkgd2FzLg0KDQo2NzcNCjAwOjMzOjQyLDU5MiAtLT4gMDA6MzM6NDQsNzky + DQpJIGRlZmluaXRlbHkgZGlkbid0IGhhdmUgdGhpcy4NCg0KNjc4DQowMDozMzo0NSwxMzggLS0+ + IDAwOjMzOjQ3LDU4NA0KU29ycnkuIFRoaXMgaXMgcmlkaWN1bG91cy4NCg0KNjc5DQowMDozMzo0 + Nyw1OTAgLS0+IDAwOjMzOjQ5LDk5MA0KSSd2ZSBjcmllZCB0d2ljZSBpbiBteSBsaWZlLg0KDQo2 + ODANCjAwOjMzOjUwLDMzMyAtLT4gMDA6MzM6NTIsNjMzDQpPaCwgaXQncyBva2F5LiBXZS4uLg0K + DQo2ODENCjAwOjMzOjUyLDc2NCAtLT4gMDA6MzM6NTQsMTk3DQpXZSBjcnkgYWxsIHRoZSB0aW1l + IGFyb3VuZCBoZXJlLg0KDQo2ODINCjAwOjMzOjU0LDIwMyAtLT4gMDA6MzM6NTUsODcwDQpUb3Rh + bGx5Lg0KDQo2ODMNCjAwOjMzOjU1LDkzOCAtLT4gMDA6MzM6NTcsNTA1DQpPa2F5Lg0KDQo2ODQN + CjAwOjMzOjU4LDYzNyAtLT4gMDA6MzQ6MDIsMzc2DQpBbnl3YXksIEknbSBsZWFuaW5nIHRvd2Fy + ZHMgeWVzIHRvbW9ycm93DQoNCjY4NQ0KMDA6MzQ6MDIsNDQ1IC0tPiAwMDozNDowNCwyMzMNCm9u + IHRoZSB3aG9sZSB3aXRjaCB0aGluZywNCg0KNjg2DQowMDozNDowNCwyMzkgLS0+IDAwOjM0OjA2 + LDc3Mw0KYnV0IHdoYXRldmVyIHlvdSBib3RoDQpjaG9vc2UgSSdsbCBiZSBjb29sIHdpdGguDQoN + CjY4Nw0KMDA6MzQ6MDcsODUwIC0tPiAwMDozNDowOCw5ODMNClRoYW5rIHlvdS4NCg0KNjg4DQow + MDozNDowOSwwNTEgLS0+IDAwOjM0OjEwLDE1MQ0KSSBtZWFuLCBjb21lIG9uLg0KDQo2ODkNCjAw + OjM0OjEwLDIxOSAtLT4gMDA6MzQ6MTIsNDYxDQpZb3UgYm90aCBoYWQgbWFkDQplbmRvcnBoaW4g + cnVzaGVzLCByaWdodD8NCg0KNjkwDQowMDozNDoxMiw0NjcgLS0+IDAwOjM0OjE0LDIzNA0KVGhh + dCB3YXMgbmV4dCBsZXZlbC4NCg0KNjkxDQowMDozNDoxNCwyNDAgLS0+IDAwOjM0OjE3LDAzNw0K + QW5kIGNsZWFybHkgaXQgd2FzIE1vbSdzIGR5aW5nIHdpc2guDQoNCjY5Mg0KMDA6MzQ6MTcsNTQy + IC0tPiAwMDozNDoyMCw2NzQNClNvcnJ5LCB0aGlzIGlzIHdoYXQgc2hlIGRvZXMuDQoNCjY5Mw0K + MDA6MzQ6MjAsNjgwIC0tPiAwMDozNDoyMywwNDcNCkNhbiB3ZSBnbyBiYWNrIHRvIHdoYXRldmVy + DQp3ZSBkbywgeW91J3JlIGNvb2w/DQoNCjY5NA0KMDA6MzQ6MjQsMzkyIC0tPiAwMDozNDoyNSw2 + NTgNCkkgYW0gY29vbC4NCg0KNjk1DQowMDozNDoyNSw5NTEgLS0+IDAwOjM0OjI3LDc1MQ0KSSdt + IHRyeWluZyB0byBiZSBjb29sLg0KDQo2OTYNCjAwOjM0OjI3LDgyMCAtLT4gMDA6MzQ6MzAsMDUz + DQpJIHdhbnQgdG8gYmUgY29vbC4NCg0KNjk3DQowMDozNDozMywzMTcgLS0+IDAwOjM0OjM1LDg1 + MQ0KWW91IGFyZSB0aGUgQ2hhcm1lZCBPbmVzLA0KDQo2OTgNCjAwOjM0OjM1LDg1NyAtLT4gMDA6 + MzQ6MzcsNzAwDQp3aXRjaGVzIHdobyBhcmUgZGVzdGluZWQNCnRvIHNhdmUgdGhlIHdvcmxkLg0K + DQo2OTkNCjAwOjM0OjM3LDcwNiAtLT4gMDA6MzQ6MzksMTA1DQpUaGUgZGVtb24gd2hvIGtpbGxl + ZCBvdXIgbW90aGVyLg0KDQo3MDANCjAwOjM0OjM5LDExMSAtLT4gMDA6MzQ6NDAsNjQ0DQpXZSBj + YW4gZmlndXJlIG91dCB3aG8ga2lsbGVkIGhlci4NCg0KNzAxDQowMDozNDo0MywwMDEgLS0+IDAw + OjM0OjQ0LDczNQ0KVGhlcmUgd2FzIGljZSBhdCB0aGUgc2NlbmUuDQoNCjcwMg0KMDA6MzQ6NDQs + ODAzIC0tPiAwMDozNDo0NywwMDMNCldlIGNhbiBmaWd1cmUgb3V0IHdobyBraWxsZWQgaGVyLg0K + DQo3MDMNCjAwOjM0OjQ3LDA3MiAtLT4gMDA6MzQ6NDgsODM5DQpDb2xkIGlzIGEgY2hhcmFjdGVy + aXN0aWMuIENvbGQuDQoNCjcwNA0KMDA6MzQ6NDgsODQ1IC0tPiAwMDozNDo1MCwxNDQNClRoZXJl + IGFyZSBsaXRlcmFsbHkgdGhvdXNhbmRzIG9mDQoNCjcwNQ0KMDA6MzQ6NTAsMTUwIC0tPiAwMDoz + NDo1MSw3NzQNCmRpZmZlcmVudCBkZW1vbnMgYXNzb2NpYXRlZCB3aXRoIGNvbGQuDQoNCjcwNg0K + MDA6MzQ6NTUsMTQ3IC0tPiAwMDozNDo1OCwyMzQNCkRvIEkgbG9vayByaWdodGVvdXNseSBhbmdy + eSwNCmxpa2UgSSdkIGZpdCBpbiBhdCBhIHJhbGx5Pw0KDQo3MDcNCjAwOjM0OjU4LDI0MCAtLT4g + MDA6MzU6MDAsNjExDQpZb3UgbG9vayBnb29kLiBMaXN0ZW4sDQppdCB3YXNuJ3QgY29sZCwgcmln + aHQ/DQoNCjcwOA0KMDA6MzU6MDAsNjE3IC0tPiAwMDozNTowMiwwODMNCldoYXQ/IFNvcnJ5Lg0K + DQo3MDkNCjAwOjM1OjAyLDE1MiAtLT4gMDA6MzU6MDQsMDg1DQpJIGhhdmVuJ3Qgc2xlcHQuIEkn + bSBhIHNjaWVudGlzdC4NCg0KNzEwDQowMDozNTowNCwxNTQgLS0+IDAwOjM1OjA2LDYyMQ0KRXZp + ZGVuY2UgaXMgcmVwZWF0YWJsZSBhbmQgd2l0aA0KRGVtb24gQnJpYW4gaXQgd2Fzbid0IGNvbGQs + DQoNCjcxMQ0KMDA6MzU6MDYsNjI3IC0tPiAwMDozNTowOCw1OTMNCndoaWNoIG1lYW5zIGhlIHdh + c24ndCB0aGUNCmRlbW9uIHdobyBraWxsZWQgb3VyIG1vdGhlci4NCg0KNzEyDQowMDozNTowOCw1 + OTkgLS0+IDAwOjM1OjEwLDM2OA0KQW5kIGNyb3dzLiBZb3Ugc2FpZCB0aGVyZSB3ZXJlIGNyb3dz + LA0KDQo3MTMNCjAwOjM1OjEwLDM3NCAtLT4gMDA6MzU6MTIsNzI1DQpzbyBJIHN0YXJ0ZWQgdGhp + bmtpbmcgbWF5YmUNCnRoZXJlJ3MgYW4gb3JuaXRob2xvZ3kgYW5nbGUuDQoNCjcxNA0KMDA6MzU6 + MTIsNzMxIC0tPiAwMDozNToxNCw2OTcNClBsdXMgdGhlIGNvbGQgZmFjdG9yLi4uDQoNCjcxNQ0K + MDA6MzU6MTQsOTk4IC0tPiAwMDozNToxNiw5OTgNCldhaXQuIE1lbC4gTGV0J3MgZ2V0IE1lbC4N + Cg0KNzE2DQowMDozNToxNywwMDQgLS0+IDAwOjM1OjE4LDc3MA0KU2hlJ3MgYWxyZWFkeSBhdCB0 + aGUgcmFsbHkNCg0KNzE3DQowMDozNToxOSwxMjIgLS0+IDAwOjM1OjIxLDk2Mg0KdG8gcHJvdGVz + dCBQcm9mZXNzb3INClRoYWluZSdzIHJlaW5zdGF0ZW1lbnQuDQoNCjcxOA0KMDA6MzU6MjMsMDgx + IC0tPiAwMDozNToyNCw4MjINCk9oLCBuby4NCg0KNzE5DQowMDozNToyOSw4NDYgLS0+IDAwOjM1 + OjMyLDQ4MA0KV2UgYmVsaWV2ZSB0aGUgd29tZW4hDQpXZSBiZWxpZXZlIHRoZSB3b21lbiENCg0K + NzIwDQowMDozNTozMiw1NDkgLS0+IDAwOjM1OjM0LDI4Mg0KV2UgYmVsaWV2ZSB0aGUgd29tZW4h + DQoNCjcyMQ0KMDA6MzU6MzQsMzUxIC0tPiAwMDozNTozNiwyNTENCk5vdCBhbGwgbWVuISBOb3Qg + YWxsIG1lbiEgTm90IGFsbCBtZW4hDQoNCjcyMg0KMDA6MzU6MzYsMzE5IC0tPiAwMDozNTozOSww + NTQNCk5vdCBhbGwgbWVuISBOb3QgYWxsIG1lbiEgTm90IGFsbCBtZW4hDQoNCjcyMw0KMDA6MzU6 + NDYsNjYzIC0tPiAwMDozNTo0OSwyMzANCkl0J3MgYSBiZWF1dGlmdWwgZGF5Lg0KDQo3MjQNCjAw + OjM2OjM3LDc5OCAtLT4gMDA6MzY6NDAsMzY2DQpNZWxhbmllIFZlcmEuDQoNCjcyNQ0KMDA6MzY6 + NDIsNTE0IC0tPiAwMDozNjo0NCw0MjcNCldlIG1lZXQgYXQgbGFzdC4NCg0KNzI2DQowMDozNjo0 + OCwzMjcgLS0+IDAwOjM2OjQ5LDk1Mw0KQWNjb3JkaW5nIHRvIFRoZSBCb29rIG9mIFNoYWRvd3Ms + DQoNCjcyNw0KMDA6MzY6NDksOTU5IC0tPiAwMDozNjo1MSw3MjYNCmhpcyBkZW1vbiBuYW1lIGlz + IFRheWRldXMuDQoNCjcyOA0KMDA6MzY6NTEsNzMyIC0tPiAwMDozNjo1Myw3ODgNCkhlJ3MgYW4g + dXBwZXItbGV2ZWwgZGVtb24NCndobydzIGxpdmVkIGZvciBjZW50dXJpZXMNCg0KNzI5DQowMDoz + Njo1Myw3OTQgLS0+IDAwOjM2OjU2LDA2Nw0KZmVlZGluZyBvZmYgb2Ygc3Ryb25nIHdvbWVuLA0K + ZHJhaW5pbmcgdGhlaXIgc3RyZW5ndGguDQoNCjczMA0KMDA6MzY6NTksNDk4IC0tPiAwMDozNzow + MiwwODQNCllvdSBjYW4ndCBnbyBpbiB0aGVyZS4gSSB0b2xkIHlvdS4NCg0KNzMxDQowMDozNzow + MiwwOTAgLS0+IDAwOjM3OjAzLDc5MA0KWW91IGFyZW4ndCBhbGxvd2VkLi4uDQoNCjczMg0KMDA6 + Mzc6MDQsNDg2IC0tPiAwMDozNzowNiw0NTINCldlbGwsIGhlbGxvLg0KDQo3MzMNCjAwOjM3OjA2 + LDgzNSAtLT4gMDA6Mzc6MDgsODg5DQpTaXI/IEFyZSB5b3UuLi4NCg0KNzM0DQowMDozNzowOSwz + MDggLS0+IDAwOjM3OjEwLDc3NA0KV2VhcmluZyBhIGNvc3R1bWU/DQoNCjczNQ0KMDA6Mzc6MTAs + OTY4IC0tPiAwMDozNzoxNCwzMDMNCk5vLCBDYW1lcm9uLCBJJ20gbm90IHdlYXJpbmcgYSBjb3N0 + dW1lLg0KDQo3MzYNCjAwOjM3OjE3LDQ5NCAtLT4gMDA6Mzc6MjAsNDYxDQpPaCwgY29tZSBvbiwg + Z2lybHMuIEhlJ3MgYXdmdWwuDQoNCjczNw0KMDA6Mzc6MjgsODM0IC0tPiAwMDozNzozMCw5MzQN + Cldob2EuIFJpZ2h0Pw0KDQo3MzgNCjAwOjM3OjMxLDI2OCAtLT4gMDA6Mzc6MzMsMzAxDQpJIGNh + bid0IGhvbGQgaGltLiBIZSdzIHRvbyBzdHJvbmcuDQoNCjczOQ0KMDA6Mzc6MzMsMzA3IC0tPiAw + MDozNzozNCw1NzMNCkhvdyBkbyB3ZSBnZXQgcmlkIG9mIGhpbT8NCg0KNzQwDQowMDozNzozNCw2 + NDEgLS0+IDAwOjM3OjM2LDA3NA0KSS1JIGhhdmUgdGhlIHNwZWxsIGhlcmUuDQoNCjc0MQ0KMDA6 + Mzc6MzYsMDgwIC0tPiAwMDozNzozOCwyMDANCldlJ3JlLXdlJ3JlIHN1cHBvc2VkDQp0byBjYWxs + IEhhcnJ5LiBIYXJyeSENCg0KNzQyDQowMDozNzozOSw0MDcgLS0+IDAwOjM3OjQwLDg0MA0KT2gs + IGRlYXIuDQoNCjc0Mw0KMDA6Mzc6NDAsODQ2IC0tPiAwMDozNzo0MiwyNzkNCkdvLiBIZWFsIGhp + bS4NCg0KNzQ0DQowMDozNzo0MiwzNDcgLS0+IDAwOjM3OjQzLDk4MA0KSHVycnkhDQoNCjc0NQ0K + MDA6Mzc6NDcsMTI4IC0tPiAwMDozNzo0OSw3MjkNClRpbW9yIHR1dXMgZm9ydGl0dWRlDQoNCjc0 + Ng0KMDA6Mzc6NDksNzM1IC0tPiAwMDozNzo1MSw5MDINCnR1YSBmZW1pbmFlIHVsdGltdW0gZXhp + dGl1bS4NCg0KNzQ3DQowMDozNzo1MSw5MDggLS0+IDAwOjM3OjU0LDA5Mw0KVGhlIHNwZWxsIHdv + bid0IHdvcmsgdW5sZXNzDQp5b3UgdXNlIHRoZSBQb3dlciBvZiBUaHJlZS4NCg0KNzQ4DQowMDoz + Nzo1NCwwOTkgLS0+IDAwOjM3OjU3LDYwMQ0KRWl0aGVyIGFjY2VwdCB5b3VyIGRlc3Rpbnkgb3IN + CmdvIGJhY2sgdG8geW91ciBub3JtYWwgbGl2ZXMuDQoNCjc0OQ0KMDA6Mzc6NTcsNjcwIC0tPiAw + MDozNzo1OSwwNzkNClJpZ2h0LCBidXQgeW91IHNhaWQgYWxsIG1hZ2ljYWwNCg0KNzUwDQowMDoz + Nzo1OSwwODUgLS0+IDAwOjM4OjAwLDc2Ng0KaW50ZXJ2ZW50aW9uIHJldmVyc2VzIGlmIHdlIHJl + ZnVzZS4NCg0KNzUxDQowMDozODowMCw3NzcgLS0+IDAwOjM4OjAzLDkwMw0KWW91IHdvbid0IHJl + bWVtYmVyIGFueSBvZiB0aGlzLA0KaW5jbHVkaW5nIG1lZXRpbmcgZWFjaCBvdGhlci4NCg0KNzUy + DQowMDozODowMyw5MDkgLS0+IDAwOjM4OjA2LDQxMA0KT2theS4gWW91IGtub3cgSSdtIGluLg0K + DQo3NTMNCjAwOjM4OjA2LDQ3OSAtLT4gMDA6Mzg6MDgsNjEyDQpJIHdhbnQgdG8ga25vdyB5b3Ug + Z3V5cw0KDQo3NTQNCjAwOjM4OjA4LDY4MSAtLT4gMDA6Mzg6MTEsNzkxDQphbmQgZmlndXJlIG91 + dCB0aGlzDQp3aG9sZSB3aXRjaGNyYWZ0IHRoaW5nDQoNCjc1NQ0KMDA6Mzg6MTEsNzk3IC0tPiAw + MDozODoxMyw0MzcNCm9uIGEgbW9sZWN1bGFyIGxldmVsIGFuZCBnZXQgYSBmcmVha2luZw0KDQo3 + NTYNCjAwOjM4OjEzLDQ0MyAtLT4gMDA6Mzg6MTUsMjc0DQpOb2JlbCBQcml6ZSwgc28geWVhaCwg + bWUsIHRvby4NCg0KNzU3DQowMDozODoxNSw3NTUgLS0+IDAwOjM4OjE3LDg1NQ0KT2guIE1hZ2dp + ZSENCg0KNzU4DQowMDozODoxNyw5MjMgLS0+IDAwOjM4OjIwLDAwNA0KT2theSwgZmluZSEgSSdt + IGluISBJJ20gaW4uDQoNCjc1OQ0KMDA6Mzg6MjAsMDEwIC0tPiAwMDozODoyMSw1NDYNCkh1cnJ5 + LiBZb3UgaGF2ZSB0byBqb2luIGhhbmRzLg0KDQo3NjANCjAwOjM4OjQ0LDA0MSAtLT4gMDA6Mzg6 + NDUsMzc0DQpJIGNhbid0IGJyZWF0aGUuDQoNCjc2MQ0KMDA6Mzg6NDUsMzgwIC0tPiAwMDozODo0 + NywxNDYNCk1hY3ksIHVzZSB5b3VyIHBvd2VyLg0KDQo3NjINCjAwOjM4OjQ3LDI3OCAtLT4gMDA6 + Mzg6NDgsNzc3DQpEcmF3IHlvdXIgc2lzdGVycyB0byB5b3UuDQoNCjc2Mw0KMDA6Mzg6NDgsODQ2 + IC0tPiAwMDozODo1MCw3NzkNCkktSS4uLg0KDQo3NjQNCjAwOjM4OjU3LDAyMSAtLT4gMDA6Mzk6 + MDEsNDE3DQpUaW1vciB0dXVzIGZvcnRpdHVkZSB0dWENCmZlbWluYWUgdWx0aW11bSBleGl0aXVt + Lg0KDQo3NjUNCjAwOjM5OjAyLDEyNiAtLT4gMDA6Mzk6MDUsNzU3DQpUaW1vciB0dXVzIGZvcnRp + dHVkZQ0KdHVhIGZlbWluYWUgdWx0aW11bSBleGl0aXVtLg0KDQo3NjYNCjAwOjM5OjA1LDg2MyAt + LT4gMDA6Mzk6MDksNTk4DQpUaW1vciB0dXVzIGZvcnRpdHVkZSB0dWENCmZlbWluYWUgdWx0aW11 + bSBleGl0aXVtLg0KDQo3NjcNCjAwOjM5OjEwLDE4MiAtLT4gMDA6Mzk6MTQsNDAzDQpUaW1vciB0 + dXVzIGZvcnRpdHVkZSB0dWENCmZlbWluYWUgdWx0aW11bSBleGl0aXVtLg0KDQo3NjgNCjAwOjM5 + OjIyLDM4MCAtLT4gMDA6Mzk6MjQsNjM0DQpUaGF0J3MgZm9yIGtpbGxpbmcgb3VyIG1vdGhlci4N + Cg0KNzY5DQowMDozOToyNCw3MTYgLS0+IDAwOjM5OjI2LDk4Mw0KWW91IHRoaW5rIEkga2lsbGVk + IGhlcj8NCg0KNzcwDQowMDozOToyNyw2ODUgLS0+IDAwOjM5OjMwLDgxOQ0KWW91IHBvb3IsIHN0 + dXBpZCBnaXJsLg0KDQo3NzENCjAwOjM5OjMwLDg4OCAtLT4gMDA6Mzk6MzIsODU1DQpOb3cuLi4N + Cg0KNzcyDQowMDozOTozMiw5MjMgLS0+IDAwOjM5OjM1LDA5MA0KSXQncyBiZWd1bi4NCg0KNzcz + DQowMDozOTo0NCw5NzggLS0+IDAwOjM5OjQ3LDI2OQ0KLSBJcyBoZS4uLj8NCi0gRGVhZD8NCg0K + Nzc0DQowMDozOTo0OCwxNDIgLS0+IDAwOjM5OjQ5LDY3MQ0KWWVzLg0KDQo3NzUNCjAwOjM5OjQ5 + LDc0MCAtLT4gMDA6Mzk6NTEsNjQwDQpXaHkgZGlkbid0IGhlIGRpc2FwcGVhciwgdGhlbj8NCg0K + Nzc2DQowMDozOTo1MiwzMTUgLS0+IDAwOjM5OjUzLDU3MQ0KT2gsIG5vLg0KDQo3NzcNCjAwOjM5 + OjUzLDU3NyAtLT4gMDA6Mzk6NTUsNTQ0DQpUaGlzIG11c3QgYmUgdGhlIGtpbmQgb2YNCmRlbW9u + IHdoZXJlIHlvdSBoYXZlIHRvIGRvDQoNCjc3OA0KMDA6Mzk6NTUsNTUwIC0tPiAwMDozOTo1OCwy + MTcNCm9uZSBsYXN0IHRoaW5nIHRvIGdldCBoaW0gdG8gZGlzYXBwZWFyLg0KDQo3NzkNCjAwOjM5 + OjU4LDM0OSAtLT4gMDA6NDA6MDAsMTQ5DQpDcmFjayB0aGUgbmVjaywgcmVtb3ZlIHRoZSBleWVi + YWxscywNCg0KNzgwDQowMDo0MDowMCwyMTcgLS0+IDAwOjQwOjAxLDg1MA0KZWF0IHRoZSBpbnRl + c3RpbmUuDQoNCjc4MQ0KMDA6NDA6MDUsODkwIC0tPiAwMDo0MDowOCw0OTANCk9ubHkga2lkZGlu + Zy4gU29tZXRpbWVzDQppdCBqdXN0IHRha2VzIGEgbWludXRlLg0KDQo3ODINCjAwOjQwOjA5LDA5 + MCAtLT4gMDA6NDA6MTAsNDkyDQpXaGF0IHdhcyB0aGF0Pw0KDQo3ODMNCjAwOjQwOjEzLDUyNyAt + LT4gMDA6NDA6MTUsMzYwDQpEb24ndCB3b3JyeS4gSSdsbCB3aXBlIGhpcyBtZW1vcnkuDQoNCjc4 + NA0KMDA6NDA6MTUsMzY2IC0tPiAwMDo0MDoxNywyMzINCk5vLiBEb24ndC4NCg0KNzg1DQowMDo0 + MDoxNywzMDEgLS0+IDAwOjQwOjE4LDczNA0KV2UgaGF2ZSB0by4gVGhhdCdzIGhvdyBpdCdzIGRv + bmUuDQoNCjc4Ng0KMDA6NDA6MTgsODAzIC0tPiAwMDo0MDoyMCwwNjgNCk1vcnRhbHMgbXVzdG4n + dCBrbm93Lg0KDQo3ODcNCjAwOjQwOjIwLDEzNyAtLT4gMDA6NDA6MjIsNDcxDQpIYXZlbid0IHlv + dSBldmVyIHNlZW4gYSBzdXBlcmhlcm8gbW92aWU/DQoNCjc4OA0KMDA6NDA6MjIsNTQwIC0tPiAw + MDo0MDoyNCw0NzMNCkxldCBoaW0gdGVsbCBwZW9wbGUuDQoNCjc4OQ0KMDA6NDA6MjQsNTQyIC0t + PiAwMDo0MDoyNiw5NzUNCk5vIG9uZSB3aWxsIGJlbGlldmUNCmFub3RoZXIgaHlzdGVyaWNhbCBt + YW4uDQoNCjc5MA0KMDA6NDA6MjcsMDQ0IC0tPiAwMDo0MDoyOSw5OTINClRydWUuIEl0J3MgYSAi + aGUgc2FpZCwNCnNoZSBzYWlkIiBzaXR1YXRpb24uDQoNCjc5MQ0KMDA6NDA6MjksOTk4IC0tPiAw + MDo0MDozMSwzMTMNClRocmVlIHNoZXMsIGluIGZhY3QuDQoNCjc5Mg0KMDA6NDA6MzEsMzE5IC0t + PiAwMDo0MDozMiw5NTINClNvIGRvbid0IG1lc3Mgd2l0aCB1cywgQ2FtLg0KDQo3OTMNCjAwOjQw + OjMzLDA4MyAtLT4gMDA6NDA6MzUsMDE3DQpHbyBob21lIGFuZCBjaGFuZ2UgeW91ciBraGFraXMu + DQoNCjc5NA0KMDA6NDA6NDYsOTY0IC0tPiAwMDo0MDo1MCwyNjUNCi0gQXJlIHlvdSBzdXJlIEkg + Y2FuIHN0YXkgaGVyZT8NCi0gWWVhaC4NCg0KNzk1DQowMDo0MDo1MSw5NTYgLS0+IDAwOjQwOjU1 + LDE1MA0KQW5kIHdlJ3JlIHNpc3RlcnMsIHNvLi4uDQoNCjc5Ng0KMDA6NDA6NTYsMTczIC0tPiAw + MDo0MDo1Nyw3MzkNCllvdSBkb24ndCBoYXZlIHRvIGJlIGFsb25lIGFueW1vcmUsDQoNCjc5Nw0K + MDA6NDA6NTcsODA4IC0tPiAwMDo0MDo1OSwyNDENCmV2ZW4gd2hlbiB5b3Ugd2FudCB0byBiZQ0K + DQo3OTgNCjAwOjQwOjU5LDI0NyAtLT4gMDA6NDE6MDIsMTE0DQpiZWNhdXNlIEknbSB3YXJuaW5n + IHlvdQ0Kbm93LCBNZWwgYW5kIEkgYXJlIGEgbG90Lg0KDQo3OTkNCjAwOjQxOjAzLDIxOCAtLT4g + MDA6NDE6MDQsNzE1DQpJIGZvdW5kIGl0Lg0KDQo4MDANCjAwOjQxOjA1LDYwNSAtLT4gMDA6NDE6 + MDcsOTM5DQpMZXQncyBzZWUgaWYgaXQgd29ya3MuDQoNCjgwMQ0KMDA6NDE6MTQsNDA0IC0tPiAw + MDo0MToxNSw2NzINCk1vbT8NCg0KODAyDQowMDo0MToxNSw5MjggLS0+IDAwOjQxOjE3LDc5NA0K + QXJlIHlvdSB0aGVyZT8NCg0KODAzDQowMDo0MToyOCw0MzkgLS0+IDAwOjQxOjMwLDQ3Mg0KIkRv + bid0LiIgRG9uJ3Qgd2hhdD8NCg0KODA0DQowMDo0MTozNCwzNzggLS0+IDAwOjQxOjM1LDg3OA0K + IkRvbid0IHRydXN0Li4uIg0KDQo4MDUNCjAwOjQxOjM1LDk0NiAtLT4gMDA6NDE6MzgsOTgxDQoi + SC1BLVItUi4uLiINCg0KODA2DQowMDo0MTozOSwwNDkgLS0+IDAwOjQxOjQwLDYxNg0KSGFycnk/ + IQ0KDQo4MDcNCjAwOjQxOjQwLDYyMiAtLT4gMDA6NDE6NDIsMDAxDQpMYWRpZXMuDQoNCjgwOA0K + MDA6NDE6NDYsNjI0IC0tPiAwMDo0MTo0OCw3OTANCkknbSByaWdodCBoZXJlLg0KDQo4MDkNCjAw + OjQxOjUxLDU2MiAtLT4gMDA6NDE6NTUsMzM1DQotIFN5bmNlZCBhbmQgY29ycmVjdGVkIGJ5IG1l + ZHZpZGVjZWswMDcgLQ0KLSB3d3cuYWRkaWM3ZWQuY29tIC0NCg0K + headers: + CF-RAY: + - 8d1e5299edebcbd3-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Disposition: + - attachment; filename="Charmed (2018) 1x01 - Pilot.PLUTONiUM.en-en.srt" + Content-Type: + - text/srt;charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:29 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=j8VAyO14hClOBOuwQ9frokCsmrCXKDdM28Vqu7Ydl0Xd%2B8o20FoXTqdxHrxiASO%2FTn9m3f7lCzB0i4hNFlVfmULqfUjgwkaEWm4V5giE1j2oGmtuXV5kZcvMUKWAuAP6ItK4yWqC"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + X-Robots-Tag: + - noindex + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_episode.yaml b/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_episode.yaml new file mode 100644 index 00000000..57df0f50 --- /dev/null +++ b/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_episode.yaml @@ -0,0 +1,837 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Fear+the+Walking+Dead+%28None%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8d1e526c8d39cfcd-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:21 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=sUXy%2Bhbaezw9B1%2BpjOB4bt7Me0TwgHTx5PE8SlWlAWFx4fQFw%2BvssnznrqLRLh9b1r9EmPajqX4vn9k0KGb%2FgX3JH%2FAu4VsTSms%2FMYriyU%2Fh4B1AH%2BBdj%2FyyMeZzZUsUA0xHP3hG"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=ii50mhp07ll8ct96ht4qdbe4hl; path=/; HttpOnly + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=ii50mhp07ll8ct96ht4qdbe4hl + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Fear+the+Walking+Dead + response: + body: + string: '[{"show_id":54,"show_name":"Fear the Walking Dead"}]' + headers: + CF-RAY: + - 8d1e526dbabac901-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:22 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=mJb2PiBhz287fom2lWGHgssrdMxBukASmMKidHFev4tDRcFWvPOG6svUWTfOSH%2BMTmWXD19DAMt%2B%2F3iFYtR9qV2b4T4vleBtIw%2FXQlZfDmUFJj7LFSAoJi7Tr2MUuFW1nIQGXVKW"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '52' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=ii50mhp07ll8ct96ht4qdbe4hl + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/54 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e526eba87cc49-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:22 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4961 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=SIH5%2BcfxGunxTGv7DcQnm%2B6uHVcnT9whX4gNpN1PpsJbakMsAyreomAvUrq5ibax1P5mGLhiJqtfplQICnDbHnfgEDZgLffdX7MEbSL%2BWsh27FkXEuFDOjrLdpSopjal6%2B4D2K0s"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=ii50mhp07ll8ct96ht4qdbe4hl + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4961 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e526fe8383145-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:22 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4961/fear-the-walking-dead-5x05-the-end-of-everything + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=wQmMuwQlxyERw9nsn1XPDxEV7wZc%2Bb5pBJbjIaFSLl7PysYd3pRoj1NfZNfg2I5VXkGbFJ40Njt9OvPN%2B%2BirZq6UPFASYJPFKcsAQBvI7RkglfHaTh%2BH7tOjSfkY%2FhP8tDTgwxG9"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=ii50mhp07ll8ct96ht4qdbe4hl + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4961/fear-the-walking-dead-5x05-the-end-of-everything + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Fear the Walking + Dead 5x05 - The End of Everything - Subtitulamos.tv - Subt\xEDtulos de series\n + \ \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Fear + the Walking Dead

\n
\n
\n
\n

The + End of Everything

\n
(5x05)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 3\n 4\n 5\n
\n
\n
\n EPISODIO\n + \
\n 1\n 5\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 269\n + \ descargas\n
\n
\n
\n \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

TBS/AFG

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n elchiqui63\n + \ \n
\n
\n \n + De Addic7ed sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n\n
\n \n

Comentarios + ({{comments.length}})

\n \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n
\n + \
\n \n
\n
\n + \
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e5271193ccbe8-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:22 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=oVsHy%2BqfqtdggbTk1xqQIpXWnRILJzKsPK8u%2FTawXuPRDzW20P%2F%2BDdQ6PSICiZ48GiE%2BZ8T6cbVxJOxKU%2FgSbNRekIz142HQ0CgHPkWNsuM3S6M8q3FO7SZQ8YlsjE2s7NhmthUM"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '18826' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=ii50mhp07ll8ct96ht4qdbe4hl + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/189/fear-the-walking-dead-3x01-eye-of-the-beholder + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Fear the Walking + Dead 3x01 - Eye of the Beholder - Subtitulamos.tv - Subt\xEDtulos de series\n + \ \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Fear + the Walking Dead

\n
\n
\n
\n

Eye + of the Beholder

\n
(3x01)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 3\n 4\n 5\n
\n
\n
\n + \ EPISODIO\n + \
\n 1\n 9\n 11\n 12\n 13\n 14\n 15\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n + \ 740\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

SVA/AVS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n ciudadela\n + \ \n
\n
\n \n + De addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

SVA/AVS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e52731f758686-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:23 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=4BkNbKXIJespQGDwktpywUg7WhXdk74dmjNAvdGh1t6tDtXiXpSwoP24QOvJF2bBBDJbChvNZzmeYRhdqv6FkEqPRDizbQP%2FVX5nDTcBInS9VMpG%2BzmYPYqWdyHOf0gZQSSA85oh"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '22899' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_language.yaml b/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_language.yaml new file mode 100644 index 00000000..ba284840 --- /dev/null +++ b/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_language.yaml @@ -0,0 +1,1071 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Doctor+Who+%282005%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8d1e527668c8215a-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:23 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=toCkogi0Evgh6vDyE8Kq9I0PUxEm7PLQK8G20VcAmLJGNv0wfvGxPyq1rYLjB%2F1aAAtCnMNagXLiwEfGw1tCDPAKVTvwg6%2B926Kxz%2FqCkRxi2yvTZ8BkLFEwlbasfeu6rGZWKng9"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=b4394qof1hvho4rjghi9j1gcae; path=/; HttpOnly + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=b4394qof1hvho4rjghi9j1gcae + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Doctor+Who + response: + body: + string: '[{"show_id":233,"show_name":"Doctor Who"}]' + headers: + CF-RAY: + - 8d1e52776e533147-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:23 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=3iRwIv85mSq3wGLJz9Fh3DT%2BeZduymWavG6eYoEnNCboA%2FXxcT1%2FIk5lEcFeVDdrLssGqFIzlTgOXqH7sStPual7aLnqk0Fh2hHXZAzfHxoZIoydj1Xr0oyL9E8rgYKJFcz6SzEi"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '42' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=b4394qof1hvho4rjghi9j1gcae + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/233 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e5278782e86ba-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:23 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/9689 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=XmZQoaUBZl5ibIoVQBUn3qG3pfdOGANegmxOkbYXpwyIYs9ODWOqUO8S8e31POY8lenQgCbUBFrhSjBrBE%2Fij23fHK%2B%2BkApVo9ePqB%2Ffv2ra6P%2F%2FWzCnJUPOF7Ryp8RPYsghAL9m"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=b4394qof1hvho4rjghi9j1gcae + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/9689 + response: + body: + string: '' + headers: + CF-RAY: + - 8d1e5279784f3682-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:24 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/9689/doctor-who-13x99-the-power-of-the-doctor + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=CEPyhHWgrvnGwK%2BzuANq1hhDOnczLzWkdzjgVcXQX6nPa5dWFC1C%2BbsJlj79jPltB0gSNNwfMF5d0QFK4TJnz%2BjPgmxQvQiZUmwSWs5TWonXRKezh7LnxBoSBPN5z99Eb4GOO1Qm"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=b4394qof1hvho4rjghi9j1gcae + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/9689/doctor-who-13x99-the-power-of-the-doctor + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Doctor Who + 13x99 - The Power of the Doctor - Subtitulamos.tv - Subt\xEDtulos de series\n + \ \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Doctor + Who

\n
\n
\n
\n

The Power of the Doctor

\n + \
(13x99)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n 13\n
\n
\n
\n EPISODIO\n + \
\n 0\n 1\n 2\n 3\n 4\n 5\n 6\n 97\n 98\n 99\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 506\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n \n + \
\n

versi\xF3n

\n

KETTLE/MiNX/MeGusta

\n + \
\n \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n grimya\n + \ \n
\n
\n \n + De Addic7ed, sin acotaciones. Sincro de firefly.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n \n\n + \
Espa\xF1ol + (Espa\xF1a)
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

KETTLE/MiNX/MeGusta

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

GGEZ/ION10

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n carochristie\n + \ \n
\n
\n \n + Los traducidos aqu\xED, tiempos de Addic7ed. Gracias a Se7enOfNin9.\n \n + \
\n
\n
\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

NTb

\n + \
\n \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n marilynbrown2\n + \ \n
\n
\n \n + Subt\xEDtulos traducidos aqu\xED, sincronizados para AMZN WEBRip NTb (720p + y 1080p).\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

KETTLE/MiNX/MeGusta

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 3%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e527b2827c906-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:24 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=J9Mi1agfk8t1tQn3utEq7R0GqbYxEb8XPuPyBhQCYiSQR2nmQYnETeua%2BeKNuLcl6ozM%2BTIaY1RZfe3SN3bFC7XHp1QResLx60EOvX7pXq6tGk9%2BzQf%2FE4xEC%2B14ga77ApFJEMu9"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '33745' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=b4394qof1hvho4rjghi9j1gcae + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/8685/doctor-who-13x03-chapter-three-once-upon-time + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n Doctor Who + 13x03 - Chapter Three: Once, Upon Time - Subtitulamos.tv - Subt\xEDtulos de + series\n \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

Doctor + Who

\n
\n
\n
\n

Chapter Three: Once, Upon + Time

\n
(13x03)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n 13\n
\n
\n
\n EPISODIO\n + \
\n 0\n 1\n 2\n 3\n 4\n 5\n 6\n 97\n 98\n 99\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n + \ 3 101\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

UKTV/TORRENTGALAXY

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n ClaraTL\n + \ \n
\n
\n \n + De iPlayer, sin colores, sin acotaciones, l\xEDneas de dialogo y para cr\xE9ditos + a\xF1adidas.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

UKTV/TORRENTGALAXY

\n + \
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

ION10/GOSSIP

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n marilynbrown2\n + \ \n
\n
\n \n + Subt\xEDtulos traducidos aqu\xED, sincronizados para WEBRip ION10 y GOSSIP + (720p y 1080p).\n \n
\n + \
\n
\n
\n + \
\n
\n
\n\n
\n \n

Comentarios + ({{comments.length}})

\n \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n
\n + \
\n \n
\n
\n + \
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8d1e527d9c3c2f8d-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:24 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=xkgAHLmMfogI0Vzd6NdvrILYaVACvFKvLrNP%2F4%2FHKN%2Bi%2Bp0nzBIl20ELkwP%2BswkQqd02GWC%2FtXFpVHk9xArJ7d%2FfkQ4R7%2FFqKJnEA5jsgqpkYyuq9hz%2BsnyzA0cpmNn8UwV6xJtX"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '26976' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/subtitulamos/test_download_subtitle_not_exist.yaml b/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_season.yaml similarity index 95% rename from tests/cassettes/subtitulamos/test_download_subtitle_not_exist.yaml rename to tests/cassettes/subtitulamos/test_list_subtitles_not_exist_season.yaml index 50b9a56c..3bc73407 100644 --- a/tests/cassettes/subtitulamos/test_download_subtitle_not_exist.yaml +++ b/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_season.yaml @@ -19,7 +19,7 @@ interactions: string: '[]' headers: CF-RAY: - - 8ce99493b80386c2-MAD + - 8d1e52c0aa0a3846-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -27,7 +27,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:06 GMT + - Sun, 13 Oct 2024 09:32:35 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -35,17 +35,19 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=pvGf3BTMEtEEtUY300hx5ruulqLS8bX7K57ocXRD%2F9ZN8zEYluCAbM3j%2B33YR%2BW1EFMs4eBc6CRJ5ZyhuMNYclNighZHI2hauxymGT%2FZv4G1KqY3pIYU7NTU%2Bnq%2B4ECSkUcHrOVo"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=KD9uxxjnyFEVsC0BWwfauW50ayV8b57ouKpGJZJZ0LweuaIGEp6loxfGgU8AsXk9LrCtLBL7GoXAbjcGu0xqalWpdpQKJ3XDqVM25Fvaqxs0TUqwJkwo%2FCKpCcPYGFeaq%2BH7FN8V"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Set-Cookie: - - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j; path=/; HttpOnly + - PHPSESSID=sto55oeln8j362p3hnka97s5v7; path=/; HttpOnly Speculation-Rules: - '"/cdn-cgi/speculation"' Transfer-Encoding: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC content-length: @@ -63,7 +65,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j + - PHPSESSID=sto55oeln8j362p3hnka97s5v7 Referer: - https://www.subtitulamos.tv User-Agent: @@ -75,7 +77,7 @@ interactions: string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' headers: CF-RAY: - - 8ce99494ccb0214e-MAD + - 8d1e52c1ad4d666f-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -83,7 +85,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:06 GMT + - Sun, 13 Oct 2024 09:32:35 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -91,7 +93,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=YEjbRaMgf6CmfjuBzQ87cUCd0BI8CkS2qUPb3FmntsBR90eS2116UfArSyyAu%2BaMN7n8x6mdBzZ%2FfNyZO32TEZZBOhY8xvzb2ro7%2FFFjQ2cS6oTOZ25ZyUOIWRdnc2dB2P0l290o"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=K3fTmyrcL0J2V6%2BFLCxCegkcz4buGBbI1fpMwuPpMWkGWKkgOrTHeKr%2FcyH%2BornjTz0phX2hXe8Sx%2FHuX3eZ%2BNZ%2FCPtTCIifPsAKdqPJ%2F3%2FKBBkKgGClXhuyLf8304vAjY9TddFa"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -100,6 +102,8 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC content-length: @@ -117,7 +121,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j + - PHPSESSID=sto55oeln8j362p3hnka97s5v7 Referer: - https://www.subtitulamos.tv User-Agent: @@ -128,10 +132,8 @@ interactions: body: string: '' headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce99495ea322180-MAD + - 8d1e52c2bf76cc40-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -139,7 +141,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:06 GMT + - Sun, 13 Oct 2024 09:32:35 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT Location: @@ -149,7 +151,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=AEXGnsG104Zmb2JKS5fY7mECuq%2Fbr30GZt8XBF0bV4BpTPiGRTePYmGu4EIphLS%2BYH%2BamBqivzzEFwIDgzBIKitQ6xQTYxr1fJgEWzsSxId92G25j56Rko5hTbhrp%2F2lwOKuOQFH"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=tHRRvSXNKMVVwTECs5EqGfoAVxSwiJ2cRoQLlUwjoBYo3xAvzksRiY7cHBAOT7ytKvV7FVH6J3e7x4DbvR%2FzGE0%2BGyRat6tE61LSwtQ01kXnXGt3UbKHc2HQO9IoGYvvwywzFP4m"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -158,6 +160,10 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC status: code: 302 message: Found @@ -171,7 +177,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j + - PHPSESSID=sto55oeln8j362p3hnka97s5v7 Referer: - https://www.subtitulamos.tv User-Agent: @@ -182,10 +188,8 @@ interactions: body: string: '' headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8ce9949acd216bca-SIN + - 8d1e52c3be66667b-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -193,7 +197,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:07 GMT + - Sun, 13 Oct 2024 09:32:35 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT Location: @@ -203,7 +207,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=U8W22Dh4ZmI0xE5fMIdTMW4F97fAhekJhn01FtPyeXnrgmQYIIWUXt%2FaOsHbq%2FrlVGAKZTTUdTEiaVXRpsGSoZwn97RcDOqwtm%2BztuTss38AtSGCYlbFoSjp7znY4OggRPredjfx"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=vI9jIVEGhv0zpjaNyivL5qddYRBXSB5irDvvBJDpczcUj211AJe5%2B74dw2sxnrkfEFC7pRTHfxzqnwHa47Kjzn8zaB1FWxgyV1BV765yWw13fn1Lljq11liaNgCiSd%2B89euh9MZl"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -212,6 +216,10 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC status: code: 301 message: Moved Permanently @@ -225,7 +233,7 @@ interactions: Connection: - keep-alive Cookie: - - PHPSESSID=q5ib4sarvp0r9j9egit0sig74j + - PHPSESSID=sto55oeln8j362p3hnka97s5v7 Referer: - https://www.subtitulamos.tv User-Agent: @@ -244,7 +252,7 @@ interactions: href=\"/safari-pinned-tab.svg?v=lkvlWOG2Qx\" color=\"#607dcd\">\n\n\n\n \n - \ \n\n + \ \n\n \ \n \ \n \n
\n

Versiones

\n \
\n \n 2 473\n descargas\n + id=\"count\" class=\"text bold\">2 477\n descargas\n \
\n
\n
\n \ \n\n
\n\n\n" headers: CF-RAY: - - 8ce9949f6e04cc4b-MAD + - 8d1e52c4dfd3cc58-MAD Cache-Control: - no-store, no-cache, must-revalidate Connection: @@ -581,7 +589,7 @@ interactions: Content-Type: - text/html; charset=UTF-8 Date: - - Sun, 06 Oct 2024 23:55:08 GMT + - Sun, 13 Oct 2024 09:32:36 GMT Expires: - Thu, 19 Nov 1981 08:52:00 GMT NEL: @@ -589,7 +597,7 @@ interactions: Pragma: - no-cache Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=tzitQbsoj8Z8lx7oy32KPd8ZYcQRkPmYvli871rvdWDFIV7vUcD9xFuS6Wfn1JhUtZHJ7Obh%2FzOyCyvCPS8HBGifM1yrOGU5%2BLquOyIlEJ7%2BHOY6PSZrjFG1Zmqyo9d1cjL71G%2Fp"}],"group":"cf-nel","max_age":604800}' + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=JcQH7iPIUmigpvfwukYRBsPE5h7TD%2FOZqunzj6s8c5kPFY7s8dxB4YxRJBD4MFnHc5TCHiHSwGPYzL%2BGguCtUq9IbWRwd8LXLOYh%2FifzFlqNOPT03721obA8A%2B%2FMCD4mQs2%2FbkUO"}],"group":"cf-nel","max_age":604800}' Server: - cloudflare Speculation-Rules: @@ -598,6 +606,8 @@ interactions: - chunked X-Powered-By: - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC content-length: diff --git a/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_series.yaml b/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_series.yaml new file mode 100644 index 00000000..1bf5da57 --- /dev/null +++ b/tests/cassettes/subtitulamos/test_list_subtitles_not_exist_series.yaml @@ -0,0 +1,114 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Fake+Show+%281914%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8d1e52be8f496677-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:35 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=JwRm0wdlHmaWm7%2B1aNlX1fq5XCatGdQ9kg7In%2FSbiMVwFe%2BATlc%2BNJesu%2FaGziZjkX0rUw%2Fnw0e%2BEBB8LgzMCapZ%2Bejar1hhbqijaPi1WUvpeXTnB04iVldt90n%2Bcw4RYb0Ff%2BYp"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=rftvvbbu47mnclpf3e6lpj9n81; path=/; HttpOnly + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=rftvvbbu47mnclpf3e6lpj9n81 + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=Fake+Show + response: + body: + string: '[]' + headers: + CF-RAY: + - 8d1e52bfac0c2f8c-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Sun, 13 Oct 2024 09:32:35 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=1kjcSkDiCjskgIFPLajXqe3Dy44XXiPqvSTbqIi%2Bk1X4TKcyR0KI41HXOgG8h2%2BKUCOF%2By2y9aJExIIc%2BTcteGpSSB1SbBoWb6hh1Zjk38t6d4n2su4vV9ckeCEz92LFHv2E%2FAp5"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Speculation-Rules: + - '"/cdn-cgi/speculation"' + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/conftest.py b/tests/conftest.py index 4bdbd69b..379b75c8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -460,6 +460,20 @@ def episodes() -> dict[str, Episode]: 3, year=2005, ), + 'charmed_s01e01': Episode( + 'Charmed.(2018).S01E01.Pilot.1080p.10bit.AMZN.WEB-DL.AAC5.1.HEVC-Vyndros.mkv', + 'Charmed', + 1, + 1, + year=2018, + ), + 'fake_show_s13e03': Episode( + 'Fake.Show.S13E03.Chapter.This.Show.Does.Not.Exist.1080p.AMZN.WEB-DL.DDP5.1.H.264-NOSIVID.mkv', + 'Fake Show', + 4, + 2, + year=1914, + ), } diff --git a/tests/providers/test_subtitulamos.py b/tests/providers/test_subtitulamos.py index 482237d5..58bee82f 100644 --- a/tests/providers/test_subtitulamos.py +++ b/tests/providers/test_subtitulamos.py @@ -1,4 +1,6 @@ +import logging import os +from unittest.mock import patch import pytest from babelfish import Language, language_converters # type: ignore[import-untyped] @@ -14,6 +16,8 @@ cassette_library_dir=os.path.realpath(os.path.join('tests', 'cassettes', 'subtitulamos')), ) +logger_name = 'subliminal.providers.subtitulamos' + @pytest.mark.integration() @vcr.use_cassette @@ -55,16 +59,58 @@ def test_download_subtitle(episodes): assert subtitle.is_valid() is True +@pytest.mark.integration() +@vcr.use_cassette +def test_download_subtitle_year(episodes): + video = episodes['charmed_s01e01'] + languages = {Language('eng')} + with SubtitulamosProvider() as provider: + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) >= 1 + subtitle = subtitles[0] + + provider.download_subtitle(subtitle) + assert subtitle.content is not None + assert subtitle.is_valid() is True + + @pytest.mark.integration() @vcr.use_cassette def test_download_subtitle_last_season(episodes): video = episodes['dw_s13e03'] languages = {Language('eng'), Language('spa')} - with SubtitulamosProvider() as provider: + with ( + SubtitulamosProvider() as provider, + patch.object(SubtitulamosProvider, '_read_series', wraps=provider._read_series) as mock, + ): + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) >= 1 + subtitle = subtitles[0] + + assert mock.call_count == 2 + assert mock.call_args_list[1].args[0] == '/episodes/8685/doctor-who-13x03-chapter-three-once-upon-time' + + provider.download_subtitle(subtitle) + assert subtitle.content is not None + assert subtitle.is_valid() is True + + +@pytest.mark.integration() +@vcr.use_cassette +def test_download_subtitle_first_episode(episodes): + video = episodes['charmed_s01e01'] + languages = {Language('eng')} + with ( + SubtitulamosProvider() as provider, + patch.object(SubtitulamosProvider, '_read_series', wraps=provider._read_series) as mock, + ): subtitles = provider.list_subtitles(video, languages) assert len(subtitles) >= 1 subtitle = subtitles[0] + assert mock.call_count == 2 + assert mock.call_args_list[1].args[0] == '/episodes/3250/charmed-2018-1x01-pilot' + provider.download_subtitle(subtitle) assert subtitle.content is not None assert subtitle.is_valid() is True @@ -72,16 +118,105 @@ def test_download_subtitle_last_season(episodes): @pytest.mark.integration() @vcr.use_cassette -def test_download_subtitle_not_exist(episodes): - video = episodes['bbt_s07e05'] +def test_download_subtitle_foo(episodes): + video = episodes['dw_s13e03'] languages = {Language('eng'), Language('spa')} with SubtitulamosProvider() as provider: + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) >= 1 + subtitle = subtitles[0] + + provider.download_subtitle(subtitle) + assert subtitle.content is not None + assert subtitle.is_valid() is True + + +def test_download_subtitle_missing_download_link(): + subtitle = SubtitulamosSubtitle( + language=Language('spa'), + hearing_impaired=True, + page_link=None, + series='The Big Bang Theory', + season=11, + episode=16, + title='the neonatal nomenclature', + year=2007, + release_group='AVS/SVA', + ) + + with SubtitulamosProvider() as provider: + provider.download_subtitle(subtitle) + assert subtitle.content is None + assert subtitle.is_valid() is False + + +def test_download_subtitle_without_initialization(): + subtitle = SubtitulamosSubtitle( + language=Language('spa'), + hearing_impaired=True, + page_link=None, + series='The Big Bang Theory', + season=11, + episode=16, + title='the neonatal nomenclature', + year=2007, + release_group='AVS/SVA', + ) + + provider = SubtitulamosProvider() + with pytest.raises(NotInitializedProviderError): + provider.download_subtitle(subtitle) + + +@pytest.mark.integration() +@vcr.use_cassette +def test_list_subtitles_not_exist_series(caplog, episodes): + with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: + video = episodes['fake_show_s13e03'] + languages = {Language('spa')} + + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) == 0 + assert caplog.records[-1].message.endswith('Series not found') + + +@pytest.mark.integration() +@vcr.use_cassette +def test_list_subtitles_not_exist_season(caplog, episodes): + with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: + video = episodes['bbt_s07e05'] + languages = {Language('eng'), Language('spa')} + subtitles = provider.list_subtitles(video, languages) assert len(subtitles) == 0 + assert caplog.records[-1].message.endswith('Season not found') @pytest.mark.integration() -def test_download_subtitle_without_initialization(episodes): +@vcr.use_cassette +def test_list_subtitles_not_exist_episode(caplog, episodes): + with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: + video = episodes['fear_walking_dead_s03e10'] + languages = {Language('eng'), Language('spa')} + + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) == 0 + assert caplog.records[-1].message.endswith('Episode not found') + + +@pytest.mark.integration() +@vcr.use_cassette +def test_list_subtitles_not_exist_language(caplog, episodes): + with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: + video = episodes['dw_s13e03'] + languages = {Language('spa', 'MX')} + + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) == 0 + + +@pytest.mark.integration() +def test_list_subtitles_without_initialization(episodes): video = episodes['bbt_s11e16'] languages = {Language('eng'), Language('spa')} @@ -90,6 +225,16 @@ def test_download_subtitle_without_initialization(episodes): provider.list_subtitles(video, languages) +@pytest.mark.integration() +def test_list_subtitles_no_video_type(episodes): + video = {} # type: ignore[var-annotated] + languages = {Language('spa')} + + with SubtitulamosProvider() as provider: + subtitles = provider.list_subtitles(video, languages) # type: ignore[arg-type] + assert len(subtitles) == 0 + + @pytest.mark.converter() def test_converter_convert_alpha3(): assert language_converters['subtitulamos'].convert('cat') == 'Català' From 8bdeb386a8ca3781e1046d4b1a2b7dab695fdfe8 Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Sun, 13 Oct 2024 13:04:05 +0200 Subject: [PATCH 07/14] fix: Add Subtitulamos provider integration - Fixes for Python3.9 and 3.8 compatibility --- subliminal/providers/subtitulamos.py | 10 +++++----- tests/providers/test_subtitulamos.py | 14 ++++++-------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index 014e9b49..3a505c7d 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -5,7 +5,7 @@ import contextlib import json import logging -from typing import TYPE_CHECKING, Any, ClassVar, cast +from typing import TYPE_CHECKING, Any, ClassVar, Dict, List, cast # Needed for Python3.8 support from babelfish import Language, language_converters # type: ignore[import-untyped] from bs4 import Tag @@ -129,7 +129,7 @@ def _query_search(self, search_param: str) -> list[dict[str, str]]: self.search_url, headers={'Referer': self.server_url}, params={'q': search_param}, timeout=10 ) data = json.loads(r.text) - return cast(list[dict[str, str]], data) + return cast(List[Dict[str, str]], data) def _read_series(self, series_url: str) -> ParserBeautifulSoup: """Read series information from provider.""" @@ -161,7 +161,7 @@ def _read_episode_page( raise NotExists(msg) """Provides the URL for a specific episode of the series.""" - page_content = self._read_series(f'/shows/{series_response[0]['show_id']}') + page_content = self._read_series(f'/shows/{series_response[0]["show_id"]}') # Select season season_element = next( @@ -171,7 +171,7 @@ def _read_episode_page( msg = 'Season not found' raise NotExists(msg) - if 'selected' not in cast(list[str], season_element.get('class', [])): + if 'selected' not in cast(List[str], season_element.get('class', [])): page_content = self._read_series(cast(str, season_element.get('href', ''))) # Select episode @@ -183,7 +183,7 @@ def _read_episode_page( raise NotExists(msg) episode_url = cast(str, episode_element.get('href', '')) - if 'selected' not in cast(list[str], episode_element.get('class', [])): + if 'selected' not in cast(List[str], episode_element.get('class', [])): page_content = self._read_series(episode_url) return page_content, episode_url diff --git a/tests/providers/test_subtitulamos.py b/tests/providers/test_subtitulamos.py index 58bee82f..8f324381 100644 --- a/tests/providers/test_subtitulamos.py +++ b/tests/providers/test_subtitulamos.py @@ -79,10 +79,9 @@ def test_download_subtitle_year(episodes): def test_download_subtitle_last_season(episodes): video = episodes['dw_s13e03'] languages = {Language('eng'), Language('spa')} - with ( - SubtitulamosProvider() as provider, - patch.object(SubtitulamosProvider, '_read_series', wraps=provider._read_series) as mock, - ): + with SubtitulamosProvider() as provider, patch.object( + SubtitulamosProvider, '_read_series', wraps=provider._read_series + ) as mock: subtitles = provider.list_subtitles(video, languages) assert len(subtitles) >= 1 subtitle = subtitles[0] @@ -100,10 +99,9 @@ def test_download_subtitle_last_season(episodes): def test_download_subtitle_first_episode(episodes): video = episodes['charmed_s01e01'] languages = {Language('eng')} - with ( - SubtitulamosProvider() as provider, - patch.object(SubtitulamosProvider, '_read_series', wraps=provider._read_series) as mock, - ): + with SubtitulamosProvider() as provider, patch.object( + SubtitulamosProvider, '_read_series', wraps=provider._read_series + ) as mock: subtitles = provider.list_subtitles(video, languages) assert len(subtitles) >= 1 subtitle = subtitles[0] From 44564aeaf0adbb59df172ac08a192e8721335d06 Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Sun, 13 Oct 2024 13:04:27 +0200 Subject: [PATCH 08/14] chore: Add Subtitulamos provider integration - Add changelog --- changelog.d/1170.provider.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/1170.provider.rst diff --git a/changelog.d/1170.provider.rst b/changelog.d/1170.provider.rst new file mode 100644 index 00000000..d3bd716e --- /dev/null +++ b/changelog.d/1170.provider.rst @@ -0,0 +1 @@ +Added Subtitulamos provider From c4e9481b9a9d38af408297df94a18d921ecd7def Mon Sep 17 00:00:00 2001 From: getzze Date: Tue, 22 Oct 2024 23:36:36 +0100 Subject: [PATCH 09/14] correct converter types in advance --- subliminal/converters/subtitulamos.py | 22 ++-- tests/providers/test_subtitulamos.py | 146 +++++++++++++------------- 2 files changed, 83 insertions(+), 85 deletions(-) diff --git a/subliminal/converters/subtitulamos.py b/subliminal/converters/subtitulamos.py index e96febd9..40612c6d 100644 --- a/subliminal/converters/subtitulamos.py +++ b/subliminal/converters/subtitulamos.py @@ -15,33 +15,33 @@ class SubtitulamosConverter(LanguageReverseConverter): def __init__(self) -> None: self.name_converter = language_converters['name'] - self.from_subtitulamos: dict[str, LanguageTuple] = { - 'Español': ('spa',), - 'Español (España)': ('spa',), + self.from_subtitulamos: dict[str, tuple[str, str | None]] = { + 'Español': ('spa', None), + 'Español (España)': ('spa', None), 'Español (Latinoamérica)': ('spa', 'MX'), - 'Català': ('cat',), - 'English': ('eng',), - 'Galego': ('glg',), - 'Portuguese': ('por',), + 'Català': ('cat', None), + 'English': ('eng', None), + 'Galego': ('glg', None), + 'Portuguese': ('por', None), 'English (US)': ('eng', 'US'), 'English (UK)': ('eng', 'GB'), 'Brazilian': ('por', 'BR'), } - self.to_subtitulamos: dict[LanguageTuple, str] = {item[1]: item[0] for item in self.from_subtitulamos.items()} + self.to_subtitulamos: dict[tuple[str, str | None], str] = { + item[1]: item[0] for item in self.from_subtitulamos.items() + } self.codes = set(self.from_subtitulamos.keys()) def convert(self, alpha3: str, country: str | None = None, script: str | None = None) -> str: """Convert an alpha3 language code with an alpha2 country code and a script code into a custom code.""" if (alpha3, country) in self.to_subtitulamos: return self.to_subtitulamos[(alpha3, country)] - if (alpha3,) in self.to_subtitulamos: - return self.to_subtitulamos[(alpha3,)] return self.name_converter.convert(alpha3, country, script) # type: ignore[no-any-return] def reverse(self, code: str) -> LanguageTuple: """Reverse a custom code into alpha3, country and script code.""" if code in self.from_subtitulamos: - return self.from_subtitulamos[code] + return (*self.from_subtitulamos[code], None) return self.name_converter.reverse(code) # type: ignore[no-any-return] diff --git a/tests/providers/test_subtitulamos.py b/tests/providers/test_subtitulamos.py index 8f324381..70202a70 100644 --- a/tests/providers/test_subtitulamos.py +++ b/tests/providers/test_subtitulamos.py @@ -19,6 +19,78 @@ logger_name = 'subliminal.providers.subtitulamos' +@pytest.mark.converter() +def test_converter_convert_alpha3(): + assert language_converters['subtitulamos'].convert('cat') == 'Català' + + +@pytest.mark.converter() +def test_converter_convert_alpha3_country(): + assert language_converters['subtitulamos'].convert('spa', 'MX') == 'Español (Latinoamérica)' + assert language_converters['subtitulamos'].convert('por', 'BR') == 'Brazilian' + + +@pytest.mark.converter() +def test_converter_convert_alpha3_name_converter(): + assert ( + language_converters['subtitulamos'].convert( + 'fra', + ) + == 'French' + ) + + +@pytest.mark.converter() +def test_converter_reverse(): + assert language_converters['subtitulamos'].reverse('Español') == ('spa', None, None) + + +@pytest.mark.converter() +def test_converter_reverse_country(): + assert language_converters['subtitulamos'].reverse('Español (España)') == ('spa', None, None) + assert language_converters['subtitulamos'].reverse('Español (Latinoamérica)') == ('spa', 'MX', None) + + +@pytest.mark.converter() +def test_converter_reverse_name_converter(): + assert language_converters['subtitulamos'].reverse('French') == ('fra', None, None) + + +def test_get_matches_episode(episodes): + subtitle = SubtitulamosSubtitle( + language=Language('spa'), + hearing_impaired=True, + page_link=None, + series='The Big Bang Theory', + season=11, + episode=16, + title='the neonatal nomenclature', + year=2007, + release_group='AVS/SVA', + ) + + matches = subtitle.get_matches(episodes['bbt_s11e16']) + assert matches == {'release_group', 'series', 'year', 'country', 'episode', 'season', 'title'} + + +def test_list_subtitles_without_initialization(episodes): + video = episodes['bbt_s11e16'] + languages = {Language('eng'), Language('spa')} + + provider = SubtitulamosProvider() + with pytest.raises(NotInitializedProviderError): + provider.list_subtitles(video, languages) + + +def test_list_subtitles_no_video_type(): + video = {} # type: ignore[var-annotated] + languages = {Language('spa')} + + with SubtitulamosProvider() as provider: + subtitles = provider.list_subtitles(video, languages) # type: ignore[arg-type] + assert len(subtitles) == 0 + + @pytest.mark.integration() @vcr.use_cassette def test_login(): @@ -211,77 +283,3 @@ def test_list_subtitles_not_exist_language(caplog, episodes): subtitles = provider.list_subtitles(video, languages) assert len(subtitles) == 0 - - -@pytest.mark.integration() -def test_list_subtitles_without_initialization(episodes): - video = episodes['bbt_s11e16'] - languages = {Language('eng'), Language('spa')} - - provider = SubtitulamosProvider() - with pytest.raises(NotInitializedProviderError): - provider.list_subtitles(video, languages) - - -@pytest.mark.integration() -def test_list_subtitles_no_video_type(episodes): - video = {} # type: ignore[var-annotated] - languages = {Language('spa')} - - with SubtitulamosProvider() as provider: - subtitles = provider.list_subtitles(video, languages) # type: ignore[arg-type] - assert len(subtitles) == 0 - - -@pytest.mark.converter() -def test_converter_convert_alpha3(): - assert language_converters['subtitulamos'].convert('cat') == 'Català' - - -@pytest.mark.converter() -def test_converter_convert_alpha3_country(): - assert language_converters['subtitulamos'].convert('spa', 'MX') == 'Español (Latinoamérica)' - assert language_converters['subtitulamos'].convert('por', 'BR') == 'Brazilian' - - -@pytest.mark.converter() -def test_converter_convert_alpha3_name_converter(): - assert ( - language_converters['subtitulamos'].convert( - 'fra', - ) - == 'French' - ) - - -@pytest.mark.converter() -def test_converter_reverse(): - assert language_converters['subtitulamos'].reverse('Español') == ('spa',) - - -@pytest.mark.converter() -def test_converter_reverse_country(): - assert language_converters['subtitulamos'].reverse('Español (España)') == ('spa',) - assert language_converters['subtitulamos'].reverse('Español (Latinoamérica)') == ('spa', 'MX') - - -@pytest.mark.converter() -def test_converter_reverse_name_converter(): - assert language_converters['subtitulamos'].reverse('French') == ('fra', None, None) - - -def test_get_matches_episode(episodes): - subtitle = SubtitulamosSubtitle( - language=Language('spa'), - hearing_impaired=True, - page_link=None, - series='The Big Bang Theory', - season=11, - episode=16, - title='the neonatal nomenclature', - year=2007, - release_group='AVS/SVA', - ) - - matches = subtitle.get_matches(episodes['bbt_s11e16']) - assert matches == {'release_group', 'series', 'year', 'country', 'episode', 'season', 'title'} From 7782f4976e95bfafd6c25b408368b009e8abe2d9 Mon Sep 17 00:00:00 2001 From: getzze Date: Tue, 22 Oct 2024 23:55:52 +0100 Subject: [PATCH 10/14] small aesthetic changes --- subliminal/providers/subtitulamos.py | 54 +++++++++++++++++++--------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index 3a505c7d..a71a3467 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -5,7 +5,7 @@ import contextlib import json import logging -from typing import TYPE_CHECKING, Any, ClassVar, Dict, List, cast # Needed for Python3.8 support +from typing import TYPE_CHECKING, Any, ClassVar, cast from babelfish import Language, language_converters # type: ignore[import-untyped] from bs4 import Tag @@ -42,6 +42,7 @@ class SubtitulamosSubtitle(Subtitle): def __init__( self, language: Language, + subtitle_id: str, hearing_impaired: bool | None = None, page_link: str | None = None, series: str | None = None, @@ -52,8 +53,12 @@ def __init__( release_group: str | None = None, download_link: str | None = None, ) -> None: - super().__init__(language=language, hearing_impaired=hearing_impaired, page_link=page_link) - self.page_link = page_link + super().__init__( + language=language, + subtitle_id=subtitle_id, + hearing_impaired=hearing_impaired, + page_link=page_link, + ) self.series = series self.season = season self.episode = episode @@ -88,14 +93,17 @@ class SubtitulamosProvider(Provider): languages: ClassVar[Set[Language]] = {Language('por', 'BR')} | { Language(lang) for lang in ['cat', 'eng', 'glg', 'por', 'spa'] } + video_types: ClassVar = (Episode,) - video_types = (Episode,) server_url = 'https://www.subtitulamos.tv' search_url = server_url + '/search/query' + + timeout: int session: Session | None - def __init__(self) -> None: + def __init__(self, *, timeout: int = 10) -> None: self.session = None + self.timeout = timeout def initialize(self) -> None: """Initialize the provider.""" @@ -126,14 +134,21 @@ def _session_request(self, *args: Any, **kwargs: Any) -> Response: def _query_search(self, search_param: str) -> list[dict[str, str]]: """Search Series/Series + Season using query search method.""" r = self._session_request( - self.search_url, headers={'Referer': self.server_url}, params={'q': search_param}, timeout=10 + self.search_url, + headers={'Referer': self.server_url}, + params={'q': search_param}, + timeout=self.timeout, ) data = json.loads(r.text) - return cast(List[Dict[str, str]], data) + return cast(list[dict[str, str]], data) def _read_series(self, series_url: str) -> ParserBeautifulSoup: """Read series information from provider.""" - r = self._session_request(self.server_url + series_url, headers={'Referer': self.server_url}, timeout=10) + r = self._session_request( + self.server_url + series_url, + headers={'Referer': self.server_url}, + timeout=self.timeout, + ) return ParserBeautifulSoup(r.content, ['lxml', 'html.parser']) @region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME) @@ -160,8 +175,9 @@ def _read_episode_page( msg = 'Series not found' raise NotExists(msg) - """Provides the URL for a specific episode of the series.""" - page_content = self._read_series(f'/shows/{series_response[0]["show_id"]}') + # Provides the URL for a specific episode of the series + show_id = series_response[0]['show_id'] + page_content = self._read_series(f'/shows/{show_id}') # Select season season_element = next( @@ -171,8 +187,8 @@ def _read_episode_page( msg = 'Season not found' raise NotExists(msg) - if 'selected' not in cast(List[str], season_element.get('class', [])): - page_content = self._read_series(cast(str, season_element.get('href', ''))) + if 'selected' not in cast(list[str], season_element.get('class', [])): + page_content = self._read_series(str(season_element.get('href', ''))) # Select episode episode_element = next( @@ -182,8 +198,8 @@ def _read_episode_page( msg = 'Episode not found' raise NotExists(msg) - episode_url = cast(str, episode_element.get('href', '')) - if 'selected' not in cast(List[str], episode_element.get('class', [])): + episode_url = str(episode_element.get('href', '')) + if 'selected' not in cast(list[str], episode_element.get('class', [])): page_content = self._read_series(episode_url) return page_content, episode_url @@ -225,9 +241,11 @@ def _query_provider( release_group = release_group_element[0].getText() # read the subtitle url - subtitle_url = self.server_url + cast(str, sub.parent.get('href', '')) + subtitle_id = str(sub.parent.get('href', '')) + subtitle_url = self.server_url + subtitle_id subtitle = SubtitulamosSubtitle( language=language, + subtitle_id=subtitle_id, hearing_impaired=hearing_impaired, page_link=self.server_url + episode_url, series=series, @@ -244,7 +262,11 @@ def _query_provider( return subtitles def query( - self, series: str | None = None, season: int | None = None, episode: int | None = None, year: int | None = None + self, + series: str | None = None, + season: int | None = None, + episode: int | None = None, + year: int | None = None, ) -> list[SubtitulamosSubtitle]: """Query the provider for subtitles.""" try: From 2c2951de4daf264bc60ca9ddeb28a20961711df6 Mon Sep 17 00:00:00 2001 From: getzze Date: Wed, 23 Oct 2024 00:04:23 +0100 Subject: [PATCH 11/14] fix default for subtitle_id --- subliminal/providers/subtitulamos.py | 2 +- tests/providers/test_subtitulamos.py | 143 ++++++++++++++------------- 2 files changed, 77 insertions(+), 68 deletions(-) diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index a71a3467..4c8f2d9e 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -42,7 +42,7 @@ class SubtitulamosSubtitle(Subtitle): def __init__( self, language: Language, - subtitle_id: str, + subtitle_id: str = '', hearing_impaired: bool | None = None, page_link: str | None = None, series: str | None = None, diff --git a/tests/providers/test_subtitulamos.py b/tests/providers/test_subtitulamos.py index 70202a70..7b5ad02f 100644 --- a/tests/providers/test_subtitulamos.py +++ b/tests/providers/test_subtitulamos.py @@ -59,6 +59,7 @@ def test_converter_reverse_name_converter(): def test_get_matches_episode(episodes): subtitle = SubtitulamosSubtitle( language=Language('spa'), + subtitle_id='', hearing_impaired=True, page_link=None, series='The Big Bang Theory', @@ -73,6 +74,32 @@ def test_get_matches_episode(episodes): assert matches == {'release_group', 'series', 'year', 'country', 'episode', 'season', 'title'} +@pytest.mark.integration() +@vcr.use_cassette +def test_login(): + provider = SubtitulamosProvider() + assert provider.session is None + provider.initialize() + assert provider.session is not None + + +@pytest.mark.integration() +@vcr.use_cassette +def test_logout(): + provider = SubtitulamosProvider() + provider.initialize() + provider.terminate() + assert provider.session is None + + +@pytest.mark.integration() +def test_logout_without_initialization(): + provider = SubtitulamosProvider() + with pytest.raises(NotInitializedProviderError): + provider.terminate() + + +@pytest.mark.integration() def test_list_subtitles_without_initialization(episodes): video = episodes['bbt_s11e16'] languages = {Language('eng'), Language('spa')} @@ -82,6 +109,7 @@ def test_list_subtitles_without_initialization(episodes): provider.list_subtitles(video, languages) +@pytest.mark.integration() def test_list_subtitles_no_video_type(): video = {} # type: ignore[var-annotated] languages = {Language('spa')} @@ -93,27 +121,49 @@ def test_list_subtitles_no_video_type(): @pytest.mark.integration() @vcr.use_cassette -def test_login(): - provider = SubtitulamosProvider() - assert provider.session is None - provider.initialize() - assert provider.session is not None +def test_list_subtitles_not_exist_series(caplog, episodes): + with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: + video = episodes['fake_show_s13e03'] + languages = {Language('spa')} + + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) == 0 + assert caplog.records[-1].message.endswith('Series not found') @pytest.mark.integration() @vcr.use_cassette -def test_logout(): - provider = SubtitulamosProvider() - provider.initialize() - provider.terminate() - assert provider.session is None +def test_list_subtitles_not_exist_season(caplog, episodes): + with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: + video = episodes['bbt_s07e05'] + languages = {Language('eng'), Language('spa')} + + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) == 0 + assert caplog.records[-1].message.endswith('Season not found') @pytest.mark.integration() -def test_logout_without_initialization(): - provider = SubtitulamosProvider() - with pytest.raises(NotInitializedProviderError): - provider.terminate() +@vcr.use_cassette +def test_list_subtitles_not_exist_episode(caplog, episodes): + with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: + video = episodes['fear_walking_dead_s03e10'] + languages = {Language('eng'), Language('spa')} + + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) == 0 + assert caplog.records[-1].message.endswith('Episode not found') + + +@pytest.mark.integration() +@vcr.use_cassette +def test_list_subtitles_not_exist_language(caplog, episodes): + with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: + video = episodes['dw_s13e03'] + languages = {Language('spa', 'MX')} + + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) == 0 @pytest.mark.integration() @@ -151,9 +201,10 @@ def test_download_subtitle_year(episodes): def test_download_subtitle_last_season(episodes): video = episodes['dw_s13e03'] languages = {Language('eng'), Language('spa')} - with SubtitulamosProvider() as provider, patch.object( - SubtitulamosProvider, '_read_series', wraps=provider._read_series - ) as mock: + with ( + SubtitulamosProvider() as provider, + patch.object(SubtitulamosProvider, '_read_series', wraps=provider._read_series) as mock, + ): subtitles = provider.list_subtitles(video, languages) assert len(subtitles) >= 1 subtitle = subtitles[0] @@ -171,9 +222,10 @@ def test_download_subtitle_last_season(episodes): def test_download_subtitle_first_episode(episodes): video = episodes['charmed_s01e01'] languages = {Language('eng')} - with SubtitulamosProvider() as provider, patch.object( - SubtitulamosProvider, '_read_series', wraps=provider._read_series - ) as mock: + with ( + SubtitulamosProvider() as provider, + patch.object(SubtitulamosProvider, '_read_series', wraps=provider._read_series) as mock, + ): subtitles = provider.list_subtitles(video, languages) assert len(subtitles) >= 1 subtitle = subtitles[0] @@ -201,9 +253,11 @@ def test_download_subtitle_foo(episodes): assert subtitle.is_valid() is True +@pytest.mark.integration() def test_download_subtitle_missing_download_link(): subtitle = SubtitulamosSubtitle( language=Language('spa'), + subtitle_id='', hearing_impaired=True, page_link=None, series='The Big Bang Theory', @@ -220,9 +274,11 @@ def test_download_subtitle_missing_download_link(): assert subtitle.is_valid() is False +@pytest.mark.integration() def test_download_subtitle_without_initialization(): subtitle = SubtitulamosSubtitle( language=Language('spa'), + subtitle_id='', hearing_impaired=True, page_link=None, series='The Big Bang Theory', @@ -236,50 +292,3 @@ def test_download_subtitle_without_initialization(): provider = SubtitulamosProvider() with pytest.raises(NotInitializedProviderError): provider.download_subtitle(subtitle) - - -@pytest.mark.integration() -@vcr.use_cassette -def test_list_subtitles_not_exist_series(caplog, episodes): - with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: - video = episodes['fake_show_s13e03'] - languages = {Language('spa')} - - subtitles = provider.list_subtitles(video, languages) - assert len(subtitles) == 0 - assert caplog.records[-1].message.endswith('Series not found') - - -@pytest.mark.integration() -@vcr.use_cassette -def test_list_subtitles_not_exist_season(caplog, episodes): - with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: - video = episodes['bbt_s07e05'] - languages = {Language('eng'), Language('spa')} - - subtitles = provider.list_subtitles(video, languages) - assert len(subtitles) == 0 - assert caplog.records[-1].message.endswith('Season not found') - - -@pytest.mark.integration() -@vcr.use_cassette -def test_list_subtitles_not_exist_episode(caplog, episodes): - with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: - video = episodes['fear_walking_dead_s03e10'] - languages = {Language('eng'), Language('spa')} - - subtitles = provider.list_subtitles(video, languages) - assert len(subtitles) == 0 - assert caplog.records[-1].message.endswith('Episode not found') - - -@pytest.mark.integration() -@vcr.use_cassette -def test_list_subtitles_not_exist_language(caplog, episodes): - with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: - video = episodes['dw_s13e03'] - languages = {Language('spa', 'MX')} - - subtitles = provider.list_subtitles(video, languages) - assert len(subtitles) == 0 From 9b9079a3ab0e4fc3d3d8b0ac214c9a59616d4785 Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Mon, 11 Nov 2024 23:26:05 +0100 Subject: [PATCH 12/14] =?UTF-8?q?chore:=20Add=20Subtitulamos=20provider=20?= =?UTF-8?q?integration=20-=20Improve=20'Espa=C3=B1ol=20(Latinoam=C3=A9rica?= =?UTF-8?q?)'=20support=20adding=20all=20countries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- subliminal/converters/subtitulamos.py | 22 + subliminal/providers/subtitulamos.py | 54 +- ..._subtitles_with_spanish_non_mx_search.yaml | 1568 +++++++++++++++++ tests/providers/test_subtitulamos.py | 13 + 4 files changed, 1646 insertions(+), 11 deletions(-) create mode 100644 tests/cassettes/subtitulamos/test_list_subtitles_with_spanish_non_mx_search.yaml diff --git a/subliminal/converters/subtitulamos.py b/subliminal/converters/subtitulamos.py index 40612c6d..5ee2e56f 100644 --- a/subliminal/converters/subtitulamos.py +++ b/subliminal/converters/subtitulamos.py @@ -29,6 +29,28 @@ def __init__(self) -> None: } self.to_subtitulamos: dict[tuple[str, str | None], str] = { item[1]: item[0] for item in self.from_subtitulamos.items() + } | { + ('spa', country): 'Español (Latinoamérica)' + for country in [ + 'AR', # Argentina + 'BO', # Bolivia + 'CL', # Chile + 'CO', # Colombia + 'CR', # Costa Rica + 'DO', # República Dominicana + 'EC', # Ecuador + 'GT', # Guatemala + 'HN', # Honduras + 'NI', # Nicaragua + 'PA', # Panamá + 'PE', # Perú + 'PR', # Puerto Rico + 'PY', # Paraguay + 'SV', # El Salvador + 'US', # United States + 'UY', # Uruguay + 'VE', # Venezuela + ] } self.codes = set(self.from_subtitulamos.keys()) diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index 4c8f2d9e..d042f963 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -34,6 +34,36 @@ language_converters.register('subtitulamos = subliminal.converters.subtitulamos:SubtitulamosConverter') +subtitulamos_languages = ( + {Language('por', 'BR')} + | { + Language('spa', country) + for country in [ + 'AR', # Argentina + 'BO', # Bolivia + 'CL', # Chile + 'CO', # Colombia + 'CR', # Costa Rica + 'DO', # República Dominicana + 'EC', # Ecuador + 'GT', # Guatemala + 'HN', # Honduras + 'MX', # México + 'NI', # Nicaragua + 'PA', # Panamá + 'PE', # Perú + 'PR', # Puerto Rico + 'PY', # Paraguay + 'SV', # El Salvador + 'US', # United States + 'UY', # Uruguay + 'VE', # Venezuela + ] + } + | {Language(lang) for lang in ['cat', 'eng', 'glg', 'por', 'spa']} +) + + class SubtitulamosSubtitle(Subtitle): """Subtitulamos Subtitle.""" @@ -90,9 +120,7 @@ def get_matches(self, video: Video) -> set[str]: class SubtitulamosProvider(Provider): """Subtitulamos Provider.""" - languages: ClassVar[Set[Language]] = {Language('por', 'BR')} | { - Language(lang) for lang in ['cat', 'eng', 'glg', 'por', 'spa'] - } + languages: ClassVar[Set[Language]] = subtitulamos_languages video_types: ClassVar = (Episode,) server_url = 'https://www.subtitulamos.tv' @@ -230,13 +258,6 @@ def _query_provider( hearing_impaired = False - # modify spanish latino subtitle language to only spanish and set hearing_impaired = True - # because if exists spanish and spanish latino subtitle for the same episode, the score will be - # higher with spanish subtitle. Spanish subtitle takes priority. - if language == Language('spa', 'MX'): - language = Language('spa') - hearing_impaired = True - # read the release subtitle release_group = release_group_element[0].getText() @@ -279,7 +300,18 @@ def list_subtitles(self, video: Video, languages: Set[Language]) -> list[Subtitu if not isinstance(video, Episode): return [] - return [s for s in self.query(video.series, video.season, video.episode, video.year) if s.language in languages] + result = [] + for subtitle in self.query(video.series, video.season, video.episode, video.year): + subtitle_lang = next( + (lang for lang in languages if lang.subtitulamos == subtitle.language.subtitulamos), None + ) + if subtitle_lang: + result.append(subtitle) + # All spanish variations are labeled as "Español (Latinoamérica)", + # which is guessed as es-MX; this replaces it with the specified one. + subtitle.language = subtitle_lang + + return result def download_subtitle(self, subtitle: SubtitulamosSubtitle) -> None: """Download the content of the subtitle.""" diff --git a/tests/cassettes/subtitulamos/test_list_subtitles_with_spanish_non_mx_search.yaml b/tests/cassettes/subtitulamos/test_list_subtitles_with_spanish_non_mx_search.yaml new file mode 100644 index 00000000..4c10c7f1 --- /dev/null +++ b/tests/cassettes/subtitulamos/test_list_subtitles_with_spanish_non_mx_search.yaml @@ -0,0 +1,1568 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory+%282007%29 + response: + body: + string: '[]' + headers: + CF-RAY: + - 8e11a71c09aa668f-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Mon, 11 Nov 2024 22:17:30 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Y3dlRlxVjgsBxMkHnMznoka8VgOfv2K7cOJ505YMxOWJnzSQnQWjp1KxnxLNA%2BpsCX2NfZB%2FhCYuUYGVMEVZ57KFhsFChV1npgtnWetG0vAx8Kr%2Bszw6wOn9zaIqihP8Vd8Bnj8l"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Set-Cookie: + - PHPSESSID=26m5s617nee5492ije6uo3l50k; path=/; HttpOnly + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '2' + server-timing: + - cfL4;desc="?proto=TCP&rtt=14369&sent=4&recv=7&lost=0&retrans=0&sent_bytes=2854&recv_bytes=844&delivery_rate=378166&cwnd=188&unsent_bytes=0&cid=4a1ad11ef74665b4&ts=164&x=0" + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=26m5s617nee5492ije6uo3l50k + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/search/query?q=The+Big+Bang+Theory + response: + body: + string: '[{"show_id":97,"show_name":"The Big Bang Theory"}]' + headers: + CF-RAY: + - 8e11a71d69872f80-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Mon, 11 Nov 2024 22:17:30 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Cbn9LTLwqo5cj5Re92cGdyKCgfHrzENnZDBOdN3vbaIJxFd%2B51L8KTmcyVEFLy7C6YPcfpSFCv2Yx3I369Wj3DQ9ykpJnCj427UelAa%2FrFjW16FVDv2EhCNTmY%2BJ8u%2B9otDtb0qm"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '50' + server-timing: + - cfL4;desc="?proto=TCP&rtt=8395&sent=4&recv=7&lost=0&retrans=0&sent_bytes=2853&recv_bytes=879&delivery_rate=434182&cwnd=244&unsent_bytes=0&cid=d31b5281bc8abf09&ts=154&x=0" + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=26m5s617nee5492ije6uo3l50k + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/shows/97 + response: + body: + string: '' + headers: + CF-RAY: + - 8e11a71ebfa3e0ab-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Mon, 11 Nov 2024 22:17:30 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768 + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=ZsHOuyo0ZQkLLTMlZ5sHwt1PlS%2FH4syN6ZWLtsSDNlnmRLrf56gSufJoosO4Iy%2FzOv2Xu4tvOxOrLWDq%2FRrRXjJKsVKbv5bBIDe7gnD3JZygOvWS9hnv6CSchBuSr5RT1dljFbmQ"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + server-timing: + - cfL4;desc="?proto=TCP&rtt=13766&sent=4&recv=6&lost=0&retrans=0&sent_bytes=2854&recv_bytes=853&delivery_rate=196299&cwnd=179&unsent_bytes=0&cid=0ca89869dabe492c&ts=162&x=0" + status: + code: 302 + message: Found +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=26m5s617nee5492ije6uo3l50k + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768 + response: + body: + string: '' + headers: + CF-RAY: + - 8e11a7201cede09f-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Mon, 11 Nov 2024 22:17:31 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + Location: + - /episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Rwjxgb5oNIaiCZH%2BNviO5tEM3ZFEUsNuH1bK8KBImsNSm6zMYI3BkhOxuZhpzBl%2B16JFQuJNKyuLDvOP8t1F73VWRqbzdx%2FajSA8dEPZ7h3%2BTv5Pm%2FWzuqd9vRQBZVIGL0XZNJz9"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + server-timing: + - cfL4;desc="?proto=TCP&rtt=7022&sent=4&recv=7&lost=0&retrans=0&sent_bytes=2854&recv_bytes=858&delivery_rate=430248&cwnd=243&unsent_bytes=0&cid=c474667c791b1e0f&ts=197&x=0" + status: + code: 301 + message: Moved Permanently +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=26m5s617nee5492ije6uo3l50k + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/4768/the-big-bang-theory-12x90-unraveling-the-mystery-a-big-bang-farewell + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 12x90 - Unraveling the Mystery. A Big Bang Farewell. - Subtitulamos.tv + - Subt\xEDtulos de series\n \n\n\n
\n
\n
\n \n
\n\n + \
\n
\n
\n + \
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

Unraveling + the Mystery. A Big Bang Farewell.

\n
(12x90)
\n
\n
\n \n Subir resincronizaci\xF3n\n \n + \ \n
\n
\n + \
\n TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 90\n
\n
\n
\n\n + \
\n
\n

Versiones

\n + \
\n \n 2 490\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ nemesiscb\n \n
\n + \
\n \n + De Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

REAL + WEB TBS

\n
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

REAL WEB TBS

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 2%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8e11a7219991cbdf-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Mon, 11 Nov 2024 22:17:31 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=gBZ0FUHDsTeHx3J8jJ1aPoVSXZp4y%2F4ili2cREJ5Qb4GdC5RbHw%2FktOp5idzXygZnVYW0wbNtfRKLwRkg0kNOlfpFfhxe7sCJeWEVD2HFSiY50l02XsBtqf%2B85tLOtdPUISgy86y"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '28387' + server-timing: + - cfL4;desc="?proto=TCP&rtt=5618&sent=4&recv=7&lost=0&retrans=0&sent_bytes=2854&recv_bytes=927&delivery_rate=443355&cwnd=193&unsent_bytes=0&cid=f6969cedb1628ae4&ts=170&x=0" + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=26m5s617nee5492ije6uo3l50k + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/440/the-big-bang-theory-11x01-the-proposal-proposal + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 11x01 - The Proposal Proposal - Subtitulamos.tv - Subt\xEDtulos de + series\n \n\n\n
\n
\n
\n + \ \n + \
\n\n
\n
\n
\n
\n \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

The + Proposal Proposal

\n
(11x01)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n + \ EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 24\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n 3 975\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n \n + \
\n

versi\xF3n

\n

DIMENSION

\n + \
\n \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n + \ \n Simpson12\n + \ \n
\n
\n \n + De addic7ed. Sin acotaciones. Sincronizado por elderman.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n \n\n + \
Espa\xF1ol + (Latinoam\xE9rica)
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

DIMENSION

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n + \ \n\n
Espa\xF1ol (Espa\xF1a)
\n\n + \
\n \n \n \n + \
\n

versi\xF3n

\n

DIMENSION

\n + \
\n \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n
\n + \
\n
\n\n
\n + \ \n

Comentarios ({{comments.length}})

\n + \ \n\n \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8e11a723f9f72153-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Mon, 11 Nov 2024 22:17:31 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=JhqzZIwBH3slWEi7LGweBAFk1SI7PZvKfjTzU3oJCZHxEKw9ZWOXzHBgbkNxmIp3CcaVtL53g3Cs20%2FGDdS0JzgqQayekBUdWvkVwhMgyVO95IYdd%2BwJrfHdVkw6mduy%2FK%2FbcK75"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '28472' + server-timing: + - cfL4;desc="?proto=TCP&rtt=7086&sent=4&recv=7&lost=0&retrans=0&sent_bytes=2855&recv_bytes=905&delivery_rate=234436&cwnd=209&unsent_bytes=0&cid=b469ee963168b779&ts=197&x=0" + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - PHPSESSID=26m5s617nee5492ije6uo3l50k + Referer: + - https://www.subtitulamos.tv + User-Agent: + - Subliminal/2.2 + method: GET + uri: https://www.subtitulamos.tv/episodes/1722/the-big-bang-theory-11x16-the-neonatal-nomenclature + response: + body: + string: "\n\n\n \n\n + \ \n + \ \n + \ \n\n\n\n\n\n\n\n \n + \ \n\n + \ \n + \ \n \n \n\n\n \n The Big Bang + Theory 11x16 - The Neonatal Nomenclature - Subtitulamos.tv - Subt\xEDtulos + de series\n \n\n\n
\n
\n
\n \n
\n\n
\n + \
\n
\n
\n + \ \n
\n \n
\n + \ \n + \ \n + \ \n subtitulamos.tv\n + \
\n
\n \n
\n
\n + \ \n + \
\n \n
\n + \
\n

The + Big Bang Theory

\n
\n
\n
\n

The + Neonatal Nomenclature

\n
(11x16)
\n + \
\n
\n \n Subir resincronizaci\xF3n\n \n \n
\n
\n
\n + \ TEMPORADA\n + \
\n 11\n 12\n
\n
\n
\n + \ EPISODIO\n + \
\n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n 11\n 12\n 13\n 14\n 15\n 16\n 17\n 18\n 19\n 20\n 21\n 22\n 23\n 24\n
\n
\n
\n\n
\n
\n

Versiones

\n + \
\n \n 5 695\n descargas\n + \
\n
\n
\n + \ \n\n
English
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

AVS/SVA

\n
\n + \ \n + \
\n
\n \n + \ ORIGINAL\n \n + \ \n \n \n + \ Salba\n \n
\n + \
\n \n + DE Addic7ed. Sin acotaciones.\n \n
\n + \
\n
\n
\n + \
\n
\n
\n \n\n
Espa\xF1ol (Latinoam\xE9rica)
\n\n + \
\n \n \n + \ \n
\n + \

versi\xF3n

\n

AVS/SVA

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

CRAVERS

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n canovas\n + \ \n
\n
\n \n + Gracias a los traductores de la V.O.\n \n
\n + \
\n
\n
\n + \ \n \n + \ \n
\n + \

versi\xF3n

\n

NTB

\n
\n \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n zev27\n + \ \n
\n
\n \n + Los subt\xEDtulos traducidos aqu\xED, sincronizados para NTB.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n \n\n + \
Espa\xF1ol + (Espa\xF1a)
\n\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

AVS/SVA

\n
\n + \ \n + \
\n
\n
\n + \
\n
\n
\n \n 100%\n \n + \
\n
\n + \
\n
\n \n \n + \ \n
\n + \

versi\xF3n

\n

CRAVERS

\n
\n + \ \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n canovas\n + \ \n
\n
\n \n + Gracias a los traductores de la V.O.\n \n
\n + \
\n
\n
\n + \ \n \n \n + \
\n

versi\xF3n

\n

NTB

\n + \
\n \n + \
\n
\n \n + \ RESINCRONIZADO\n \n + \ \n \n + \ \n zev27\n + \ \n
\n
\n \n + Los subt\xEDtulos traducidos aqu\xED, sincronizados para NTB.\n \n + \
\n
\n
\n + \
\n
\n
\n
\n\n + \
\n \n

Comentarios ({{comments.length}})

\n \n\n + \ \n \n
Nadie ha dejado su comentario a\xFAn.
\n\n + \
\n
\n \n + \
\n
\n
\n
\n\n\n\n\n\n + \ \n
\n
\n\n \n\n \n\n + \ \n \n + \ \n \n \n \n \n\n\n" + headers: + CF-RAY: + - 8e11a7269b82e06f-MAD + Cache-Control: + - no-store, no-cache, must-revalidate + Connection: + - keep-alive + Content-Type: + - text/html; charset=UTF-8 + Date: + - Mon, 11 Nov 2024 22:17:32 GMT + Expires: + - Thu, 19 Nov 1981 08:52:00 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Pragma: + - no-cache + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=SYxNuSNGuBZfMLFua6iFdGQpD0eKeAKYk%2FTp2FsMRtaYfIF0OKIFyalGY2zheSr1Gb4dd6Xn%2BFL0zu5pTJkKDjtt%2FzcEwc7Rxic5uG7noUGO2bGCBOasFaOjwhmpK5jCaVVrdlwY"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Powered-By: + - PHP/7.4.14 + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + content-length: + - '42016' + server-timing: + - cfL4;desc="?proto=TCP&rtt=6097&sent=4&recv=7&lost=0&retrans=0&sent_bytes=2854&recv_bytes=910&delivery_rate=356299&cwnd=200&unsent_bytes=0&cid=5ae993d1630d1999&ts=171&x=0" + status: + code: 200 + message: OK +version: 1 diff --git a/tests/providers/test_subtitulamos.py b/tests/providers/test_subtitulamos.py index 7b5ad02f..c93f2201 100644 --- a/tests/providers/test_subtitulamos.py +++ b/tests/providers/test_subtitulamos.py @@ -27,6 +27,7 @@ def test_converter_convert_alpha3(): @pytest.mark.converter() def test_converter_convert_alpha3_country(): assert language_converters['subtitulamos'].convert('spa', 'MX') == 'Español (Latinoamérica)' + assert language_converters['subtitulamos'].convert('spa', 'AR') == 'Español (Latinoamérica)' assert language_converters['subtitulamos'].convert('por', 'BR') == 'Brazilian' @@ -166,6 +167,18 @@ def test_list_subtitles_not_exist_language(caplog, episodes): assert len(subtitles) == 0 +@pytest.mark.integration() +@vcr.use_cassette +def test_list_subtitles_with_spanish_non_mx_search(caplog, episodes): + with caplog.at_level(logging.DEBUG, logger=logger_name), SubtitulamosProvider() as provider: + video = episodes['bbt_s11e16'] + languages = {Language('spa', 'AR')} + + subtitles = provider.list_subtitles(video, languages) + assert len(subtitles) > 0 + assert all(s.language == Language('spa', 'AR') for s in subtitles) + + @pytest.mark.integration() @vcr.use_cassette def test_download_subtitle(episodes): From 4bf6a3f4d1909515afb88fc77399f0102d0aedfc Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Mon, 11 Nov 2024 23:31:39 +0100 Subject: [PATCH 13/14] Fix: Fix merge --- tests/providers/test_providers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/providers/test_providers.py b/tests/providers/test_providers.py index 70f6a784..3465ab4f 100644 --- a/tests/providers/test_providers.py +++ b/tests/providers/test_providers.py @@ -141,7 +141,8 @@ def test_list_subtitles_episode(episodes): assert not provider_manager[name].plugin.list_subtitles.called for name in ( - 'addic7ed', 'bsplayer', + 'addic7ed', + 'bsplayer', 'gestdown', 'opensubtitles', 'opensubtitlescom', From 6ca0ba20c3f75bc43388ab0adf53969d578d20a3 Mon Sep 17 00:00:00 2001 From: Luis Zurro de Cos Date: Tue, 12 Nov 2024 00:16:53 +0100 Subject: [PATCH 14/14] feat: Add Subtitulamos provider integration - Remove forced hearing_impaired value --- subliminal/providers/subtitulamos.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/subliminal/providers/subtitulamos.py b/subliminal/providers/subtitulamos.py index d042f963..c8997394 100644 --- a/subliminal/providers/subtitulamos.py +++ b/subliminal/providers/subtitulamos.py @@ -256,8 +256,6 @@ def _query_provider( language = Language.fromsubtitulamos(lang_name_element.get_text().strip()) - hearing_impaired = False - # read the release subtitle release_group = release_group_element[0].getText() @@ -267,7 +265,6 @@ def _query_provider( subtitle = SubtitulamosSubtitle( language=language, subtitle_id=subtitle_id, - hearing_impaired=hearing_impaired, page_link=self.server_url + episode_url, series=series, season=season,