§
    £¿j}:  ã                  ó(  — d Z ddlmZ ddlZddlmc mZ ddl	Z	ddl
mZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZmZ e	j        d„ ¦   «         Z G d„ d¦  «        Z G d„ d¦  «        Z  G d„ d¦  «        Z! G d„ d¦  «        Z"dS )ao  
Comprehensive Unit Tests for Safe Teleportation & PoE2 Hideout Town Portal Engine.

Verifies:
1. Domain models, enums, backward-compatibility aliases, and immutability.
2. Authoritative 3.5s channeling state machine with movement/damage interrupts.
3. 5-Gate Destination Validation and spiral ray landing coordinate resolver.
4. Dynamic 2-way TownPortalLink, personal exclusivity, and party member traversal.
5. 6-portal Map Device charge tracking and permanent sealing at 0 charges.
6. Anti-exploit quarantine for active boss encounters and secret chambers.
7. Death penalty handling across wilderness and map instances.
é    )ÚannotationsN)ÚPartyService)ÚGuildRosterService)ÚSocialService)ÚGuildMemberPresenceDTO)ÚTeleportService)ÚTownPortalEngine)ÚInterruptReasonÚPortalQuarantineStatusÚ
TargetTypeÚTeleportChannelSessionÚTeleportChannelStatusÚTownPortalLinkc                 ó¢   — t          ¦   «         } t          ¦   «         }t          ¦   «         }t          | ||¦  «        }t	          ¦   «         }| ||||fS )N)r   r   r   r   r	   )Ú	party_svcÚ
social_svcÚ	guild_svcÚteleport_svcÚportal_engines        ú<C:\Projects\FreeExile\tests\unit\test_teleport_and_portal.pyÚservicesr   "   sL   € å‘”€IÝ‘”€JÝ"Ñ$Ô$€IÝ" 9¨j¸)ÑDÔD€LÝ$Ñ&Ô&€MØ�j )¨\¸=ÐHÐHó    c                  ó"   — e Zd ZdZdd„Zdd„ZdS )ÚTestTownPortalTypesAndAliaseszOVerifies dataclass immutability, slotted properties, and compatibility aliases.ÚreturnÚNonec                ó\  — t          ddddddddd¬	¦	  «	        }|j        }d}||k    }|sªt          j        d
|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}|j
        }d}||k    }|sªt          j        d
|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}|j        }d}||k    }|sªt          j        d
|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}|j        }d}||k    }|sªt          j        d
|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}|j        }d}||k    }|sªt          j        d
|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}|d         }d}||k    }|slt          j        d
|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }	dd|	iz  }
t          t          j	        |
¦  «        ¦  «        ‚d x}x}}|d         }d}||k    }|slt          j        d
|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }	dd|	iz  }
t          t          j	        |
¦  «        ¦  «        ‚d x}x}}|d         }d}||u }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }	dd|	iz  }
t          t          j	        |
¦  «        ¦  «        ‚d x}x}}d|d<   |j        }d}||u }|sªt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}d S )NÚ	tp_hero_1Úhero_1Úzone_tang_kiem_nhaig      ^@g     @u@Úzone_player_hideoutç        T)	Ú	portal_idÚowner_idÚwilderness_zone_idÚwilderness_xÚwilderness_yÚhub_zone_idÚhub_xÚhub_yÚ	is_active©ú==)z1%(py2)s
{%(py2)s = %(py0)s.player_id
} == %(py5)sÚportal©Úpy0Úpy2Úpy5úassert %(py7)sÚpy7)z3%(py2)s
{%(py2)s = %(py0)s.origin_zone
} == %(py5)s)z0%(py2)s
{%(py2)s = %(py0)s.origin_x
} == %(py5)s)z0%(py2)s
{%(py2)s = %(py0)s.origin_y
} == %(py5)s)z0%(py2)s
{%(py2)s = %(py0)s.hub_zone
} == %(py5)sÚorigin_zone©z%(py1)s == %(py4)s©Úpy1Úpy4úassert %(py6)sÚpy6Úhub_zoner+   ©Úis)z%(py1)s is %(py4)sF)z1%(py2)s
{%(py2)s = %(py0)s.is_active
} is %(py5)s)r   Ú	player_idÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationr5   Úorigin_xÚorigin_yr<   r+   )Úselfr.   Ú@py_assert1Ú@py_assert4Ú@py_assert3Ú@py_format6Ú@py_format8Ú@py_assert0Ú@py_assert2Ú@py_format5Ú@py_format7s              r   Ú1test_town_portal_link_properties_and_subscriptingzOTestTownPortalTypesAndAliases.test_town_portal_link_properties_and_subscripting/   sˆ  € ÝØ!ØØ4ØØØ-ØØØð

ñ 

ô 

ˆð ÔÐ+ 8Ð+Ð 8Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð 8Ð+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆvÑ+Ô+Ð+Õ+Ô+ˆvÑ+Ô+Ð+Ð+Õ+Ô+ÐÑ+Ô+Õ+Ô+ 8Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÔ!Ð:Ð%:Ð:Ð!Ð%:Ò:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð!Ð%:Ð:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:ˆvÑ:Ô:Ð:Õ:Ô:ˆvÑ:Ô:Ð:Ð:Õ:Ô:Ð!Ñ:Ô:Õ:Ô:Ð%:Ñ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ØŒÐ' %Ð'ˆ %Ò'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'ˆ %Ð'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Ð'Õ'Ô'ˆÑ'Ô'Õ'Ô' %Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØŒÐ' %Ð'ˆ %Ò'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'ˆ %Ð'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Ð'Õ'Ô'ˆÑ'Ô'Õ'Ô' %Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØŒÐ7Ð"7Ð7ˆÐ"7Ò7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7ˆÐ"7Ð7Ñ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7ˆvÑ7Ô7Ð7Õ7Ô7ˆvÑ7Ô7Ð7Ð7Õ7Ô7ˆÑ7Ô7Õ7Ô7Ð"7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7à�mÔ$Ð=Ð(=Ð=Ð$Ð(=Ò=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð$Ð(=Ð=Ñ=Ô=Õ=Ô=Ð$Ñ=Ô=Õ=Ô=Ð(=Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ø�jÔ!Ð:Ð%:Ð:Ð!Ð%:Ò:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð!Ð%:Ð:Ñ:Ô:Õ:Ô:Ð!Ñ:Ô:Õ:Ô:Ð%:Ñ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø�kÔ"Ð* dÐ*Ð" dÐ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð" dÐ*Ñ*Ô*Õ*Ô*Ð"Ñ*Ô*Õ*Ô* dÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*à#ˆˆ{ÑØÔÐ( 5Ð(Ð 5Ð(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð 5Ð(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆvÑ(Ô(Ð(Õ(Ô(ˆvÑ(Ô(Ð(Ð(Õ(Ô(ÐÑ(Ô(Õ(Ô( 5Ñ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(r   c           	     óà	  — t          ddt          j        dddd¬¦  «        }|j        }d}||k    }|sªt	          j        d|fd	||f¦  «        d
t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd
t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        d
t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd
t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        d
t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd
t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        d
t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd
t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        d
t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd
t	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}|d         }d}||k    }|slt	          j        d|fd||f¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }	dd|	iz  }
t          t	          j        |
¦  «        ¦  «        ‚d x}x}}|d         }d}||k    }|slt	          j        d|fd||f¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }	dd|	iz  }
t          t	          j        |
¦  «        ¦  «        ‚d x}x}}d S )NÚchan_p1_100Úp1Úp2g     @�@ç      @Ú	zone_wild)Ú
session_idr?   Útarget_typeÚ	target_idÚ
start_timeÚduration_secondsÚtarget_zone_idr,   )z2%(py2)s
{%(py2)s = %(py0)s.channel_id
} == %(py5)sÚsessionr/   r3   r4   )z1%(py2)s
{%(py2)s = %(py0)s.caster_id
} == %(py5)s)z8%(py2)s
{%(py2)s = %(py0)s.target_player_id
} == %(py5)s)z1%(py2)s
{%(py2)s = %(py0)s.cast_time
} == %(py5)si¬  )z3%(py2)s
{%(py2)s = %(py0)s.duration_ms
} == %(py5)sr`   r6   r7   r:   r;   r^   )r   r   ÚPARTY_MEMBERÚ
channel_idr@   rA   rB   rC   rD   rE   rF   rG   Ú	caster_idÚtarget_player_idÚ	cast_timeÚduration_ms)rJ   ra   rK   rL   rM   rN   rO   rP   rQ   rR   rS   s              r   Ú9test_teleport_channel_session_properties_and_subscriptingzWTestTownPortalTypesAndAliases.test_teleport_channel_session_properties_and_subscriptingH   sî  € Ý(Ø$ØÝ"Ô/ØØØ Ø&ð
ñ 
ô 
ˆð Ô!Ð2 ]Ð2Ð! ]Ò2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð! ]Ð2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆwÑ2Ô2Ð2Õ2Ô2ˆwÑ2Ô2Ð2Ð2Õ2Ô2Ð!Ñ2Ô2Õ2Ô2 ]Ñ2Ô2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ØÔ Ð( DÐ(Ð  DÒ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð  DÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆwÑ(Ô(Ð(Õ(Ô(ˆwÑ(Ô(Ð(Ð(Õ(Ô(Ð Ñ(Ô(Õ(Ô( DÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØÔ'Ð/¨4Ð/Ð'¨4Ò/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð'¨4Ð/Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/ˆwÑ/Ô/Ð/Õ/Ô/ˆwÑ/Ô/Ð/Ð/Õ/Ô/Ð'Ñ/Ô/Õ/Ô/¨4Ñ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ØÔ Ð' CÐ'Ð  CÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð  CÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆwÑ'Ô'Ð'Õ'Ô'ˆwÑ'Ô'Ð'Ð'Õ'Ô'Ð Ñ'Ô'Õ'Ô' CÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØÔ"Ð* dÐ*Ð" dÒ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð" dÐ*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆwÑ*Ô*Ð*Õ*Ô*ˆwÑ*Ô*Ð*Ð*Õ*Ô*Ð"Ñ*Ô*Õ*Ô* dÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÐ'Ô(Ð7¨KÐ7Ð(¨KÒ7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7Ð(¨KÐ7Ñ7Ô7Õ7Ô7Ð(Ñ7Ô7Õ7Ô7¨KÑ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ø�|Ô$Ð.¨Ð.Ð$¨Ò.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð$¨Ð.Ñ.Ô.Õ.Ô.Ð$Ñ.Ô.Õ.Ô.¨Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.r   N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rT   rh   © r   r   r   r   ,   sB   € € € € € ØYÐYð)ð )ð )ð )ð2/ð /ð /ð /ð /ð /r   r   c                  ó:   — e Zd ZdZd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd	S )ÚTestTeleportChannelStateMachinezXVerifies 3.5s channeling lifecycle, movement/damage interrupts, and spiral ray resolver.r   r   c                óx  — |\  }}}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dt
          j        dd¦  «        \  }}g }d}	||	u }
|
}|
r|j        }d} ||¦  «        }|}|�s_t          j	        d	|
fd
||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r’ddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}x}}d}|j        }	||	v }|sªt          j	        d|fd||	f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}}	|                     dd¬¦  «        \  }}g }d}	||	u }
|
}|
rd}||v }|}|�sXt          j	        d	|
fd
||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r‹t          j	        d|fd||f¦  «        t          j        |¦  «        d t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd d!œz  }d"d#|iz  }|                     |¦  «         t          j        |d¦  «        i z  }d$d%|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}|                     dd&¬¦  «        \  }}g }d}	||	u }
|
}|
r
d}||k    }|}|�sXt          j	        d	|
fd
||	f¦  «        d't          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd't          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r‹t          j	        d(|fd)||f¦  «        d*t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd*t          j        |¦  «        d+œz  }d"d#|iz  }|                     |¦  «         t          j        |d¦  «        i z  }d$d%|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}d}|j        }	||	v}|sªt          j	        d,|fd-||	f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}}	d S ).NrW   ÚCasteré   rX   ÚTargetrZ   TÚchan_p1_r=   ©z%(py2)s is %(py5)sÚok©r1   r2   ú%(py7)sr4   zJ%(py15)s
{%(py15)s = %(py11)s
{%(py11)s = %(py9)s.startswith
}(%(py13)s)
}Úchan_id)Úpy9Úpy11Úpy13Úpy15r   úassert %(py18)sÚpy18©Úin©z7%(py1)s in %(py5)s
{%(py5)s = %(py3)s.active_channels
}r   ©r8   Úpy3r2   r3   g333333@)Úelapsed_timeFÚCAST_INCOMPLETEÚok_premature©z%(py10)s in %(py12)sÚerr©Úpy10Úpy12ú%(py14)sÚpy14úassert %(py17)sÚpy17rY   Úok_doner,   ©z%(py9)s == %(py12)sÚ	dest_zone©r{   r�   ©únot in©z;%(py1)s not in %(py5)s
{%(py5)s = %(py3)s.active_channels
})Úcreate_partyÚinvite_playerÚparty_idÚaccept_inviteÚstart_teleport_channelr   rb   Ú
startswithr@   rA   rB   rC   rD   rE   ÚappendÚ_format_booloprF   rG   Úactive_channelsÚcomplete_channel)rJ   r   r   Ú_r   Úprw   rz   rK   rL   rM   rP   Ú@py_assert10Ú@py_assert12Ú@py_assert14rN   rO   Ú@py_format16Ú@py_format17Ú@py_format19rQ   rˆ   rŠ   Ú@py_assert9Ú@py_assert11Ú@py_format13Ú@py_format15Ú@py_format18r’   r”   s                                 r   Ú#test_channel_full_lifecycle_successzCTestTeleportChannelStateMachine.test_channel_full_lifecycle_success^   s4  € Ø+3Ñ(ˆ	�1�a˜ qØ×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?à"×9Ò9¸$Å
Ô@WÐY]Ð_jÑkÔk‰ˆˆGØ<Ð<�TÐ<ˆr�TˆzÐ<Ð<Ð<Ð<Ð<˜gÔ0Ð<°Ð<Ð0Ð0°Ñ<Ô<Ð<Ð<Ð<Ð<Ñ<Õ<Ô<Ð<Ð<Ð<Ð<ˆr�TÐ<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ˆrÑ<Ô<Ð<Õ<Ô<ˆrÑ<Ô<Ð<Ð<Õ<Ô<�TÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Ð<×<Ò<Ð<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<˜gÑ<Ô<Ð<Õ<Ô<˜gÑ<Ô<Ð<Ð<Õ<Ô<Ð0Ñ<Ô<Õ<Ô<°Ñ<Ô<Õ<Ô<Ð<Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<×<Ò<Ð<Ñ<Ô<Ð<Õ<Ô<Ð<Ð<Ñ<Ô<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ØÐ3�|Ô3Ð3ˆtÐ3Ð3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3ˆtÐ3Ð3Ñ3Ô3Õ3Ô3ˆtÑ3Ô3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3�|Ñ3Ô3Ð3Õ3Ô3�|Ñ3Ô3Ð3Ð3Õ3Ô3Ð3Ñ3Ô3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ð )×9Ò9¸$ÈSÐ9ÑQÔQÑˆ�cØAÐA˜uÐAˆ|˜uÐ$ÐAÐAÐAÐAÐAÐ):ÐAÐ):¸cÐ)AÐAÐAÐAÐAÑAÕAÔAÐAÐAÐAÐAˆ|˜uÐAÑAÔAÐAÕAÔAÑAÔAÐAÐAÕAÔAˆ|ÑAÔAÐAÕAÔAˆ|ÑAÔAÐAÐAÕAÔA˜uÑAÔAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÐA×AÒAÐAÑAÔAÐAÐAÐAÕAÔAÐAÐAÐAÐAÐ):¸cÐAÑAÔAÕAÔAÐ):ÑAÔAÐAÕAÔAÑAÔAÐAÐAÕAÔA¸cÑAÔAÐAÕAÔA¸cÑAÔAÐAÐAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÐA×AÒAÐAÑAÔAÐAÕAÔAÐAÐAÑAÔAÐAÑAÐAÐAÐAÐAÐAÑAÐAÕAÕAÔAÐAÑAÔAÑAÔAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAð *×:Ò:¸4ÈcÐ:ÑRÔRÑˆ�Ø;Ð;˜$Ð;ˆw˜$ˆÐ;Ð;Ð;Ð;Ð;°Ð; 9°Ò#;Ð;Ð;Ð;Ð;Ñ;Õ;Ô;Ð;Ð;Ð;Ð;ˆw˜$Ð;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆwÑ;Ô;Ð;Õ;Ô;ˆwÑ;Ô;Ð;Ð;Õ;Ô;˜$Ñ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;×;Ò;Ð;Ñ;Ô;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð; 9°Ð;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô; 9Ñ;Ô;Ð;Õ;Ô; 9Ñ;Ô;Ð;Ð;Õ;Ô;°Ñ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;×;Ò;Ð;Ñ;Ô;Ð;Õ;Ô;Ð;Ð;Ñ;Ô;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØÐ7˜<Ô7Ð7ˆtÐ7Ð7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7ˆtÐ7Ð7Ñ7Ô7Õ7Ô7ˆtÑ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Ð7Õ7Ô7Ð7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7r   c           	     ó0  — |\  }}}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dt
          j        dd¦  «         |j        }d}d} |||¬¦  «        }	d }
|	|
u }|sãt          j	        d	|fd
|	|
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        t          j        |
¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}	x}}
d}|j        }||v }|sªt          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|                     dd¬¦  «        }t"          j        }||k    }|sßt          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}}d}|j        }||v}|sªt          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}d S )NrW   rr   rs   rX   rt   rZ   g{®Gáz¤?)Úmagr=   )zc%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.on_player_moved
}(%(py4)s, mag=%(py6)s)
} is %(py11)sr   ©r0   r1   r9   r;   Úpy8r|   úassert %(py13)sr}   r�   rƒ   r„   r3   r4   g¸…ëQ¸®?r,   )z:%(py0)s == %(py4)s
{%(py4)s = %(py2)s.INTERRUPT_MOVEMENT
}Úreasonr
   ©r0   r1   r9   r:   r;   r–   r˜   )r™   rš   r›   rœ   r�   r   rb   Úon_player_movedr@   rA   rB   rC   rD   rE   rF   rG   r¡   r
   ÚINTERRUPT_MOVEMENT©rJ   r   r   r£   r   r¤   rK   rM   Ú@py_assert5Ú@py_assert7r¥   r«   Ú@py_format12Ú@py_format14rP   rL   rQ   rN   rO   r¶   rR   rS   s                         r   Ú test_movement_interrupt_triggersz@TestTeleportChannelStateMachine.test_movement_interrupt_triggersq   sŸ  € Ø+3Ñ(ˆ	�1�a˜ qØ×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?à×+Ò+¨Dµ*Ô2IÈ4ÐQ\Ñ]Ô]Ð]àÔ+ÐC¨DÐC°dÐCÐ+Ð+¨D°dÐ;Ñ;Ô;ÐC¸tÐCÐ;¸tÐCÐCÐCÐCÕCÔCÐCÐCÐCÐCÐ;¸tÐCÑCÔCÐCÕCÔCÑCÔCÐCÐCÕCÔCˆ|ÑCÔCÐCÕCÔCˆ|ÑCÔCÐCÐCÕCÔCÐ+ÑCÔCÕCÔC¨DÑCÔCÕCÔC°dÑCÔCÕCÔCÐ;ÑCÔCÕCÔC¸tÑCÔCÐCÐCÑCÐCÐCÐCÐCÐCÑCÐCÕCÕCÔCÐCÑCÔCÑCÔCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCØÐ3�|Ô3Ð3ˆtÐ3Ð3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3ˆtÐ3Ð3Ñ3Ô3Õ3Ô3ˆtÑ3Ô3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3�|Ñ3Ô3Ð3Õ3Ô3�|Ñ3Ô3Ð3Ð3Õ3Ô3Ð3Ñ3Ô3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ð ×-Ò-¨d¸Ð-Ñ=Ô=ˆÝ(Ô;Ð;ˆvÐ;Ò;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;ˆvÐ;Ð;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆvÑ;Ô;Ð;Õ;Ô;ˆvÑ;Ô;Ð;Ð;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;�Ñ;Ô;Ð;Õ;Ô;�Ñ;Ô;Ð;Ð;Õ;Ô;Ð;Ñ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;ØÐ7˜<Ô7Ð7ˆtÐ7Ð7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7ˆtÐ7Ð7Ñ7Ô7Õ7Ô7ˆtÑ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Ð7Õ7Ô7Ð7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7r   c           	     ó0  — |\  }}}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dt
          j        dd¦  «         |j        }d}d} |||¬¦  «        }	d }
|	|
u }|sãt          j	        d	|fd
|	|
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        t          j        |
¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}	x}}
d}|j        }||v }|sªt          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|                     dd¬¦  «        }t"          j        }||k    }|sßt          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}}d}|j        }||v}|sªt          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}d S )NrW   rr   rs   rX   rt   rZ   r"   )Údamager=   )zh%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.on_player_damaged
}(%(py4)s, damage=%(py6)s)
} is %(py11)sr   r³   rµ   r}   r�   rƒ   r„   r3   r4   g      ø?r,   )z8%(py0)s == %(py4)s
{%(py4)s = %(py2)s.INTERRUPT_DAMAGE
}r¶   r
   r·   r:   r;   r–   r˜   )r™   rš   r›   rœ   r�   r   rb   Úon_player_damagedr@   rA   rB   rC   rD   rE   rF   rG   r¡   r
   ÚINTERRUPT_DAMAGErº   s                         r   Útest_damage_interrupt_triggersz>TestTeleportChannelStateMachine.test_damage_interrupt_triggers�   sŸ  € Ø+3Ñ(ˆ	�1�a˜ qØ×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?à×+Ò+¨Dµ*Ô2IÈ4ÐQ\Ñ]Ô]Ð]àÔ-ÐG¨dÐG¸3ÐGÐ-Ð-¨d¸3Ð?Ñ?Ô?ÐGÀ4ÐGÐ?À4ÐGÐGÐGÐGÕGÔGÐGÐGÐGÐGÐ?À4ÐGÑGÔGÐGÕGÔGÑGÔGÐGÐGÕGÔGˆ|ÑGÔGÐGÕGÔGˆ|ÑGÔGÐGÐGÕGÔGÐ-ÑGÔGÕGÔG¨dÑGÔGÕGÔG¸3ÑGÔGÕGÔGÐ?ÑGÔGÕGÔGÀ4ÑGÔGÐGÐGÑGÐGÐGÐGÐGÐGÑGÐGÕGÕGÔGÐGÑGÔGÑGÔGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGØÐ3�|Ô3Ð3ˆtÐ3Ð3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3ˆtÐ3Ð3Ñ3Ô3Õ3Ô3ˆtÑ3Ô3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3�|Ñ3Ô3Ð3Õ3Ô3�|Ñ3Ô3Ð3Ð3Õ3Ô3Ð3Ñ3Ô3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ð ×/Ò/°¸SÐ/ÑAÔAˆÝ(Ô9Ð9ˆvÐ9Ò9Ð9Ð9Ð9Õ9Ô9Ð9Ð9Ð9Ð9ˆvÐ9Ð9Ñ9Ô9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9ˆvÑ9Ô9Ð9Õ9Ô9ˆvÑ9Ô9Ð9Ð9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9�Ñ9Ô9Ð9Õ9Ô9�Ñ9Ô9Ð9Ð9Õ9Ô9Ð9Ñ9Ô9Ð9Ð9Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9ØÐ7˜<Ô7Ð7ˆtÐ7Ð7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7ˆtÐ7Ð7Ñ7Ô7Õ7Ô7ˆtÑ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Õ7Ô7˜<Ñ7Ô7Ð7Ð7Õ7Ô7Ð7Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7r   c                óÒ  — |\  }}}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dt
          j        dd¦  «         |j        }d} ||¦  «        }d}	||	u }
|
sÐt          j	        d|
fd	||	f¦  «        d
t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd
t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}
}	|j        }d} ||¦  «        }d}	||	u }
|
sÐt          j	        d|
fd	||	f¦  «        d
t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd
t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}
}	d S )NrW   rr   rs   rX   rt   rZ   Tr=   )zT%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.cancel_channel
}(%(py4)s)
} is %(py9)sr   )r0   r1   r9   r;   r{   zassert %(py11)sr|   F)r™   rš   r›   rœ   r�   r   rb   Úcancel_channelr@   rA   rB   rC   rD   rE   rF   rG   )rJ   r   r   r£   r   r¤   rK   rM   r»   Ú@py_assert8r¼   Ú@py_format10r½   s                r   Útest_manual_cancellationz8TestTeleportChannelStateMachine.test_manual_cancellation‘   sÃ  € Ø+3Ñ(ˆ	�1�a˜ qØ×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?à×+Ò+¨Dµ*Ô2IÈ4ÐQ\Ñ]Ô]Ð]ØÔ*Ð8¨4Ð8Ð*Ð*¨4Ñ0Ô0Ð8°DÐ8Ð0°DÐ8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8Ð0°DÐ8Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8ˆ|Ñ8Ô8Ð8Õ8Ô8ˆ|Ñ8Ô8Ð8Ð8Õ8Ô8Ð*Ñ8Ô8Õ8Ô8¨4Ñ8Ô8Õ8Ô8Ð0Ñ8Ô8Õ8Ô8°DÑ8Ô8Ð8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Õ8Õ8Ô8Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ØÔ*Ð9¨4Ð9Ð*Ð*¨4Ñ0Ô0Ð9°EÐ9Ð0°EÐ9Ð9Ð9Ð9Õ9Ô9Ð9Ð9Ð9Ð9Ð0°EÐ9Ñ9Ô9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9ˆ|Ñ9Ô9Ð9Õ9Ô9ˆ|Ñ9Ô9Ð9Ð9Õ9Ô9Ð*Ñ9Ô9Õ9Ô9¨4Ñ9Ô9Õ9Ô9Ð0Ñ9Ô9Õ9Ô9°EÑ9Ô9Ð9Ð9Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9r   c                ó‚  — |\  }}}}}|                      dd¦  «        \  }}g }d}||k    }|}	|r
d}
||
k    }|}	|	�sXt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd	|iz  }|                     |¦  «         |r‹t          j        d|fd
||
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        dœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}	x}x}x}x}}
dd„}|                      dd|¦  «        \  }}||f}	d}|	|k    }|slt          j        d|fd|	|f¦  «        t          j        |	¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}	x}}d S )Nç      $@ç      4@ç      (@r,   )z%(py2)s == %(py5)sÚlxrx   ry   r4   r“   Úlyr•   rŽ   r�   r   r�   r‘   ÚxÚfloatÚyr   Úboolc                ó   — | dk    o|dk    S )NrÍ   rÌ   rn   )rÐ   rÒ   s     r   Úmock_blockedzVTestTeleportChannelStateMachine.test_spiral_ray_landing_resolver.<locals>.mock_blocked¢   s   € Ø˜’9Ð*  d¢Ð*r   )rÍ   rÌ   ©ú!=)z%(py1)s != %(py4)sr7   r:   r;   )rÐ   rÑ   rÒ   rÑ   r   rÓ   )Úresolve_safe_landing_coordsr@   rA   rB   rC   rD   rE   rŸ   r    rF   rG   )rJ   r   r£   r   rÎ   rÏ   rK   rL   rM   rP   r¬   r¥   rN   rO   r­   r®   r¨   r¯   rÕ   Úlx2Úly2rQ   rR   rS   s                           r   Ú test_spiral_ray_landing_resolverz@TestTeleportChannelStateMachine.test_spiral_ray_landing_resolver›   sç  € Ø#+Ñ ˆˆ1ˆa�˜qà×9Ò9¸$ÀÑEÔE‰ˆˆBØ(Ð(�TÐ(ˆr�TŠzÐ(Ð(Ð(Ð(Ð( DÐ(˜b DšjÐ(Ð(Ð(Ð(Ñ(Õ(Ô(Ð(Ð(Ð(Ð(ˆr�TÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆrÑ(Ô(Ð(Õ(Ô(ˆrÑ(Ô(Ð(Ð(Õ(Ô(�TÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(×(Ò(Ð(Ñ(Ô(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(˜b DÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(˜bÑ(Ô(Ð(Õ(Ô(˜bÑ(Ô(Ð(Ð(Õ(Ô( DÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(×(Ò(Ð(Ñ(Ô(Ð(Õ(Ô(Ð(Ð(Ñ(Ô(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð	+ð 	+ð 	+ð 	+ð  ×;Ò;¸DÀ$ÈÑUÔU‰ˆˆSØ�SˆzÐ)˜\Ð)ˆz˜\Ò)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)ˆz˜\Ð)Ñ)Ô)Õ)Ô)ˆzÑ)Ô)Õ)Ô)˜\Ñ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)r   Nri   )	rj   rk   rl   rm   r°   r¿   rÄ   rÉ   rÛ   rn   r   r   rp   rp   [   s~   € € € € € ØbÐbð8ð 8ð 8ð 8ð&8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð :ð :ð :ð :ð*ð *ð *ð *ð *ð *r   rp   c                  ó2   — e Zd ZdZd	d„Zd	d„Zd	d„Zd	d„ZdS )
Ú!TestFiveGateDestinationValidationz,Verifies all 5 destination validation gates.r   r   c                óZ  — |\  }}}}}|                      ddt          j        dd¬¦  «        \  }}g }d}||u }|}	|rd}
|
|v }|}	|	�sXt          j        d|fd||f¦  «        d	t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }| 	                    |¦  «         |r‹t          j        d|fd|
|f¦  «        t          j        |
¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }| 	                    |¦  «         t          j
        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}	x}x}x}x}
}d S )NrW   rX   Úzone_wF)Útarget_aliveÚGATE_1_TARGET_DEADr=   rv   rw   rx   ry   r4   r�   r‰   r¶   r‹   rŽ   r�   r   r�   r‘   )Úvalidate_destination_5_gatesr   rb   r@   rA   rB   rC   rD   rE   rŸ   r    rF   rG   )rJ   r   r£   r   rw   r¶   rK   rL   rM   rP   r«   r¬   rN   rO   r­   r®   r¨   r¯   s                     r   Útest_gate_1_livenessz6TestFiveGateDestinationValidation.test_gate_1_liveness¬   s.  € Ø#+Ñ ˆˆ1ˆa�˜qØ!×>Ò>¸tÀTÍ:ÔKbÐdlð  |AÐ>ñ  Bô  B‰
ˆˆFØ=Ð=�UÐ=ˆr�Uˆ{Ð=Ð=Ð=Ð=Ð=Ð3Ð=Ð3°vÐ=Ð=Ð=Ð=Ð=Ñ=Õ=Ô=Ð=Ð=Ð=Ð=ˆr�UÐ=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=ˆrÑ=Ô=Ð=Õ=Ô=ˆrÑ=Ô=Ð=Ð=Õ=Ô=�UÑ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=×=Ò=Ð=Ñ=Ô=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð3°vÐ=Ñ=Ô=Õ=Ô=Ð3Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=°vÑ=Ô=Ð=Õ=Ô=°vÑ=Ô=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=×=Ò=Ð=Ñ=Ô=Ð=Õ=Ô=Ð=Ð=Ñ=Ô=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=r   c                óº  — |\  }}}}}|                      ddt          j        d¦  «        \  }}g }	d}
||
u }|}|rd}||v }|}|�sXt          j        d|fd||
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        d	œz  }d
d|iz  }|	 	                    |¦  «         |r‹t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|	 	                    |¦  «         t          j
        |	d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}	x}x}
x}}|                      ddt          j        d¦  «        \  }}g }	d}
||
u }|}|rd}||v }|}|�sXt          j        d|fd||
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        d	œz  }d
d|iz  }|	 	                    |¦  «         |r‹t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|	 	                    |¦  «         t          j
        |	d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}	x}x}
x}}|                      ddt          j        d¦  «        \  }}g }	d}
||
u }|}|rd}||v }|}|�sXt          j        d|fd||
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        d	œz  }d
d|iz  }|	 	                    |¦  «         |r‹t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|	 	                    |¦  «         t          j
        |	d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}	x}x}
x}}t          dddddd¦  «        }|                     d|¦  «         |                      ddt          j        d¦  «        \  }}d}||u }	|	s—t          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }d d!|iz  }t          t          j        |¦  «        ¦  «        ‚d x}	}d S )"NrW   Ústrangerrß   FÚGATE_2_RELATIONSHIPr=   rv   rw   rx   ry   r4   r�   r‰   Úr1r‹   rŽ   r�   r   r�   r‘   Úr2Úr3Úg_mateÚMateé2   u   Huynh Ä�á»‡TÚguild_1)z%(py0)s is %(py3)sÚok_g)r0   r…   úassert %(py5)sr2   )râ   r   rb   r@   rA   rB   rC   rD   rE   rŸ   r    rF   rG   ÚFRIENDÚ	GUILDMATEr   Úregister_member)rJ   r   r   r   r   r   r£   rw   rç   rK   rL   rM   rP   r«   r¬   rN   rO   r­   r®   r¨   r¯   rè   ré   Úmrî   rQ   Ú@py_format4s                              r   Ú&test_gate_2_relationship_authorizationzHTestFiveGateDestinationValidation.test_gate_2_relationship_authorization±   s?  € Ø<DÑ9ˆ	�:˜y¨,¸à×:Ò:¸4ÀÍZÔMdÐfnÑoÔo‰ˆˆBØ:Ð:�UÐ:ˆr�Uˆ{Ð:Ð:Ð:Ð:Ð:Ð4Ð:Ð4¸Ð:Ð:Ð:Ð:Ð:Ñ:Õ:Ô:Ð:Ð:Ð:Ð:ˆr�UÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:ˆrÑ:Ô:Ð:Õ:Ô:ˆrÑ:Ô:Ð:Ð:Õ:Ô:�UÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð4¸Ð:Ñ:Ô:Õ:Ô:Ð4Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:¸Ñ:Ô:Ð:Õ:Ô:¸Ñ:Ô:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Õ:Ô:Ð:Ð:Ñ:Ô:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð ×:Ò:¸4ÀÍZÔM^Ð`hÑiÔi‰ˆˆBØ:Ð:�UÐ:ˆr�Uˆ{Ð:Ð:Ð:Ð:Ð:Ð4Ð:Ð4¸Ð:Ð:Ð:Ð:Ð:Ñ:Õ:Ô:Ð:Ð:Ð:Ð:ˆr�UÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:ˆrÑ:Ô:Ð:Õ:Ô:ˆrÑ:Ô:Ð:Ð:Õ:Ô:�UÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð4¸Ð:Ñ:Ô:Õ:Ô:Ð4Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:¸Ñ:Ô:Ð:Õ:Ô:¸Ñ:Ô:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Õ:Ô:Ð:Ð:Ñ:Ô:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð ×:Ò:¸4ÀÍZÔMaÐckÑlÔl‰ˆˆBØ:Ð:�UÐ:ˆr�Uˆ{Ð:Ð:Ð:Ð:Ð:Ð4Ð:Ð4¸Ð:Ð:Ð:Ð:Ð:Ñ:Õ:Ô:Ð:Ð:Ð:Ð:ˆr�UÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:ˆrÑ:Ô:Ð:Õ:Ô:ˆrÑ:Ô:Ð:Ð:Õ:Ô:�UÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð4¸Ð:Ñ:Ô:Õ:Ô:Ð4Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:¸Ñ:Ô:Ð:Õ:Ô:¸Ñ:Ô:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Õ:Ô:Ð:Ð:Ñ:Ô:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:õ # 8¨V°R¸ÈÈhÑWÔWˆØ×!Ò! )¨QÑ/Ô/Ð/Ø×;Ò;¸DÀ(ÍJÔL`ÐbjÑkÔk‰ˆˆaØÐˆt�tˆ|ÐÐÐÕÔÐÐÐÐˆt�tÐÑÔÐÕÔÑÔÐÐÕÔˆtÑÔÐÕÔˆtÑÔÐÐÕÔ�tÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐr   c                ó”  — |\  }}}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     ddd¬¦  «         |                     ddt          j        d¦  «        \  }}g }d	}	||	u }
|
}|
rd
}||v }|}|�sXt          j	        d|
fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r‹t          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}|                     dd	¬¦  «         |                     ddt          j        d¦  «        \  }}g }d	}	||	u }
|
}|
rd}||v }|}|�sXt          j	        d|
fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r‹t          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}d S )NrW   rr   rs   rX   rt   Ú	zone_fullé   )Úplayer_countÚmax_capacityFÚGATE_3_CAPACITYr=   rv   Úok3rx   ry   r4   r�   r‰   ré   r‹   rŽ   r�   r   r�   r‘   Ú	zone_dead)r+   ÚGATE_4_LIFECYCLEÚok4Úr4©r™   rš   r›   rœ   Úset_zone_staterâ   r   rb   r@   rA   rB   rC   rD   rE   rŸ   r    rF   rG   )rJ   r   r   r£   r   r¤   rü   ré   rK   rL   rM   rP   r«   r¬   rN   rO   r­   r®   r¨   r¯   rÿ   r   s                         r   Ú(test_gate_3_and_4_capacity_and_lifecyclezJTestFiveGateDestinationValidation.test_gate_3_and_4_capacity_and_lifecycleÅ   s©  € Ø+3Ñ(ˆ	�1�a˜ qØ×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?ð 	×#Ò# K¸aÈaÐ#ÑPÔPÐPØ×;Ò;¸DÀ$Í
ÔH_ÐalÑmÔm‰ˆˆRØ7Ð7�eÐ7ˆs�eˆ|Ð7Ð7Ð7Ð7Ð7Ð 1Ð7Ð 1°RÐ 7Ð7Ð7Ð7Ð7Ñ7Õ7Ô7Ð7Ð7Ð7Ð7ˆs�eÐ7Ñ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7ˆsÑ7Ô7Ð7Õ7Ô7ˆsÑ7Ô7Ð7Ð7Õ7Ô7�eÑ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Ð7×7Ò7Ð7Ñ7Ô7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7Ð 1°RÐ7Ñ7Ô7Õ7Ô7Ð 1Ñ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7°RÑ7Ô7Ð7Õ7Ô7°RÑ7Ô7Ð7Ð7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Ð7×7Ò7Ð7Ñ7Ô7Ð7Õ7Ô7Ð7Ð7Ñ7Ô7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ð 	×#Ò# K¸5Ð#ÑAÔAÐAØ×;Ò;¸DÀ$Í
ÔH_ÐalÑmÔm‰ˆˆRØ8Ð8�eÐ8ˆs�eˆ|Ð8Ð8Ð8Ð8Ð8Ð 2Ð8Ð 2°bÐ 8Ð8Ð8Ð8Ð8Ñ8Õ8Ô8Ð8Ð8Ð8Ð8ˆs�eÐ8Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8ˆsÑ8Ô8Ð8Õ8Ô8ˆsÑ8Ô8Ð8Ð8Õ8Ô8�eÑ8Ô8Ð8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Ð8×8Ò8Ð8Ñ8Ô8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8Ð 2°bÐ8Ñ8Ô8Õ8Ô8Ð 2Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8°bÑ8Ô8Ð8Õ8Ô8°bÑ8Ô8Ð8Ð8Ð8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Ð8×8Ò8Ð8Ñ8Ô8Ð8Õ8Ô8Ð8Ð8Ñ8Ô8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Õ8Õ8Ô8Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8r   c                óÒ
  — |\  }}}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     dd¬¦  «         |                     ddt          j        d¦  «        \  }}g }d	}	||	u }
|
}|
rd
}||v }|}|�sXt          j	        d|
fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r‹t          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}|                     dd¬¦  «         |                     ddt          j        d¦  «        \  }}g }d	}	||	u }
|
}|
rd}||v }|}|�sXt          j	        d|
fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r‹t          j	        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}|                     ddt          j        d¦  «        \  }}g }d	}	||	u }
|
}|
rd }||v }|}|�sXt          j	        d|
fd||	f¦  «        d!t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd!t          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r‹t          j	        d|fd||f¦  «        t          j        |¦  «        d"t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd"dœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}d S )#NrW   rr   rs   rX   rt   Ú	zone_bossT)Úis_boss_activeFÚGATE_5_QUARANTINE_BOSSr=   rv   Úok_brx   ry   r4   r�   r‰   Úrbr‹   rŽ   r�   r   r�   r‘   Úzone_secret)Úis_secret_activeÚGATE_5_QUARANTINE_SECRETÚok_sÚrsÚzone_player_hideout_otherÚGATE_5_RESTRICTED_ISOLATIONÚok_hÚrhr  )rJ   r   r   r£   r   r¤   r  r	  rK   rL   rM   rP   r«   r¬   rN   rO   r­   r®   r¨   r¯   r  r  r  r  s                           r   Ú$test_gate_5_quarantine_and_isolationzFTestFiveGateDestinationValidation.test_gate_5_quarantine_and_isolationÕ   s¯  € Ø+3Ñ(ˆ	�1�a˜ qØ×"Ò" 4¨°2Ñ6Ô6ˆØ×Ò ¤
¨D°$Ñ7Ô7Ð7Ø×Ò ¤
¨D°(¸BÑ?Ô?Ð?ð 	×#Ò# KÀÐ#ÑEÔEÐEØ×<Ò<¸TÀ4ÍÔI`ÐbmÑnÔn‰ˆˆbØ?Ð?�uÐ?ˆt�uˆ}Ð?Ð?Ð?Ð?Ð?Ð!9Ð?Ð!9¸RÐ!?Ð?Ð?Ð?Ð?Ñ?Õ?Ô?Ð?Ð?Ð?Ð?ˆt�uÐ?Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?ˆtÑ?Ô?Ð?Õ?Ô?ˆtÑ?Ô?Ð?Ð?Õ?Ô?�uÑ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Ð?×?Ò?Ð?Ñ?Ô?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð!9¸RÐ?Ñ?Ô?Õ?Ô?Ð!9Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?¸RÑ?Ô?Ð?Õ?Ô?¸RÑ?Ô?Ð?Ð?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Ð?×?Ò?Ð?Ñ?Ô?Ð?Õ?Ô?Ð?Ð?Ñ?Ô?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?ð 	×#Ò# MÀDÐ#ÑIÔIÐIØ×<Ò<¸TÀ4ÍÔI`ÐboÑpÔp‰ˆˆbØAÐA�uÐAˆt�uˆ}ÐAÐAÐAÐAÐAÐ!;ÐAÐ!;¸rÐ!AÐAÐAÐAÐAÑAÕAÔAÐAÐAÐAÐAˆt�uÐAÑAÔAÐAÕAÔAÑAÔAÐAÐAÕAÔAˆtÑAÔAÐAÕAÔAˆtÑAÔAÐAÐAÕAÔA�uÑAÔAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÐA×AÒAÐAÑAÔAÐAÐAÐAÕAÔAÐAÐAÐAÐAÐ!;¸rÐAÑAÔAÕAÔAÐ!;ÑAÔAÐAÕAÔAÑAÔAÐAÐAÕAÔA¸rÑAÔAÐAÕAÔA¸rÑAÔAÐAÐAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÐA×AÒAÐAÑAÔAÐAÕAÔAÐAÐAÑAÔAÐAÑAÐAÐAÐAÐAÐAÑAÐAÕAÕAÔAÐAÑAÔAÑAÔAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAð  ×<Ò<¸TÀ4ÍÔI`Ðb}Ñ~Ô~‰ˆˆbØDÐD�uÐDˆt�uˆ}ÐDÐDÐDÐDÐDÐ!>ÐDÐ!>À"Ð!DÐDÐDÐDÐDÑDÕDÔDÐDÐDÐDÐDˆt�uÐDÑDÔDÐDÕDÔDÑDÔDÐDÐDÕDÔDˆtÑDÔDÐDÕDÔDˆtÑDÔDÐDÐDÕDÔD�uÑDÔDÐDÐDÑDÐDÐDÐDÐDÐDÑDÐDÐD×DÒDÐDÑDÔDÐDÐDÐDÕDÔDÐDÐDÐDÐDÐ!>À"ÐDÑDÔDÕDÔDÐ!>ÑDÔDÐDÕDÔDÑDÔDÐDÐDÕDÔDÀ"ÑDÔDÐDÕDÔDÀ"ÑDÔDÐDÐDÐDÐDÑDÐDÐDÐDÐDÐDÑDÐDÐD×DÒDÐDÑDÔDÐDÕDÔDÐDÐDÑDÔDÐDÑDÐDÐDÐDÐDÐDÑDÐDÕDÕDÔDÐDÑDÔDÑDÔDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDr   Nri   )rj   rk   rl   rm   rã   rõ   r  r  rn   r   r   rÝ   rÝ   ©   sp   € € € € € Ø6Ð6ð>ð >ð >ð >ð
ð ð ð ð(9ð 9ð 9ð 9ð Eð Eð Eð Eð Eð Er   rÝ   c                  ó:   — e Zd ZdZd
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd	S )Ú!TestTownPortalEngineAndQuarantinezWVerifies 2-way TownPortalLink, 6 map charges, encounter quarantines, and death penalty.r   r   c                óš
  — |\  }}}}}|                      ddddd¦  «        \  }}}g }d}||u }|}	|rd }
||
u}|}	|	�sXt          j        d|fd||f¦  «        d	t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }|                     |¦  «         |r‹t          j        d|fd||
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        dœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}	x}x}x}x}}
|j        |         }	|	j        }d}||u }|st          j        d|fd||f¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}	x}x}}|                      ddddd¦  «        \  }}}g }d}||u }|}	|r||k    }|}	|	�sƒt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d
œz  }dd|iz  }|                     |¦  «         |r¶t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndd œz  }d!d"|iz  }|                     |¦  «         t          j        |d¦  «        i z  }d#d$|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}	x}x}x}}|j        |         }	|	j        }d%}||u }|st          j        d|fd||f¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}	x}x}}|j        |         }	|	j        }d}||u }|st          j        d|fd||f¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚d x}	x}x}}d S )&NÚherorZ   Úinst_1rË   rÌ   Tr=   rv   Úok1rx   ry   r4   ©úis not©z%(py9)s is not %(py12)sÚp1_idr•   rŽ   r�   r   r�   r‘   ©z1%(py3)s
{%(py3)s = %(py1)s.is_active
} is %(py6)s©r8   r…   r;   úassert %(py8)sr´   g      I@g      N@Úok2rÖ   )z%(py9)s != %(py11)sÚp2_id)r{   r|   z%(py13)sr}   zassert %(py16)sÚpy16F)Úrequest_town_portalr@   rA   rB   rC   rD   rE   rŸ   r    rF   rG   Úportalsr+   )rJ   r   r£   r   r  r  rK   rL   rM   rP   r¬   r¥   rN   rO   r­   r®   r¨   r¯   rQ   r»   rS   Ú@py_format9r!  r"  r½   r¾   r©   s                              r   Ú*test_2_way_portal_creation_and_exclusivityzLTestTownPortalEngineAndQuarantine.test_2_way_portal_creation_and_exclusivityí   s   € Ø$,Ñ!ˆˆ1ˆa��MØ%×9Ò9¸&À+ÈxÐY]Ð_cÑdÔd‰ˆˆQ�Ø0Ð0�dÐ0ˆs�dˆ{Ð0Ð0Ð0Ð0Ð0¨DÐ0˜u¨DÐ0Ð0Ð0Ð0Ð0Ñ0Õ0Ô0Ð0Ð0Ð0Ð0ˆs�dÐ0Ñ0Ô0Ð0Õ0Ô0Ñ0Ô0Ð0Ð0Õ0Ô0ˆsÑ0Ô0Ð0Õ0Ô0ˆsÑ0Ô0Ð0Ð0Õ0Ô0�dÑ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Ð0×0Ò0Ð0Ñ0Ô0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0˜u¨DÐ0Ñ0Ô0Ð0Õ0Ô0Ñ0Ô0Ð0Ð0Õ0Ô0˜uÑ0Ô0Ð0Õ0Ô0˜uÑ0Ô0Ð0Ð0Õ0Ô0¨DÑ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Ð0×0Ò0Ð0Ñ0Ô0Ð0Õ0Ô0Ð0Ð0Ñ0Ô0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØÔ$ UÔ+Ð=Ð+Ô5Ð=¸Ð=Ð5¸Ð=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð5¸Ð=Ñ=Ô=Õ=Ô=Ð+Ñ=Ô=Õ=Ô=Ð5Ñ=Ô=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ð &×9Ò9¸&À+ÈxÐY]Ð_cÑdÔd‰ˆˆQ�Ø-Ð-�dÐ-ˆs�dˆ{Ð-Ð-Ð-Ð-Ð-˜u¨š~Ð-Ð-Ð-Ð-Ñ-Õ-Ô-Ð-Ð-Ð-Ð-ˆs�dÐ-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆsÑ-Ô-Ð-Õ-Ô-ˆsÑ-Ô-Ð-Ð-Õ-Ô-�dÑ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Ð-×-Ò-Ð-Ñ-Ô-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-˜u¨Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-˜uÑ-Ô-Ð-Õ-Ô-˜uÑ-Ô-Ð-Ð-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-¨Ñ-Ô-Ð-Õ-Ô-¨Ñ-Ô-Ð-Ð-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Ð-×-Ò-Ð-Ñ-Ô-Ð-Õ-Ô-Ð-Ð-Ñ-Ô-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØÔ$ UÔ+Ð>Ð+Ô5Ð>¸Ð>Ð5¸Ð>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð5¸Ð>Ñ>Ô>Õ>Ô>Ð+Ñ>Ô>Õ>Ô>Ð5Ñ>Ô>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ØÔ$ UÔ+Ð=Ð+Ô5Ð=¸Ð=Ð5¸Ð=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð5¸Ð=Ñ=Ô=Õ=Ô=Ð+Ñ=Ô=Õ=Ô=Ð5Ñ=Ô=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=r   c                óB
  — |\  }}}}}|                      ddd¦  «        }|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     ddddd	¦  «        \  }}}|                     d||d
¬¦  «        \  }}}g }	d}
||
u }|}|r|d         }d}||k    }|}|�s-t          j        d|fd||
f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        dœz  }dd|iz  }|	                     |¦  «         |r`t          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }|	                     |¦  «         t          j        |	d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}	x}x}
x}x}}|                     d||d¬¦  «        \  }}}g }	d}
||
u }|}|r
d}||k    }|}|�sXt          j        d|fd||
f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |
¦  «        dœz  }dd|iz  }|	                     |¦  «         |r‹t          j        d|fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d œz  }d!d"|iz  }|	                     |¦  «         t          j        |	d¦  «        i z  }d#d$|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}	x}x}
x}}|                     d%||¦  «        \  }}}g }	d
}
||
u }|}|rd&}||v }|}|�sXt          j        d|fd||
f¦  «        d't          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd't          j        |
¦  «        dœz  }dd|iz  }|	                     |¦  «         |r‹t          j        d(|fd)||f¦  «        t          j        |¦  «        d*t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd*d+œz  }d!d"|iz  }|	                     |¦  «         t          j        |	d¦  «        i z  }d#d$|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}	x}x}
x}}d S ),NÚleaderÚLeaderé(   Úmaterë   rZ   r  ç      .@ç      9@F)Ú	is_returnTr   r!   r=   rv   Úok_ownrx   ry   r4   r,   )z%(py10)s == %(py13)s)rŒ   r}   z%(py15)sr~   r   r€   )rZ   r-  r.  Úok_mater“   Údest2r•   rŽ   r�   r�   r‘   rå   ÚPORTAL_UNAUTHORIZEDÚok_strangerr�   r‰   rŠ   r‹   )r™   rš   r›   rœ   r$  Útraverse_town_portalr@   rA   rB   rC   rD   rE   rŸ   r    rF   rG   )rJ   r   r   r£   r   r¤   Úp_idr0  Údest1rK   rL   rM   rP   r«   r¦   r¬   rN   rO   r¾   r¨   r©   rª   r1  r2  r¥   r­   r®   r¯   r4  rŠ   s                                 r   Ú"test_party_member_portal_traversalzDTestTownPortalEngineAndQuarantine.test_party_member_portal_traversalù   sˆ  € Ø,4Ñ)ˆ	�1�a˜˜MØ×"Ò" 8¨X°rÑ:Ô:ˆØ×Ò ¤
¨H°fÑ=Ô=Ð=Ø×Ò ¤
¨F°F¸BÑ?Ô?Ð?à"×6Ò6°xÀÈhÐX\Ð^bÑcÔc‰
ˆˆ1ˆdð )×=Ò=¸hÈÈiÐchÐ=ÑiÔiÑˆ��5ØCÐC˜ÐCˆv˜ˆ~ÐCÐCÐCÐCÐC %¨¤(ÐCÐ.CÐC (Ð.CÒ"CÐCÐCÐCÐCÑCÕCÔCÐCÐCÐCÐCˆv˜ÐCÑCÔCÐCÕCÔCÑCÔCÐCÐCÕCÔCˆvÑCÔCÐCÕCÔCˆvÑCÔCÐCÐCÕCÔC˜ÑCÔCÐCÐCÑCÐCÐCÐCÐCÐCÑCÐCÐC×CÒCÐCÑCÔCÐCÐCÐCÕCÔCÐCÐCÐCÐC (Ð.CÐCÑCÔCÕCÔC (ÑCÔCÕCÔCÐ.CÑCÔCÐCÐCÑCÐCÐCÐCÐCÐCÑCÐCÐC×CÒCÐCÑCÔCÐCÕCÔCÐCÐCÑCÔCÐCÑCÐCÐCÐCÐCÐCÑCÐCÕCÕCÔCÐCÑCÔCÑCÔCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCÐCð *×>Ò>¸vÀtÈYÐbfÐ>ÑgÔgÑˆ��EØEÐE˜$ÐEˆw˜$ˆÐEÐEÐEÐEÐEÐ,EÐE 5Ð,EÒ#EÐEÐEÐEÐEÑEÕEÔEÐEÐEÐEÐEˆw˜$ÐEÑEÔEÐEÕEÔEÑEÔEÐEÐEÕEÔEˆwÑEÔEÐEÕEÔEˆwÑEÔEÐEÐEÕEÔE˜$ÑEÔEÐEÐEÑEÐEÐEÐEÐEÐEÑEÐEÐE×EÒEÐEÑEÔEÐEÐEÐEÕEÔEÐEÐEÐEÐE 5Ð,EÐEÑEÔEÐEÕEÔEÑEÔEÐEÐEÕEÔE 5ÑEÔEÐEÕEÔE 5ÑEÔEÐEÐEÕEÔEÐ,EÑEÔEÐEÐEÑEÐEÐEÐEÐEÐEÑEÐEÐE×EÒEÐEÑEÔEÐEÕEÔEÐEÐEÑEÔEÐEÑEÐEÐEÐEÐEÐEÑEÐEÕEÕEÔEÐEÑEÔEÑEÔEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEÐEð ,×@Ò@ÀÈTÐS\Ñ]Ô]Ñˆ�S˜!ØDÐD˜eÐDˆ{˜eÐ#ÐDÐDÐDÐDÐDÐ(=ÐDÐ(=ÀÐ(DÐDÐDÐDÐDÑDÕDÔDÐDÐDÐDÐDˆ{˜eÐDÑDÔDÐDÕDÔDÑDÔDÐDÐDÕDÔDˆ{ÑDÔDÐDÕDÔDˆ{ÑDÔDÐDÐDÕDÔD˜eÑDÔDÐDÐDÑDÐDÐDÐDÐDÐDÑDÐDÐD×DÒDÐDÑDÔDÐDÐDÐDÕDÔDÐDÐDÐDÐDÐ(=ÀÐDÑDÔDÕDÔDÐ(=ÑDÔDÐDÕDÔDÑDÔDÐDÐDÕDÔDÀÑDÔDÐDÕDÔDÀÑDÔDÐDÐDÐDÐDÑDÐDÐDÐDÐDÐDÑDÐDÐD×DÒDÐDÑDÔDÐDÕDÔDÐDÐDÑDÔDÐDÑDÐDÐDÐDÐDÐDÑDÐDÕDÕDÔDÐDÑDÔDÑDÔDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDr   c                ó  — |\  }}}}}|                      dd¬¦  «         |j        d         }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|                     d¦  «        \  }	}}
g }d	}|	|u }|}|r
d
}|
|k    }|}|�sXt          j        d|fd|	|f¦  «        dt          j	        ¦   «         v st          j
        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |r‹t          j        d|fd|
|f¦  «        dt          j	        ¦   «         v st          j
        |
¦  «        rt          j        |
¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}}|                     d¦  «        \  }}}g }d	}||u }|}|r
d}||k    }|}|�sXt          j        d|fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |r‹t          j        d|fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}}|                     d¦  «        \  }}}g }d}||u }|}|rd}||k    }|}|rd}||v }|}|�sæt          j        d|fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |�rt          j        d|fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |r‹t          j        d|fd ||f¦  «        t          j        |¦  «        d!t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd!d"œz  }d#d$|iz  }|                     |¦  «         t          j        |d¦  «        i z  }d%d&|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}x}x}}d S )'NÚmap_t16é   ©Úinitial_chargesr,   r6   r7   r:   r;   Té   r=   rv   r  rx   ry   r4   r“   Úrem1r•   rŽ   r�   r   r�   r‘   r!  Úrem2FÚ
MAP_SEALEDrü   Úrem3r�   )z%(py17)s in %(py19)sÚmsg3)r‘   Úpy19z%(py21)sÚpy21zassert %(py24)sÚpy24)Úregister_astral_map_deviceÚmap_chargesr@   rA   rE   rF   rG   Úenter_map_portalrB   rC   rD   rŸ   r    ) rJ   r   r£   r   rP   rM   rQ   rR   rS   r  r?  rK   rL   r¬   r¥   rN   rO   r­   r®   r¨   r¯   r!  r@  rü   rC  rB  Ú@py_assert16Ú@py_assert18Ú@py_format20Ú@py_format22Ú@py_format23Ú@py_format25s                                    r   Ú2test_map_device_charge_tracking_and_permanent_sealzTTestTownPortalEngineAndQuarantine.test_map_device_charge_tracking_and_permanent_seal  s‘  € Ø$,Ñ!ˆˆ1ˆa��MØ×0Ò0°ÈAÐ0ÑNÔNÐNØÔ(¨Ô3Ð8°qÐ8Ð3°qÒ8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8Ð3°qÐ8Ñ8Ô8Õ8Ô8Ð3Ñ8Ô8Õ8Ô8°qÑ8Ô8Ð8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Õ8Õ8Ô8Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8à$×5Ò5°iÑ@Ô@‰ˆˆQ�Ø(Ð(�dÐ(ˆs�dˆ{Ð(Ð(Ð(Ð(Ð( qÐ(˜t qšyÐ(Ð(Ð(Ð(Ñ(Õ(Ô(Ð(Ð(Ð(Ð(ˆs�dÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆsÑ(Ô(Ð(Õ(Ô(ˆsÑ(Ô(Ð(Ð(Õ(Ô(�dÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(×(Ò(Ð(Ñ(Ô(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(˜t qÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(˜tÑ(Ô(Ð(Õ(Ô(˜tÑ(Ô(Ð(Ð(Õ(Ô( qÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(×(Ò(Ð(Ñ(Ô(Ð(Õ(Ô(Ð(Ð(Ñ(Ô(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(à$×5Ò5°iÑ@Ô@‰ˆˆQ�Ø(Ð(�dÐ(ˆs�dˆ{Ð(Ð(Ð(Ð(Ð( qÐ(˜t qšyÐ(Ð(Ð(Ð(Ñ(Õ(Ô(Ð(Ð(Ð(Ð(ˆs�dÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆsÑ(Ô(Ð(Õ(Ô(ˆsÑ(Ô(Ð(Ð(Õ(Ô(�dÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(×(Ò(Ð(Ñ(Ô(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(˜t qÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(˜tÑ(Ô(Ð(Õ(Ô(˜tÑ(Ô(Ð(Ð(Õ(Ô( qÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(×(Ò(Ð(Ñ(Ô(Ð(Õ(Ô(Ð(Ð(Ñ(Ô(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð (×8Ò8¸ÑCÔC‰ˆˆT�4ØBÐB�eÐBˆs�eˆ|ÐBÐBÐBÐBÐB¨ÐB ¨¢	ÐBÐBÐBÐBÐB¨lÐB¨l¸dÐ.BÐBÐBÐBÐBÑBÕBÔBÐBÐBÐBÐBˆs�eÐBÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔBˆsÑBÔBÐBÕBÔBˆsÑBÔBÐBÐBÕBÔB�eÑBÔBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÐB×BÒBÐBÑBÔBÐBÐBÑBÕBÔBÐBÐBÐBÐB ¨ÐBÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔB ÑBÔBÐBÕBÔB ÑBÔBÐBÐBÕBÔB¨ÑBÔBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÐB×BÒBÐBÑBÔBÐBÐBÐBÕBÔBÐBÐBÐBÐB¨l¸dÐBÑBÔBÕBÔB¨lÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔB¸dÑBÔBÐBÕBÔB¸dÑBÔBÐBÐBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÐB×BÒBÐBÑBÔBÐBÕBÔBÐBÐBÑBÔBÐBÑBÐBÐBÐBÐBÐBÑBÐBÕBÕBÔBÐBÑBÔBÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBr   c                ó¼  — |\  }}}}}|                      dd¬¦  «         |                     ddddd¦  «        \  }}}g }d}||u }	|	}
|	rd }||u }|}
|
�sXt          j        d|	fd	||f¦  «        d
t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd
t          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |	r‹t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j	        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}
x}x}	x}x}}d}
|
|v }|s—t          j        d|fd|
|f¦  «        t          j        |
¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}
}|                      dd¬¦  «         |                     ddddd¦  «        \  }}}g }d}||u }	|	}
|	rd }||u}|}
|
�sXt          j        d|	fd	||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |	r‹t          j        d|fd||f¦  «        d t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd t          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j	        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}
x}x}	x}x}}|                      d!d¬"¦  «         |                     dd#d!dd¦  «        \  }}}g }d}||u }	|	}
|	rd }||u }|}
|
�sXt          j        d|	fd	||f¦  «        d$t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd$t          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         |	r‹t          j        d|fd||f¦  «        d%t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd%t          j        |¦  «        dœz  }dd|iz  }|                     |¦  «         t          j	        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}
x}x}	x}x}}d&}
|
|v }|s—t          j        d|fd|
|f¦  «        t          j        |
¦  «        d't	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd'dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}
}d S )(NÚ	inst_bossT)Úboss_activer  r  r"   Fr=   rv   r  rx   ry   r4   )z%(py9)s is %(py12)sÚp_br•   rŽ   r�   r   r�   r‘   ÚQUARANTINE_BOSS_ENGAGEDr�   )z%(py1)s in %(py3)sÚmsg_b)r8   r…   rï   r2   Úok_b2r  r  Úp_b2Úinst_secret)Úsecret_activer
  r  Úp_sÚQUARANTINE_SECRET_CHAMBERÚmsg_s)Úset_encounter_stater$  r@   rA   rB   rC   rD   rE   rŸ   r    rF   rG   )rJ   r   r£   r   r  rV  rT  rK   rL   rM   rP   r¬   r¥   rN   rO   r­   r®   r¨   r¯   rQ   rô   rW  rX  r  r]  r[  s                             r   Ú,test_anti_exploit_boss_and_secret_quarantinezNTestTownPortalEngineAndQuarantine.test_anti_exploit_boss_and_secret_quarantine  s  € Ø$,Ñ!ˆˆ1ˆa��MØ×)Ò)¨+À4Ð)ÑHÔHÐHð )×<Ò<¸VÀ[ÐR]Ð_bÐdgÑhÔhÑˆˆe�SØ,Ð,�uÐ,ˆt�uˆ}Ð,Ð,Ð,Ð,Ð,¨Ð, ¨ Ð,Ð,Ð,Ð,Ñ,Õ,Ô,Ð,Ð,Ð,Ð,ˆt�uÐ,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆtÑ,Ô,Ð,Õ,Ô,ˆtÑ,Ô,Ð,Ð,Õ,Ô,�uÑ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Ð,×,Ò,Ð,Ñ,Ô,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð, ¨Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô, Ñ,Ô,Ð,Õ,Ô, Ñ,Ô,Ð,Ð,Õ,Ô,¨Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Ð,×,Ò,Ð,Ñ,Ô,Ð,Õ,Ô,Ð,Ð,Ñ,Ô,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø(Ð1Ð(¨EÐ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð(¨EÐ1Ñ1Ô1Õ1Ô1Ð(Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1¨EÑ1Ô1Ð1Õ1Ô1¨EÑ1Ô1Ð1Ð1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1ð 	×)Ò)¨+À5Ð)ÑIÔIÐIØ&×:Ò:¸6À;ÐP[Ð]`ÐbeÑfÔf‰ˆˆq�$Ø1Ð1˜Ð1ˆu˜ˆ}Ð1Ð1Ð1Ð1Ð1¨TÐ1 ¨TÐ!1Ð1Ð1Ð1Ð1Ñ1Õ1Ô1Ð1Ð1Ð1Ð1ˆu˜Ð1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1ˆuÑ1Ô1Ð1Õ1Ô1ˆuÑ1Ô1Ð1Ð1Õ1Ô1˜Ñ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Ð1×1Ò1Ð1Ñ1Ô1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1 ¨TÐ1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1 Ñ1Ô1Ð1Õ1Ô1 Ñ1Ô1Ð1Ð1Õ1Ô1¨TÑ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Ð1×1Ò1Ð1Ñ1Ô1Ð1Õ1Ô1Ð1Ð1Ñ1Ô1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ð 	×)Ò)¨-ÀtÐ)ÑLÔLÐLØ(×<Ò<¸VÀ]ÐTaÐcfÐhkÑlÔlÑˆˆe�SØ,Ð,�uÐ,ˆt�uˆ}Ð,Ð,Ð,Ð,Ð,¨Ð, ¨ Ð,Ð,Ð,Ð,Ñ,Õ,Ô,Ð,Ð,Ð,Ð,ˆt�uÐ,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆtÑ,Ô,Ð,Õ,Ô,ˆtÑ,Ô,Ð,Ð,Õ,Ô,�uÑ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Ð,×,Ò,Ð,Ñ,Ô,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð, ¨Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô, Ñ,Ô,Ð,Õ,Ô, Ñ,Ô,Ð,Ð,Õ,Ô,¨Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Ð,×,Ò,Ð,Ñ,Ô,Ð,Õ,Ô,Ð,Ð,Ñ,Ô,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø*Ð3Ð*¨eÐ3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3Ð*¨eÐ3Ñ3Ô3Õ3Ô3Ð*Ñ3Ô3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3¨eÑ3Ô3Ð3Õ3Ô3¨eÑ3Ô3Ð3Ð3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3r   c                ó²
  — |\  }}}}}|                      ddddd¦  «        \  }}}|                      ddddd¦  «        \  }}}|                     dddd¬¦  «        \  }}g }d}	||	u }
|
}|
rd	}||v }|}|�sXt          j        d
|
fd||	f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r‹t          j        d|fd||f¦  «        t          j        |¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }|                     |¦  «         t          j	        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}|j        |         }|j        }d}||u }	|	st          j        d
|	fd||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}	}|j        |         }|j        }d}||u }	|	st          j        d
|	fd||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}	}|                     dd¬¦  «         |                     dd dd¬¦  «        \  }}g }d}	||	u }
|
}|
rd!}||v }|}|�sXt          j        d
|
fd||	f¦  «        d"t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd"t          j        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r‹t          j        d|fd||f¦  «        t          j        |¦  «        d#t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd#dœz  }dd|iz  }|                     |¦  «         t          j	        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}
x}	x}}|j        d         }d$}
||
k    }|slt          j        d%|fd&||
f¦  «        t          j        |¦  «        t          j        |
¦  «        d'œz  }d(d)|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}
d S )*Nr   rß   r  r"   Úhero_2F)Úis_map_instanceTÚWILDERNESS_DEATHr=   rv   Úok_wrx   ry   r4   r�   r‰   Úmsg_wr‹   rŽ   r�   r   r�   r‘   r  r  r   r´   Úmap_insté   r<  Úzone_mapÚMAP_DEATH_CONSUMED_PORTALÚok_mÚmsg_mé   r,   r6   r7   r:   r;   )r$  Úon_player_deathr@   rA   rB   rC   rD   rE   rŸ   r    rF   rG   r%  r+   rG  rH  )rJ   r   r£   r   rW   rX   rd  re  rK   rL   rM   rP   r«   r¬   rN   rO   r­   r®   r¨   r¯   rQ   r»   rS   r&  rj  rk  rR   s                              r   Ú-test_death_penalty_wilderness_vs_map_instancezOTestTownPortalEngineAndQuarantine.test_death_penalty_wilderness_vs_map_instance0  sÅ  € Ø$,Ñ!ˆˆ1ˆa��Mà ×4Ò4°X¸xÈÐSVÐX[Ñ\Ô\‰ˆˆ1ˆbØ ×4Ò4°X¸xÈÐSVÐX[Ñ\Ô\‰ˆˆ1ˆbØ#×3Ò3°H¸hÈÐbgÐ3ÑhÔh‰ˆˆeØ;Ð;�tÐ;ˆt�tˆ|Ð;Ð;Ð;Ð;Ð;Ð 2Ð;Ð 2°eÐ ;Ð;Ð;Ð;Ð;Ñ;Õ;Ô;Ð;Ð;Ð;Ð;ˆt�tÐ;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆtÑ;Ô;Ð;Õ;Ô;ˆtÑ;Ô;Ð;Ð;Õ;Ô;�tÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;×;Ò;Ð;Ñ;Ô;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð 2°eÐ;Ñ;Ô;Õ;Ô;Ð 2Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;°eÑ;Ô;Ð;Õ;Ô;°eÑ;Ô;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Ð;×;Ò;Ð;Ñ;Ô;Ð;Õ;Ô;Ð;Ð;Ñ;Ô;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØÔ$ RÔ(Ð;Ð(Ô2Ð;°eÐ;Ð2°eÐ;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð2°eÐ;Ñ;Ô;Õ;Ô;Ð(Ñ;Ô;Õ;Ô;Ð2Ñ;Ô;Õ;Ô;°eÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØÔ$ RÔ(Ð:Ð(Ô2Ð:°dÐ:Ð2°dÐ:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð2°dÐ:Ñ:Ô:Õ:Ô:Ð(Ñ:Ô:Õ:Ô:Ð2Ñ:Ô:Õ:Ô:°dÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð 	×0Ò0°ÈQÐ0ÑOÔOÐOØ#×3Ò3°H¸jÈ*ÐfjÐ3ÑkÔk‰ˆˆeØDÐD�tÐDˆt�tˆ|ÐDÐDÐDÐDÐDÐ ;ÐDÐ ;¸uÐ DÐDÐDÐDÐDÑDÕDÔDÐDÐDÐDÐDˆt�tÐDÑDÔDÐDÕDÔDÑDÔDÐDÐDÕDÔDˆtÑDÔDÐDÕDÔDˆtÑDÔDÐDÐDÕDÔD�tÑDÔDÐDÐDÑDÐDÐDÐDÐDÐDÑDÐDÐD×DÒDÐDÑDÔDÐDÐDÐDÕDÔDÐDÐDÐDÐDÐ ;¸uÐDÑDÔDÕDÔDÐ ;ÑDÔDÐDÕDÔDÑDÔDÐDÐDÕDÔD¸uÑDÔDÐDÕDÔD¸uÑDÔDÐDÐDÐDÐDÑDÐDÐDÐDÐDÐDÑDÐDÐD×DÒDÐDÑDÔDÐDÕDÔDÐDÐDÑDÔDÐDÑDÐDÐDÐDÐDÐDÑDÐDÕDÕDÔDÐDÑDÔDÑDÔDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDÐDØÔ(¨Ô4Ð9¸Ð9Ð4¸Ò9Ð9Ð9Ð9Õ9Ô9Ð9Ð9Ð9Ð9Ð4¸Ð9Ñ9Ô9Õ9Ô9Ð4Ñ9Ô9Õ9Ô9¸Ñ9Ô9Ð9Ð9Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9r   Nri   )	rj   rk   rl   rm   r'  r8  rP  r_  rn  rn   r   r   r  r  ê   s†   € € € € € ØaÐað
>ð 
>ð 
>ð 
>ðEð Eð Eð Eð(Cð Cð Cð Cð4ð 4ð 4ð 4ð(:ð :ð :ð :ð :ð :r   r  )#rm   Ú
__future__r   ÚbuiltinsrB   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter@   ÚpytestÚserver.party.party_servicer   Ú"server.social.guild_roster_servicer   Úserver.social.social_servicer   Úserver.social.social_typesr   Úserver.world.teleport_servicer   Úserver.world.town_portal_enginer	   Úserver.world.town_portal_typesr
   r   r   r   r   r   Úfixturer   r   rp   rÝ   r  rn   r   r   ú<module>r}     sé  ððð ð #Ð "Ð "Ð "Ð "Ð "à  € € € € € € € € € € € € €€€€à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø AÐ AÐ AÐ AÐ AÐ AØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø =Ð =Ð =Ð =Ð =Ð =Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø <Ð <Ð <Ð <Ð <Ð <ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð „ðIð Iñ „ðIð,/ð ,/ð ,/ð ,/ð ,/ñ ,/ô ,/ð ,/ð^K*ð K*ð K*ð K*ð K*ñ K*ô K*ð K*ð\>Eð >Eð >Eð >Eð >Eñ >Eô >Eð >EðBT:ð T:ð T:ð T:ð T:ñ T:ô T:ð T:ð T:ð T:r   