Ñò
’V†Pc        §   @   sS  d  d k  Z  d  d k Z d  d k Td  d k Td  d k l Z d  d k l Z d  d k l	 Z	 d  d k
 l Z d  d k Td  d k Td  d k Td  d k l Z d Z d	 Z d
 Z dÃ Z e d¦ „  e e ƒ Dƒ ƒ Z e d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dM dN dD dE dF dG dH dI dJ dK dL dS dT dU dV dW dX dY du dv dx d¥ dy dz d{ d| d} d~ d d€ d� d‚ dƒ d„ d… d† d‡ dˆ d‰ dŠ d‹ dŒ d� dŽ d� d� d‘ d’ d“ d” d• d– d— d˜ dš d› dœ d� dž dŸ d  d¡ d¢ d£ d gX ƒ Z e dM dN dD dE dF dG dI dJ dZ dx d{ d| d} d~ d d€ d� d‚ dƒ d„ d… d† d‡ dˆ d‰ d d¥ g ƒ Z e ƒ  Z d§ „  Z d¨ „  Z d© „  Z dª „  Z d« „  Z d¬ „  Z  d­ „  Z! d® „  Z" d¯ „  Z# d° „  Z$ d± „  Z% d² „  Z& d³ „  Z' d´ dµ „ Z( d´ d¶ „ Z) d´ d· „ Z* d´ d¸ „ Z+ d¹ „  Z, dº „  Z- d» „  Z. d¼ „  Z/ d½ e0 f d¾ „  ƒ  YZ1 d¿ e0 f dÀ „  ƒ  YZ2 dÁ „  Z3 dÂ „  Z4 d S(Ä   iÿÿÿÿN(   t   *(   t   vehicles(   t   partial(   t   DOSSIER_TYPE(   t   RECORD_CONFIGS(   t   unpackDossierCompDescri   i   i   t   reservedt   xpt   maxXPt   battlesCountt   winst   lossest   survivedBattlest   lastBattleTimet   battleLifeTimet   winAndSurvivedt   battleHeroest   fragst   maxFragst   frags8pt
   fragsBeastt   shotst   hitst   spottedt   damageDealtt   damageReceivedt   treesCutt   capturePointst   droppedCapturePointst   sniperSeriest   maxSniperSeriest   invincibleSeriest   maxInvincibleSeriest   diehardSeriest   maxDiehardSeriest   killingSeriest   maxKillingSeriest   piercingSeriest   maxPiercingSeriest   vehTypeFragst   warriort   invadert   snipert   defendert	   steelwallt	   supportert   scoutt   medalKayt   medalCariust   medalKnispelt   medalPoppelt   medalAbramst   medalLeClerct   medalLavrinenkot
   medalEkinst   medalWittmannt
   medalOrlikt
   medalOskint   medalHalonent
   medalBurdat   medalBillottet   medalKolobanovt
   medalFadint
   tankExpertt   titleSnipert
   invinciblet   diehardt   raidert   handOfDeatht   armorPiercert   kamikazet
   lumberjackt   beasthuntert	   mousebanet   creationTimet   maxXPVehiclet   maxFragsVehiclet   vehDossiersCutt   evileyet   medalRadleyWalterst   medalLafayettePoolt   medalBrunoPietrot   medalTarczayt   medalPascuccit   medalDumitrut   markOfMasterys
   company/xps   company/battlesCounts   company/winss   company/lossess   company/survivedBattless   company/fragss   company/shotss   company/hitss   company/spotteds   company/damageDealts   company/damageReceiveds   company/capturePointss   company/droppedCapturePointss   clan/xps   clan/battlesCounts	   clan/winss   clan/lossess   clan/survivedBattless
   clan/fragss
   clan/shotss	   clan/hitss   clan/spotteds   clan/damageDealts   clan/damageReceiveds   clan/capturePointss   clan/droppedCapturePointst   medalLehvaslaihot   medalNikolast
   fragsSinait   sinait   heroesOfRassenayt   mechanicEngineert   tankExpert0t   tankExpert1t   tankExpert2t   tankExpert3t   tankExpert4t   tankExpert5t   tankExpert6t   tankExpert7t   tankExpert8t   tankExpert9t   tankExpert10t   tankExpert11t   tankExpert12t   tankExpert13t   tankExpert14t   mechanicEngineer0t   mechanicEngineer1t   mechanicEngineer2t   mechanicEngineer3t   mechanicEngineer4t   mechanicEngineer5t   mechanicEngineer6t   mechanicEngineer7t   mechanicEngineer8t   mechanicEngineer9t   mechanicEngineer10t   mechanicEngineer11t   mechanicEngineer12t   mechanicEngineer13t   mechanicEngineer14t   rareAchievementst   medalBrothersInArmst   medalCrucialContributiont   medalDeLangladet   medalTamadaYoshiot
   bombardiert   huntsmant   alarict   sturdyt   ironMant
   luckyDevilt   fragsPattont   pattonValleyc         c   s'   x  |  ] } | d  | d f Vq Wd S(   i   i    N(    (   t   .0t   x(    (    s#   scripts/common/dossiers/__init__.pys	   <genexpr>Ì   s   	 c           C   sp  h� dº d 6d» d 6d¼ d 6d½ d	 6d¾ d
 6d¿ d 6dÀ d 6dÁ d 6dÂ d 6dÃ d 6dÄ d 6dÅ d 6dÆ d 6dÇ d 6dÈ d 6dÉ d 6dÊ d 6dË d 6dÌ d 6dÍ d 6dÎ d 6dÏ d 6dÐ d 6dÑ d# 6dÒ d$ 6dÓ d% 6dÔ d& 6dÕ d' 6dÖ d( 6d× d) 6dØ d* 6dÙ d+ 6dÚ d, 6dÛ d- 6dÜ d. 6dÝ d/ 6dÞ d0 6dß d1 6dà d2 6dá d3 6dâ d4 6dã d5 6dä d6 6då d7 6dæ d8 6dç d9 6dè d: 6dé d; 6dê d< 6dë d= 6dì d> 6dí d? 6dî d@ 6dï dA 6dð dB 6dñ dC 6dò dD 6dó dE 6dô dF 6dõ dG 6dö dH 6d÷ dI 6dø dJ 6dù dK 6dú dL 6dû dM 6dü dN 6dý dO 6dþ dP 6dÿ dR 6d dS 6ddT 6ddU 6ddV 6ddW 6ddX 6ddY 6ddZ 6dd[ 6d	d\ 6d
d] 6dd^ 6dd_ 6dd` 6dda 6ddb 6ddc 6ddd 6dde 6ddf 6ddg 6ddh 6ddi 6ddj 6ddk 6ddl 6ddm 6ddn 6ddo 6ddq 6ddr 6dds 6d dt 6d!du 6d"dv 6d#dw 6d$dx 6d%dy 6d&dz 6d'd{ 6d| t  t f d} 6d| t t f d~ 6d(d� 6d)d‚ 6d*dƒ 6d+d… 6d,d† 6d-dˆ 6d.dŠ 6d/dŒ 6d0dŽ 6d1d� 6d2d’ 6d3d” 6d4d– 6d5d˜ 6d6dš 6d7dœ 6d8d� 6d9dž 6d:dŸ 6d;d  6d<d¡ 6d=d¢ 6d>d£ 6d?d¤ 6d@d¥ 6dAd¦ 6dBd§ 6dCd¨ 6dDd© 6dEdª 6dFd« 6dGd¬ 6d| t t f d­ 6dHd® 6dId¯ 6dJd° 6dKd± 6dLd² 6dMd³ 6dNd´ 6dOdµ 6dPd¶ 6dQd· 6dRd¸ 6dSd¹ 6a d  S(T  Nt   pt   Hi   iÿ  t   _versioniaê  R(   R)   R*   R+   R,   R-   R.   RN   R   R   R   R   R   t   Bi   iÉ   R   R    R!   R"   R#   R$   R%   R&   R   t   Ii   l   (Ö\ R   s
   company/xps   clan/xpR	   s   company/battlesCounts   clan/battlesCountR
   s   company/winss	   clan/winsR   s   company/lossess   clan/lossesR   s   company/survivedBattless   clan/survivedBattlesR   R   R   s   company/fragss
   clan/fragsR   R   RX   R   s   company/shotss
   clan/shotsR   s   company/hitss	   clan/hitsR   s   company/spotteds   clan/spottedR   s   company/damageDealts   clan/damageDealtR   s   company/damageReceiveds   clan/damageReceivedR   s   company/capturePointss   clan/capturePointsR   s   company/droppedCapturePointss   clan/droppedCapturePointsR   RJ   l   ÿÿ RK   RL   R/   R0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   R>   RO   RP   RZ   RQ   RR   RS   RT   RV   RW   RH   RY   RI   iÿÿ  t   tankExpertStrgt   mechanicEngineerStrgR@   RA   RB   RC   RD   RE   RF   RG   RU   t   dR'   RM   t   bi    R?   R\   R]   i   R^   R_   i   R`   i   Ra   i   Rb   i   Rc   i	   Rd   i
   Re   i   Rf   i   Rg   i   Rh   i   Ri   i   Rj   R[   Rk   Rl   Rm   Rn   Ro   Rp   Rq   Rr   Rs   Rt   Ru   Rv   Rw   Rx   Ry   Rz   R{   R|   R}   R~   R   R€   R�   R‚   Rƒ   R„   R…   R†   (   R‰   RŠ   i   iÿ  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŒ   i   iÉ   (   R‰   RŒ   i   iÉ   (   R‰   RŒ   i   iÉ   (   R‰   RŒ   i   iÉ   (   R‰   RŒ   i   iÉ   (   R‰   RŒ   i   iÉ   (   R‰   RŒ   i   iÉ   (   R‰   RŒ   i   iÉ   (   R‰   RŒ   i   iÉ   (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   (Ö\ (   R‰   R�   i   l   ÿÿ (   R‰   R�   i   l   ÿÿ (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iÿÿ  (   R‰   RŠ   i   iÿÿ  (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŠ   i   iaê  (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‰   RŠ   i   iaê  (   R‰   RŒ   i   i   (   R‰   RŒ   i   i   (   R‘   RŽ   i    (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i	   (   R‘   RŽ   i
   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   RŽ   i   (   R‘   R�   i    (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i	   (   R‘   R�   i
   (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i   (   R‘   R�   i   (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   RŠ   i   iaê  (   R‰   R�   i   l   (Ö\ (   R‰   RŠ   i   iaê  (   t   getVehTypeFragsFmtValuest   unpackVehTypeFragst   getVehDossiersCutFmtValuest   unpackVehDossiersCutt   getRareAchievementsFmtValuest   unpackRareAchievementst   _RECORD_PACKING(    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_RECORD_PACKING  s<   c        	   C   sa  h d4 t  f d	 6d5 t f d
 6d6 t f d 6d7 t f d 6d8 t f d 6d9 t f d 6d: t f d 6d; t f d 6d< t f d 6d= t	 f d 6d> t
 f d 6d? t f d 6d@ t f d! 6dA t f d" 6dB t f d$ 6dC t f d% 6dD t f d' 6dE t f d( 6dF t f d* 6dG t f d+ 6dH t f d- 6dI t f d. 6dJ t f d0 6dK t t t ƒ f d2 6dL t t t ƒ f d3 6a d  S(M   NR(   R)   R*   R+   R,   R-   R.   RN   R   R/   R   R0   R   R   R1   R   R2   R   R3   R   R4   R   R5   R   R6   R   RH   RX   RY   R…   R†   R   R   R@   R   R    RA   R!   R"   RB   R#   R$   RD   R%   R&   RE   R   RG   R'   RI   R?   (   s   warriors   invaders   snipers   defenders	   steelwalls	   supporters   scouts   evileye(   s   battleHeroes(   s   frags(   s   damageDealts   damageReceived(   s   spotted(   s   winAndSurvived(   s   capturePoints(   s   droppedCapturePoints(   s   frags8p(   s
   fragsBeast(   s
   fragsSinai(   s   fragsPatton(   s   sniperSeries(   s   maxSniperSeries(   s   invincibleSeries(   s   maxInvincibleSeries(   s   diehardSeries(   s   maxDiehardSeries(   s   killingSeries(   s   maxKillingSeries(   s   piercingSeries(   s   maxPiercingSeries(   s   treesCut(   s   vehTypeFrags(   s   vehTypeFrags(   t   updateBattleHeroest   updateMedalKayt   updateMedalCariust   updateMedalKnispelt   updateMedalPoppelt   updateMedalAbramst   updateMedalLeClerct   updateMedalLavrinenkot   updateMedalEkinst   updateBeasthuntert   updateSinait   updatePattonValleyt   updateMaxSniperSeriest   updateTitleSnipert   updateMaxInvincibleSeriest   updateInvinciblet   updateMaxDiehardSeriest   updateDiehardt   updateMaxKillingSeriest   updateHandOfDeatht   updateMaxPiercingSeriest   updateArmorPiercert   updateLumberjackR   t   updateMousebanet   g_cachet   updateTankExpertt   _RECORD_DEPENDENCIES(    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_RECORD_DEPENDENCIESÄ  s6     c           C   s)   t  t ƒ a t i h  ƒ t t ƒ a d  S(   N(   t   dictR´   t   _ACCOUNT_RECORD_DEPENDENCIESt   updatet   buildDependencies2t   _ACCOUNT_RECORD_DEPENDENCIES2(    (    (    s#   scripts/common/dossiers/__init__.pyt    _set_ACCOUNT_RECORD_DEPENDENCIESî  s    c           C   s)   t  t ƒ a t i h  ƒ t t ƒ a d  S(   N(   R¶   R´   t   _VEHICLE_RECORD_DEPENDENCIESR¸   R¹   t   _VEHICLE_RECORD_DEPENDENCIES2(    (    (    s#   scripts/common/dossiers/__init__.pyt    _set_VEHICLE_RECORD_DEPENDENCIESö  s    c           C   s)   t  h  ƒ a t i h  ƒ t t ƒ a d  S(   N(   R¶   t   _TANKMAN_RECORD_DEPENDENCIESR¸   R¹   t   _TANKMAN_RECORD_DEPENDENCIES2(    (    (    s#   scripts/common/dossiers/__init__.pyt    _set_TANKMAN_RECORD_DEPENDENCIESþ  s    c        ›   C   sú  d d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~ d d d€ d� d‚ dƒ d„ d… d† d‡ dˆ d‰ dŠ d‹ dŒ d� dŽ d� d� d‘ d’ d“ d” d• d– d— d˜ d™ dš g› d› dœ d� g f a  t t  dš t ƒ d  S(ž   NR‹   RJ   RK   RL   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   RX   R$   R%   R&   R   R(   R)   R*   R+   R,   R-   R.   RN   R/   R0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   R>   RO   RQ   RR   RS   RT   RV   RW   RP   RY   RZ   R�   RH   RI   RŽ   R@   RA   RB   RC   RD   RE   RF   RG   s
   company/xps   company/battlesCounts   company/winss   company/lossess   company/survivedBattless   company/fragss   company/shotss   company/hitss   company/spotteds   company/damageDealts   company/damageReceiveds   company/capturePointss   company/droppedCapturePointss   clan/xps   clan/battlesCounts	   clan/winss   clan/lossess   clan/survivedBattless
   clan/fragss
   clan/shotss	   clan/hitss   clan/spotteds   clan/damageDealts   clan/damageReceiveds   clan/capturePointss   clan/droppedCapturePointsR?   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   R[   Rk   Rl   Rm   Rn   Ro   Rp   Rq   Rr   Rs   Rt   Ru   Rv   Rw   Rx   Ry   R{   R|   R}   R~   R   R€   R�   R‚   Rƒ   R„   R†   R…   t   _dynRecPos_accountR'   RM   Rz   (   t   _ACCOUNT_RECORDS_LAYOUTt   extendRecordPackingR˜   (    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_ACCOUNT_RECORDS_LAYOUT  sD    	c        ‡   C   s¸  d d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~ d d€ d� d‚ dƒ d„ d… d† d‡ g‡ dˆ g f a  t t  d‡ t ƒ d  S(‰   NR‹   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R   RX   R(   R)   R*   R+   R,   R-   R.   RN   R/   R0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   R>   RO   RQ   RR   RS   RT   RV   RW   RP   RY   RZ   RH   RI   RŽ   R@   RA   RB   RC   RD   RE   RF   RG   RU   s
   company/xps   company/battlesCounts   company/winss   company/lossess   company/survivedBattless   company/fragss   company/shotss   company/hitss   company/spotteds   company/damageDealts   company/damageReceiveds   company/capturePointss   company/droppedCapturePointss   clan/xps   clan/battlesCounts	   clan/winss   clan/lossess   clan/survivedBattless
   clan/fragss
   clan/shotss	   clan/hitss   clan/spotteds   clan/damageDealts   clan/damageReceiveds   clan/capturePointss   clan/droppedCapturePointsR?   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   R{   R|   R}   R~   R   R€   R�   R‚   Rƒ   R„   R†   R…   t   _dynRecPos_vehicleR'   (   t   _VEHICLE_RECORDS_LAYOUTRÄ   R˜   (    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_VEHICLE_RECORDS_LAYOUT0  s>    			c           C   sz   d d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d g g  f a  t t  d t ƒ d  S(   NR‹   R	   R(   R)   R*   R+   R,   R-   R.   RN   R7   R8   R9   R:   R;   R<   R=   R>   RO   RQ   RR   RS   RT   RV   RW   RP   RZ   R}   R~   t   _dynRecPos_tankman(   t   _TANKMAN_RECORDS_LAYOUTRÄ   R˜   (    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_TANKMAN_RECORDS_LAYOUTV  s    	c           C   s1   t  t t ƒ a t  t t ƒ a t  t t ƒ a d  S(   N(   t   buildStaticRecordPositionsRÃ   R˜   t    _ACCOUNT_STATIC_RECORD_POSITIONSRÇ   t    _VEHICLE_STATIC_RECORD_POSITIONSRÊ   t    _TANKMAN_STATIC_RECORD_POSITIONS(    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_STATIC_RECORD_POSITIONSi  s    c           C   s1   t  t t ƒ a t  t t ƒ a t  t t ƒ a d  S(   N(   t   buildStaticRecordsFmtRÃ   R˜   t   _ACCOUNT_STATIC_RECORDS_FMTRÇ   t   _VEHICLE_STATIC_RECORDS_FMTRÊ   t   _TANKMAN_STATIC_RECORDS_FMT(    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_STATIC_RECORDS_FMTr  s    c           C   s   t  t d t d ƒ a d  S(   Ni    i   (   t   setRÃ   t   _ACCOUNT_RECORDS_SET(    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_ACCOUNT_RECORDS_SETy  s    c           C   s   t  t d t d ƒ a d  S(   Ni    i   (   RÖ   RÇ   t   _VEHICLE_RECORDS_SET(    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_VEHICLE_RECORDS_SET  s    c           C   s   t  t d t d ƒ a d  S(   Ni    i   (   RÖ   RÊ   t   _TANKMAN_RECORDS_SET(    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_TANKMAN_RECORDS_SET…  s    t    c         C   s%   t  |  t t d t t t t t t ƒ
 S(   NRÂ   (	   t   _DossierDescrRÃ   R×   RÍ   RÒ   Rº   t   _ACCOUNT_POP_UP_RECORDSt   ACCOUNT_DOSSIER_VERSIONt   _ACCOUNT_DOSSIER_UPDATERS(   t	   compDescr(    (    s#   scripts/common/dossiers/__init__.pyt   getAccountDossierDescr�  s    c         C   s%   t  |  t t d t t t t t t ƒ
 S(   NRÆ   (	   RÞ   RÇ   RÙ   RÎ   RÓ   R½   t   _VEHICLE_POP_UP_RECORDSt   VEHICLE_DOSSIER_VERSIONt   _VEHICLE_DOSSIER_UPDATERS(   Râ   (    (    s#   scripts/common/dossiers/__init__.pyt   getVehicleDossierDescr—  s    c         C   s%   t  |  t t d t t t t t t ƒ
 S(   NRÉ   (	   RÞ   RÊ   RÛ   RÏ   RÔ   RÀ   t   _TANKMAN_POP_UP_RECORDSt   TANKMAN_DOSSIER_VERSIONt   _TANKMAN_DOSSIER_UPDATERS(   Râ   (    (    s#   scripts/common/dossiers/__init__.pyt   getTankmanDossierDescr¡  s    c         C   sU   |  t  i j o t | ƒ S|  t  i j o t | ƒ S|  t  i j o t | ƒ Sd  S(   N(   R   t   VEHICLERç   t   TANKMANRë   t   ACCOUNTRã   t   None(   t   dossierTypeRâ   (    (    s#   scripts/common/dossiers/__init__.pyt   getDossierDescr­  s    c         C   s@   t  |  } | d d j o d S| d d j p t ‚ | d S(   Ni    R‘   i   R‰   i   (   R˜   t   AssertionError(   t   recordt   recordPacking(    (    s#   scripts/common/dossiers/__init__.pyt   getRecordMaxValue¹  s
    
c           C   s  h t  t t t ƒ d 6t  t d t i ƒ d 6t  t d t i ƒ d 6t  t d t i ƒ d 6t  t	 d t i ƒ d 6t  t
 d t i t ƒ d 6t  t d t i ƒ d 6t  t d	 t i ƒ d 6t  t d
 t i ƒ d	 6t  t d t i t ƒ d
 6t  t d t i t t ƒ d 6a d  S(   Ni    i   i   i   i   i   i   i   i   i   i   i   (   R   t   getNewAccountDossierDataRà   RÃ   t   updateDossier1R   Rî   t   updateDossier3t   updateDossier4t   updateDossier5t   updateDossier6R²   t   updateDossier7t   updateDossier8t   updateDossier9t   updateDossier10t   updateDossier11R˜   Rá   (    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_ACCOUNT_DOSSIER_UPDATERSÄ  s    c           C   sï   h
 t  t t t ƒ d 6t  t d t i ƒ d 6t  t d t i ƒ d 6t  t d t i ƒ d 6t  t	 d t i ƒ d 6t  t
 d t i t ƒ d 6t  t d t i ƒ d 6t  t d	 t i ƒ d 6t  t d
 t i t ƒ d	 6t  t d t i t t ƒ d
 6a d  S(   Ni    i   i   i   i   i   i   i   i   i   i   (   R   t   getNewDossierDataRå   RÇ   R÷   R   Rì   t   updateDossier2Rø   Rú   Rû   R²   Rý   Rþ   Rÿ   R   R˜   Ræ   (    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_VEHICLE_DOSSIER_UPDATERSÚ  s    c           C   sx   h t  t t t ƒ d 6t  t d t i ƒ d 6t  t d t i ƒ d 6t  t d t i t	 ƒ d 6t  t
 d t i ƒ d 6a d  S(   Ni    i   i
   i   i   i   (   R   R  Ré   RÊ   R÷   R   Rí   Rú   Rû   R²   Rþ   Rê   (    (    (    s#   scripts/common/dossiers/__init__.pyt   _set_TANKMAN_DOSSIER_UPDATERSî  s    RÞ   c           B   sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   sÁ   t  | ƒ d j  o d |  _ n
 | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ |	 |  _	 |
 |  _
 t |  _ d |  _ h  |  _ t g  ƒ |  _ t g  ƒ |  _ |  i ƒ  d  S(   Ni   t     i    (   t   lent   _DossierDescr__compDescrt   _recordsLayoutt   _DossierDescr__recordsSett   _DossierDescr__dynRecPosRecordt$   _DossierDescr__staticRecordPositionst   _DossierDescr__staticRecordsFmtt   _DossierDescr__dependenciest   _DossierDescr__popUpRecordst   _DossierDescr__curVersiont   _DossierDescr__versionUpdaterst   Falset   _DossierDescr__isExpandedt   _DossierDescr__dependentUpdatest   _DossierDescr__dataRÖ   t   _DossierDescr__changedt   popUpst   _DossierDescr__updateVersion(   t   selfRâ   t   recordsLayoutt
   recordsSett   dynRecPosRecordt   staticRecordPositionst   staticRecordsFmtt   dependenciest   popUpRecordst
   curVersiont   versionUpdaters(    (    s#   scripts/common/dossiers/__init__.pyt   __init__  s$    													c         C   sG  |  i  } | | j o	 | | S| |  i d j o» t | } | d d j o* | d d !\ } } t |  | d | >@ƒ S|  i | } t d | d |  i | | | d !ƒ } | d d j o | d | | <n | d | ƒ | | <| | St | } |  i d i | ƒ } |  |  i | }	 | d |  i |	 ƒ \ | | <}
 | | S(	   Ni    R‘   i   i   t   <i   R‰   i   (	   R  R	  R˜   t   boolR  t   unpackR  t   indexR  (   R  Ró   t   datat   packingt   storageNamet   shiftt   positiont   valuest	   dynRecIdxt   offsett   _(    (    s#   scripts/common/dossiers/__init__.pyt   __getitem__B  s&    		
)	
 c   	      C   sq  | |  i  j o |  i i | ƒ n t | } | d d j oQ |  | } t | ƒ | j o d  S| d d !\ } } |  | d | >A} | } n) | d d j o t | | d ƒ } n |  | } | | j o d  S| |  i | <|  i i | ƒ |  i d j } |  i d 7_ |  i d j o t	 d ƒ d  Sx( |  i
 | D] } | |  | | | ƒ q<W| o d |  _ n d  S(   Ni    R‘   i   i   R‰   id   s0   Too many subsequent updates of dependent records(   R  R  t   addR˜   R%  t   minR  R  R  t	   LOG_ERRORR  (	   R  Ró   t   valueR)  t	   prevValueR*  R+  t   isFromOutsidet   updater(    (    s#   scripts/common/dossiers/__init__.pyt   __setitem__]  s6    




 c         C   s   | |  i  j S(   N(   R
  (   R  Ró   (    (    s#   scripts/common/dossiers/__init__.pyt	   hasRecord�  s    c         C   s
   t  |  ƒ S(   N(   t   _DossierDescrIterator(   R  (    (    s#   scripts/common/dossiers/__init__.pyt   __iter__…  s    c         C   s+   x$ | i  ƒ  D] \ } } | |  | <q Wd  S(   N(   t	   iteritems(   R  R�   t   keyR5  (    (    s#   scripts/common/dossiers/__init__.pyR¸   ‹  s     c         C   sb   |  i  o d  St |  i ƒ } t |  i t |  i |  i |  i ƒ |  _ |  i i	 | ƒ t
 |  _  d  S(   N(   R  R¶   R  R   R	  R˜   R  R  R  R¸   t   True(   R  t   prevData(    (    s#   scripts/common/dossiers/__init__.pyt   expand’  s    
c      	   C   s¯  |  i  p |  i S|  i } |  i omd } g  } |  i d } t | |  i ƒ } x� t t |  i	 d ƒ ƒ D]f } |  i	 d | } t
 | } | | | <| d | | ƒ \ }	 }
 } | |	 7} | |
 7} | | 7} qk W| | |  i <d } g  } xƒ |  i	 d D]t } t
 | } | d d j o qü n | | d 7} | d d j o | i | | ƒ qü | | d | | ƒ 7} qü Wt | | | | Œ |  _ nýxù|  i  oît |  i  ƒ } |  i  i ƒ  xË| D]Ã} t
 | } | d d j o6 t d | d | | ƒ } | d	 } |  i | } nJ| d d
 j o@ t d | d | d | | ƒ Œ } | d	 } |  i | } nù | d | | ƒ \ } } } t d | | Œ } |  i	 d i | ƒ } |  |  i t |  i ƒ f } | | } | | d | } | | } | d j ob t | d  ƒ } x8 t | d t |  i	 d ƒ ƒ D] } | | c | 7<q1Wt | ƒ |  |  i <n |  i |  | |  i | | |  _ qÂWq•W|  i  i ƒ  |  i i ƒ  |  i S(   NRÝ   t   _staticRecordsSizei   R$  i    R‘   R‰   i   i   t   siÿÿÿÿ(   R  R  R  R  R  t   listR  t   xrangeR  R	  R˜   t   appendt   packt   clearR'  t   tupleR  (   R  R(  t   dynRecordsFmtt   dynRecordsValuest   dynRecOffsett	   dynRecPost   iRó   R)  t   recFmtt	   recValuest   recSizet   fmtR-  t   changedt   substrt   prevSizeR,  t   sizeR.  t   dynRecPosExtt   sizeDiff(    (    s#   scripts/common/dossiers/__init__.pyt   makeCompDescrŸ  s|    
	
 



 
 
 

%


! ,c         C   sŽ   x‡ t  o |  d } | |  i j o Pn |  i i | |  i d ƒ } | |  i |  i |  i ƒ \ |  _ |  _ t  |  _ |  i i d ƒ q Wd  S(   NR‹   i    (	   R?  R  R  t   getR  R  R  R  R2  (   R  t   verR8  (    (    s#   scripts/common/dossiers/__init__.pyt   __updateVersioné  s     
'	(   t   __name__t
   __module__R#  R1  R9  R:  R<  R¸   RA  RY  R  (    (    (    s#   scripts/common/dossiers/__init__.pyRÞ     s   	&		$					JR;  c           B   s   e  Z d  „  Z d „  Z RS(   c         C   s>   | |  _  |  i  i ƒ  | i d | i d |  _ d |  _ d  S(   Ni    i   (   t#   _DossierDescrIterator__dossierDescrRA  R	  t"   _DossierDescrIterator__recordNamest    _DossierDescrIterator__recordIdx(   R  t   dossierDescr(    (    s#   scripts/common/dossiers/__init__.pyR#  ú  s    	c         C   sS   |  i  t |  i ƒ j o
 t ‚ n |  i |  i  } |  i  d 7_  | |  i | f S(   Ni   (   Ra  R  R`  t   StopIterationR_  (   R  Ró   (    (    s#   scripts/common/dossiers/__init__.pyt   next  s
    
(   R]  R^  R#  Rd  (    (    (    s#   scripts/common/dossiers/__init__.pyR;  ÷  s   	c           C   s}   t  ƒ  a t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t	 ƒ  t
 ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  t ƒ  d  S(   N(   t   _buildCacheR²   R™   Rµ   R»   R¾   RÁ   RÅ   RÈ   RË   RÐ   RÕ   R  R  R  RØ   RÚ   RÜ   (    (    (    s#   scripts/common/dossiers/__init__.pyt   init	  s"    	c          C   s  h  }  t  ƒ  } t  ƒ  } t  ƒ  } t  ƒ  } h  } t  ƒ  } t i ƒ  } x`t t t i ƒ ƒ D]I} t i i | ƒ }	 t  ƒ  }
 x|	 i	 ƒ  D] } |  i
 | d t  ƒ  ƒ i | d ƒ d | d j o | i | d ƒ n d | d j o | i | d ƒ n t | i | d t  ƒ  ƒ ƒ d j p) t t i i | | d ƒ i ƒ d j o |
 i | d ƒ n d | d j o | i | d ƒ q‰ q‰ W| i |
 ƒ |
 | | <q[ W|  d	 |  d
 B|  d B} h |  d 6| d 6| d 6| d 6| d 6t i d t i i d ƒ Œ d 6| d 6| d 6S(   Nt   levelt   compactDescrt   beastt   tagsRY   i    t   idt   pattoni   i	   i
   t   vehiclesByLevels
   vehicles8+t   beastVehiclest   sinaiVehiclest   pattonVehiclest   vehicles   germany:Maust   mausTypeCompDescrt   vehiclesInTreesByNationt   vehiclesInTrees(   RÖ   R   t   getUnlocksSourcesRE  R  t   nationst   NAMESt   g_listt   getListt
   itervaluest
   setdefaultR2  RZ  R²   Rq  t   unlocksDescrsR¸   t   makeIntCompactDescrByIDt   getIDsByName(   Rm  t
   vehicles8pRn  Ro  Rp  Rs  Rt  t   unlocksSourcest	   nationIdxt
   nationListt   vehiclesInNationTreest   vehDescr(    (    s#   scripts/common/dossiers/__init__.pyRe  4  sJ    					 	 $&)	(›   R   s   xps   maxXPs   battlesCounts   winss   lossess   survivedBattless   lastBattleTimes   battleLifeTimes   winAndSurviveds   battleHeroess   fragss   maxFragss   frags8ps
   fragsBeasts   shotss   hitss   spotteds   damageDealts   damageReceiveds   treesCuts   capturePointss   droppedCapturePointss   sniperSeriess   maxSniperSeriess   invincibleSeriess   maxInvincibleSeriess   diehardSeriess   maxDiehardSeriess   killingSeriess   maxKillingSeriess   piercingSeriess   maxPiercingSeriess   vehTypeFragss   warriors   invaders   snipers   defenders	   steelwalls	   supporters   scouts   medalKays   medalCariuss   medalKnispels   medalPoppels   medalAbramss   medalLeClercs   medalLavrinenkos
   medalEkinss   medalWittmanns
   medalOrliks
   medalOskins   medalHalonens
   medalBurdas   medalBillottes   medalKolobanovs
   medalFadins
   tankExperts   titleSnipers
   invincibles   diehards   raiders   handOfDeaths   armorPiercers   kamikazes
   lumberjacks   beasthunters	   mousebanes   creationTimes   maxXPVehicles   maxFragsVehicles   vehDossiersCuts   evileyes   medalRadleyWalterss   medalLafayettePools   medalBrunoPietros   medalTarczays   medalPascuccis   medalDumitrus   markOfMasterys
   company/xps   company/battlesCounts   company/winss   company/lossess   company/survivedBattless   company/fragss   company/shotss   company/hitss   company/spotteds   company/damageDealts   company/damageReceiveds   company/capturePointss   company/droppedCapturePointss   clan/xps   clan/battlesCounts	   clan/winss   clan/lossess   clan/survivedBattless
   clan/fragss
   clan/shotss	   clan/hitss   clan/spotteds   clan/damageDealts   clan/damageReceiveds   clan/capturePointss   clan/droppedCapturePointss   medalLehvaslaihos   medalNikolass
   fragsSinais   sinais   heroesOfRassenays   mechanicEngineers   tankExpert0s   tankExpert1s   tankExpert2s   tankExpert3s   tankExpert4s   tankExpert5s   tankExpert6s   tankExpert7s   tankExpert8s   tankExpert9s   tankExpert10s   tankExpert11s   tankExpert12s   tankExpert13s   tankExpert14s   mechanicEngineer0s   mechanicEngineer1s   mechanicEngineer2s   mechanicEngineer3s   mechanicEngineer4s   mechanicEngineer5s   mechanicEngineer6s   mechanicEngineer7s   mechanicEngineer8s   mechanicEngineer9s   mechanicEngineer10s   mechanicEngineer11s   mechanicEngineer12s   mechanicEngineer13s   mechanicEngineer14s   rareAchievementss   medalBrothersInArmss   medalCrucialContributions   medalDeLanglades   medalTamadaYoshios
   bombardiers   huntsmans   alarics   sturdys   ironMans
   luckyDevils   fragsPattons   pattonValley(5   Rv  t   collectionst   structt   debug_utilst   itemsR   t	   functoolsR   t	   constantsR   t   dossiers.configR   t   dossier_updaterst   utilst   dependencesR   Rà   Rå   Ré   t   RECORD_NAMESR¶   t	   enumeratet   RECORD_INDICESRÖ   Rß   Rä   Rè   R™   Rµ   R»   R¾   RÁ   RÅ   RÈ   RË   RÐ   RÕ   RØ   RÚ   RÜ   Rã   Rç   Rë   Rñ   Rõ   R  R  R  t   objectRÞ   R;  Rf  Re  (    (    (    s#   scripts/common/dossiers/__init__.pyt   <module>   s²  




                                                                                                                                                          	*	¬	*					)	&							

				 é	+