§
   )ý6±ÝZã                   óÒ   — d Z ddlmZ dZdZdZdZdZdZ	d	Z
d
Zdh d£fdh d£fdh d£fdh d£fdœZdddddœZd„ Zh d£Zd'd„Zd„ Zd„ Zd„ ZdZd„ Zd(d!„Zd"„ Zedz  fd#„Zd$Z	 	 d)d&„ZdS )*uC  Rows of the Pro tebe page from a scored pool (docs/plan/pro-tebe/010 Â§6). Pure: no Kodi, no network.

A title appears once per page (Top 10 is the exception); rows are filled in display order, so the rows on top get
the best titles. `available(key)` is the Webshare check of phase P2 (everything is available until then).
é    )Úfeaturesé   é   é
   é   é   )ÚallÚmovieÚtv)Úfor_youÚtop10ú	because#0Útonightú	because#1ÚnewÚgemsú	because#2)r   r   r   r   r   r   r   r   ))r   r   é#   )r
   r   éd   >   é   r   éÿ)  ))r   r   é2   ©r
   r   és   >   é   é   r   r   ))r
   éU   éŒ   )r   r   éA   >   én  é°%  é   é   é5   éP   )r   )r   r   é-   >   é   r   r$   )ÚmorningÚ	afternoonÚeveningÚnightr   r
   c                 ór   — d| cxk    rdk     rn ndS d| cxk    rdk     rn ndS d| cxk    rdk     rn ndS dS )	Né   é   r(   é   r)   é   r*   r+   © )Úhours    ú`/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/foryou/compose.pyÚslot_ofr4   !   sa   € ØˆD€~€~‚~€~�2‚~€~€~€~€~ØˆyØ	ˆT€€‚€�B‚€€€€Øˆ{Ø	ˆT€€‚€�B‚€€€€ØˆyØˆ7ó    ¾   é
*  r   r   ç        Nc                 óP  ‡ ‡‡— t           |         \  }}|dv r?‰r=t          ˆfd„t          j        ‰ d         ¦  «        D ¦   «         dgz   ¦  «        dk     rdS |dv r%t	          ‰ d         ¦  «        t
          z  r|dk     rdS ‰ d         Š‰sdS t          ˆ ˆfd	„|D ¦   «         ¦  «        S )
N©r*   r+   c                 ó<   •— g | ]}‰                      |d ¦  «        ‘ŒS ©r8   ©Úget)Ú.0ÚgÚshares     €r3   ú
<listcomp>z_fits_slot.<locals>.<listcomp>1   s'   ø€ ÐLÐLÐL q�—’˜1˜cÑ"Ô"ÐLÐLÐLr5   Úgenresr8   gš™™™™™Ù?Fg      à?Úruntimec              3   óX   •K  — | ]$\  }}}‰d          |k    o|‰cxk    o|k    nc V — Œ%dS )ÚmediaNr1   )r?   rF   ÚlowÚhighÚcardrD   s       €€r3   ú	<genexpr>z_fits_slot.<locals>.<genexpr>8   sU   øè è € Ð`Ð`ÑEUÀUÈCÐQUˆt�GŒ} Ò%Ð@¨#°Ð*@Ð*@Ò*@Ð*@¸DÒ*@Ð*@Ð*@Ð*@Ð`Ð`Ð`Ð`Ð`Ð`r5   )ÚSLOTSÚmaxÚFÚfolded_genresÚsetÚKIDSÚany)rI   ÚslotÚ
kids_sharerA   ÚrangesÚ_bonusrD   s   `  `  @r3   Ú
_fits_slotrV   .   sÖ   øøø€ Ý˜4”[�N€FˆFØÐ#Ð#Ð#¨Ð#ÝÐLÐLÐLÐL­A¬O¸DÀ¼NÑ,KÔ,KÐLÑLÔLÐPSÈuÑTÑUÔUÐX[Ò[Ð[ØˆuØÐ#Ð#Ð#­¨D°¬NÑ(;Ô(;½dÑ(BÐ#ÀzÐTWÒGWÐGWØˆuØ�9Œo€GØð ØˆuÝÐ`Ð`Ð`Ð`Ð`ÐY_Ð`Ñ`Ô`Ñ`Ô`Ð`r5   c                 ó  — t           |         \  }}| d         t          | d         d         ¦  «        |z  rdndz  }|dk    r| d         d         dk    r|d	z  }|d
v r%t          | d         d         ¦  «        h d£z  r|dz  }|S )NÚscorerI   rC   gìQ¸…ëñ?g      ð?r*   rF   r
   gš™™™™™ñ?r:   r6   g333333ã?)rK   rO   )ÚentryrR   Ú_rangesÚbonusÚvalues        r3   Ú_slot_scorer]   ;   s    € Ý˜4”[�N€GˆUØ�'ŒN¥c¨%°¬-¸Ô*AÑ&BÔ&BÀUÑ&JÐS˜d˜dÐPSÑT€EØˆyÒÐ˜U 6œ]¨7Ô3°wÒ>Ð>Ø�‰ˆØÐ#Ð#Ð#­¨E°&¬M¸(Ô,CÑ(DÔ(DÐGYÐGYÐGYÑ(YÐ#Ø�‰ˆØ€Lr5   c                 óÌ   — |                       d¦  «        pi }|                      dd¦  «        dk    p3|                      dd¦  «        dk    pt          | d         h d£z  ¦  «        S )NÚpartsÚcoocr   Úcontentg333333Ó?Úkinds>   ÚsagaÚmakerÚkeyword)r>   Úbool)rY   r_   s     r3   Ú_linkedrg   E   sg   € Ø�IŠI�gÑÔÐ$ "€EØ�9Š9�V˜QÑÔ !Ò#Ð| u§y¢y°¸AÑ'>Ô'>À#Ò'EÐ|ÍÈeÐT[ÌnÐ_{Ð_{Ð_{ÑN{ÑI|ÔI|Ð|r5   c                 ó¢   — |                       d¦  «        pi }t          |                      d¦  «        p|                      d¦  «        pd¦  «        S )NÚreasonÚseedÚargÚ )r>   Ústr)rY   ri   s     r3   Ú_seed_ofrn   J   sH   € Ø�YŠY�xÑ Ô Ð& B€FÝˆv�zŠz˜&Ñ!Ô!Ð< V§Z¢Z°Ñ%6Ô%6Ð<¸"Ñ=Ô=Ð=r5   é   c                 ó.  — i g }}| D ]�}||                               d¦  «        pi }|                      d¦  «        dk    r@|                      |d         d¦  «        dz   ||d         <   ||d                  t          k    rŒx|                     |¦  «         ŒŽ|S )u�   At most MAX_SAME_MAKER titles of one creator per row ('Od tvÅ¯rce Chuck Lorre' three times is a list of his
    works, not a recommendation).ri   Úkindrd   rk   r   é   )r>   ÚMAX_SAME_MAKERÚappend)ÚkeysÚpoolÚseenÚoutÚkri   s         r3   Ú
cap_makersrz   R   sŸ   € ð �Bˆ#€DØð ð ˆØ�a”—’˜XÑ&Ô&Ð,¨"ˆØ�:Š:�fÑÔ Ò(Ð(Ø"&§(¢(¨6°%¬=¸!Ñ"<Ô"<¸qÑ"@ˆD�˜”ÑØ�F˜5”MÔ"¥^Ò3Ð3ØØ�
Š
�1‰ŒˆˆØ€Jr5   ç=
×£p=ê?c                 ó>  ‡‡‡— t          | ¦  «        }i Šg }|r„t          |ˆˆˆfd„¬¦  «        }|                     |¦  «         |                     |¦  «         ‰                     t          ‰|         ¦  «        d¦  «        dz   ‰t          ‰|         ¦  «        <   |°„|S )zŒGreedy re-rank: the k-th title with the same reason (seed, maker, genre) counts decay**k, so one watched film
    does not fill a whole row.c                 óz   •— ‰|          d         ‰‰                      t          ‰|          ¦  «        d¦  «        z  z  S )NrX   r   )r>   rn   )ry   Údecayrv   rw   s    €€€r3   ú<lambda>zdiversify.<locals>.<lambda>g   s8   ø€  t¨A¤w¨wÔ'7¸%À4Ç8Â8ÍHÐUYÐZ[ÔU\ÑL]ÔL]Ð_`ÑCaÔCaÑ:aÑ'a€ r5   ©Úkeyr   rr   )ÚlistrL   Úremovert   r>   rn   )ru   rv   r~   Úleftrx   Úbestrw   s    ``   @r3   Ú	diversifyr†   `   s²   øøø€ õ �‰:Œ:€DØ€DØ
€CØ
ð KÝ�4ÐaÐaÐaÐaÐaÐaÐbÑbÔbˆØ�Š�DÑÔÐØ�
Š
�4ÑÔÐØ%)§X¢X­h°t¸D´zÑ.BÔ.BÀAÑ%FÔ%FÈÑ%Jˆ�X�d˜4”jÑ!Ô!Ñ"ð	 ð Kð
 €Jr5   c                 ó"  — | d         }|                       dd¦  «        r$| d         h d£z  s|d         r|d         |dz
  k    rdS |d	         d
k    rdnd}|d         dk     s|d         |k    rdS d| d         v p|d         dk    o|d         dk    S )zZUnderrated and not new: a gem is something the household missed, not this year's premiere.rI   Úgem_okTrb   >   r   Útoprd   Úyearrr   FrF   r
   ip  iÜ  Úratingg      @ÚvotesÚgemg333333@r%   r=   )rY   Ú	this_yearrI   Úlimits       r3   Ú_is_gemr�   n   sÃ   € à�Œ=€DØ�9Š9�X˜tÑ$Ô$ð ¨¨g¬Ð9PÐ9PÐ9PÑ(Pð ÐX\Ð]cÔXdð Ø�FŒ|˜y¨1™}Ò,Ð,ØˆuØ˜”M WÒ,Ð,ˆDˆD°$€EØˆH„~˜ÒÐ˜t Gœ}¨uÒ4Ð4ØˆuØ�E˜'”NÐ"ÐU t¨H¤~¸Ò'<Ð'TÀÀgÄÐRTÒATÐUr5   c                 óV  ‡— t          d„ | D ¦   «         d„ ¬¦  «        }g }|D ]†}d                     |d         |d         ¦  «        Št          ˆfd„|                     ¦   «         D ¦   «         ¦  «        }|t          k    r|                     ‰¦  «         t          |¦  «        |k    r nŒ‡|S )uj   Seeds that get a 'ProtoÅ¾e jsi vidÄ›l' row: recent / liked titles with enough recommendations in the pool.c              3   óF   K  — | ]}|d          dk    ¯|d         dv ¯|V — ŒdS )Úweightr   rq   )ÚwatchedÚlikeÚpickNr1   ©r?   Úss     r3   rJ   z because_seeds.<locals>.<genexpr>|   s=   è è € ÐgÐg˜A¨!¨H¬+¸ª/¨/¸aÀ¼iÐKfÐ>fÐ>f�aÐ>fÐ>fÐ>fÐ>fÐgÐgr5   c                 óF   — | d         dk    r| d         pd nd| d          fS )Nrq   r”   Úatr   lýÿÿÿ J)£r“   r1   )r˜   s    r3   r   zbecause_seeds.<locals>.<lambda>}   s2   € °q¸´yÀIÒ7MÐ7M a¨¤g l° O OÐS\Ð_`ÐaiÔ_jÐ^jÐ#k€ r5   r€   ú{}:{}rF   Úidc              3   ó^   •K  — | ]'}t          ˆfd „|d         D ¦   «         ¦  «        ¯#dV — Œ(dS )c              3   ó*   •K  — | ]\  }}|‰k    V — Œd S ©Nr1   )r?   Ú_kindÚskr�   s      €r3   rJ   z*because_seeds.<locals>.<genexpr>.<genexpr>�   s+   øè è € Ð3^Ð3^Á+À5È"°B¸#²IÐ3^Ð3^Ð3^Ð3^Ð3^Ð3^r5   Úsourcesrr   N)rQ   )r?   Úer�   s     €r3   rJ   z because_seeds.<locals>.<genexpr>�   sL   øè è € Ð_Ð_˜!µÐ3^Ð3^Ð3^Ð3^ÐQRÐS\ÔQ]Ð3^Ñ3^Ô3^Ñ0^Ô0^Ð_�AÐ_Ð_Ð_Ð_Ð_Ð_r5   )ÚsortedÚformatÚsumÚvaluesÚMIN_ROWrt   Úlen)Úseedsrv   r�   ÚorderedÚchosenrj   Úcountr�   s          @r3   Úbecause_seedsr®   z   sÇ   ø€ åÐgÐg ÐgÑgÔgØkÐkðmñ mô m€Gà€FØð ð ˆØ�nŠn˜T 'œ]¨D°¬JÑ7Ô7ˆÝÐ_Ð_Ð_Ð_˜tŸ{š{™}œ}Ð_Ñ_Ô_Ñ_Ô_ˆØ•GÒÐØ�MŠM˜#ÑÔÐÝˆv‰;Œ;˜%ÒÐØˆEð  à€Mr5   r   r	   c
                 ó&	  ‡ ‡‡‡‡‡‡‡‡‡‡‡‡‡‡ ‡!‡"‡#‡$‡%— ‰pd„ Š‰pd„ Šˆˆˆ fd„Št          ˆfd„‰ D ¦   «         ˆ fd„¬¦  «        }
t          d„ |D ¦   «         ¦  «        rˆ fd„|
D ¦   «         n|
}t          |‰ ¦  «        }‰r$t          ˆfd	„t          D ¦   «         d
gz   ¦  «        nd
Šd„ |D ¦   «         }t          ¦   «         Š$t          ¦   «         Š%g }ˆ fd„Š#ˆ#ˆ$ˆ%fd„}ˆ#ˆ$ˆ%fd„}i Št          D �]‘}dŠ |dk    rF |t          t          |dt          dz  …         ‰ d¦  «        ‰ ¦  «        t          ¦  «        }dd|dœŠ �nê|dk    rLˆˆ fd„|D ¦   «         dt          …         }t          |¦  «        t          k    rdd|ddidœ‰|<    ||¦  «         Œ£|                     d¦  «        �r
|rÚ|                     d¦  «        Š!t          |pi                      ‰!g ¦  «        dd…         ¦  «        Š|	pi                      ‰!d¦  «        Šˆˆˆ fd„Šˆˆ ˆ!fd„|
D ¦   «         Šˆˆ ˆˆ!fd„|
D ¦   «         } |‰t           ¦  «        }t          |¦  «        t          k     r |‰|z   t           ¦  «        }t          |¦  «        t          k    rn|°Ú�Œ—d ‰!z   d!‰!|d"|                     ‰!¦  «        d#v rd$nd%z   ‰!d&œd'œŠ �nx|d(k    rYt          ˆˆˆ ˆˆfd)„|D ¦   «         ˆ ˆfd*„¬¦  «        }d(d(‰ |t          t          |‰ ¦  «        ‰ ¦  «        t"          ¦  «        d+œŠ �n|d,k    riˆˆ ˆ$fd-„|D ¦   «         }t          |¦  «        t          k     rˆˆ fd.„|
D ¦   «         }d,d, |t          t          |‰ ¦  «        ‰ ¦  «        t"          ¦  «        dœŠ nª|d/k    r¤t          ˆ fd0„‰ D ¦   «         dgz   ¦  «        Š"t          ˆ fd1„‰ D ¦   «         ¦  «        }|r%|t%          t          |¦  «        d2z  ¦  «                 ndŠˆˆ ˆ"fd3„|
D ¦   «         }d/d/ |t          t          |‰ ¦  «        ‰ ¦  «        t"          ¦  «        dœŠ ‰ rTt          ‰ d4         ¦  «        t          k    r6 |‰ d4         ¦  «         ‰ d4                              ˆ ˆ fd5„¬¦  «         ‰ ‰|<   �Œ“ˆfd6„t(          D ¦   «         S )7uÂ   [{'id', 'kind', 'items': [key, ...], 'seed'?, 'slot'?}] for one chip mode. `available(key)`: playable
    (the Webshare check); `dubbed(key)`: with Czech dubbing (the 'NovÄ› s CZ dabingem' row).c                 ó   — dS ©NTr1   r€   s    r3   r   zrows.<locals>.<lambda>�   s   € ¨$€ r5   c                 ó   — dS r±   r1   r€   s    r3   r   zrows.<locals>.<lambda>‘   s   €  D€ r5   c                 ór   •— ‰|          }|d         dk    o"‰dk    s|d         d         ‰k    o
 ‰| ¦  «        S )NrX   r   r	   rI   rF   r1   )r�   rY   Ú	availableÚmoderv   s     €€€r3   Úokzrows.<locals>.ok“   sJ   ø€ Ø�S”	ˆØ�WŒ~ Ò!Ðj t¨u¢}Ð'V¸¸f¼ÀgÔ8NÐRVÒ8VÐjÐ\eÐ\eÐfiÑ\jÔ\jÐjr5   c              3   ó2   •K  — | ]} ‰|¦  «        ¯|V — Œd S rŸ   r1   )r?   ry   r¶   s     €r3   rJ   zrows.<locals>.<genexpr>—   s0   øè è € Ð.Ð.˜1¨¨¨1©¬Ð.�QÐ.Ð.Ð.Ð.Ð.Ð.r5   c                 ó"   •— ‰|          d          S )NrX   r1   )ry   rv   s    €r3   r   zrows.<locals>.<lambda>—   s   ø€ ¸tÀA¼wÀwÔ?OÐ>O€ r5   r€   c              3   ó.   K  — | ]}|d          dk    V — ŒdS )r“   r   Nr1   r—   s     r3   rJ   zrows.<locals>.<genexpr>™   s+   è è € Ð=]Ð=]ÐRS¸aÀ¼kÈAºoÐ=]Ð=]Ð=]Ð=]Ð=]Ð=]r5   c                 ó>   •— g | ]}t          ‰|         ¦  «        ¯|‘ŒS r1   )rg   ©r?   ry   rv   s     €r3   rB   zrows.<locals>.<listcomp>™   s*   ø€ Ð6Ð6Ð6�a¥W¨T°!¬WÑ%5Ô%5Ð6�Ð6Ð6Ð6r5   c                 ó<   •— g | ]}‰                      |d ¦  «        ‘ŒS r<   r=   )r?   r@   Útaste_shares     €r3   rB   zrows.<locals>.<listcomp>›   s'   ø€ Ð<Ð<Ð<°!�k—o’o a¨Ñ-Ô-Ð<Ð<Ð<r5   r8   c                 ó`   — i | ]+}d                       |d         |d         ¦  «        |d         “Œ,S )r›   rF   rœ   rq   )r¥   r—   s     r3   ú
<dictcomp>zrows.<locals>.<dictcomp>œ   s4   € ÐOÐOÐOÀA�—’  '¤
¨A¨d¬GÑ4Ô4°a¸´iÐOÐOÐOr5   c                 óˆ   •— ‰|          d         }|d         p|d                               ¦   «                              ¦   «         S )NrI   Úoriginal_titleÚtitle)ÚstripÚlower)r�   rI   rv   s     €r3   Útitle_ofzrows.<locals>.title_of¡   s>   ø€ Ø�CŒy˜Ô ˆØÐ%Ô&Ð7¨$¨w¬-×>Ò>Ñ@Ô@×FÒFÑHÔHÐHr5   c                 óà   •— g t          ¦   «         }}| D ]Y} ‰|¦  «        }|‰v s|‰v s||v rŒ|                     |¦  «         |                     |¦  «         t          |¦  «        |k    r nŒZ|S )zWUnused titles; a remake / second version of a title already on the page is skipped too.)rO   rt   Úaddr©   )	Ú
candidatesÚsizeÚpickedÚnamesry   ÚnamerÅ   ÚusedÚused_titless	         €€€r3   Útakezrows.<locals>.take¥   s‹   ø€ à�C™EœE�ˆØð 	ð 	ˆAØ�8˜A‘;”;ˆDØ�Dˆyˆy˜D KÐ/Ð/°4¸5°=°=ØØ�MŠM˜!ÑÔÐØ�IŠI�d‰OŒOˆOÝ�6‰{Œ{˜dÒ"Ð"Ø�ð #àˆr5   c                 ót   •— ‰                      | ¦  «         ‰                      ˆfd„| D ¦   «         ¦  «         d S )Nc              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S rŸ   r1   )r?   ry   rÅ   s     €r3   rJ   z$rows.<locals>.use.<locals>.<genexpr>´   s+   øè è € Ð6Ð6¨1˜8˜8 A™;œ;Ð6Ð6Ð6Ð6Ð6Ð6r5   )Úupdate)ÚitemsrÅ   rÍ   rÎ   s    €€€r3   Úusezrows.<locals>.use²   sD   ø€ Ø�Š�EÑÔÐØ×ÒÐ6Ð6Ð6Ð6°Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6r5   Nr   é   g
×£p=
ç?)rœ   rq   rÓ   r   c                 óN   •— g | ]!}|‰v ¯ ‰|¦  «        ¯‰|         d          ¯|‘Œ"S )Úsaner1   )r?   ry   r¶   rv   s     €€r3   rB   zrows.<locals>.<listcomp>½   s6   ø€ ÐUÐUÐU˜1¨Q°$¨Y¨Y¸2¸2¸a¹5¼5¨YÀTÈ!ÄWÈVÄ_¨Y�Q¨Y¨Y¨Yr5   rq   Útrending)rœ   rq   rÓ   ri   zbecause#r   rr   éÿÿÿÿc           	      ó  •— d‰|          d         v rdS ‰|          d         }‰dk    r|                      dd¦  «        ‰dz   k    rd	S ‰ p6t          ‰t          t          j        |d
         ¦  «        ¦  «        z  ¦  «        S )Nrc   rb   TrI   r   ÚaudiencerÙ   rr   FrC   )r>   rf   rO   rM   rN   )ry   rI   ÚlevelÚmainrv   s     €€€r3   Úkinzrows.<locals>.kinÌ   sƒ   ø€ Ø  a¤¨Ô!1Ð1Ð1Ø#˜tØ œ7 6œ?�DØ ’z�z d§h¢h¨z¸2Ñ&>Ô&>ÀÈÁÒ&JÐ&JØ$˜uØ#˜8ÐX¥t¨Dµ3µq´ÀtÈHÄ~Ñ7VÔ7VÑ3WÔ3WÑ,WÑ'XÔ'XÐXr5   c                 óN   •— g | ]!}d ‰f‰|         d         v ¯ ‰|¦  «        ¯|‘Œ"S )Úrecr¢   r1   )r?   ry   rÞ   rv   rj   s     €€€r3   rB   zrows.<locals>.<listcomp>Õ   sB   ø€ Ð\Ð\Ð\˜a¨e°T¨]¸dÀ1¼gÀiÔ>PÐ-PÐ-PÐUXÐUXÐYZÑU[ÔU[Ð-P˜Ð-PÐ-PÐ-Pr5   c                 óV   •— g | ]%}d ‰f‰|         d         v ¯|‰v¯ ‰|¦  «        ¯#|‘Œ&S )Úkwr¢   r1   )r?   ry   rÞ   rv   Úrecsrj   s     €€€€r3   rB   zrows.<locals>.<listcomp>Ö   sN   ø€ ÐlÐlÐl˜Q¨T°4¨L¸DÀ¼GÀIÔ<NÐ,NÐ,NÐSTÐ\`ÐS`ÐS`ÐehÐehÐijÑekÔekÐS`�qÐS`ÐS`ÐS`r5   zbecause:ÚbecauseÚbecause_)r•   r–   Úlikedr”   )rq   rj   )rœ   rq   rj   rÓ   ri   r   c              3   óª   •K  — | ]M}t          ‰|         d          ‰‰‰¦  «        r-‰dk    s#‰|         d          d         t          ‰         k    ¯I|V — ŒNdS )rI   r	   rF   N)rV   Ú
SLOT_MEDIA)r?   ry   rS   rµ   rv   rR   r½   s     €€€€€r3   rJ   zrows.<locals>.<genexpr>å   sz   øè è € ð cð c AµZÀÀQÄÈÄÐQUÐWaÐcnÑ5oÔ5oð cØ#'¨5¢= =°D¸´G¸F´OÀGÔ4LÕPZÐ[_ÔP`Ò4`Ð4`ð  Ø4`Ð4`Ð4`Ð4`ðcð cr5   c                 ó2   •— t          ‰|          ‰¦  «         S rŸ   )r]   )ry   rv   rR   s    €€r3   r   zrows.<locals>.<lambda>ç   s   ø€ ­K¸¸Q¼ÀÑ,FÔ,FÐ+F€ r5   )rœ   rq   rR   rÓ   r   c                 óR   •— g | ]#}d ‰|         d         v ¯|‰v¯ ‰|¦  «        ¯!|‘Œ$S ©r   rb   r1   )r?   ry   Údubbedrv   rÍ   s     €€€r3   rB   zrows.<locals>.<listcomp>ë   sC   ø€ ÐfÐfÐf˜1¨E°T¸!´W¸WÔ5EÐ,EÐ,EÈ!ÐSWÈ-È-Ð\bÐ\bÐcdÑ\eÔ\eÈ-�QÈ-È-È-r5   c                 óJ   •— g | ]}d ‰|         d         v ¯ ‰|¦  «        ¯|‘Œ S rë   r1   )r?   ry   rì   rv   s     €€r3   rB   zrows.<locals>.<listcomp>í   s:   ø€ ÐVÐVÐV˜q¨e°t¸A´w¸wÔ7GÐ.GÐ.GÈFÈFÐSTÉIÌIÐ.G˜Ð.GÐ.GÐ.Gr5   r   c                 ó8   •— g | ]}‰|         d          d         ‘ŒS )rI   rŠ   r1   r»   s     €r3   rB   zrows.<locals>.<listcomp>ð   s&   ø€ ÐCÐCÐC¸˜T !œW Vœ_¨VÔ4ÐCÐCÐCr5   c              3   ó@   •K  — | ]}‰|         d          d         V — ŒdS )rI   Ú
popularityNr1   r»   s     €r3   rJ   zrows.<locals>.<genexpr>ñ   s0   øè è € ÐLÐLÀ!  Q¤¨¤°Ô =ÐLÐLÐLÐLÐLÐLr5   gffffffæ?c                 óp   •— g | ]2}t          ‰|         ‰¦  «        ¯‰|         d          d         ‰k    ¯0|‘Œ3S )rI   rð   )r�   )r?   ry   Úceilingrv   rŽ   s     €€€r3   rB   zrows.<locals>.<listcomp>ó   sF   ø€ ÐrÐrÐr˜!­°°a´¸)Ñ)DÔ)DÐrÈÈaÌÐQWÌÐYeÔIfÐjqÒIqÐIq�AÐIqÐIqÐIqr5   rÓ   c                 ó\   •— ‰d         dk    od‰|          d         v  ‰|          d          fS )Nrq   rä   rc   rb   rX   r1   )ry   rv   Úrows    €€r3   r   zrows.<locals>.<lambda>ù   s?   ø€ ¨s°6¬{¸iÒ/GÐ/fÈFÐVZÐ[\ÔV]Ð^eÔVfÐLfÐ-gØ.2°1¬g°gÔ.>Ð->ð-@€ r5   c                 ó(   •— g | ]}|‰v ¯‰|         ‘ŒS r1   r1   )r?   Úslot_idÚbuilts     €r3   rB   zrows.<locals>.<listcomp>ü   s'   ø€ ÐEÐEÐE˜w°G¸uÐ4DÐ4DˆE�'ŒNÐ4DÐ4DÐ4Dr5   )r¤   rQ   r®   rL   rP   rO   ÚFILLrz   r†   ÚFOR_YOU_SIZEÚTOP_SIZEr©   r¨   Ú
startswithÚpopr>   ÚBECAUSE_SIZEÚROW_SIZEÚintÚsortÚLAYOUT)&rv   rª   Ú	top_orderrR   r´   rµ   r½   rì   Úseed_genresÚseed_audienceÚrankedÚpersonalÚseeds_for_rowsÚ	seed_kindrx   rÏ   rÔ   rö   rÓ   ÚkwsÚfittingÚfreshrð   r   r÷   rò   rS   rÞ   rÜ   rÝ   r¶   rã   rô   rj   rŽ   rÅ   rÍ   rÎ   s&   `  `````                @@@@@@@@@@@@@@r3   Úrowsr  Œ   sË  øøøøøøøøøøøøøøøøøøøø€ ð Ð/Ð.Ð.€IØÐ)Ð(Ð(€Fðkð kð kð kð kð kð kõ Ð.Ð.Ð.Ð. Ð.Ñ.Ô.Ð4OÐ4OÐ4OÐ4OÐPÑPÔP€Få:=Ð=]Ð=]ÐW\Ð=]Ñ=]Ô=]Ñ:]Ô:]ÐiÐ6Ð6Ð6Ð6˜6Ð6Ñ6Ô6Ð6Ðci€HÝ" 5¨$Ñ/Ô/€NØITÐ]•Ð<Ð<Ð<Ð<µtÐ<Ñ<Ô<À¸uÑDÑEÔEÐEÐZ]€JØOÐOÈÐOÑOÔO€IÝ‰5Œ5€DÝ‘%”%€KØ
€CðIð Ið Ið Ið Iðð ð ð ð ð ð ð7ð 7ð 7ð 7ð 7ð 7ð 7ð €EÝð D!ñ D!ˆØˆØ�iÒÐØ�D�¥I¨hÐ7H½ÀqÑ8HÐ7HÔ.IÈ4ÐQUÑ$VÔ$VÐX\Ñ]Ô]Õ_kÑlÔlˆEØ"¨IÀÐFÐFˆC‰CØ˜ÒÐØUÐUÐUÐUÐU 	ÐUÑUÔUÐV_ÕW_ÐV_Ô`ˆEÝ�5‰zŒz�WÒ$Ð$Ø(/¸È5Ð]cÐeoÐ\pÐ!qÐ!q��g‘Ø��E‘
”
�
ØØ×Ò 
Ñ+Ô+ñ 2	sà ð Ø%×)Ò)¨!Ñ,Ô,�õ ˜KÐ-¨2×2Ò2°4¸Ñ<Ô<¸R¸a¸RÔ@ÑAÔA�à&Ð,¨"×1Ò1°$¸Ñ;Ô;�ðYð Yð Yð Yð Yð Yð Yð ]Ð\Ð\Ð\Ð\Ð\ 6Ð\Ñ\Ô\�ØlÐlÐlÐlÐlÐlÐl &ÐlÑlÔl�Ø˜˜T¥<Ñ0Ô0�Ý�u‘:”:¥Ò'Ð'Ø ˜D ¨¡­\Ñ:Ô:�EÝ�u‘:”:¥Ò(Ð(Øð/ !ð ñ2 à# dÑ*°IÀtÐV[Ø&0¸y¿}º}ÈTÑ?RÔ?RÐVfÐ?fÐ?f°G°GÐluÑ&vØ&*ð,ð ,ð-ð -ˆC‰Cð ˜	Ò!Ð!õ ð cð cð cð cð cð cð cð c¨ð cñ cô cà!FÐ!FÐ!FÐ!FÐ!FðHñ Hô HˆGð #¨I¸tÈdÈdÕS]Õ^gÐhoÐquÑ^vÔ^vÐx|ÑS}ÔS}õ  @Hñ  OIô  OIð  Jð  JˆC‰CØ˜ÒÐàfÐfÐfÐfÐfÐf ÐfÑfÔfˆEÝ�5‰zŒz�GÒ#Ð#ØVÐVÐVÐVÐV FÐVÑVÔV�Ø¨¸¸½ZÍ	ÐRWÐY]ÑH^ÔH^Ð`dÑ=eÔ=eÕgoÑ8pÔ8pÐqÐqˆCˆCØ˜ÒÐÝÐCÐCÐCÐC¸dÐCÑCÔCÀqÀcÑIÑJÔJˆIÝÐLÐLÐLÐLÀtÐLÑLÔLÑLÔLˆJØ@JÐQ�j¥¥S¨¡_¤_°sÑ%:Ñ!;Ô!;Ô<Ð<ÐPQˆGØrÐrÐrÐrÐrÐr˜vÐrÑrÔrˆDØ¨¸$¸$½zÍ)ÐTXÐZ^ÑJ_ÔJ_ÐaeÑ?fÔ?fÕhpÑ:qÔ:qÐrÐrˆCØð 	!•3�s˜7”|Ñ$Ô$­Ò/Ð/ØˆC��G”ÑÔÐð �ŒL×Òð #@ð #@ð #@ð #@ð #@Ðñ Aô Að Aà ˆE�'‰NùØEÐEÐEÐE­&ÐEÑEÔEÐEr5   )r8   N)r{   )Nr	   NNNN)Ú__doc__Ú
wcs.foryour   rM   rþ   rù   rú   r¨   ÚBECAUSE_ROWSÚMODESr  rø   rK   rè   r4   rP   rV   r]   rg   rn   rs   rz   r†   r�   r®   rý   r  r1   r5   r3   ú<module>r     sž  ððð ð
 %Ð $Ð $Ð $Ð $Ð $à€Ø€Ø€Ø
€Ø€Ø€à	^€ð ]€ð 3°O°O°OÐDØ4Ð6IÐ6IÐ6IÐJØ3Ð5PÐ5PÐ5PÐQØ0°,°,°,Ð?ð		ð 	€ð ¨D¸WÈwÐWÐW€
ðð ð ð ÐÐ€ð
að 
að 
að 
aðð ð ð}ð }ð }ð
>ð >ð >ð
 €ðð ð ðð ð ð ð	Vð 	Vð 	Vð &2°AÑ%5ð ð ð ð ð €ð osØðpFð pFð pFð pFð pFð pFr5   