ó
    °z¦jS  ã                  ó,   • S r SSKJr  S rS rS rS rg)zFVisible deterministic rules for MKN-028 synthetic context-sharing lab.é    )Úannotationsc                ó`
  ^• / n[        U [        5      (       d  S/$ U R                  S5      =(       d    0 o R                  S5      =(       d    0 o0R                  S5      =(       d    0 o@R                  S5      =(       d    0 oPR                  S5      =(       d    0 o`R                  S5      =(       d    0 nUR                  S5      (       a,  UR                  S	5      (       a  UR                  S
5      (       d  UR                  S5        UR                  S5      (       d  UR                  S5        UR                  S5      (       d  UR                  S5        UR                  S5      (       d  UR                  S5        UR                  S5      =(       d    / n[	        UR                  S5      =(       d    / 5      m[        U4S jU 5       5      (       a  UR                  S5        UR                  S5      =(       d    0 n	U Hl  n
U	R                  U
5      =(       d    0 nUR                  S5      (       d  UR                  S5        UR                  S5      S:w  d  M[  UR                  S5        Mn     [	        UR                  S5      =(       d    / 5      [	        U5      -
   Hg  n
U	R                  U
5      =(       d    0 n[        UR                  S5      =(       d    S5      R                  S5      (       a  MV  UR                  S5        Mi     UR                  S 5      (       a  UR                  S!5      (       d  UR                  S"5        UR                  S 5      UR                  S 5      :w  d  UR                  S#5      (       d  UR                  S$5        UR                  S%5      (       a  UR                  S&5        UR                  S'5      (       a  UR                  S(5      (       d  UR                  S)5        UR                  S*5      (       a5  UR                  S(5      UR                  S*5      :w  a  UR                  S+5        UR                  S,5      S-:X  a'  UR                  S.5      (       d  UR                  S/5        UR                  S05      (       a  UR                  S15      (       d  UR                  S25        UR                  S35      S4:X  aN  UR                  S55      (       d  UR                  S65        UR                  S75      (       a  UR                  S85        [        [	        U5      5      $ )9NÚINPUT_INVALIDÚlearnerÚgrantÚscopeÚsnapshotÚ
annotationÚaccessÚcontext_share_idÚlearner_refÚmentor_or_reviewer_refÚIDENTITY_EVIDENCE_MISSINGÚpurposeÚPURPOSE_MISSINGÚauthorization_refÚAUTHORIZATION_MISSINGÚconsent_or_basis_refÚBASIS_MISSINGÚapproved_fieldsÚpurpose_allowed_fieldsc              3  ó,   >#   • U  H	  oT;  v •  M     g 7f)N© )Ú.0ÚxÚalloweds     €ÚZ/mnt/data/mkn028_build/MAKNOW_LESSON_MKN-028_v1.0.0/lab/MKN-028-LAB1/learner/gate_rules.pyÚ	<genexpr>Ú!inspect_single.<locals>.<genexpr>   s   øé € Ð
.¢X �GÖ¢Xùs   ƒÚSCOPE_EXCEEDS_PURPOSEÚfield_rulesÚminimum_necessary_reasonÚ MINIMUM_NECESSARY_REASON_MISSINGÚredaction_ruleÚINCLUDEÚ!APPROVED_FIELD_REDACTION_CONFLICTÚrequested_fieldsÚ ÚREDACTÚREDACTION_MAP_INCOMPLETEÚsource_snapshot_hashÚsource_record_refÚSNAPSHOT_PROVENANCE_MISSINGÚstored_separatelyÚANNOTATION_PROVENANCE_INVALIDÚ canonical_write_from_annotationsÚANNOTATION_SOURCE_CONTAMINATIONÚ	issued_atÚ
expires_atÚGRANT_TIME_BOUNDS_MISSINGÚauthorized_expires_atÚEXPIRY_NOT_AUTHORIZEDÚonward_share_stateÚALLOWEDÚonward_share_authorization_refÚONWARD_SHARE_UNAUTHORIZEDÚaccess_event_idÚaudit_event_idÚACCESS_AUDIT_MISSINGÚgrant_stateÚREVOKEDÚ
revoked_atÚREVOKE_TIMESTAMP_MISSINGÚpackage_accessibleÚREVOKED_PACKAGE_ACCESSIBLE)	Ú
isinstanceÚdictÚgetÚappendÚsetÚanyÚstrÚ
startswithÚsorted)ÚfÚissuesr   r   r   ÚsnapÚannr   ÚapprovedÚrulesÚfieldÚrr   s               @r   Úinspect_singlerU      s:  ø€ Ø€FÜ�aœ×Ñ Ð&7Ð7Ø�E‰E�)Ó×" €G¯%©%°«.×*>¸B EÇeÁeÈGÃn×FZÐXZÀ×afÑafÐgqÓar×axÐvxÐ\`÷  Dñ  Dð  EQó  R÷  Xð  VXÐz}÷  afñ  afð  goó  ap÷  avð  tvð  Z`Ø�9‰9Ð'×(Ñ(°·±¸M×0JÑ0JÐRW×R[ÑR[Ð\t×RuÑRuÐw}÷  xEñ  xEð  Faô  xbØ�9‰9�Y×Ñ §¡Ð/@Ô!AØ�9‰9Ð(×)Ñ)¨6¯=©=Ð9PÔ+QØ�9‰9Ð+×,Ñ,¨f¯m©m¸OÔ.LØ�Y‰YÐ(Ó)×/¨R€H¼¸U¿Y¹YÐG_Ó=`×=fÐdfÓ9g°Ü
Ô
.¡XÓ
.×.Ñ.°·±Ð>UÔ0VØ
�)‰)�MÓ
"×
( b€EÛˆØ
�)‰)�EÓ
×
 ˜bˆØ�u‰uÐ/×0Ñ0°&·-±-Ð@bÔ2cØ�5‰5Ð!Ó" IÕ-¨v¯}©}Ð=`Ö/añ ô �U—Y‘YÐ1Ó2×8°bÓ9¼#¸h»-ÔGˆØ
�)‰)�EÓ
×
 ˜bˆÜ�1—5‘5Ð)Ó*×0¨bÓ1×<Ñ<¸X×FÓFÈÏÉÐVpÖHqñ Hð �8‰8Ð*×+Ñ+°4·8±8Ð<O×3PÑ3PÐRX×R_ÑR_Ð`}ÔR~Ø
‡w�wÐ%Ó&¨¯©Ð1GÓ(HÓHÐPS×PWÑPWÐXk×PlÑPlÐnt×n{Ñn{ð  }\ô  o]Ø‡{�{Ð5×6Ñ6¸¿¹ÐFgÔ8hØ�9‰9�[×!Ñ!¨¯©°<×)@Ñ)@À&Ç-Á-ÐPkÔBlØ‡y�yÐ(×)Ñ)¨e¯i©i¸Ó.EÀuÇyÁyÐQhÓGiÓ.iÐkq×kxÑkxð  zQô  lRØ‡y�yÐ%Ó&¨	Ó1¸%¿)¹)ÐDd×:eÑ:eÐgm×gtÑgtð  vQô  hRØ�:‰:Ð'×(Ñ(°·
±
Ð;K×0LÑ0LÈfÏmÉmÐ\rÔNsØ‡y�y�Ó Ó*Ø�y‰y˜×&Ñ&¨¯©Ð6PÔ(QØ�:‰:Ð*×+Ñ+¨V¯]©]Ð;WÔ-XÜ”#�f“+ÓÐó    c                ó¶   • [        U 5      nU(       a  gU R                  S5      =(       d    0 nUR                  S5      S:X  a  gUR                  S5      S:X  a  gg)NÚHOLDr   r>   r?   ÚACTIVEÚACTIVE_BOUNDEDÚREVIEW_REQUIRED)rU   rF   )rM   rN   r   s      r   Úexpected_singler\   "   sM   € Ü˜!Ó€FÞ�fØ
�%‰%�‹.×
˜B€EØ‡y�y�Ó Ó*°9Ø‡y�y�Ó Ó)Ð2BØrV   c                óô  ^• / oR                  S5      =(       d    / n[        U5      S:w  a  UR                  S5        [        5       nU GHÇ  mTR                  S5      (       a  TR                  S5      U;   a  UR                  S5        UR	                  TR                  S5      5        TR                  S5      (       a,  TR                  S5      (       a  TR                  S5      (       d  UR                  S	5        TR                  S
5      (       a  TR                  S5      (       d  UR                  S5        [        U4S jTR                  S5      =(       d    /  5       5      (       a  UR                  S5        TR                  S5      S:X  a=  TR                  S5      (       a  TR                  S5      (       a  UR                  S5        TR                  S5      S:X  d  GM�  TR                  S5      (       a  GM¶  UR                  S5        GMÊ     U R                  S5      =(       d    / n[        U5      S:w  d  [        S U 5       5      (       d  UR                  S5        [        [        U5      5      $ )NÚgrantsé   ÚTRANSFER_GRANT_COUNT_INVALIDr   ÚTRANSFER_IDENTITY_INVALIDr   Úreviewer_refr   ÚTRANSFER_AUTHORITY_MISSINGr+   r<   ÚTRANSFER_PROVENANCE_MISSINGc              3  ón   >#   • U  H*  o[        TR                  S 5      =(       d    / 5      ;  v •  M,     g7f)r   N)rH   rF   )r   r   Úgs     €r   r   Ú#inspect_transfer.<locals>.<genexpr>3   s*   øé € ÐaÒL`Àqœ˜AŸE™EÐ":Ó;×A¸rÓBÖBÒL`ùs   ƒ25r   ÚTRANSFER_SCOPE_EXPANSIONr>   r?   r@   rB   ÚTRANSFER_REVOKE_NOT_ENFORCEDrY   Ú#TRANSFER_ACTIVE_PACKAGE_UNAVAILABLEÚhistoryc              3  óB   #   • U  H  oR                  S 5      v •  M     g7f)Ú	preservedN)rF   )r   r   s     r   r   rg   7   s   é € Ð@º4°aŸu™u [×1Ð1º4ùs   ‚ÚTRANSFER_HISTORY_NOT_PRESERVED)rF   ÚlenrG   rH   ÚaddrI   ÚallrL   )rM   rN   r^   ÚidsÚhistrf   s        @r   Úinspect_transferrt   *   sî  ø€ Ø€F—e‘e˜H“o×+¨ˆvÜ
ˆ6ƒ{�Aƒ~�v—}‘}Ð%CÔDÜ‹€CÜˆØ�u‰uÐ'×(Ñ(¨A¯E©EÐ2DÓ,EÈÓ,LÈfÏmÉmÐ\wÔNxØ�‰�—‘Ð(Ó)Ô*Ø�u‰u�Y×Ñ q§u¡u¨^×'<Ñ'<ÀAÇEÁEÐJ]×D^ÑD^Ð`f×`mÑ`mð  oKô  aLØ�u‰uÐ+×,Ñ,°A·E±EÐ:J×4KÑ4KÈVÏ]É]Ð[xÔMyÜÔaÈAÏEÉEÐRYËN×L`Ð^`ÐL`Óa×aÑaÐci×cpÑcpð  rLô  dMØ�5‰5�Ó Ó*°A·E±E¸,×4GÑ4GÈ1Ï5É5ÐQe×KfÑKfÐio×ivÑivð  xVô  jWØ�5‰5�Ó Ö)°!·%±%Ð8L×2MÔ2MÈvÏ}É}ð  ^C÷  PDñ ð 
�‰ˆyÓ	×	˜R€DÜ
ˆ4ƒy�!ƒ|œ3Ñ@¹4Ó@×@Ñ@À&Ç-Á-ÐPpÔBqÜ”#�f“+ÓÐrV   c                óÒ   • [        U 5      (       a  gU R                  S5      =(       d    /  Vs1 s H  oR                  S5      iM     nnUSS1:X  a  gUS1:X  a  gUS1:X  a  ggs  snf )	NrX   r^   r>   rY   r?   ÚMIXED_ACTIVE_REVOKEDrZ   r[   )rt   rF   )rM   rf   Ústatess      r   Úexpected_transferrx   :   sn   € Ü˜×Ñ 6Ø*+¯%©%°«/×*?¸RÐ*?Ó@Ò*? Q�E‰E�-Ö Ñ*?€FÐ@Ø�˜Ð#Ó#Ð,BØ�	ˆ{Ó 9Ø�ˆzÓÐ"2Øùò	 As   ®A$N)Ú__doc__Ú
__future__r   rU   r\   rt   rx   r   rV   r   Ú<module>r{      s   ðÙ LÝ "òò<òó rV   