§
    Ö.¿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
Z
ddlZddlZddlmZmZmZ ddlmZ ddlmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZm Z  ddl!m"Z" ddl#m$Z$  G d„ d¦  «        Z%dS )zÐ
Tier 5 White-Box Adversarial Coverage Hardening Suite.
Covers extreme edge cases, race conditions, division-by-zero, SQL injection,
mid-cast state mutations, and PoE2 anti-exploit quarantine security gates.
é    )ÚannotationsN)ÚLootAllocationModeÚPartyMemberStateÚ	PartyRole)ÚPartyScalingCalculator)ÚPartyService)ÚGuildMemberPresenceDTOÚPresenceStatus)ÚSocialRepository)ÚSocialService)ÚGuildRosterService)ÚInterruptReasonÚ
TargetType)ÚTownPortalEngine)ÚTeleportServicec                  óz   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd	„Z	dd
„Z
dd„Zdd„Zdd„Zdd„Zdd„Zdd„ZdS )ÚTestTier5AdversarialHardeningz2Tier 5 Adversarial and Boundary Stress Test Suite.ÚreturnÚNonec                óˆ  — t          ddddd¬¦  «        }t          ddd	dd¬¦  «        }t          j        }d
}||g} |||¦  «        }i }||k    }|sít          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        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}}t          j        }d}| }||g} |||¦  «        }i }||k    }|sít          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        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}x}}d}t          j        |||g¦  «        }|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}}|j        } |¦   «         }t          |¦  «        }d}||z  }t          |¦  «        }||k    }|�s±t          j        d |fd!||f¦  «        d"t          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd"d#t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd#t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d$t          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd$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}x}x}x}x}}t          j        |||gd	¬)¦  «        }|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 ),zTStress-tests EXP distribution with level 1 vs level 100 disparity and zero base exp.Úp_lowÚLowLevelé   Úz1Úi1)ÚlevelÚzone_idÚinstance_idÚp_highÚ	HighLeveléd   r   ©ú==©zc%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.calculate_party_exp
}(%(py4)s, %(py6)s)
} == %(py11)sr   ©Úpy0Úpy2Úpy4Úpy6Úpy8Úpy11úassert %(py13)sÚpy13Niô  )zd%(py9)s
{%(py9)s = %(py2)s
{%(py2)s = %(py0)s.calculate_party_exp
}(-%(py4)s, %(py7)s)
} == %(py12)s)r&   r'   r(   Úpy7Úpy9Úpy12úassert %(py14)sÚpy14éè  )ú>=)z%(py1)s >= %(py4)s©Úpy1r(   úassert %(py6)sr)   )ú>)z%(py1)s > %(py4)sgÍÌÌÌÌÌô?©ú<=)z‘%(py7)s
{%(py7)s = %(py0)s(%(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.values
}()
})
} <= %(py15)s
{%(py15)s = %(py9)s((%(py10)s * %(py12)s))
}ÚsumÚsharesÚintÚbase_exp)	r&   r6   Úpy3Úpy5r.   r/   Úpy10r0   Úpy15úassert %(py17)sÚpy17)Úmonster_level)z%(py1)s <= %(py4)s©z%(py1)s == %(py4)s)r   r   Úcalculate_party_expÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚvaluesr;   r=   )Úselfr   r   Ú@py_assert1Ú@py_assert3Ú@py_assert5Ú@py_assert7Ú@py_assert10Ú@py_assert9Ú@py_format12Ú@py_format14Ú@py_assert6Ú@py_assert8Ú@py_assert11Ú@py_format13Ú@py_format15r>   r<   Ú@py_assert0Ú@py_assert2Ú@py_format5Ú@py_format7Ú@py_assert4Ú@py_assert13Ú@py_assert14Ú@py_format16Ú@py_format18Ú
gap_sharess                               úPC:\Projects\FreeExile\tests\e2e_social_party\test_tier5_adversarial_hardening.pyÚ1test_party_scaling_extreme_level_gap_and_zero_expzOTestTier5AdversarialHardening.test_party_scaling_extreme_level_gap_and_zero_exp   sÀ  € å  ¨*¸AÀtÐY]Ð^Ñ^Ô^ˆÝ! (¨K¸sÈDÐ^bÐcÑcÔcˆõ &Ô9ÐS¸!ÐS¸eÀV¸_ÐSÐ9Ð9¸!¸_ÑMÔMÐSÐQSÐSÐMÐQSÒSÐSÐSÐSÕSÔSÐSÐSÐSÐSÐMÐQSÐSÑSÔSÐSÕSÔSÑSÔSÐSÐSÕSÔSÕ%ÑSÔSÐSÕSÔSÕ%ÑSÔSÐSÐSÕSÔSÐ9ÑSÔSÕSÔS¸!ÑSÔSÕSÔS¸_ÑSÔSÕSÔSÐMÑSÔSÕSÔSÐQSÑSÔSÐSÐSÑSÐSÐSÐSÐSÐSÑSÐSÕSÕSÔSÐSÑSÔSÑSÔSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÐSÝ%Ô9ÐV¸3ÐV¸3¸$ÐVÀÈÀÐVÐ9Ð9¸$ÀÑPÔPÐVÐTVÐVÐPÐTVÒVÐVÐVÐVÕVÔVÐVÐVÐVÐVÐPÐTVÐVÑVÔVÐVÕVÔVÑVÔVÐVÐVÕVÔVÕ%ÑVÔVÐVÕVÔVÕ%ÑVÔVÐVÐVÕVÔVÐ9ÑVÔVÕVÔV¸3ÑVÔVÕVÔVÀÑVÔVÕVÔVÐPÑVÔVÕVÔVÐTVÑVÔVÐVÐVÑVÐVÐVÐVÐVÐVÑVÐVÕVÕVÔVÐVÑVÔVÑVÔVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVð ˆÝ'Ô;¸HÀuÈfÀoÑVÔVˆØ�gŒÐ# !Ð#ˆ !Ò#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ !Ð#Ñ#Ô#Õ#Ô#ˆÑ#Ô#Õ#Ô# !Ñ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø�hÔÐ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Ø”=Ð;�=�=‘?”?Ð;�s�?Ñ#Ô#Ð;°dÐ;¨8°d©?Ð;¥s¨?Ñ';Ô';Ð;Ð#Ð';Ò;Ð;Ð;Ñ;Õ;Ô;Ð;Ð;Ð;Ð;Ð#Ð';Ð;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;�sÑ;Ô;Ð;Õ;Ô;�sÑ;Ô;Ð;Ð;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;�6Ñ;Ô;Ð;Õ;Ô;�6Ñ;Ô;Ð;Ð;Õ;Ô;�=Ñ;Ô;Õ;Ô;�?Ñ;Ô;Õ;Ô;Ð#Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;¥sÑ;Ô;Ð;Õ;Ô;¥sÑ;Ô;Ð;Ð;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;¨8Ñ;Ô;Ð;Õ;Ô;¨8Ñ;Ô;Ð;Ð;Õ;Ô;°dÑ;Ô;Õ;Ô;Ð';Ñ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;õ ,Ô?ÀÈ5ÐRXÈ/ÐilÐmÑmÔmˆ
Ø˜'Ô"Ð5 f¨W¤oÐ5Ð" oÒ5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5Ð" oÐ5Ñ5Ô5Õ5Ô5Ð"Ñ5Ô5Õ5Ô5 oÑ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø˜(Ô#Ð7 v¨hÔ'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ó    c           	     óæ
  — t           j        }d}g } |||¦  «        }i }||k    }|sít          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        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}}t           j
        }d	} ||¦  «        }d
}	||	k    }|sÚt          j        d|fd||	f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }
dd|
iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}x}x}}	t           j
        }d}| } ||¦  «        }d
}||k    }	|	sÚt          j        d|	fd||f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}x}x}x}	}t          j        ddd	¬¦  «        }|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}}t          j        ddd¬¦  «        }|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 ) z3Verifies boundary edge cases in party scaling math.r3   r"   r$   r   r%   r,   r-   Nr   )ç      ð?rm   rm   )z`%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.calculate_loot_multipliers
}(%(py4)s)
} == %(py9)s)r&   r'   r(   r)   r/   zassert %(py11)sr+   é
   )zb%(py7)s
{%(py7)s = %(py2)s
{%(py2)s = %(py0)s.calculate_loot_multipliers
}(-%(py4)s)
} == %(py10)s)r&   r'   r(   r.   rA   úassert %(py12)sr0   ÚBOSS)Úbase_hpÚrankÚparty_countÚ	scaled_hprF   r5   r7   r)   Úhp_multrm   iÐ  ÚRAREéûÿÿÿ)r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   Úcalculate_loot_multipliersÚcalculate_monster_scaling)rQ   rR   rS   rT   rU   rV   rW   rX   rY   r[   Ú@py_format10rZ   Ú@py_format11r]   Ús0r_   r`   ra   rb   Ús_negs                       ri   Ú2test_party_scaling_empty_party_and_negative_inputszPTestTier5AdversarialHardening.test_party_scaling_empty_party_and_negative_inputs2   sf  € å%Ô9ÐI¸$ÐIÀÐIÐ9Ð9¸$ÀÑCÔCÐIÀrÐIÐCÀrÒIÐIÐIÐIÕIÔIÐIÐIÐIÐIÐCÀrÐIÑIÔIÐIÕIÔIÑIÔIÐIÐIÕIÔIÕ%ÑIÔIÐIÕIÔIÕ%ÑIÔIÐIÐIÕIÔIÐ9ÑIÔIÕIÔI¸$ÑIÔIÕIÔIÀÑIÔIÕIÔIÐCÑIÔIÕIÔIÀrÑIÔIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÕIÕIÔIÐIÑIÔIÑIÔIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÝ%Ô@ÐVÀÐVÐ@Ð@ÀÑCÔCÐVÀÐVÐCÀÒVÐVÐVÐVÕVÔVÐVÐVÐVÐVÐCÀÐVÑVÔVÐVÕVÔVÑVÔVÐVÐVÕVÔVÕ%ÑVÔVÐVÕVÔVÕ%ÑVÔVÐVÐVÕVÔVÐ@ÑVÔVÕVÔVÀÑVÔVÕVÔVÐCÑVÔVÕVÔVÀÑVÔVÐVÐVÑVÐVÐVÐVÐVÐVÑVÐVÕVÕVÔVÐVÑVÔVÑVÔVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÐVÝ%Ô@ÐXÀ"ÐXÀ"ÀÐXÐ@Ð@ÀÑEÔEÐXÈÐXÐEÈÒXÐXÐXÐXÕXÔXÐXÐXÐXÐXÐEÈÐXÑXÔXÐXÕXÔXÑXÔXÐXÐXÕXÔXÕ%ÑXÔXÐXÕXÔXÕ%ÑXÔXÐXÐXÕXÔXÐ@ÑXÔXÕXÔXÀ"ÑXÔXÕXÔXÐEÑXÔXÕXÔXÈÑXÔXÐXÐXÑXÐXÐXÐXÐXÐXÑXÐXÕXÕXÔXÐXÑXÔXÑXÔXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXÐXõ $Ô=ÀdÐQWÐefÐgÑgÔgˆØ�+ŒÐ& $Ð&ˆ $Ò&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ $Ð&Ñ&Ô&Õ&Ô&ˆÑ&Ô&Õ&Ô& $Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø�)Œ}Ð# Ð#ˆ} Ò#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ} Ð#Ñ#Ô#Õ#Ô#ˆ}Ñ#Ô#Õ#Ô# Ñ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#å&Ô@ÈÐTZÐhjÐkÑkÔkˆØ�[Ô!Ð) TÐ)Ð! TÒ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð! TÐ)Ñ)Ô)Õ)Ô)Ð!Ñ)Ô)Õ)Ô) TÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø�YÔÐ& 3Ð&Ð 3Ò&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð 3Ð&Ñ&Ô&Õ&Ô&ÐÑ&Ô&Õ&Ô& 3Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&rk   c                ó”  ‡‡‡— t          ¦   «         Šg Šdˆˆfd„Šˆfd„t          d¦  «        D ¦   «         }|D ]}|                     ¦   «          Œ|D ]}|                     ¦   «          Œ‰ }|s}t	          j        d‰› �¦  «        d	z   d
dt          j        ¦   «         v st	          j        ‰¦  «        rt	          j	        ‰¦  «        ndiz  }t          t	          j        |¦  «        ¦  «        ‚d}‰j        }t          |¦  «        }d}||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        nddt          j        ¦   «         v st	          j        ‰¦  «        rt	          j	        ‰¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }	dd|	iz  }
t          t	          j        |
¦  «        ¦  «        ‚dx}x}x}}‰j        }t          |¦  «        }d}||k    }|�st	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        nddt          j        ¦   «         v st	          j        ‰¦  «        rt	          j	        ‰¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }	dd|	iz  }
t          t	          j        |
¦  «        ¦  «        ‚dx}x}x}}dS )zSExercises thread-safe RLock concurrency with rapid invites, leaves, and promotions.Ú	worker_idr=   r   r   c                ó   •— 	 d| › �}‰                      |d| › �d¦  «        }|j        }d| › �}‰                     |||¦  «         ‰                     ||d| › �d¦  «         ‰                     |||¦  «         ‰                     |¦  «         ‰                     |¦  «         d S # t          $ r }‰                     |¦  «         Y d }~d S d }~ww xY w)NÚplayer_ÚName_rn   Úguest_ÚGuest_)Úcreate_partyÚparty_idÚinvite_playerÚaccept_inviteÚpromote_leaderÚleave_partyÚ	ExceptionÚappend)r€   ÚpidÚpr‡   Ú	target_idÚexcÚerrorsÚsvcs         €€ri   Úworkerz\TestTier5AdversarialHardening.test_party_service_rapid_lifecycle_concurrency.<locals>.workerF   s	  ø€ ð#Ø+ 	Ð+Ð+�Ø×$Ò$ SÐ*=°)Ð*=Ð*=¸rÑBÔB�Øœ:�Ø0 YÐ0Ð0�	Ø×!Ò! (¨C°Ñ;Ô;Ð;Ø×!Ò! (¨IÐ7KÀ	Ð7KÐ7KÈRÑPÔPÐPØ×"Ò" 8¨S°)Ñ<Ô<Ð<Ø—’ Ñ$Ô$Ð$Ø—’ 	Ñ*Ô*Ð*Ð*Ð*øÝð #ð #ð #Ø—’˜cÑ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"øøøøð#øøøs   ƒBB# Â#
CÂ-CÃCc                ó>   •— g | ]}t          j        ‰|f¬ ¦  «        ‘ŒS ))ÚtargetÚargs)Ú	threadingÚThread)Ú.0Úir”   s     €ri   ú
<listcomp>z`TestTier5AdversarialHardening.test_party_service_rapid_lifecycle_concurrency.<locals>.<listcomp>T   s+   ø€ ÐQÐQÐQÀ!•9Ô#¨6¸¸Ð=Ñ=Ô=ÐQÐQÐQrk   rn   zConcurrency errors occurred: z
>assert not %(py0)sr&   r’   Nr   r"   )zM%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.parties
})
} == %(py8)sÚlenr“   )r&   r6   r?   r@   r*   zassert %(py10)srA   )zV%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.player_party_map
})
} == %(py8)s)r€   r=   r   r   )r   ÚrangeÚstartÚjoinrH   Ú_format_assertmsgrJ   rK   rL   rM   rN   rO   Úpartiesr�   rI   Úplayer_party_map)rQ   ÚthreadsÚtrR   Ú@py_format2r`   rc   rU   rZ   Ú@py_format9r{   r’   r“   r”   s              @@@ri   Ú.test_party_service_rapid_lifecycle_concurrencyzLTestTier5AdversarialHardening.test_party_service_rapid_lifecycle_concurrencyA   s¤  øøø€ å‰nŒnˆØ"$ˆð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð RÐQÐQÐQÅuÈRÁyÄyÐQÑQÔQˆØð 	ð 	ˆAØ�GŠG‰IŒIˆIˆIØð 	ð 	ˆAØ�FŠF‰HŒHˆHˆHàˆzÐCˆzÐCÕCÔCÐC¸6ÐCÐCÑCÔCÐCÑCÐCÐCÕCÔCÑCÔCÐCÐCÕCÔC�6ÑCÔCÐCÕCÔC�6ÑCÔCÐCÐCÐCÑCÐCÕCÕCÔCÐCÑCÔCÑCÔCÐCÐCÐCØ”;Ð$�s�;ÑÔÐ$ 1Ð$Ð 1Ò$Ð$Ð$Ñ$Õ$Ô$Ð$Ð$Ð$Ð$Ð 1Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$�sÑ$Ô$Ð$Õ$Ô$�sÑ$Ô$Ð$Ð$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$�3Ñ$Ô$Ð$Õ$Ô$�3Ñ$Ô$Ð$Ð$Õ$Ô$�;Ñ$Ô$Õ$Ô$ÐÑ$Ô$Õ$Ô$ 1Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØÔ'Ð-�sÐ'Ñ(Ô(Ð-¨AÐ-Ð(¨AÒ-Ð-Ð-Ñ-Õ-Ô-Ð-Ð-Ð-Ð-Ð(¨AÐ-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-�sÑ-Ô-Ð-Õ-Ô-�sÑ-Ô-Ð-Ð-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-�3Ñ-Ô-Ð-Õ-Ô-�3Ñ-Ô-Ð-Ð-Õ-Ô-Ð'Ñ-Ô-Õ-Ô-Ð(Ñ-Ô-Õ-Ô-¨AÑ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-rk   c                ó
  — t          ¦   «         }|                     ddd¦  «        }|j        }|                     |dd¦  «         |                     |dd¦  «         |j        }|j        }i } |||¦  «        }t          |¦  «        }d}	||	k    }
|
�s|t          j        d|
fd||	f¦  «        d	t          j
        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd	d
t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd
t          j        |¦  «        t          j        |¦  «        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}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        |¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}|j        }||v}|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        |¦  «        rt          j        |¦  «        nd
t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j        }||v}|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        |¦  «        rt          j        |¦  «        nd
t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j        }d}d}d} |||||¦  «        }d}
||
u }|�s4t          j        d|fd||
f¦  «        d
t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd
t          j        |¦  «        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}x}}
dS )#zUAsserts disbanding party permanently invalidates all outstanding pending invitations.ÚleadÚLeaderé2   Ú	invitee_1Ú	invitee_2é   r"   )zš%(py12)s
{%(py12)s = %(py0)s(%(py10)s
{%(py10)s = %(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.pending_invites
}.get
}(%(py6)s, %(py8)s)
})
} == %(py15)sr�   r“   r‡   )	r&   r6   r?   r@   r)   r*   rA   r0   rB   rC   rD   NT©Úis)z]%(py7)s
{%(py7)s = %(py2)s
{%(py2)s = %(py0)s.disband_party
}(%(py3)s, %(py5)s)
} is %(py10)s)r&   r'   r?   r@   r.   rA   ro   r0   ©únot in)z3%(py0)s not in %(py4)s
{%(py4)s = %(py2)s.parties
}©r&   r'   r(   r7   r)   )z;%(py0)s not in %(py4)s
{%(py4)s = %(py2)s.pending_invites
}z	Invitee 1rn   F)zq%(py11)s
{%(py11)s = %(py2)s
{%(py2)s = %(py0)s.accept_invite
}(%(py3)s, %(py5)s, %(py7)s, %(py9)s)
} is %(py14)s)r&   r'   r?   r@   r.   r/   r+   r2   zassert %(py16)sÚpy16)r   r†   r‡   rˆ   Úpending_invitesÚgetr�   rH   rI   rJ   rK   rL   rM   rN   rO   Údisband_partyr¢   r‰   )rQ   r“   r�   r‡   r`   rc   rU   rW   r\   re   rd   rf   rg   rR   rZ   r[   r{   r]   rS   ra   rb   rV   Ú@py_assert12r^   Ú@py_format17s                            ri   Ú/test_party_disband_with_pending_invites_cleanupzMTestTier5AdversarialHardening.test_party_disband_with_pending_invites_cleanup^   s(  € å‰nŒnˆØ×Ò˜V X¨rÑ2Ô2ˆØ”:ˆØ×Ò˜( F¨KÑ8Ô8Ð8Ø×Ò˜( F¨KÑ8Ô8Ð8ØÔ&Ð>Ð&Ô*Ð>°RÐ>Ð*Ð*¨8°RÑ8Ô8Ð>�sÐ8Ñ9Ô9Ð>¸QÐ>Ð9¸QÒ>Ð>Ð>Ñ>Õ>Ô>Ð>Ð>Ð>Ð>Ð9¸QÐ>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>�sÑ>Ô>Ð>Õ>Ô>�sÑ>Ô>Ð>Ð>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>�3Ñ>Ô>Ð>Õ>Ô>�3Ñ>Ô>Ð>Ð>Õ>Ô>Ð&Ñ>Ô>Õ>Ô>Ð*Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>¨8Ñ>Ô>Ð>Õ>Ô>¨8Ñ>Ô>Ð>Ð>Õ>Ô>°RÑ>Ô>Õ>Ô>Ð8Ñ>Ô>Õ>Ô>Ð9Ñ>Ô>Õ>Ô>¸QÑ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ð Ô Ð:¨6Ð:Ð Ð  ¨6Ñ2Ô2Ð:°dÐ:Ð2°dÐ:Ð:Ð:Ñ:Õ:Ô:Ð:Ð:Ð:Ð:Ð2°dÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:ˆsÑ:Ô:Ð:Õ:Ô:ˆsÑ:Ô:Ð:Ð:Õ:Ô:Ð Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô: Ñ:Ô:Ð:Õ:Ô: Ñ:Ô:Ð:Ð:Õ:Ô:¨6Ñ:Ô:Õ:Ô:Ð2Ñ:Ô:Õ:Ô:°dÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø"œ{Ð*ˆx˜{Ð*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*ˆx˜{Ð*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆxÑ*Ô*Ð*Õ*Ô*ˆxÑ*Ô*Ð*Ð*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*˜sÑ*Ô*Ð*Õ*Ô*˜sÑ*Ô*Ð*Ð*Õ*Ô*˜{Ñ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ø"Ô2Ð2ˆxÐ2Ð2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2ˆxÐ2Ð2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆxÑ2Ô2Ð2Õ2Ô2ˆxÑ2Ô2Ð2Ð2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2˜sÑ2Ô2Ð2Õ2Ô2˜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Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2ð Ô ÐQ¨;ÐQ¸ÐQÀRÐQÐ Ð  ¨;¸ÀRÑHÔHÐQÈEÐQÐHÈEÐQÐQÐQÑQÕQÔQÐQÐQÐQÐQÐHÈEÐQÑQÔQÐQÕQÔQÑQÔQÐQÐQÕQÔQˆsÑQÔQÐQÕQÔQˆsÑQÔQÐQÐQÕQÔQÐ ÑQÔQÐQÕQÔQÑQÔQÐQÐQÕQÔQ ÑQÔQÐQÕQÔQ ÑQÔQÐQÐQÕQÔQ¨;ÑQÔQÕQÔQ¸ÑQÔQÕQÔQÀRÑQÔQÕQÔQÐHÑQÔQÕQÔQÈEÑQÔQÐQÐQÑQÐQÐQÐQÐQÐQÑQÐQÕQÕQÔQÐQÑQÔQÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQrk   c           
     óò  — t          d¬¦  «        }|                     dd¦  «         |                     d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	        |¦  «        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}x}x}x}}|j        }d}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	        |¦  «        t	          j	        |¦  «        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}x}x}x}}|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        }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	        |¦  «        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}x}x}x}}|                     dd¦  «        }t          |¦  «        }d}||k    }|sòt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        t          ¦  «        rt	          j	        t          ¦  «        nd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    }|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 )&z<Tests SQL injection defense and 64-char cap in friend notes.ú:memory:©Údb_pathÚaliceÚbobz$'; DROP TABLE player_friendships; --Tr°   )zh%(py9)s
{%(py9)s = %(py2)s
{%(py2)s = %(py0)s.set_friend_note
}(%(py4)s, %(py6)s, %(py7)s)
} is %(py12)sÚrepoÚsqli_payload)r&   r'   r(   r)   r.   r/   r0   r1   r2   Nr"   )z_%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.get_friend_note
}(%(py4)s, %(py6)s)
} == %(py10)s)r&   r'   r(   r)   r*   rA   ro   r0   ©zY%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.is_friend
}(%(py4)s, %(py6)s)
} is %(py11)sr%   r,   r-   uT  âš”ï¸� Cá»• VÃµ Hoang Vá»±c Báº¥t Diá»‡t Huyáº¿t Tháº¡ch LÆ°u Ä�Ã y âš”ï¸� Cá»• VÃµ Hoang Vá»±c Báº¥t Diá»‡t Huyáº¿t Tháº¡ch LÆ°u Ä�Ã y âš”ï¸� Cá»• VÃµ Hoang Vá»±c Báº¥t Diá»‡t Huyáº¿t Tháº¡ch LÆ°u Ä�Ã y âš”ï¸� Cá»• VÃµ Hoang Vá»±c Báº¥t Diá»‡t Huyáº¿t Tháº¡ch LÆ°u Ä�Ã y âš”ï¸� Cá»• VÃµ Hoang Vá»±c Báº¥t Diá»‡t Huyáº¿t Tháº¡ch LÆ°u Ä�Ã y Úlong_unicode_noteé@   r9   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} <= %(py6)sr�   Ú	retrieved)r&   r6   r?   r)   zassert %(py8)sr*   ©z%(py0)s == %(py3)s©r&   r?   úassert %(py5)sr@   )r   Úadd_friend_requestÚaccept_friend_requestÚset_friend_noterH   rI   rJ   rK   rL   rM   rN   rO   Úget_friend_noteÚ	is_friendr�   )rQ   rÂ   rÃ   rR   rS   rT   r[   r\   rV   r]   r^   rU   rW   r{   rX   rY   rÅ   rÇ   r`   rc   rb   r§   Ú@py_format4Ú@py_format6s                           ri   Ú4test_social_sql_injection_and_unicode_in_friend_notezRTestTier5AdversarialHardening.test_social_sql_injection_and_unicode_in_friend_noteo   sØ  € å¨
Ð3Ñ3Ô3ˆØ×Ò ¨Ñ/Ô/Ð/Ø×"Ò" 5¨'Ñ2Ô2Ð2ð >ˆØÔ#ÐI GÐI¨UÐIÐ#Ð# G¨U°LÑAÔAÐIÀTÐIÐAÀTÐIÐIÐIÑIÕIÔIÐIÐIÐIÐIÐAÀTÐIÑIÔIÐIÕIÔIÑIÔIÐIÐIÕIÔIˆtÑIÔIÐIÕIÔIˆtÑIÔIÐIÐIÕIÔIÐ#ÑIÔIÕIÔI GÑIÔIÕIÔI¨UÑIÔIÐIÕIÔIÑIÔIÐIÐIÕIÔI°LÑIÔIÐIÕIÔI°LÑIÔIÐIÐIÕIÔIÐAÑIÔIÕIÔIÀTÑIÔIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÕIÕIÔIÐIÑIÔIÑIÔIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIØÔ#ÐC GÐC¨UÐCÐ#Ð# G¨UÑ3Ô3ÐCÐ3°|ÒCÐCÐCÑCÕCÔCÐCÐCÐCÐCÐ3°|ÐCÑCÔCÐCÕCÔCÑCÔCÐCÐCÕCÔCˆtÑCÔCÐCÕCÔCˆtÑCÔCÐCÐCÕCÔCÐ#ÑCÔCÕCÔC GÑCÔCÕCÔC¨UÑCÔCÕCÔCÐ3Ñ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ð Œ~Ð5˜gÐ5 uÐ5ˆ~ˆ~˜g uÑ-Ô-Ð5°Ð5Ð-°Ð5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5Ð-°Ð5Ñ5Ô5Ð5Õ5Ô5Ñ5Ô5Ð5Ð5Õ5Ô5ˆtÑ5Ô5Ð5Õ5Ô5ˆtÑ5Ô5Ð5Ð5Õ5Ô5ˆ~Ñ5Ô5Õ5Ô5˜gÑ5Ô5Õ5Ô5 uÑ5Ô5Õ5Ô5Ð-Ñ5Ô5Õ5Ô5°Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5ð gÐØÔ#ÐN GÐN¨UÐNÐ#Ð# G¨UÐ4EÑFÔFÐNÈ$ÐNÐFÈ$ÐNÐNÐNÑNÕNÔNÐNÐNÐNÐNÐFÈ$ÐNÑNÔNÐNÕNÔNÑNÔNÐNÐNÕNÔNˆtÑNÔNÐNÕNÔNˆtÑNÔNÐNÐNÕNÔNÐ#ÑNÔNÕNÔN GÑNÔNÕNÔN¨UÑNÔNÐNÕNÔNÑNÔNÐNÐNÕNÔNÐ4EÑNÔNÐNÕNÔNÐ4EÑNÔNÐNÐNÕNÔNÐFÑNÔNÕNÔNÈ$ÑNÔNÐNÐNÑNÐNÐNÐNÐNÐNÑNÐNÕNÕNÔNÐNÑNÔNÑNÔNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNØ×(Ò(¨°%Ñ8Ô8ˆ	Ý�9‰~Œ~Ð# Ð#ˆ~ Ò#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ~ Ð#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#�sÑ#Ô#Ð#Õ#Ô#�sÑ#Ô#Ð#Ð#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#�9Ñ#Ô#Ð#Õ#Ô#�9Ñ#Ô#Ð#Ð#Õ#Ô#ˆ~Ñ#Ô#Õ#Ô# Ñ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø-¨c¨r¨cÔ2Ð2ˆyÐ2Ò2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2ˆyÐ2Ð2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆyÑ2Ô2Ð2Õ2Ô2ˆyÑ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Ð2rk   c           
     ó  — t          d¬¦  «        }t          |¬¦  «        }|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}}|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}}|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}}|j        }d}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        |¦  «        t          j        |¦  «        dœz  }
dd|
iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}x}x}x}}|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S )zAEnsures players cannot invite, block, or set notes on themselves.r½   r¾   )Ú
repositoryÚself_pFr°   )zb%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.add_friend_request
}(%(py4)s, %(py6)s)
} is %(py11)srÂ   r%   r,   r-   N)z\%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.block_player
}(%(py4)s, %(py6)s)
} is %(py11)s)zc%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.send_friend_request
}(%(py4)s, %(py6)s)
} is %(py11)sÚserviceÚmyself)zj%(py10)s
{%(py10)s = %(py2)s
{%(py2)s = %(py0)s.set_friend_note
}(%(py4)s, %(py6)s, %(py8)s)
} is %(py13)s)r&   r'   r(   r)   r*   rA   r-   zassert %(py15)srB   ©zZ%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.is_blocked
}(%(py4)s, %(py6)s)
} is %(py11)s)r   r   rË   rH   rI   rJ   rK   rL   rM   rN   rO   Úblock_playerÚsend_friend_requestrÍ   Ú
is_blocked)rQ   rÂ   rÖ   rR   rS   rT   rU   rV   rW   rX   rY   r¹   r\   rf   s                 ri   Ú(test_social_self_interaction_adversarialzFTestTier5AdversarialHardening.test_social_self_interaction_adversarial„   sf  € å¨
Ð3Ñ3Ô3ˆÝ¨4Ð0Ñ0Ô0ˆàÔ&ÐC xÐC°ÐCÐ&Ð& x°Ñ:Ô:ÐC¸eÐCÐ:¸eÐCÐCÐCÐCÕCÔCÐCÐCÐCÐCÐ:¸eÐCÑCÔCÐCÕCÔCÑCÔCÐCÐCÕCÔCˆtÑCÔCÐCÕCÔCˆtÑCÔCÐCÐCÕCÔCÐ&ÑCÔCÕCÔC xÑCÔCÕCÔC°ÑCÔCÕCÔCÐ:ÑCÔCÕCÔC¸eÑ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ØÔ Ð= Ð=¨8Ð=Ð Ð  ¨8Ñ4Ô4Ð=¸Ð=Ð4¸Ð=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð4¸Ð=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=ˆtÑ=Ô=Ð=Õ=Ô=ˆtÑ=Ô=Ð=Ð=Õ=Ô=Ð Ñ=Ô=Õ=Ô= Ñ=Ô=Õ=Ô=¨8Ñ=Ô=Õ=Ô=Ð4Ñ=Ô=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØÔ*ÐG¨8ÐG°XÐGÐ*Ð*¨8°XÑ>Ô>ÐGÀ%ÐGÐ>À%ÐGÐGÐGÐGÕGÔGÐGÐGÐGÐGÐ>À%ÐGÑGÔGÐGÕGÔGÑGÔGÐGÐGÕGÔGˆwÑGÔGÐGÕGÔGˆwÑGÔGÐGÐGÕGÔGÐ*ÑGÔGÕGÔG¨8ÑGÔGÕGÔG°XÑ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ÐGÐGÐGÐGÐGÐGÐGÐGØÔ&ÐM xÐM°ÐM¸8ÐMÐ&Ð& x°¸8ÑDÔDÐMÈÐMÐDÈÐMÐMÐMÐMÕMÔMÐMÐMÐMÐMÐDÈÐMÑMÔMÐMÕMÔMÑMÔMÐMÐMÕMÔMˆwÑMÔMÐMÕMÔMˆwÑMÔMÐMÐMÕMÔMÐ&ÑMÔMÕMÔM xÑMÔMÕMÔM°ÑMÔMÕMÔM¸8ÑMÔMÕMÔMÐDÑMÔMÕMÔMÈÑMÔMÐMÐMÑMÐMÐMÐMÐMÐMÑMÐMÕMÕMÔMÐMÑMÔMÑMÔMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMØŒÐ;˜xÐ;¨Ð;ˆˆ˜x¨Ñ2Ô2Ð;°eÐ;Ð2°eÐ;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð2°eÐ;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆtÑ;Ô;Ð;Õ;Ô;ˆtÑ;Ô;Ð;Ð;Õ;Ô;ˆÑ;Ô;Õ;Ô;˜xÑ;Ô;Õ;Ô;¨Ñ;Ô;Õ;Ô;Ð2Ñ;Ô;Õ;Ô;°eÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;rk   c           	     ó
  — t          d¬¦  «        }|                     dd¦  «         |                     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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}}|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}}|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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}}|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}}|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}}|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}}|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}}|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}}|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S )zJVerifies mutual block invariants and friendship dissolution upon blocking.r½   r¾   Úu1Úu2Tr°   rÄ   rÂ   r%   r,   r-   NrØ   F)z^%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.unblock_player
}(%(py4)s, %(py6)s)
} is %(py11)s)r   rË   rÌ   rÏ   rH   rI   rJ   rK   rL   rM   rN   rO   rÙ   rÛ   Úunblock_player)
rQ   rÂ   rR   rS   rT   rU   rV   rW   rX   rY   s
             ri   ÚAtest_social_rapid_block_unblock_cycle_and_mutual_block_invariantsz_TestTier5AdversarialHardening.test_social_rapid_block_unblock_cycle_and_mutual_block_invariants�   sß  € å¨
Ð3Ñ3Ô3ˆØ×Ò  dÑ+Ô+Ð+Ø×"Ò" 4¨Ñ.Ô.Ð.ØŒ~Ð1˜dÐ1 DÐ1ˆ~ˆ~˜d DÑ)Ô)Ð1¨TÐ1Ð)¨TÐ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð)¨TÐ1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1ˆtÑ1Ô1Ð1Õ1Ô1ˆtÑ1Ô1Ð1Ð1Õ1Ô1ˆ~Ñ1Ô1Õ1Ô1˜dÑ1Ô1Õ1Ô1 DÑ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ð 	×Ò˜$ Ñ%Ô%Ð%ØŒÐ2˜tÐ2 TÐ2ˆˆ˜t TÑ*Ô*Ð2¨dÐ2Ð*¨dÐ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð*¨dÐ2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Ð2Õ2Ô2ˆÑ2Ô2Õ2Ô2˜tÑ2Ô2Õ2Ô2 TÑ2Ô2Õ2Ô2Ð*Ñ2Ô2Õ2Ô2¨dÑ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˜tÐ2 TÐ2ˆˆ˜t TÑ*Ô*Ð2¨dÐ2Ð*¨dÐ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð*¨dÐ2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Ð2Õ2Ô2ˆÑ2Ô2Õ2Ô2˜tÑ2Ô2Õ2Ô2 TÑ2Ô2Õ2Ô2Ð*Ñ2Ô2Õ2Ô2¨dÑ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Ð2 DÐ2ˆ~ˆ~˜d DÑ)Ô)Ð2¨UÐ2Ð)¨UÐ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð)¨UÐ2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Ð2Õ2Ô2ˆ~Ñ2Ô2Õ2Ô2˜dÑ2Ô2Õ2Ô2 DÑ2Ô2Õ2Ô2Ð)Ñ2Ô2Õ2Ô2¨UÑ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˜tÐ2 TÐ2ˆˆ˜t TÑ*Ô*Ð2¨dÐ2Ð*¨dÐ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð*¨dÐ2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Ð2Õ2Ô2ˆÑ2Ô2Õ2Ô2˜tÑ2Ô2Õ2Ô2 TÑ2Ô2Õ2Ô2Ð*Ñ2Ô2Õ2Ô2¨dÑ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ð Ô"Ð6 4Ð6¨Ð6Ð"Ð" 4¨Ñ.Ô.Ð6°$Ð6Ð.°$Ð6Ð6Ð6Ð6Õ6Ô6Ð6Ð6Ð6Ð6Ð.°$Ð6Ñ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6ˆtÑ6Ô6Ð6Õ6Ô6ˆtÑ6Ô6Ð6Ð6Õ6Ô6Ð"Ñ6Ô6Õ6Ô6 4Ñ6Ô6Õ6Ô6¨Ñ6Ô6Õ6Ô6Ð.Ñ6Ô6Õ6Ô6°$Ñ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ØŒÐ2˜tÐ2 TÐ2ˆˆ˜t TÑ*Ô*Ð2¨dÐ2Ð*¨dÐ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð*¨dÐ2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Ð2Õ2Ô2ˆÑ2Ô2Õ2Ô2˜tÑ2Ô2Õ2Ô2 TÑ2Ô2Õ2Ô2Ð*Ñ2Ô2Õ2Ô2¨dÑ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˜tÐ2 TÐ2ˆˆ˜t TÑ*Ô*Ð2¨dÐ2Ð*¨dÐ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð*¨dÐ2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Ð2Õ2Ô2ˆÑ2Ô2Õ2Ô2˜tÑ2Ô2Õ2Ô2 TÑ2Ô2Õ2Ô2Ð*Ñ2Ô2Õ2Ô2¨dÑ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ð Ô"Ð6 4Ð6¨Ð6Ð"Ð" 4¨Ñ.Ô.Ð6°$Ð6Ð.°$Ð6Ð6Ð6Ð6Õ6Ô6Ð6Ð6Ð6Ð6Ð.°$Ð6Ñ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6ˆtÑ6Ô6Ð6Õ6Ô6ˆtÑ6Ô6Ð6Ð6Õ6Ô6Ð"Ñ6Ô6Õ6Ô6 4Ñ6Ô6Õ6Ô6¨Ñ6Ô6Õ6Ô6Ð.Ñ6Ô6Õ6Ô6°$Ñ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ØŒÐ3˜tÐ3 TÐ3ˆˆ˜t TÑ*Ô*Ð3¨eÐ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ˆtÑ3Ô3Ð3Õ3Ô3ˆtÑ3Ô3Ð3Ð3Õ3Ô3ˆÑ3Ô3Õ3Ô3˜tÑ3Ô3Õ3Ô3 TÑ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Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3ð Œ~Ð2˜dÐ2 DÐ2ˆ~ˆ~˜d DÑ)Ô)Ð2¨UÐ2Ð)¨UÐ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð)¨UÐ2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Õ2Ô2ˆtÑ2Ô2Ð2Ð2Õ2Ô2ˆ~Ñ2Ô2Õ2Ô2˜dÑ2Ô2Õ2Ô2 DÑ2Ô2Õ2Ô2Ð)Ñ2Ô2Õ2Ô2¨UÑ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Ð2rk   c                óv  — t          ¦   «         }|                     dt          ddddt          j        d¬¦  «        ¦  «         |                     dt          dd	ddt          j        d
¬¦  «        ¦  «         |                     dt          ddddt          j        d¬¦  «        ¦  «         |                     dt          ddddt          j        d¬¦  «        ¦  «         |                     dt          ddddt          j        d¬¦  «        ¦  «         |                     d¦  «        }d„ |D ¦   «         }|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}||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}||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}||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}||u }|slt          j        d|fd||f¦  «        t          j	        |¦  «        t          j	        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}dS )zVVerifies teleport targetability filtering across restricted zones and presence states.Úg1Úm1Ú
OnlineWildÚMEMBERé   Úzone_tang_kiem_nhai)Úroler   Úpresence_statusr   Úm2Ú	InHideoutÚzone_player_hideoutÚm3ÚInSecretÚzone_secret_chamberÚm4ÚInBossÚzone_boss_arenaÚm5Ú
OfflineGuyc                ó(   — i | ]}|j         |j        “ŒS © )Ú	player_idÚis_teleport_targetable)rš   Úms     ri   ú
<dictcomp>zjTestTier5AdversarialHardening.test_guild_roster_restricted_zones_and_offline_filtering.<locals>.<dictcomp>¶   s   € ÐLÐLÐLÀ�a”k 1Ô#;ÐLÐLÐLrk   Tr°   )z%(py1)s is %(py4)sr5   r7   r)   NF)r   Úregister_memberr	   r
   ÚONLINEÚOFFLINEÚget_guild_roster_with_presencerH   rI   rM   rN   rO   )	rQ   Ú
roster_svcÚrosterÚ
target_mapr_   rS   r`   ra   rb   s	            ri   Ú8test_guild_roster_restricted_zones_and_offline_filteringzVTestTier5AdversarialHardening.test_guild_roster_restricted_zones_and_offline_filtering¬   s  € å'Ñ)Ô)ˆ
Ø×"Ò" 4Õ)?ÀÀlÐYaÐikõ  ~Lô  ~Sð  ]rð  *sñ  *sô  *sñ  	tô  	tð  	tØ×"Ò" 4Õ)?ÀÀkÐX`Ðhjõ  }Kô  }Rð  \qð  *rñ  *rô  *rñ  	sô  	sð  	sØ×"Ò" 4Õ)?ÀÀjÐW_Ðgiõ  |Jô  |Qð  [pð  *qñ  *qô  *qñ  	rô  	rð  	rØ×"Ò" 4Õ)?ÀÀhÐU]Ðegõ  zHô  zOð  Yjð  *kñ  *kô  *kñ  	lô  	lð  	lØ×"Ò" 4Õ)?ÀÀlÐYaÐikõ  ~Lô  ~Tð  ^sð  *tñ  *tô  *tñ  	uô  	uð  	uà×:Ò:¸4Ñ@Ô@ˆØLÐLÀVÐLÑLÔLˆ
à˜$ÔÐ' 4Ð'Ð 4Ð'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð 4Ð'Ñ'Ô'Õ'Ô'ÐÑ'Ô'Õ'Ô' 4Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø˜$ÔÐ( 5Ð(Ð 5Ð(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð 5Ð(Ñ(Ô(Õ(Ô(ÐÑ(Ô(Õ(Ô( 5Ñ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø˜$ÔÐ( 5Ð(Ð 5Ð(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð 5Ð(Ñ(Ô(Õ(Ô(ÐÑ(Ô(Õ(Ô( 5Ñ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø˜$ÔÐ( 5Ð(Ð 5Ð(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð 5Ð(Ñ(Ô(Õ(Ô(ÐÑ(Ô(Õ(Ô( 5Ñ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø˜$ÔÐ( 5Ð(Ð 5Ð(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð 5Ð(Ñ(Ô(Õ(Ô(ÐÑ(Ô(Õ(Ô( 5Ñ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(rk   c           
     ó„  — t          ¦   «         }|                     dd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        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}|                     |j        dd¦  «         |                     |j        ddd¦  «         t          |¬¦  «        }|                     dddd¬¦  «         |                     dt"          j        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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t"          j        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}
}	|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}}	|j        }d}
d/} ||
|¬(¦  «        }t*          j        }||k    }|�s+t          j        d|fd0||f¦  «        d$t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd$t          j        |¦  «        t          j        |
¦  «        t          j        |¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        t*          ¦  «        rt          j        t*          ¦  «        ndt          j        |¦  «        d1œz  }d2d3|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 )4zGVerifies instant interrupts on frame 0 and deadzone joystick tolerance.ÚcasterÚCasterrn   N©úis not©z%(py0)s is not %(py3)sr�   rÉ   rÊ   r@   r–   ÚTarget©Úparty_serviceÚ	zone_wildTr   é   )Ú	is_activeÚplayer_countÚmax_capacityr°   ©z/%(py2)s
{%(py2)s = %(py0)s.success
} is %(py5)sÚres©r&   r'   r@   úassert %(py7)sr.   gü©ñÒMbP?)Údamager"   )z8%(py0)s == %(py4)s
{%(py4)s = %(py2)s.INTERRUPT_DAMAGE
}Ú
int_reasonr   r´   r7   r)   r²   ©z;%(py1)s not in %(py5)s
{%(py5)s = %(py3)s.active_channels
}Útp_svc©r6   r?   r@   Úres2gJ+‡©?)Úmag)zc%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.on_player_moved
}(%(py4)s, mag=%(py6)s)
} is %(py11)sr%   r,   r-   ©Úin)z7%(py1)s in %(py5)s
{%(py5)s = %(py3)s.active_channels
}gé&1¬ª?)z�%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.on_player_moved
}(%(py4)s, mag=%(py6)s)
} == %(py12)s
{%(py12)s = %(py10)s.INTERRUPT_MOVEMENT
})r&   r'   r(   r)   r*   rA   r0   r1   r2   )r   r†   Úget_player_partyrH   rI   rJ   rK   rL   rM   rN   rO   rˆ   r‡   r‰   r   Úset_zone_stateÚstart_teleport_channelr   ÚPARTY_MEMBERÚsuccessÚon_player_damagedr   ÚINTERRUPT_DAMAGEÚactive_channelsÚon_player_movedÚINTERRUPT_MOVEMENT)rQ   Ú	party_svcr�   r`   rR   rÐ   rÑ   r  r  rc   rS   Ú@py_format8r  ra   rb   r_   r  rT   rU   rV   rW   rX   rY   r\   r]   r^   s                             ri   Ú;test_teleport_frame_zero_interrupts_and_subthreshold_jitterzYTestTier5AdversarialHardening.test_teleport_frame_zero_interrupts_and_subthreshold_jitter¾   sÕ	  € å ‘N”Nˆ	Ø×Ò˜x¨°2Ñ6Ô6Ð6Ø×&Ò& xÑ0Ô0ˆØÐˆq˜ˆ}ÐÐÐÕÔÐÐÐÐˆq˜ÐÑÔÐÕÔÑÔÐÐÕÔˆqÑÔÐÕÔˆqÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ×Ò ¤
¨H°hÑ?Ô?Ð?Ø×Ò ¤
¨H°hÀÑCÔCÐCå ¨yÐ9Ñ9Ô9ˆØ×Ò˜k°TÈÐXYÐÑZÔZÐZð ×+Ò+¨HµjÔ6MÈxÐYdÑeÔeˆØŒ{Ð"˜dÐ"ˆ{˜dÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆ{˜dÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆsÑ"Ô"Ð"Õ"Ô"ˆsÑ"Ô"Ð"Ð"Õ"Ô"ˆ{Ñ"Ô"Õ"Ô"˜dÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ø×-Ò-¨h¸uÐ-ÑEÔEˆ
Ý,Ô=Ð=ˆzÐ=Ò=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=ˆzÐ=Ð=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=ˆzÑ=Ô=Ð=Õ=Ô=ˆzÑ=Ô=Ð=Ð=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=�_Ñ=Ô=Ð=Õ=Ô=�_Ñ=Ô=Ð=Ð=Õ=Ô=Ð=Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=ØÐ5˜vÔ5Ð5ˆxÐ5Ð5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5ˆxÐ5Ð5Ñ5Ô5Õ5Ô5ˆxÑ5Ô5Ð5Õ5Ô5Ñ5Ô5Ð5Ð5Õ5Ô5˜vÑ5Ô5Ð5Õ5Ô5˜vÑ5Ô5Ð5Ð5Õ5Ô5Ð5Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5ð ×,Ò,¨XµzÔ7NÐPXÐZeÑfÔfˆØŒ|Ð#˜tÐ#ˆ|˜tÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ|˜tÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆtÑ#Ô#Ð#Õ#Ô#ˆtÑ#Ô#Ð#Ð#Õ#Ô#ˆ|Ñ#Ô#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ØÔ%ÐB hÐB°EÐBÐ%Ð% h°EÐ:Ñ:Ô:ÐB¸dÐBÐ:¸dÐBÐBÐBÐBÕBÔBÐBÐBÐBÐBÐ:¸dÐBÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔBˆvÑBÔBÐBÕBÔBˆvÑBÔBÐBÐBÕBÔBÐ%ÑBÔBÕBÔB hÑBÔBÕBÔB°EÑBÔBÕBÔ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ØÐ1˜6Ô1Ð1ˆxÐ1Ð1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1ˆxÐ1Ð1Ñ1Ô1Õ1Ô1ˆxÑ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1˜6Ñ1Ô1Ð1Õ1Ô1˜6Ñ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ð Ô%Ð` hÐ`°EÐ`Ð%Ð% h°EÐ:Ñ:Ô:Ð`½oÔ>`Ð`Ð:Ð>`Ò`Ð`Ð`Ñ`Õ`Ô`Ð`Ð`Ð`Ð`Ð:Ð>`Ð`Ñ`Ô`Ð`Õ`Ô`Ñ`Ô`Ð`Ð`Õ`Ô`ˆvÑ`Ô`Ð`Õ`Ô`ˆvÑ`Ô`Ð`Ð`Õ`Ô`Ð%Ñ`Ô`Õ`Ô` hÑ`Ô`Õ`Ô`°EÑ`Ô`Õ`Ô`Ð:Ñ`Ô`Ð`Õ`Ô`Ñ`Ô`Ð`Ð`Õ`Ô`½oÑ`Ô`Ð`Õ`Ô`½oÑ`Ô`Ð`Ð`Õ`Ô`Ð>`Ñ`Ô`Ð`Ð`Ñ`Ð`Ð`Ð`Ð`Ð`Ñ`Ð`Õ`Õ`Ô`Ð`Ñ`Ô`Ñ`Ô`Ð`Ð`Ð`Ð`Ð`Ð`Ð`Ð`Ð`Ð`Ð`Ð`Ð`ØÐ5˜vÔ5Ð5ˆxÐ5Ð5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5ˆxÐ5Ð5Ñ5Ô5Õ5Ô5ˆxÑ5Ô5Ð5Õ5Ô5Ñ5Ô5Ð5Ð5Õ5Ô5˜vÑ5Ô5Ð5Õ5Ô5˜vÑ5Ô5Ð5Ð5Õ5Ô5Ð5Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5rk   c                ó²  — t          ¦   «         }|                     dd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        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}|                     |j        dd¦  «         |                     |j        ddd¦  «         t          |¬¦  «        }|                     ddd¬¦  «         |                     dt"          j        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dd¬¦  «         |                     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        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d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}|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 )%zPTests race condition where destination zone triggers boss encounter mid-channel.rÀ   ÚAlicern   Nr  r	  r�   rÉ   rÊ   r@   rÁ   ÚBobr  Úzone_dungeonFT)Úis_boss_activer  r°   r  r  r  r  r.   g      @)Úelapsed_time©z%(py0)s is %(py3)sÚokÚGATE_5_QUARANTINE_BOSSr  ©z%(py1)s in %(py3)sÚreason©r6   r?   r²   r  r  r  )r   r†   r  rH   rI   rJ   rK   rL   rM   rN   rO   rˆ   r‡   r‰   r   r   r!  r   r"  r#  Úcomplete_channelr&  )rQ   r)  r�   r`   rR   rÐ   rÑ   r  r  rc   rS   r*  r3  r6  r_   s                  ri   Ú9test_teleport_mid_channel_destination_quarantine_mutationzWTestTier5AdversarialHardening.test_teleport_mid_channel_destination_quarantine_mutationÛ   sú  € å ‘N”Nˆ	Ø×Ò˜w¨°Ñ4Ô4Ð4Ø×&Ò& wÑ/Ô/ˆØÐˆq˜ˆ}ÐÐÐÕÔÐÐÐÐˆq˜ÐÑÔÐÕÔÑÔÐÐÕÔˆqÑÔÐÕÔˆqÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ×Ò ¤
¨G°UÑ;Ô;Ð;Ø×Ò ¤
¨E°5¸"Ñ=Ô=Ð=å ¨yÐ9Ñ9Ô9ˆØ×Ò˜n¸UÈdÐÑSÔSÐSà×+Ò+¨GµZÔ5LÈeÐUcÑdÔdˆØŒ{Ð"˜dÐ"ˆ{˜dÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆ{˜dÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆsÑ"Ô"Ð"Õ"Ô"ˆsÑ"Ô"Ð"Ð"Õ"Ô"ˆ{Ñ"Ô"Õ"Ô"˜dÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"ð 	×Ò˜n¸TÈTÐÑRÔRÐRð ×,Ò,¨WÀ3Ð,ÑGÔG‰
ˆˆFØÐˆr�Uˆ{ÐÐÐÕÔÐÐÐÐˆr�UÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�UÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ'Ð1Ð'¨6Ð1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð'¨6Ð1Ñ1Ô1Õ1Ô1Ð'Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1¨6Ñ1Ô1Ð1Õ1Ô1¨6Ñ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ØÐ4˜fÔ4Ð4ˆwÐ4Ð4Ð4Ð4Ð4Õ4Ô4Ð4Ð4Ð4Ð4ˆwÐ4Ð4Ñ4Ô4Õ4Ô4ˆwÑ4Ô4Ð4Õ4Ô4Ñ4Ô4Ð4Ð4Õ4Ô4˜fÑ4Ô4Ð4Õ4Ô4˜fÑ4Ô4Ð4Ð4Õ4Ô4Ð4Ñ4Ô4Ð4Ð4Ñ4Ð4Ð4Ð4Ð4Ð4Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4rk   c           	     ó$  — t          ¦   «         }|                     ddd¬¦  «         |                     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        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d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¦  «        }	|	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dd¬¦  «         |                     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        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d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¬¦  «         |j        }d}d} |||¦  «        }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        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}x}x}}|                     d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}}
|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 )#zEVerifies quarantine priority and unlock transitions for town portals.Úinst_1T)Úboss_activeÚsecret_activer/  r°   r2  Ú	is_lockedrÉ   rÊ   r@   NÚQUARANTINE_BOSS_ENGAGEDr  r5  Úerrr7  Úp1Fr  r  r  r  r.   ÚQUARANTINE_SECRET_CHAMBER)FÚUNLOCKEDr"   )ze%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.check_quarantine_lock
}(%(py4)s, %(py6)s)
} == %(py11)sÚenginer%   r,   r-   Úres_okr  )z5%(py2)s
{%(py2)s = %(py0)s.portal_id
} is not %(py5)s)r   Úset_encounter_stateÚcheck_quarantine_lockrH   rI   rJ   rK   rL   rM   rN   rO   Úrequest_town_portalr#  Ú	portal_id)rQ   rD  r>  r@  r`   rR   rÐ   rÑ   r_   r  rc   rS   r*  rT   rU   rV   rW   rX   rY   rE  s                       ri   Ú3test_town_portal_double_quarantine_and_boss_lockoutzQTestTier5AdversarialHardening.test_town_portal_double_quarantine_and_boss_lockoutó   s²  € å!Ñ#Ô#ˆØ×"Ò" 8¸ÈTÐ"ÑRÔRÐRð  ×5Ò5°nÀhÑOÔO‰ˆ	�3Ø Ð ˆy˜DÐ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆy˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆyÑ Ô Ð Õ Ô ˆyÑ Ô Ð Ð Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ø(Ð/Ð(¨CÐ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð(¨CÐ/Ñ/Ô/Õ/Ô/Ð(Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/¨CÑ/Ô/Ð/Õ/Ô/¨CÑ/Ô/Ð/Ð/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/à×(Ò(¨¨~¸xÑHÔHˆØŒ{Ð#˜eÐ#ˆ{˜eÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ{˜eÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆsÑ#Ô#Ð#Õ#Ô#ˆsÑ#Ô#Ð#Ð#Õ#Ô#ˆ{Ñ#Ô#Õ#Ô#˜eÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð 	×"Ò" 8¸ÈdÐ"ÑSÔSÐSØ×5Ò5°nÀhÑOÔO‰ˆ	�3Ø Ð ˆy˜DÐ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆy˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆyÑ Ô Ð Õ Ô ˆyÑ Ô Ð Ð Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ø*Ð1Ð*¨cÐ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð*¨cÐ1Ñ1Ô1Õ1Ô1Ð*Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1¨cÑ1Ô1Ð1Õ1Ô1¨cÑ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ð 	×"Ò" 8¸ÈeÐ"ÑTÔTÐTØÔ+Ð\¨NÐ\¸HÐ\Ð+Ð+¨N¸HÑEÔEÐ\ÐI\Ð\ÐEÐI\Ò\Ð\Ð\Ð\Õ\Ô\Ð\Ð\Ð\Ð\ÐEÐI\Ð\Ñ\Ô\Ð\Õ\Ô\Ñ\Ô\Ð\Ð\Õ\Ô\ˆvÑ\Ô\Ð\Õ\Ô\ˆvÑ\Ô\Ð\Ð\Õ\Ô\Ð+Ñ\Ô\Õ\Ô\¨NÑ\Ô\Õ\Ô\¸HÑ\Ô\Õ\Ô\ÐEÑ\Ô\Õ\Ô\ÐI\Ñ\Ô\Ð\Ð\Ñ\Ð\Ð\Ð\Ð\Ð\Ñ\Ð\Õ\Õ\Ô\Ð\Ñ\Ô\Ñ\Ô\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\Ð\à×+Ò+¨D°.À(ÑKÔKˆØŒ~Ð% Ð%ˆ~ Ð%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%ˆ~ Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆvÑ%Ô%Ð%Õ%Ô%ˆvÑ%Ô%Ð%Ð%Õ%Ô%ˆ~Ñ%Ô%Õ%Ô% Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØÔÐ+ tÐ+Ð tÐ+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð tÐ+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆvÑ+Ô+Ð+Õ+Ô+ˆvÑ+Ô+Ð+Ð+Õ+Ô+ÐÑ+Ô+Õ+Ô+ tÑ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+rk   c                ó&  — t          ¦   «         }|                     d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        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d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}||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  }t          t          j
        |¦  «        ¦  «        ‚dx}}|                     d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        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}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  }t          t          j
        |¦  «        ¦  «        ‚dx}}|                     dd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        |¦  «        dœz  }d	d
|iz  }t          t          j
        |¦  «        ¦  «        ‚d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}	}|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¦  «        \  }}}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}	|	|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}||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  }t          t          j
        |¦  «        ¦  «        ‚dx}}dS )'zQTests map device exhaustion, death consumption, and zero-charge re-entry lockout.Úmap_instr   )Úinitial_chargesFr°   r2  r3  rÉ   rÊ   r@   NÚ
MAP_SEALEDr  r5  Úmsgr7  r"   rÈ   ÚremÚ
map_inst_2r¯   TÚok1r   Úrem1rA  Úzone_map)Úis_map_instanceÚdeath_okÚMAP_DEATH_CONSUMED_PORTALÚ	death_msgrF   r5   r7   r)   Úok2Úmsg2Úrem2)r   Úregister_astral_map_deviceÚenter_map_portalrH   rI   rJ   rK   rL   rM   rN   rO   Úon_player_deathÚmap_charges)rQ   rD  r3  rO  rP  r`   rR   rÐ   rÑ   r_   rR  Ú_rS  rV  rX  rS   ra   rb   rY  rZ  r[  s                        ri   Ú:test_map_device_zero_charge_reentry_and_depletion_boundaryzXTestTier5AdversarialHardening.test_map_device_zero_charge_reentry_and_depletion_boundary  s»  € å!Ñ#Ô#ˆØ×)Ò)¨*ÀaÐ)ÑHÔHÐHØ×.Ò.¨zÑ:Ô:‰ˆˆC�ØÐˆr�Uˆ{ÐÐÐÕÔÐÐÐÐˆr�UÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�UÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐ"ˆ|˜sÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆ|˜sÐ"Ñ"Ô"Õ"Ô"ˆ|Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"˜sÑ"Ô"Ð"Õ"Ô"˜sÑ"Ô"Ð"Ð"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Øˆˆs�aŠxˆˆˆ�Œˆˆˆˆˆs�aˆ‰Œˆ�Œ‰Œˆˆ�Œˆs‰Œˆ�Œˆs‰Œˆˆ�Œ�a‰Œˆˆ‰ˆˆˆˆˆ‰ˆ��Œˆ‰Œ‰Œˆˆˆˆˆð 	×)Ò)¨,ÈÐ)ÑJÔJÐJØ×.Ò.¨|Ñ<Ô<‰ˆˆQ�ØÐˆs�dˆ{ÐÐÐÕÔÐÐÐÐˆs�dÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ�dÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆt�qŠyÐÐÐÕÔÐÐÐÐˆt�qÐÑÔÐÕÔÑÔÐÐÕÔˆtÑÔÐÕÔˆtÑÔÐÐÕÔ�qÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð %×4Ò4°T¸:À|ÐeiÐ4ÑjÔjÑˆ�)ØÐˆx˜4ÐÐÐÐÕÔÐÐÐÐˆx˜4ÐÑÔÐÕÔÑÔÐÐÕÔˆxÑÔÐÕÔˆxÑÔÐÐÕÔ˜4ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ*Ð7Ð*¨iÐ7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7Ð*¨iÐ7Ñ7Ô7Õ7Ô7Ð*Ñ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7¨iÑ7Ô7Ð7Õ7Ô7¨iÑ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ØÔ! ,Ô/Ð4°1Ð4Ð/°1Ò4Ð4Ð4Ð4Õ4Ô4Ð4Ð4Ð4Ð4Ð/°1Ð4Ñ4Ô4Õ4Ô4Ð/Ñ4Ô4Õ4Ô4°1Ñ4Ô4Ð4Ð4Ñ4Ð4Ð4Ð4Ð4Ð4Ñ4Ð4Õ4Õ4Ô4Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4Ð4ð !×1Ò1°,Ñ?Ô?‰ˆˆT�4ØÐˆs�eˆ|ÐÐÐÕÔÐÐÐÐˆs�eÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ�eÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐ#ˆ|˜tÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ|˜tÐ#Ñ#Ô#Õ#Ô#ˆ|Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#˜tÑ#Ô#Ð#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#ØÐˆt�qŠyÐÐÐÕÔÐÐÐÐˆt�qÐÑÔÐÕÔÑÔÐÐÕÔˆtÑÔÐÕÔˆtÑÔÐÐÕÔ�qÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐrk   c                ó<  — t          ¦   «         }t          ¦   «         }|                     dd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	        |¦  «        dœz  }d	d
|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}}|                     |j        dd¦  «         |                     |j        ddd¦  «         |                     ddd¦  «         |                     ddd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}
}	|j        }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||¦  «        \  }}}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||¦  «        \  }}}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||¦  «        \  }}}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!}||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 )&zAPrevents non-party members from traversing personal town portals.ÚownerÚOwnerr¬   Nr  r	  r�   rÉ   rÊ   r@   ÚallyÚAllyÚstrangerÚStrangerrè   r;  g      $@g      4@)ÚwxÚwyTr°   r  r  r  r  r.   rI  r2  Úok_ownerÚok_allyFÚok_strangerÚPORTAL_UNAUTHORIZEDr  r5  r6  r7  )r   r   r†   r  rH   rI   rJ   rK   rL   rM   rN   rO   rˆ   r‡   r‰   rH  r#  rI  Útraverse_town_portal)rQ   rD  r)  r�   r`   rR   rÐ   rÑ   r  rc   rS   r*  rI  rk  r`  rl  rm  r6  r_   s                      ri   Ú5test_town_portal_unauthorized_party_hijack_preventionzSTestTier5AdversarialHardening.test_town_portal_unauthorized_party_hijack_prevention)  sˆ  € å!Ñ#Ô#ˆÝ ‘N”Nˆ	Ø×Ò˜w¨°Ñ4Ô4Ð4Ø×&Ò& wÑ/Ô/ˆØÐˆq˜ˆ}ÐÐÐÕÔÐÐÐÐˆq˜ÐÑÔÐÕÔÑÔÐÐÕÔˆqÑÔÐÕÔˆqÑÔÐÐÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ×Ò ¤
¨G°VÑ<Ô<Ð<Ø×Ò ¤
¨F°F¸BÑ?Ô?Ð?ð 	×Ò˜z¨:°rÑ:Ô:Ð:à×(Ò(¨Ð2GÈÐVZÐ_cÐ(ÑdÔdˆØŒ{Ð"˜dÐ"ˆ{˜dÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆ{˜dÐ"Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"ˆsÑ"Ô"Ð"Õ"Ô"ˆsÑ"Ô"Ð"Ð"Õ"Ô"ˆ{Ñ"Ô"Õ"Ô"˜dÑ"Ô"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ø”Mˆ	Ø $Ð$ˆy Ð$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$ˆy Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆyÑ$Ô$Ð$Õ$Ô$ˆyÑ$Ô$Ð$Ð$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$ð  ×4Ò4°W¸iÈÑSÔS‰ˆ�!�QØÐˆx˜4ÐÐÐÐÕÔÐÐÐÐˆx˜4ÐÑÔÐÕÔÑÔÐÐÕÔˆxÑÔÐÕÔˆxÑÔÐÐÕÔ˜4ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð ×3Ò3°F¸IÀyÑQÔQ‰ˆ��AØÐˆw˜$ˆÐÐÐÕÔÐÐÐÐˆw˜$ÐÑÔÐÕÔÑÔÐÐÕÔˆwÑÔÐÕÔˆwÑÔÐÐÕÔ˜$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð "(×!<Ò!<¸ZÈÐT]Ñ!^Ô!^Ñˆ�V˜QØ#Ð#ˆ{˜eÐ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ{˜eÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆ{Ñ#Ô#Ð#Õ#Ô#ˆ{Ñ#Ô#Ð#Ð#Õ#Ô#˜eÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ø$Ð.Ð$¨Ð.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð$¨Ð.Ñ.Ô.Õ.Ô.Ð$Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.¨Ñ.Ô.Ð.Õ.Ô.¨Ñ.Ô.Ð.Ð.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.rk   N)r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rj   r~   r¨   r»   rÒ   rÜ   rá   r  r+  r9  rJ  ra  rp  r÷   rk   ri   r   r      s"  € € € € € Ø<Ð<ð8ð 8ð 8ð 8ð*'ð 'ð 'ð 'ð.ð .ð .ð .ð:Rð Rð Rð Rð"3ð 3ð 3ð 3ð*	<ð 	<ð 	<ð 	<ð3ð 3ð 3ð 3ð:)ð )ð )ð )ð$6ð 6ð 6ð 6ð:5ð 5ð 5ð 5ð0,ð ,ð ,ð ,ð6ð ð ð ð6/ð /ð /ð /ð /ð /rk   r   )&rt  Ú
__future__r   ÚbuiltinsrJ   Ú_pytest.assertion.rewriteÚ	assertionÚrewriterH   Úmathr˜   ÚtimeÚpytestÚserver.party.party_typesr   r   r   Ú%server.party.party_scaling_calculatorr   Úserver.party.party_servicer   Úserver.social.social_typesr	   r
   Úserver.social.social_repositoryr   Úserver.social.social_servicer   Ú"server.social.guild_roster_servicer   Úserver.world.town_portal_typesr   r   Úserver.world.town_portal_enginer   Úserver.world.teleport_servicer   r   r÷   rk   ri   ú<module>r‡     sl  ððð ð #Ð "Ð "Ð "Ð "Ð "à  € € € € € € € € € € € € €€€€Ø Ð Ð Ð Ø €€€Ø €€€à TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ HÐ HÐ HÐ HÐ HÐ HØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ <Ð <Ð <Ð <Ð <Ð <Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø AÐ AÐ AÐ AÐ AÐ AØ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ <Ð <Ð <Ð <Ð <Ð <Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ðl/ð l/ð l/ð l/ð l/ñ l/ô l/ð l/ð l/ð l/rk   