Open
Description
(MySQLdb.OperationalError) (2006, 'Server has gone away')
[SQL: SELECT match
.id AS match_id, match
.format_id AS match_format_id, match
.comment AS match_comment, match
.start_time AS match_start_time, match
.end_time AS match_end_time, match
.has_unexpected_third_game AS match_has_unexpected_third_game, match
.is_league AS match_is_league, match
.is_tournament AS match_is_tournament
FROM match
WHERE match
.id = %s]
[parameters: (274136734,)]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Reported on logsite by logged_out
OperationalError (MySQLdb.OperationalError) (2006, 'Server has gone away') [SQL: SELECT `match`.id AS match_id, `match`.format_id AS match_format_id, `match`.comment AS match_comment, `match`.start_time AS match_start_time, `match`.end_time AS match_end_time, `match`.has_unexpected_third_game AS match_has_unexpected_third_game, `match`.is_league AS match_is_league, `match`.is_tournament AS match_is_tournament FROM `match` WHERE `match`.id = %s] [parameters: (274136734,)] (Background on this error at: https://sqlalche.me/e/20/e3q8)
Stack Trace:
Python traceback
Traceback (most recent call last):
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 1965, in _exec_single_context
self.dialect.do_execute(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/engine/default.py", line 921, in do_execute
cursor.execute(statement, parameters)
File "/penny/decksite/.venv/lib64/python3.10/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/penny/decksite/.venv/lib64/python3.10/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
File "/penny/decksite/.venv/lib64/python3.10/site-packages/MySQLdb/connections.py", line 261, in query
_mysql.connection.query(self, query)
MySQLdb.OperationalError: (2006, 'Server has gone away')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/penny/decksite/.venv/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
File "/penny/decksite/.venv/lib/python3.10/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/penny/decksite/.venv/lib/python3.10/site-packages/flask_restx/api.py", line 672, in error_router
return original_handler(e)
File "/penny/decksite/.venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
rv = self.dispatch_request()
File "/penny/decksite/.venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
File "/penny/logsite/./logsite/api.py", line 63, in upload
importing.import_log(lines.split('\n'), match_id)
File "/penny/logsite/./logsite/importing.py", line 41, in import_log
local = import_header(lines, match_id)
File "/penny/logsite/./logsite/importing.py", line 82, in import_header
local = match.get_match(match_id)
File "/penny/logsite/./logsite/data/match.py", line 96, in get_match
return Match.query.filter_by(id=match_id).one_or_none()
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/orm/query.py", line 2769, in one_or_none
return self._iter().one_or_none() # type: ignore
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/orm/query.py", line 2842, in _iter
result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/orm/session.py", line 2262, in execute
return self._execute_internal(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/orm/session.py", line 2144, in _execute_internal
result: Result[Any] = compile_state_cls.orm_execute_statement(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/orm/context.py", line 293, in orm_execute_statement
result = conn.execute(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 1412, in execute
return meth(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
return connection._execute_clauseelement(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 1635, in _execute_clauseelement
ret = self._execute_context(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 1844, in _execute_context
return self._exec_single_context(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 1984, in _exec_single_context
self._handle_dbapi_exception(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 2339, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/engine/base.py", line 1965, in _exec_single_context
self.dialect.do_execute(
File "/penny/decksite/.venv/lib64/python3.10/site-packages/sqlalchemy/engine/default.py", line 921, in do_execute
cursor.execute(statement, parameters)
File "/penny/decksite/.venv/lib64/python3.10/site-packages/MySQLdb/cursors.py", line 179, in execute
res = self._query(mogrified_query)
File "/penny/decksite/.venv/lib64/python3.10/site-packages/MySQLdb/cursors.py", line 330, in _query
db.query(q)
File "/penny/decksite/.venv/lib64/python3.10/site-packages/MySQLdb/connections.py", line 261, in query
_mysql.connection.query(self, query)
sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (2006, 'Server has gone away')
[SQL: SELECT `match`.id AS match_id, `match`.format_id AS match_format_id, `match`.comment AS match_comment, `match`.start_time AS match_start_time, `match`.end_time AS match_end_time, `match`.has_unexpected_third_game AS match_has_unexpected_third_game, `match`.is_league AS match_is_league, `match`.is_tournament AS match_is_tournament
FROM `match`
WHERE `match`.id = %s]
[parameters: (274136734,)]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
500 error at /api/upload
Exception_hash: c60c6baaf3974a40514f8d40208804621a4df488
Request Data
Request Method: POST
Path: /api/upload?
Cookies: ImmutableMultiDict([])
Endpoint: upload
View Args: {}
Person: logged_out
Referrer: None
Request Data: {'match_id': '274136734', 'start_time_utc': '1733102871', 'end_time_utc': '1733104004', 'lines': "PennyDreadful\r\nPD League\r\nBuggedCardObserver, LeagueObserver, PennyDreadfulLegality\r\n_oneCurlyBoy,miss_input\r\n\r\n== Game 1 (899602214) ==\r\n[Time] 1733102871\r\n[03:27:52] PDBot has started watching.\r\n[03:27:52] _oneCurlyBoy joined the game.\r\n[League] High Tide by _onecurlyboy (255495) vs Golgari Delirium by miss_input (255541)\r\n[03:27:54] [CHAT] PDBot: [sD] Good luck in your League match!\r\n[03:27:57] _oneCurlyBoy chooses to play first.\r\n[03:27:59] _oneCurlyBoy mulligans to six cards.\r\n[03:28:05] miss_input begins the game with seven cards in hand.\r\n[03:28:06] _oneCurlyBoy mulligans to five cards.\r\n[03:28:13] _oneCurlyBoy puts two cards on the bottom of their library and begins the game with five cards in hand.\r\n[03:28:13] Turn 1: _oneCurlyBoy\r\n[03:28:13] _oneCurlyBoy skips their draw step.\r\n[03:28:15] _oneCurlyBoy plays [Island].\r\n[03:28:20] Turn 1: miss_input\r\n[03:28:29] miss_input plays [Murmuring Bosk].\r\n[03:28:33] miss_input casts [Birds of Paradise].\r\n[03:28:41] Turn 2: _oneCurlyBoy\r\n[03:28:43] _oneCurlyBoy plays [Island].\r\n[03:28:45] _oneCurlyBoy casts [Strategic Planning].\r\n[03:28:50] Turn 2: miss_input\r\n[03:29:00] miss_input plays [Necroblossom Snarl].\r\n[03:29:07] miss_input casts [Six].\r\n[03:29:14] Turn 3: _oneCurlyBoy\r\n[03:29:17] _oneCurlyBoy plays [Island].\r\n[03:29:19] _oneCurlyBoy casts [Pieces of the Puzzle].\r\n[03:29:19] _oneCurlyBoy reveals 5 cards with [Pieces of the Puzzle]: [Strategic Planning], [Strategic Planning], [Island], [Island], and [Island].\r\n[03:29:22] _oneCurlyBoy chooses Strategic Planning and Strategic Planning.\r\n[03:29:36] Turn 3: miss_input\r\n[03:29:39] miss_input plays [Llanowar Wastes].\r\n[03:29:44] miss_input casts [Stalactite Stalker].\r\n[03:29:52] _oneCurlyBoy is being attacked by [Six]\r\n[03:29:52] miss_input puts triggered ability from [Six] onto the stack (Whenever Six attacks, mill three cards. You may put a land card from among them into your hand.).\r\n[03:29:53] miss_input mills [Stalactite Stalker], [Drag to the Roots], and [Hymn to Tourach].\r\n[03:29:53] miss_input chooses with Six's ability.\r\n[03:30:15] miss_input discards [Forest].\r\n[03:30:15] miss_input casts [Stalactite Stalker] from the graveyard.\r\n[03:30:22] miss_input casts [Stalactite Stalker].\r\n[03:30:33] miss_input casts [Wild Growth] targeting [Llanowar Wastes].\r\n[03:30:35] miss_input puts triggered ability from [Stalactite Stalker] onto the stack (At the beginning of your end step, if you descended this turn, put a +1/+1 counter on Stalactite S...).\r\n[03:30:35] miss_input puts triggered ability from [Stalactite Stalker] onto the stack (At the beginning of your end step, if you descended this turn, put a +1/+1 counter on Stalactite S...).\r\n[03:30:35] miss_input puts triggered ability from [Stalactite Stalker] onto the stack (At the beginning of your end step, if you descended this turn, put a +1/+1 counter on Stalactite S...).\r\n[03:30:36] miss_input puts a +1/+1 counter on [Stalactite Stalker].\r\n[03:30:38] miss_input puts a +1/+1 counter on [Stalactite Stalker].\r\n[03:30:38] miss_input puts a +1/+1 counter on [Stalactite Stalker].\r\n[03:30:39] Turn 4: _oneCurlyBoy\r\n[03:30:42] _oneCurlyBoy plays _oneCurlyBoy.\r\n[03:30:44] _oneCurlyBoy casts miss_input.\r\n[03:30:51] _oneCurlyBoy casts [Peer Through Depths].\r\n[03:30:53] _oneCurlyBoy reveals [High Tide] with [Peer Through Depths].\r\n[03:31:00] Turn 4: miss_input\r\n[03:31:08] _oneCurlyBoy is being attacked by [Stalactite Stalker], [Stalactite Stalker], [Stalactite Stalker], and [Six]\r\n[03:31:09] miss_input puts triggered ability from [Six] onto the stack (Whenever Six attacks, mill three cards. You may put a land card from among them into your hand.).\r\n[03:31:10] miss_input mills [Drag to the Roots], [Birds of Paradise], and [Forest].\r\n[03:31:14] miss_input chooses Forest with Six's ability.\r\n[03:31:26] miss_input plays [Necroblossom Snarl].\r\n[03:31:32] miss_input puts triggered ability from [Stalactite Stalker] onto the stack (At the beginning of your end step, if you descended this turn, put a +1/+1 counter on Stalactite S...).\r\n[03:31:32] miss_input puts triggered ability from [Stalactite Stalker] onto the stack (At the beginning of your end step, if you descended this turn, put a +1/+1 counter on Stalactite S...).\r\n[03:31:32] miss_input puts triggered ability from [Stalactite Stalker] onto the stack (At the beginning of your end step, if you descended this turn, put a +1/+1 counter on Stalactite S...).\r\n[03:31:33] miss_input puts a +1/+1 counter on [Stalactite Stalker].\r\n[03:31:34] miss_input puts a +1/+1 counter on [Stalactite Stalker].\r\n[03:31:35] miss_input puts a +1/+1 counter on [Stalactite Stalker].\r\n[03:31:36] Turn 5: _oneCurlyBoy\r\n[03:31:40] _oneCurlyBoy casts [High Tide].\r\n[03:31:46] _oneCurlyBoy casts [Peer Through Depths].\r\n[03:31:50] _oneCurlyBoy reveals [High Tide] with [Peer Through Depths].\r\n[03:31:56] _oneCurlyBoy casts [High Tide].\r\n[03:32:00] _oneCurlyBoy casts [Turnabout] targeting _oneCurlyBoy.\r\n[03:32:02] _oneCurlyBoy chooses land for [Turnabout].\r\n[03:32:06] _oneCurlyBoy casts [Strategic Planning].\r\n[03:32:12] _oneCurlyBoy casts [High Tide].\r\n[03:32:23] _oneCurlyBoy casts [Commit] targeting [Stalactite Stalker].\r\n[03:32:23] miss_input puts [Stalactite Stalker] beneath the top 1 cards of their library.\r\n[03:32:34] _oneCurlyBoy casts [Memory] from the graveyard.\r\n[03:32:36] _oneCurlyBoy draws seven cards with [Memory].\r\n[03:32:36] miss_input draws seven cards with [Memory].\r\n[03:32:40] _oneCurlyBoy plays [Island].\r\n[03:32:54] _oneCurlyBoy casts [Mind's Desire].\r\n[03:32:55] _oneCurlyBoy puts triggered ability from [Mind's Desire] onto the stack (Storm (When you cast this spell, copy it for each spell that was cast before it this turn. You m...).\r\n[03:33:14] _oneCurlyBoy casts [Commit] targeting [Wild Growth].\r\n[03:33:15] miss_input puts [Wild Growth] beneath the top 1 cards of their library.\r\n[03:33:23] _oneCurlyBoy casts [Pieces of the Puzzle].\r\n[03:33:24] _oneCurlyBoy reveals 5 cards with [Pieces of the Puzzle]: [Peer Through Depths], [Island], [Pieces of the Puzzle], [Strategic Planning], and [Island].\r\n[03:33:29] _oneCurlyBoy chooses Pieces of the Puzzle and Peer Through Depths.\r\n[03:33:33] _oneCurlyBoy casts [Turnabout] targeting _oneCurlyBoy.\r\n[03:33:34] _oneCurlyBoy chooses land for [Turnabout].\r\n[03:33:41] _oneCurlyBoy casts [Turnabout] targeting _oneCurlyBoy.\r\n[03:33:43] _oneCurlyBoy chooses land for [Turnabout].\r\n[03:33:55] _oneCurlyBoy casts [Sapphire Medallion].\r\n[03:33:57] _oneCurlyBoy casts [High Tide].\r\n[03:34:02] _oneCurlyBoy casts [Peer Through Depths].\r\n[03:34:05] _oneCurlyBoy reveals [Reality Spasm] with [Peer Through Depths].\r\n[03:34:11] _oneCurlyBoy casts [Pieces of the Puzzle].\r\n[03:34:11] _oneCurlyBoy reveals 5 cards with [Pieces of the Puzzle]: [Island], [Island], [Island], [Peer Through Depths], and [Peer Through Depths].\r\n[03:34:15] _oneCurlyBoy chooses Peer Through Depths and Peer Through Depths.\r\n[03:34:17] _oneCurlyBoy casts [Peer Through Depths].\r\n[03:34:20] _oneCurlyBoy reveals [Mind's Desire] with [Peer Through Depths].\r\n[03:34:23] _oneCurlyBoy casts [Peer Through Depths].\r\n[03:34:25] _oneCurlyBoy reveals [Turnabout] with [Peer Through Depths].\r\n[03:34:34] _oneCurlyBoy casts [Dig Through Time].\r\n[03:34:50] _oneCurlyBoy casts [Mind's Desire].\r\n[03:34:51] _oneCurlyBoy puts triggered ability from [Mind's Desire] onto the stack (Storm (When you cast this spell, copy it for each spell that was cast before it this turn. You m...).\r\n[03:35:30] _oneCurlyBoy casts [High Tide].\r\n[03:35:36] _oneCurlyBoy casts [High Tide].\r\n[03:35:42] _oneCurlyBoy casts [Turnabout] targeting _oneCurlyBoy.\r\n[03:35:44] _oneCurlyBoy chooses land for [Turnabout].\r\n[03:35:54] _oneCurlyBoy casts [Granted].\r\n[03:35:59] _oneCurlyBoy chooses Blue Sun's Zenith.\r\n[03:36:29] _oneCurlyBoy casts [Blue Sun's Zenith] targeting miss_input. (X is 59).\r\n[03:36:29] miss_input draws fifty-nine cards with [Blue Sun's Zenith].\r\n[03:36:34] _oneCurlyBoy wins the game.\r\nWinner: _oneCurlyBoy\r\nGame 1 Completed.\r\n== Game 2 (899603040) ==\r\n[Time] 1733103441\r\n[03:37:21] PDBot has started watching.\r\n[03:37:25] miss_input chooses to play first.\r\n[03:37:37] miss_input begins the game with seven cards in hand.\r\n[03:37:39] _oneCurlyBoy begins the game with seven cards in hand.\r\n[03:37:39] Turn 1: miss_input\r\n[03:37:39] miss_input skips their draw step.\r\n[03:37:42] miss_input plays [Murmuring Bosk].\r\n[03:37:46] Turn 1: _oneCurlyBoy\r\n[03:37:48] _oneCurlyBoy plays [Island].\r\n[03:37:52] Turn 2: miss_input\r\n[03:37:57] miss_input plays [Necroblossom Snarl].\r\n[03:38:03] miss_input casts [Agonizing Remorse] targeting _oneCurlyBoy.\r\n[03:38:11] _oneCurlyBoy reveals their hand to [Agonizing Remorse], containing [Dig Through Time], [Island], [Island], [Strategic Planning], [An Offer You Can't Refuse], [Peer Through Depths], and [Island].\r\n[03:38:25] Turn 2: _oneCurlyBoy\r\n[03:38:27] _oneCurlyBoy plays [Island].\r\n[03:38:29] _oneCurlyBoy casts [Strategic Planning].\r\n[03:38:40] Turn 3: miss_input\r\n[03:38:50] miss_input plays [Twilight Mire].\r\n[03:38:58] miss_input casts [Ripples of Undeath].\r\n[03:38:59] [CHAT] PDBot: [sU]Ripples of Undeath[sU] has an avoidable game breaking bug.\nPaying for ripples of undeath while wheel of sun and moon is in play locks the game.\r\nOur data about this bug is out of date. Please let us know if this card is still bugged (or if it's been fixed).\r\nYou can do so by PM'ing this bot, or by typing `!stillbugged Ripples of Undeath` or `!notbugged Ripples of Undeath`\r\n[03:39:04] Turn 3: _oneCurlyBoy\r\n[03:39:06] _oneCurlyBoy plays [Island].\r\n[03:39:08] _oneCurlyBoy casts [Sapphire Medallion].\r\n[03:39:11] _oneCurlyBoy casts [Strategic Planning].\r\n[03:39:20] Turn 4: miss_input\r\n[03:39:21] miss_input puts triggered ability from [Ripples of Undeath] onto the stack (At the beginning of your first main phase, mill three cards. Then you may pay {1} and 3 life. If y...).\r\n[03:39:25] miss_input mills [Twilight Mire], [Smuggler's Copter], and [Souls of the Lost].\r\n[03:39:43] miss_input chooses Souls of the Lost with Ripples of Undeath's ability.\r\n[03:39:44] miss_input plays [Necroblossom Snarl].\r\n[03:40:01] miss_input discards [Forest].\r\n[03:40:01] miss_input casts [Souls of the Lost].\r\n[03:40:21] Turn 4: _oneCurlyBoy\r\n[03:40:25] _oneCurlyBoy plays [Island].\r\n[03:40:34] Turn 5: miss_input\r\n[03:40:35] miss_input puts triggered ability from [Ripples of Undeath] onto the stack (At the beginning of your first main phase, mill three cards. Then you may pay {1} and 3 life. If y...).\r\n[03:40:43] miss_input mills [Smuggler's Copter], [Argoth, Sanctum of Nature], and [Six].\r\n[03:40:54] miss_input plays [Llanowar Wastes].\r\n[03:41:03] miss_input casts [Hymn to Tourach] targeting _oneCurlyBoy.\r\n[03:41:07] _oneCurlyBoy casts [An Offer You Can't Refuse] targeting [Hymn to Tourach].\r\n[03:41:11] miss_input's [An Offer You Can't Refuse] creates two Treasure Tokens under miss_input's control.\r\n[03:41:23] _oneCurlyBoy is being attacked by [Souls of the Lost]\r\n[03:41:36] miss_input casts [Smuggler's Copter].\r\n[03:41:41] _oneCurlyBoy casts [Peer Through Depths].\r\n[03:41:45] _oneCurlyBoy reveals [High Tide] with [Peer Through Depths].\r\n[03:41:57] _oneCurlyBoy casts [Dig Through Time].\r\n[03:42:20] Turn 5: _oneCurlyBoy\r\n[03:42:23] _oneCurlyBoy plays [Island].\r\n[03:42:25] _oneCurlyBoy casts _oneCurlyBoy.\r\n[03:42:31] _oneCurlyBoy casts [High Tide].\r\n[03:42:37] _oneCurlyBoy casts [Palinchron].\r\n[03:42:38] _oneCurlyBoy puts triggered ability from [Palinchron] onto the stack (When Palinchron enters, untap up to seven lands.).\r\n[03:42:50] _oneCurlyBoy activates an ability of [Palinchron] ( Return Palinchron to its owner's hand.).\r\n[03:42:57] _oneCurlyBoy casts [Palinchron].\r\n[03:42:58] _oneCurlyBoy puts triggered ability from [Palinchron] onto the stack (When Palinchron enters, untap up to seven lands.).\r\n[03:43:09] _oneCurlyBoy activates an ability of [Palinchron] ( Return Palinchron to its owner's hand.).\r\n[03:43:13] _oneCurlyBoy casts [Palinchron].\r\n[03:43:14] _oneCurlyBoy puts triggered ability from [Palinchron] onto the stack (When Palinchron enters, untap up to seven lands.).\r\n[03:43:27] _oneCurlyBoy activates an ability of [Palinchron] ( Return Palinchron to its owner's hand.).\r\n[03:43:37] _oneCurlyBoy casts [Palinchron].\r\n[03:43:38] _oneCurlyBoy puts triggered ability from [Palinchron] onto the stack (When Palinchron enters, untap up to seven lands.).\r\n[03:43:50] _oneCurlyBoy activates an ability of [Palinchron] ( Return Palinchron to its owner's hand.).\r\n[03:43:54] _oneCurlyBoy casts [Palinchron].\r\n[03:43:54] _oneCurlyBoy puts triggered ability from [Palinchron] onto the stack (When Palinchron enters, untap up to seven lands.).\r\n[03:44:06] _oneCurlyBoy activates an ability of [Palinchron] ( Return Palinchron to its owner's hand.).\r\n[03:44:11] _oneCurlyBoy casts [Palinchron].\r\n[03:44:11] _oneCurlyBoy puts triggered ability from [Palinchron] onto the stack (When Palinchron enters, untap up to seven lands.).\r\n[03:44:23] _oneCurlyBoy activates an ability of [Palinchron] ( Return Palinchron to its owner's hand.).\r\n[03:44:30] _oneCurlyBoy casts [Palinchron].\r\n[03:44:31] _oneCurlyBoy puts triggered ability from [Palinchron] onto the stack (When Palinchron enters, untap up to seven lands.).\r\n[03:44:38] _oneCurlyBoy activates an ability of [Palinchron] ( Return Palinchron to its owner's hand.).\r\n[03:44:44] _oneCurlyBoy casts [Palinchron].\r\n[03:44:44] _oneCurlyBoy puts triggered ability from [Palinchron] onto the stack (When Palinchron enters, untap up to seven lands.).\r\n[03:44:53] _oneCurlyBoy activates an ability of [Palinchron] ( Return Palinchron to its owner's hand.).\r\n[03:44:59] _oneCurlyBoy casts [Palinchron].\r\n[03:45:00] _oneCurlyBoy puts triggered ability from [Palinchron] onto the stack (When Palinchron enters, untap up to seven lands.).\r\n[03:45:14] _oneCurlyBoy casts [Mind's Desire].\r\n[03:45:14] _oneCurlyBoy puts triggered ability from [Mind's Desire] onto the stack (Storm (When you cast this spell, copy it for each spell that was cast before it this turn. You m...).\r\n[03:45:48] _oneCurlyBoy casts [Cyclonic Rift] targeting [Smuggler's Copter].\r\n[03:45:49] _oneCurlyBoy returns [Smuggler's Copter] to its owner's hand with [Cyclonic Rift].\r\n[03:45:52] _oneCurlyBoy casts [Suspend] targeting [Souls of the Lost].\r\n[03:45:52] _oneCurlyBoy puts two time counters on [Souls of the Lost].\r\n[03:45:54] _oneCurlyBoy casts [Sapphire Medallion].\r\n[03:46:05] _oneCurlyBoy casts [Turnabout] targeting _oneCurlyBoy.\r\n[03:46:06] _oneCurlyBoy chooses land for [Turnabout].\r\n[03:46:10] _oneCurlyBoy casts [Pieces of the Puzzle].\r\n[03:46:10] _oneCurlyBoy reveals 5 cards with [Pieces of the Puzzle]: [Island], [Island], [Turnabout], [Island], and [Blue Sun's Zenith].\r\n[03:46:16] _oneCurlyBoy chooses Blue Sun's Zenith and Turnabout.\r\n[03:46:40] _oneCurlyBoy casts [Blue Sun's Zenith] targeting miss_input. (X is 50).\r\n[03:46:40] miss_input draws fifty cards with [Blue Sun's Zenith].\r\n[03:46:43] _oneCurlyBoy wins the game.\r\nWinner: _oneCurlyBoy\r\nGame 2 Completed.\r\nMatch Winner: _oneCurlyBoy: 2–0\r\n"}
Host: logs.pennydreadfulmagic.com
Cf-Ray: 953f3a5ba8f84277-SJC
X-Forwarded-For: 198.22.162.92, 172.69.134.232
Cf-Connecting-Ip: 198.22.162.92
Accept-Encoding: gzip, br
X-Forwarded-Proto: https
Content-Type: application/x-www-form-urlencoded
User-Agent: PennyDeadfulBot
Cf-Visitor: {"scheme":"https"}
Cdn-Loop: cloudflare; loops=1
Cf-Ipcountry: US
X-Forwarded-Host: logs.pennydreadfulmagic.com
X-Forwarded-Server: logs.pennydreadfulmagic.com
Content-Length: 19002
Connection: Keep-Alive