
k4Vdc           @   s  d  d l  Z  d  d l Z y d  d l m Z Wn d  d l m Z n Xy e Wn e k
 rg e Z n Xd f  d     YZ d e f d     YZ d e f d	     YZ	 d
 e f d     YZ
 d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d f  d     YZ d f  d     YZ d f  d     YZ d e f d     YZ d  f  d!     YZ g  e d"  D] Z e ^ qZ g  e d"  D] Z e ^ qZ x" e d#  D] Z d$ e >e e <qWxM e d# d"  D]< Z e e d% e e d& Ae e d' Ae e d# Ae e <qWx" e d(  D] Z e e e e <qcWd) f  d*     YZ d+ f  d,     YZ d- f  d.     YZ d S(/   iN(   t   zip_longest(   t   izip_longestt   QRc           B   sh   e  Z d	 Z d	 Z d  Z d   Z d   Z e d    Z	 d   Z
 d   Z d   Z d   Z d   Z RS(
   i    c         C   s/   |  j  r" |  j  |  r" t  n  | |  _ d  S(   N(   t   validt
   ValueErrort   data(   t   selfR   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   __init__*   s    	c         C   s   t  |  j  S(   N(   t   lenR   (   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   __len__/   s    c         C   sY   |  j  d  k r d St t |   t |  j    \ } } | t |  j   t |  j  |   S(   Ni    (   t   bitst   Nonet   divmodR   t   sum(   R   t   qt   r(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt	   bitlength2   s    $c         C   si   d | k  o d k  n r' |  j  d S| d k  r> |  j  d S| d k  rU |  j  d St d |   d  S(   Ni    i
   i   i   i)   i   s   Unknown version: (   t
   lengthbitsR   (   R   t   ver(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   getLengthBits9   s    c         C   s   t  |  j  S(   N(   R   R   (   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt	   getLengthB   s    c         C   s   t  |  j  S(   N(   t   reprR   (   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   __repr__E   s    c         C   sH   | j  |  j d  |  j |  } | rD | j  t |  j  |  n  d  S(   Ni   (   t   putt   modeR   R   R   (   R   t   buffert   versiont   lenbits(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   write_headerH   s    c         C   s   |  j  | |  x t t |  j  g |  j   D] } d } d } xh t |  j  D]W } | | d  k	 rR | t |  j  9} | |  j j	 | |  7} | |  j
 | 7} qR qR W| j | |  q0 Wd  S(   Ni    (   R   R    t   iterR   t   groupt   rangeR   R   t   charst   indexR
   R   (   R   R   R   t   gR
   t   nt   i(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   writeN   s    &N(   t   __name__t
   __module__R   R   R
   R   R   R	   t   propertyR   R   R   R   R   R%   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   %   s   							t   QRNumberc           B   s8   e  Z e j d   j Z d Z d Z d Z d Z	 d	 Z
 RS(
   u   [0-9]*$u
   0123456789i   i   i   i
   i   i   (   i   i   i   (   i
   i   i   (   R&   R'   t   ret   compilet   matchR   R    R
   R   R   R   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR)   Z   s   t
   QRAlphaNumc           B   s8   e  Z e j d   j Z d Z d Z d Z d Z	 d	 Z
 RS(
   u   [-0-9A-Z $%*+-./:]*$u-   0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:i   i   i   i	   i   i   (   i   i   (   i	   i   i   (   R&   R'   R*   R+   R,   R   R    R
   R   R   R   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR-   b   s   t
   QR8bitBytec           B   s2   e  Z d Z d Z d Z d Z d   Z d   Z RS(   i   i   i   i   c         C   s1   t  | t  r$ | j d  |  _ n	 | |  _ d  S(   Ns   utf-8(   t
   isinstancet   unicodet   encodeR   (   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   p   s    c         C   sV   |  j  | |  x? |  j D]4 } t | t  r> t |  } n  | j | d  q Wd  S(   Ni   (   R   R   R/   t   strt   ordR   (   R   R   R   t   c(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR%   v   s
    (   i   (   i   i   i   (   R&   R'   R
   R   R   R   R   R%   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR.   j   s   	t   QRKanjic           B   s;   e  Z d Z d Z d Z d	 Z d   Z d   Z d   Z RS(
   i   i   i   i
   i   c         C   s:   y |  j  |  |  _ Wn t k
 r5 t d   n Xd  S(   Ns   Not valid kanji(   t   unicode_to_qrkanjiR   t   UnicodeEncodeErrorR   (   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR      s    c         C   s  g  } xt  |  D]z\ } } yL | j d  } y t t |  \ } } Wn t k
 ri | \ } } n XWnb t k
 r } t d | | | d | j d   n- t k
 r t d | | | d d   n X| d >| B} d | k o d k n r!| d 8} | d	 @d ?d
 | d @} n_ d | k o8d k n rd| d 8} | d	 @d ?d
 | d @} n t d | | | d d   | j |  q W| S(   Ns	   shift-jist   qrkanjii   i   s   illegal multibyte sequencei   i@  i  i   i   i   i@  i  i@  (	   t	   enumerateR1   t   mapR3   t	   TypeErrorR7   t   argsR   t   append(   R   R   t   codesR$   R4   t   dt   e(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR6      s0    &

	c         C   s8   |  j  | |  x! |  j D] } | j | d  q Wd  S(   Ni   (   R   R   R   (   R   R   R   R?   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR%      s    (   i   (   i   i
   i   (	   R&   R'   R
   R   R   R   R   R6   R%   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR5   }   s   		t   QRHanzic           B   sD   e  Z d	 Z d Z d  Z d
 Z d   Z d   Z d   Z d   Z	 RS(   i   i   i   i
   i   c         C   s:   y |  j  |  |  _ Wn t k
 r5 t d   n Xd  S(   Ns   Not valid hanzi(   t   unicode_to_qrhanziR   R7   R   (   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR      s    c         C   s  g  } xt  |  D]z\ } } yL | j d  } y t t |  \ } } Wn t k
 ri | \ } } n XWnb t k
 r } t d | | | d | j d   n- t k
 r t d | | | d d   n X| d >| B} d | k o d k n r!| d 8} | d	 @d ?d
 | d @} n_ d | k o8d k n rd| d 8} | d	 @d ?d
 | d @} n t d | | | d d   | j |  q W| S(   Nt   gb2312t   qrhanzii   i   s   illegal multibyte sequencei   i  i  i   i`   i   i  i  i  (	   R9   R1   R:   R3   R;   R7   R<   R   R=   (   R   R   R>   R$   R4   R?   R@   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRB      s0    &

	c         C   sX   | j  |  j d  | j  d d  |  j |  } | rT | j  t |  j  |  n  d  S(   Ni   i   (   R   R   R   R   R   (   R   R   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR      s
    c         C   s8   |  j  | |  x! |  j D] } | j | d  q Wd  S(   Ni   (   R   R   R   (   R   R   R   R?   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR%      s    (   i   (   i   i
   i   (
   R&   R'   R
   R   R   R   R   RB   R   R%   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRA      s   			t   QRECIc           B   s&   e  Z d  Z d Z d   Z d   Z RS(   i   i    c         C   s8   d | k  o d k  n s+ t  d   n  | |  _ d  S(   Ni    i?B s   ECI out of range(   R   R   (   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR      s    c         C   s   |  j  | |  |  j d k r5 | j |  j d  nR |  j d k r^ | j |  j d Bd  n) |  j d k r | j |  j d Bd  n  d  S(	   Ni   i   i?  i   i   i i   i   (   R   R   R   (   R   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR%      s    (   i    i    i    (   R&   R'   R   R   R   R%   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRE      s   	t   QRStructAppendc           B   s&   e  Z d  Z d Z d   Z d   Z RS(   i   i    c         C   su   d | k  o d k n s+ t  d   n  d | k  oB d k n sV t  d   n  | |  _ | |  _ | |  _ d  S(   Ni    i   s   part out of range [1,16]s   total out of range [1,16](   R   t   partt   totalt   parity(   R   RG   RH   RI   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR      s    		c         C   sM   |  j  | |  | j |  j d  | j |  j d  | j |  j d  d  S(   Ni   i   (   R   R   RG   RH   RI   (   R   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR%      s    (   i    i    i    (   R&   R'   R   R   R   R%   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRF      s   		t   QRFNC1Firstc           B   s&   e  Z d  Z d Z d   Z d   Z RS(   i   i    c         C   s   d  S(   N(    (   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   
  s    c         C   s   |  j  | |  d  S(   N(   R   (   R   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR%     s    (   i    i    i    (   R&   R'   R   R   R   R%   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRJ     s   	t   QRFNC1Secondc           B   s/   e  Z e j d   j Z d Z d Z d   Z RS(   s   ^([A-Za-z]|[0-9][0-9])$i	   i    c         C   s^   |  j  | |  |  j } t |  d k r> t |  d } n t |  } | j | d  d  S(   Ni   id   i   (   R   R   R   R3   t   intR   (   R   R   R   R?   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR%     s    	(   i    i    i    (	   R&   R'   R*   R+   R,   R   R   R   R%   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRK     s   t   QRCodec           B   s  e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z e	 e	 e	 e	 e	 e	 e	 g e	 e
 e
 e
 e
 e
 e	 g e	 e
 e	 e	 e	 e
 e	 g e	 e
 e	 e	 e	 e
 e	 g e	 e
 e	 e	 e	 e
 e	 g e	 e
 e
 e
 e
 e
 e	 g e	 e	 e	 e	 e	 e	 e	 g g Z d   Z d   Z d	   Z e	 e	 e	 e	 e	 g e	 e
 e
 e
 e	 g e	 e
 e	 e
 e	 g e	 e
 e
 e
 e	 g e	 e	 e	 e	 e	 g g 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 e d    Z e d    Z RS(   c         C   s:   | |  _  | |  _ d  |  _ d |  _ d  |  _ g  |  _ d  S(   Ni    (   R   t   errorCorrectLevelR   t   modulest   moduleCountt	   dataCachet   dataList(   R   R   RN   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR      s    					c         C   s}   t  | t  r | } nH xE t t t t f D]+ } y | |  } PWq+ t k
 rU q+ Xq+ Wt  |  j j |  d  |  _
 d  S(   N(   R/   R   R)   R-   R5   R.   R   RR   R=   R   RQ   (   R   R   t   newDatat   conv(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   addData(  s    	c         C   s   |  j  | | S(   N(   RO   (   R   t   rowt   col(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   isDark8  s    c         C   s   |  j  S(   N(   RP   (   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   getModuleCount;  s    c         C   s   x t  d d  D] } t j | |  j  } t d   | D  } d } x; |  j D]0 } | d 7} | | j |  7} | | j 7} qQ W| | d k r Pq q W| S(   Ni   i(   c         s   s   |  ] } | j  Vq d  S(   N(   t	   dataCount(   t   .0t   block(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pys	   <genexpr>B  s    i    i   i   (   R   t	   QRRSBlockt   getRSBlocksRN   R   RR   R   R   (   R   R   t   rsBlockst   totalDataCountt   lengthR   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   calculate_version>  s    
c         C   s;   |  j  d  k r! |  j   |  _  n  |  j t |  j    d  S(   N(   R   R   Rb   t   makeImplt   Falset   getBestMaskPattern(   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   makeL  s    c         C   s  |  j  d d |  _ g  t |  j  D] } t g |  j ^ q$ |  _ |  j d d  |  j |  j d d  |  j d |  j d  |  j   |  j   |  j | |  |  j  d k r |  j	 |  n  |  j
 d  k r t j |  j  |  j |  j  |  _
 n  |  j |  j
 |  d  S(   Ni   i   i    i   (   R   RP   R   Rd   RO   t   setupPositionProbePatternt   setupPositionAdjustPatternt   setupTimingPatternt   setupTypeInfot   setupTypeNumberRQ   R   RM   t
   createDataRN   RR   t   mapData(   R   t   testt   maskPatternt   x(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRc   Q  s     ,

c         C   s  | d k rs t  g d |  j | d | | d +| d k rW t  |  j | d | d <q t  |  j | d | d <n# t  g d |  j | d | | d +xz t |  j  D]i \ } } | |  j | | | | d +| d k r t  |  j | | | d <q t  |  j | | | d <q Wd  S(   Ni    i   i   i   (   Rd   RO   R9   t   _positionProbePattern(   R   RV   RW   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRg   m  s    ##c         C   sm   d } d } xZ t  d  D]L } |  j t |  t j |   } | d k sV | | k r | } | } q q W| S(   Ni    i   (   R   Rc   t   Truet   QRUtilt   getLostPoint(   R   t   minLostPointt   patternR$   t	   lostPoint(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRe     s    c         C   s}   x9 t  d |  j d  D]! } | d d k |  j | d <q Wt j t j t t g  |  j d  |  j d d |  j d +d  S(   Ni   i   i    i   i   (   R   RP   RO   t	   itertoolst   islicet   cycleRr   Rd   (   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRi     s    c         C   s   t  j |  j  } |  j d } x t j | |  D] \ } } | d k rh | d k s2 | | k rh q2 n | | k r | d k r q2 n  xA t |  j  D]0 \ } } | |  j | | d | d | d +q Wq2 Wd  S(   Ni   i   i   (	   Rs   t   getPatternPositionR   RP   Rx   t   productR9   t   _positionAdjustPatternRO   (   R   t   post   maxposRV   RW   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRh     s    $c         C   s   t  j |  j  } xW t d  D]I } | o= | | ?d @d k } | |  j | d | d |  j d d <q WxW t d  D]I } | o | | ?d @d k } | |  j | d |  j d d | d <qy Wd  S(   Ni   i   i   i   (   Rs   t   getBCHTypeNumberR   R   RO   RP   (   R   Rn   R
   R$   t   mod(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRk     s    ,c         C   sq  |  j  d >| B} t j |  } x t d  D] } | oK | | ?d @d k } | d k  rn | |  j | d <q- | d k  r | |  j | d d <q- | |  j |  j d | d <q- Wx t d  D] } | o | | ?d @d k } | d k  r| |  j d |  j | d <q | d k  r7| |  j d d | d d <q | |  j d d | d <q W| |  j |  j d d <d  S(   Ni   i   i   i   i   i	   (   RN   Rs   t   getBCHTypeInfoR   RO   RP   (   R   Rn   Ro   R   R
   R$   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRj     s"      c   
      c   sB  t  j t |  j d d d  t d d d   } t t d |  j d   t t  j t d  t d |  j    t t d |  j   f } t d	   | D  } t j |  j  } t	 t  j j
 d
   | D   } |  j d } xX| D]P} | | } } | d k rd } n" | |  j d k r.d } n d } x| | D] } x t d  D] }	 | |	 }	 |  j d k r| d k  r|	 |  j d k rqRq| d k  r| |  j d k rqRqn  | | k r'|	 | k r'| d k  r|	 d k  p|	 | k p|	 d k  o| d k  p| | k s'qRq'n  |	 | f VqRWq?Wq Wd  S(   Ni   i   ii   i    i	   i   i   c         s   s!   |  ] } t  t |   Vq d  S(   N(   t   listt   reversed(   R[   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pys	   <genexpr>  s    c         s   s4   |  ]* } | d  | d | | d | d  f Vq d S(   i   i   N(    (   R[   t   p(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pys	   <genexpr>  s    i   i   (   Rx   t   chainR   RP   R   t   tupleRs   R{   R   t   sett   from_iterable(
   R   t   colst   rowst   rrowst   pposR   RW   t   rowidxRV   R4   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   _dataPosIterator  s<    ' 	 	
	$$	c         C   s(   |  j  s! t |  j    |  _  n  |  j  S(   N(   t   _dataPosListR   R   (   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   dataPosIterator  s    	c      	   c   sM   xF | D]> } x5 d d d d d d d d g D] } t  | | @ Vq, Wq Wd  S(	   Ni   i@   i    i   i   i   i   i   (   t   bool(   R   R   t   bytet   bit(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   _dataBitIterator  s    c         C   s1   |  j  s$ t |  j |   |  _  n  t |  j   S(   N(   t   _dataBitListR   R   R   (   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   dataBitIterator  s    	c         C   sr   |  j  |  } t j |  } xM t |  j   | d t D]0 \ \ } } } | | | |  A|  j | | <q: Wd  S(   Nt	   fillvalue(   R   Rs   t   getMaskR    R   Rd   RO   (   R   R   Ro   R
   t   maskRW   RV   t   dark(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRm     s
    i   i   c         C   sg  t  j |  |  } t   } x | D] } | j | |   q" Wd } x | D] } | | j 7} qI W| j   | d k r t d | j   | d f   n  | j   d | d k r | j d d  n  x' | j   d d k r | j t	  q Wxd t
 rV| j   | d k rPn  | j t j d  | j   | d k r@Pn  | j t j d  q Wt j | |  S(   Ni    i   s   code length overflow. (%d > %d)i   (   R]   R^   t   QRBitBufferR%   RZ   t   getLengthInBitst	   ExceptionR   t   putBitRd   Rr   RM   t   PAD0t   PAD1t   createBytes(   R   RN   RR   R_   R   R   R`   R\   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRl     s,    		c         C   s  d } d } d } d } g  } g  } x| D]} | | j  7} | j }	 | j  |	 }
 t | |	  } t | |
  } | j |  j | | |	 ! | |	 7} t j |
  } t | d | j   d  } | j	 |  } | j   d } | j   } | j g  t
 | | |  D]' } | d k r)| j |  n d ^ q q+ Wg  t j t |   t |    D]% } | D] } | d  k	 rc| ^ qcqY} | S(   Ni    ii   (   t
   totalCountRZ   t   maxR=   R   Rs   t   getErrorCorrectPolynomialt   QRPolynomialR   R   R   t   getRx   R   R    R   (   R   R_   t   offsett
   maxDcCountt
   maxEcCountt   totalCodeCountt   dcdatat   ecdataR\   t   dcCountt   ecCountt   rsPolyt   rawPolyt   modPolyt   rLent   mLenR$   t   ddR?   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR      s2    	
	C	%N(    R&   R'   R   RU   RX   RY   Rb   Rf   Rc   Rr   Rd   Rq   Rg   Re   Ri   R}   Rh   Rk   Rj   R   R   R   R   R   R   R   Rm   R   R   t   staticmethodRl   R   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRM     sH   															!				t   QRErrorCorrectLevelc           B   s    e  Z d  Z d Z d Z d Z RS(   i   i    i   i   (   R&   R'   t   Lt   Mt   Qt   H(    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   >  s   t   QRMaskPatternc           B   s8   e  Z d  Z d Z d Z d Z d Z d Z d Z d Z	 RS(   i    i   i   i   i   i   i   i   (
   R&   R'   t
   PATTERN000t
   PATTERN001t
   PATTERN010t
   PATTERN011t
   PATTERN100t
   PATTERN101t
   PATTERN110t
   PATTERN111(    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   D  s   Rs   c        .   B   s  e  Z g  d  d g d  d g d  d g d  d g d  d g d  d d g d  d d g d  d d	 g d  d
 d g d  d d g d  d d g d  d d g d  d d	 d g d  d d d g d  d d d g d  d d d g d  d d d g d  d d d g d  d d d g d  d
 d d d g d  d d d d g d  d d d d g d  d
 d d d g d  d d d d  g d  d d d d! g d  d d d d" g d  d d d d d# g d  d d d d d$ g d  d d% d d& d' g d  d d d d( d) g d  d d* d d+ d, g d  d d d d! d- g d  d d d d" d. g d  d d d d d$ d/ g d  d d d0 d d1 d2 g d  d
 d d d d3 d4 g d  d d d d  d5 d6 g d  d d d d  d, d7 g d  d d d d! d- d8 g g( Z dY dZ Bd[ Bd\ Bd] Bd^ Bd_ BZ d` da Bdb Bdc Bdd Bde Bdf Bdg BZ dh di Bdj Bdk Bdl BZ e dD    Z e dE    Z e dF    Z	 e dG    Z
 i dH   d? 6dI   d9 6dJ   d> 6dK   dL 6dM   d= 6dN   d< 6dO   d  6dP   dQ 6Z e dR    Z e dS    Z e dT    Z e dU    Z e e e e e e e e e e e e g dV   Z e dW    Z e dX    Z RS(m   i   i   i   i   i   i"   i&   i   i*   i.   i   i2   i6   i    i:   i>   iB   i0   iF   iJ   iN   i8   iR   iV   iZ   iH   i^   ib   if   iP   ij   iT   in   ir   iv   iz   i~   i4   ih   i   il   i   i<   ip   i   i   i   i   iL   i   i   i   i   i   i   i   i   i   i
   i   i   i   i   i    i   i   i	   i   c         C   ss   |  d >} xS t  j |  t  j t  j  d k r_ | t  j t  j |  t  j t  j  >N} q W|  d >| Bt  j AS(   Ni
   i    (   Rs   t   getBCHDigitt   G15t   G15_MASK(   R   R?   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s
    
(c         C   sl   |  d >} xS t  j |  t  j t  j  d k r_ | t  j t  j |  t  j t  j  >N} q W|  d >| BS(   Ni   i    (   Rs   R   t   G18(   R   R?   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s
    
(c         C   s1   d } x$ |  d k r, | d 7} |  d L}  q	 W| S(   Ni    i   (    (   R   t   digit(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s
    
c         C   s   t  j |  d S(   Ni   (   Rs   t   PATTERN_POSITION_TABLE(   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR{     s    c         C   s   |  | d d k S(   Ni   i    (    (   R$   t   j(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   <lambda>  t    c         C   s   |  d d k S(   Ni   i    (    (   R$   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     R   c         C   s   | d d k S(   Ni   i    (    (   R$   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     R   c         C   s   |  | d d k S(   Ni   i    (    (   R$   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     R   i   c         C   s   |  d | d d d k S(   Ni   i   i    (    (   R$   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     R   c         C   s   |  | d |  | d d k S(   Ni   i   i    (    (   R$   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     R   c         C   s"   |  | d |  | d d d k S(   Ni   i   i    (    (   R$   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     R   c         C   s"   |  | d |  | d d d k S(   Ni   i   i    (    (   R$   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     R   i   c         C   s   |  j  | S(   N(   Ro   (   t   clsRo   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s    c         C   sT   t  d g d  } x; t |   D]- } | j t  d t j |  g d   } q W| S(   Ni   i    (   R   R   t   multiplyt   QRMatht   gexp(   t   errorCorrectLengtht   aR$   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s    +c   
      C   s2  d } d g } d  } x | D] } | r g  t | |  D] \ } } | | A^ q8 } g  t | | d d D], \ } } | d k rj | o | d d ^ qj }	 | t |	  7} g  t | | d d D]" \ } } | r d n | d ^ q } n  | } q W| t g  | D]  } | d k r| d d ^ q 7} | S(   Ni    R   i   i   i   (   R   t   zipR    R   (
   R   RO   t   scoret	   lastCountt   lastRowRV   R   t   bt   changedt   scores(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   maskScoreRule1vert  s     	,&2
7c   	      C   s   d } | d } x | d D] } | d | d } } xf t  | d | d  D]M \ } } | | k o| | k o| | k n r | d 7} n  | | } } qN W| } q W| S(   Ni    i   i   (   R   (	   R   RO   R   R   RV   t   lastCol0t   lastCol1t   col0t   col1(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   maskScoreRule2  s    
$'
c         C   s   t  |  } d } xo | D]g } d } t  |  | } xH | | k  r | | | | !| k rr | d 7} | | 7} q8 | d 7} q8 Wq W| S(   Ni    i(   i   (   R   (   R   RO   Rv   t
   patternlenR   RV   R   t   maxj(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   maskScoreRule3hor  s    
c         C   sD   t  |  d } t d   | D  } d t d | | d  d S(   Ni   c         s   s   |  ] } t  |  Vq d  S(   N(   R   (   R[   RV   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pys	   <genexpr>  s    i
   id   i2   i   (   R   R   t   abs(   R   RO   t	   cellCountt   count(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   maskScoreRule4  s    c         C   s   d } | |  j  | j  7} | |  j  t | j    7} | |  j | j  7} | |  j | j  7} | |  j t | j    7} | |  j | j  7} | S(   Ni    (   R   RO   R   R   R   R   (   R   t   qrCodeRw   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRt     s    i   i   i    i   i   i   i   i   i   i   i   i   i    i   i   i @  i   i   i   i   (   R&   R'   R   R   R   R   R   R   R   R   R{   Ro   t   classmethodR   R   R   R   Rr   Rd   R   R   Rt   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyRs   N  s   					"






R   c           B   s&   e  Z e d     Z e d    Z RS(   c         C   s+   |  d k  r# t  d |  d   n  t |  S(   Ni   s   glog(t   )(   R   t	   LOG_TABLE(   R#   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   glog  s    c         C   sB   x |  d k  r |  d 7}  q Wx |  d k r9 |  d 8}  q  Wt  |  S(   Ni    i   i   (   t	   EXP_TABLE(   R#   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s
    (   R&   R'   R   R   R   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s   i   i   i   i   i   i   i   R   c           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s   t  |  d k r/ t t  |  d |   n  d } x0 | t  |  k  rg | | d k rg | d 7} q8 W| | d g | |  _ d  S(   Ni    t   /i   (   R   R   t   num(   R   R   t   shiftR   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s    %c         C   s   |  j  | S(   N(   R   (   R   R!   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s    c         C   s   t  |  j  S(   N(   R   R   (   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   "  s    c      
   C   s   d g |  j    | j    d } x| t |  j     D]h } x_ t | j     D]K } | | | c t j t j |  j |   t j | j |    N<qM Wq4 Wt | d  S(   Ni    i   (   R   R   R   R   R   R   R   (   R   R@   R   R$   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   %  s    !)$c         C   s   |  j    | j    k  r |  St j |  j d  t j | j d  } g  t |  j | j  D], \ } } | t j t j |  |  A^ q\ } | |  j | j    7} t | d  j |  S(   Ni    (   R   R   R   R   R   R   R   R   (   R   R@   t   ratiot   nnt   enR   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   -  s    *E(   R&   R'   R   R   R   R   R   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR     s
   				R]   c           B   s,  e  Z d  d d g d  d d g d  d d g d  d d g d  d d g d  d d g d  d d	 g d  d d g d  d
 d g d  d
 d g d d d g d d d g d  d d g d d d g d d d g d d d g d  d d g d d d g d d d d d d g d d d d d d g d d d g d d d  g d d d g d d d g d d! d" g d d# d$ g d d d% d d d g d d& d d  d' d% g d d( d) g d d* d+ d d, d& g d d' d- d d. d g d d' d% d d. d g d d/ d0 g d1 d2 d3 d d4 d5 g d d3 d d d5 d g d d3 d d d5 d g d d d d d6 d7 g d d7 d d  d
 d g d8 d d d d d9 g d8 d d d d d g d d: d; g d  d d d d; d< g d d d	 d d< d= g d1 d3 d d> d5 d g d d0 d? d d@ dA g d8 d2 d3 d d4 d5 g d dB d9 d8 dC dD g dE dF d% d d d g d dG dH g d> d4 d5 d  d* d+ g d> d d9 d dI dD g d d d d d d g d1 dJ dK d  d/ d0 g d dL d' dM dN d. g d d3 d dM d5 d g d d3 d dM d5 d g dM dO d6 d  dP dQ g dM dN d. dM dR dF g dM dS d dE d d g d d3 d g dM dT d! d  dU dV g dE dW dI d1 dX dB g d d d d d d9 g d1 dI d d dB d g d  dY dH dM dZ d g d[ dX dB d  d\ dC g d  d d	 d d< d= g d dF d% d d d g dM d] d^ d  d_ d( g d d7 d d d
 d g d d d	 d  d< d= g d dF d% d d d g d1 d` da d db dc g d1 d
 d d dd dI g d dC dD d de d	 g d d& d d d' d% g d1 dY dH dM dZ d g d1 d d. d d dF g d dS d dM d d g d d d d[ d d g d df d0 d dJ d@ g d d dF g d d d	 d8 d< d= g d dB d d8 dC d g d dg dh dE di dj g d dX dB g dE dS d d d d g d d5 d g d d_ d( dM dk dT g d d\ dC d% dl de g d dS d d% d d g d dI d d% dB d g d8 dm d@ d dn do g d8 dW dI d% dX dB g d dS d d d d g dp dB d d dC d g d> dq dr d dG dH g d> d\ dC d dl de g dE dS d d	 d d g d	 dI d d dB d g d[ db dc d ds dK g d dX dB d d\ dC g d d d	 d8 d< d= g d dB d d dC d g d> dk dT d dt dU g d	 dW dI d1 dX dB g d> du d= d dS d g d dI d d dB d g d1 dm d@ d[ dn do g d1 dW dI d= dX dB g d dS d d$ d d g d dI d d$ dB d g dE d/ d0 dE dm d@ g dD dW dI dE dX dB g d  du d= d5 dS d g d dI d d dB d g dM dJ dK d[ d/ d0 g d d\ dC d[ dl de g d dS d d d d g d= dI d d dB d g d dJ dK d1 d/ d0 g d dX dB dv d\ dC g dF dS d d  d d g d= dI d d dB d g d dJ dK g d[ dX dB d= d\ dC g d[ dS d d d d g d dI d d dB d g d dJ dK d  d/ d0 g d% dX dB dD d\ dC g dv dS d d d d g d dI d dB dB d g d dJ dK d8 d/ d0 g d% dX dB d= d\ dC g d dS d dE d d g d4 dB d d  dC d g d d_ d( dE dk dT g d d\ dC d dl de g d& dS d d% d d g d	 dI d d. dB d g d8 d_ d( d% dk dT g d8 d\ dC d dl de g dB dS d d[ d d g d dI d dL dB d g d dk dT d dt dU g dv dX dB d% d\ dC g d# dS d d[ d d g d dI d dB dB d g d dk dT d- dt dU g d dX dB d d\ dC g de dS d d% d d g dF dI d d dB d g d9 dm d@ d dn do g d' d\ dC dE dl de g d dS d d	 d d g d[ dI d d dB d g d dn do d8 dw dx g d- d\ dC d$ dl de g d dS d d d d g d9 dI d d, dB d g g Z dy   Z e dz    Z e d{    Z RS(|   i   i   i   i   i   i	   i,   i"   i   i   iF   i7   i   i#   i   id   iP   i2   i    i   i   i   i   il   iC   i+   i!   i   i   i   iV   iD   i   ib   iN   i1   i   i   i'   i(   iy   ia   i<   i&   i=   i   i)   i   it   i   i:   i$   i;   i%   iW   iE   i   i   ie   iQ   i3   i   i   i\   iu   i]   i.   i/   i   i   i*   i   ik   i-   i   is   i@   i   iA   im   in   iX   iB   i6   iz   i{   ic   iI   iJ   i   i   i
   iK   i   ix   i   i   iq   i   ir   iG   i0   i   i   io   i   ip   i   iL   i   i   iv   i   i   ij   i   i   i5   i   i   iw   c         C   s   | |  _  | |  _ d  S(   N(   R   RZ   (   R   R   RZ   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   0  s    	c   
      C   s   t  j |  |  } | d  k r9 t d |  d |   n  t |  d } g  } xw t |  D]i } | | d d } | | d d } | | d d } x* t |  D] }	 | j t  | |   q Wq\ W| S(   Ns   bad rs block @ version:s   /errorCorrectLevel:i   i    i   i   (   R]   t   getRsBlockTableR   R   R   R   R=   (
   R   RN   t   rsBlockRa   R   R$   R   R   RZ   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR^   4  s    c         C   s   | t  j k r& t j |  d d d S| t  j k rL t j |  d d d S| t  j k rr t j |  d d d S| t  j k r t j |  d d d Sd  Sd  S(   Ni   i   i    i   i   (   R   R   R]   t   RS_BLOCK_TABLER   R   R   R   (   R   RN   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   D  s    (   R&   R'   R   R   R   R^   R   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR]   7  sF  	R   c           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   g  |  _  d |  _ d  S(   Ni    (   R   Ra   (   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   R  s    	c         C   s)   d j  g  |  j D] } t |  ^ q  S(   Nt   .(   t   joinR   R2   (   R   R#   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   V  s    c         C   s+   | d } |  j  | d | d ?d @d k S(   Ni   i   i   (   R   (   R   R!   t   bufIndex(    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   Y  s    
c         C   s>   x7 t  |  D]) } |  j | | | d ?d @d k  q Wd  S(   Ni   (   R   R   (   R   R   Ra   R$   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   ]  s    c         C   s   |  j  S(   N(   Ra   (   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   a  s    c         C   so   |  j  d } t |  j  | k r5 |  j j d  n  | r\ |  j | c d |  j  d ?O<n  |  j  d 7_  d  S(   Ni   i    i   i   (   Ra   R   R   R=   (   R   R   R   (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   d  s    !(   R&   R'   R   R   R   R   R   R   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyR   Q  s   					(   R*   Rx   R    R   R0   t	   NameErrorR2   R   R)   R-   R.   R5   RA   RE   RF   RJ   RK   RM   R   R   t   objectRs   R   R   Rp   R   R   R$   R   R]   R   (    (    (    sr   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/barcode/qrencoder.pyt   <module>   sJ   
5-6  
:! 